Skip to content

docs: restructure README and docs into an entry point and a reference set #96

Closed

Description

@entelecheia

Context

Documentation audit on 2026-11-09 (latest release v0.18.1). README is 800 lines mixing operator guide, reference and contributor material, and has drifted from the code.

  • verified: profile table omits rocky and misstates minimal/dgx/gpu-server (README:91-97 vs internal/config/profiles/*.yaml); detection also suggests rocky and gpu-server (detector.go:59-69).
  • inferred (agent cross-check, re-verify while editing): env table claims every flag has an env variable (false for --module, --config, --dry-run, --force) and omits ROOTFILES_VLAN_INTERFACE, ROOTFILES_DATA_DIR; architecture tree omits internal/fleet/ (AGENTS.md too); doctor check list omits exporter checks; CI table omits exporter-firewall-scenario; Rocky section duplicates docs/rocky-support.md without linking it, and that file still says Rocky CI "remains required" although the job exists; about 25 config keys are documented nowhere (modules.system.*, ssh.*, users.fleet_sudo_users, modules.tenant.sshpiper.*, ...); docs/releases/v0.9.0.md is the only missing release note.
  • verified: PLAN.md (Korean, 2026-03) and docs/IMPROVEMENT_PLAN.md (Korean, 2026-09-26) describe shipped work; docs/architecture/ (1.4 MB rendered HTML/PNG/JSON) says 13 modules and 12 commands and has no fleet/tenant/monitoring hub (code: 14 and 14).
  • Long single paragraphs (README:342 ~900 words on home-base rules, README:252 ~300 words on config resolution) are hard for people and agents to use.

Implementation starts only on the owner's go-ahead.

Decisions

Design

Target layout:

File Purpose
README.md Entry point (see above)
docs/architecture.md Package map, Module interface, apply/check flow
docs/commands.md Every command and flag, exit codes, output formats, env vars
docs/configuration.md Every config key with default, profiles and extends, env overrides, applied-config reuse
docs/modules.md Per-module behaviour, toggle key, Rocky column (absorbs rocky-support table)
docs/users.md Home-base detection and root-only rules, lifecycle, quota, backup/restore
docs/gpu.md Allocation methods, ledger, MIG
docs/tunnel.md cloudflared, token file, VLAN, update
docs/monitoring.md Exporters, exporter firewall guard, hub, alerts
docs/fleet.md Inventory schema, selection, rollouts, audit log, targets, fleet_sudo_users
docs/tenant.md Existing guide, gaps filled (list, logs --tail, restart, create flags)
docs/rocky.md Supported matrix (rename of rocky-support.md)
docs/operations.md State, logs, lock, backup, rollback, schedule, self-update
docs/development.md Build, test layers, CI jobs, release workflow

Changes

  • README.md, AGENTS.md (architecture list → link; note the gpu module toggle and that module lists must agree), new files above, git rm PLAN.md docs/IMPROVEMENT_PLAN.md docs/architecture/, REVIEW.md (drop the architecture exclusion), docs/releases/v0.9.0.md, internal/cli/docs_test.go (cobra tree vs docs/commands.md), internal/config test that every YAML key appears in docs/configuration.md.

Acceptance criteria

  • AC1: README ≤ 220 lines and links every docs file.
  • AC2: go test ./internal/cli -run Docs fails when a command or flag is added without a docs/commands.md entry.
  • AC3: a config test fails when a struct YAML key is missing from docs/configuration.md.
  • AC4: every mismatch listed in Context is fixed (checklist in the PR).
  • AC5: no Korean planning files or rendered architecture artifacts remain; no broken relative links (grep-based link check in the test).
  • AC6: bash scripts/check-release-notes.sh passes, v0.9.0 note present.

Tasks

  • T1: docs/commands.md + cobra drift test (AC2)
  • T2: docs/configuration.md + key drift test (AC3)
  • T3: topic files moved out of README, README rewrite (AC1, AC4)
  • T4: AGENTS.md trim, archive removals, link check (AC5)
  • T5: v0.9.0 release note (AC6)

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions