Six plans (tracer generator, site UX and checkers, content A, content B, acme/blog walkthrough, unit tests). SC4/DOCS-04 narrowed to docs/ pages per D-18; README Go fence conversion logged as a todo.
7.8 KiB
7.8 KiB
phase, slug, status, nyquist_compliant, wave_0_complete, created
| phase | slug | status | nyquist_compliant | wave_0_complete | created |
|---|---|---|---|---|---|
| 11.1 | summercms-documentation-for-humans-and-ai-agents | draft | false | false | 2026-09-28 |
Phase 11.1 — Validation Strategy
Per-phase validation contract for feedback sampling during execution.
Test Infrastructure
| Property | Value |
|---|---|
| Framework | go test (stdlib testing) |
| Config file | none. Tests locate docs/ and modules/ via relative paths from internal/docsite |
| Quick run command | go test -short ./internal/docsite/... ./cmd/summer/... ./docs/examples/... |
| Full suite command | go vet ./... && go test ./... (Docker required for walkthrough and lagoon DB tests) |
| Phase gate | scripts/check-phase11.1.sh --all |
| Estimated runtime | ~60 seconds (quick), several minutes (full with Docker) |
Sampling Rate
- After every task commit: Run
go vet ./... && go test -short ./... - After every plan wave: Run
go test ./...plusscripts/check-phase11.1.sh --docs --forbidden - Before
/gsd-verify-work:scripts/check-phase11.1.sh --allmust be green, then manual UAT of search and dark mode - Max feedback latency: 60 seconds
Per-Task Verification Map
Filled in by the planner from the six PLAN.md files. Real-tree checks live in cmd/summer (package main owns toolCommands(), which the command checker needs); fixture and unit tests live in internal/docsite. Plan 11.1-06 Task 3 updates the Status column and the sign-off.
| Task ID | Plan | Requirement | Behavior | Test Type | Automated Command | File Exists | Status |
|---|---|---|---|---|---|---|---|
| 11.1-01-T1 | 01 | DOCS-01, DOCS-02, DOCS-03 | docs:build writes html, .md, llms.txt, llms-full.txt, search index; strict frontmatter; output guard | smoke (real tree) | go test ./internal/docsite ./cmd/summer -run '^(TestDocsTree|TestDocsBuildRealTree|TestToolCommandNames)$' -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-01-T2 | 01 | DOCS-01, DOCS-03 | Every module is an API page in the sidebar; shared slug IDs; AI outputs match the page tree | unit + smoke | go test ./internal/docsite ./cmd/summer -run '^(TestSlugIDs|TestReadmeIngestion|TestEveryModuleInSidebar|TestDocsAIOutputsInSync|TestDocsTree)$' -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-01-T3 | 01 | DOCS-04 | src= extraction, confinement, drift, docs:sync; ExampleCall runs | unit + toolchain | go vet ./... && go test ./internal/docsite ./cmd/summer ./modules/bonfire -count=1 |
❌ W0 | ⬜ pending |
| 11.1-02-T1 | 02 | DOCS-05 | Identifier checker over docs, module READMEs and root README; gate self-test | unit + gate | go test ./internal/docsite ./cmd/summer -run '^(TestIdentifierChecker|TestDocsTree)$' -count=1 -v && scripts/check-phase11.1.sh --self-test |
❌ W0 | ⬜ pending |
| 11.1-02-T2 | 02 | DOCS-05, DOCS-08 | Links/anchors, command names (collected sets), forbidden names, go-fence policy; CLAUDE.md rule | unit + gate | go test ./internal/docsite ./cmd/summer -count=1 && scripts/check-phase11.1.sh --claude |
❌ W0 | ⬜ pending |
| 11.1-02-T3 | 02 | DOCS-02 | UI-SPEC theme markers, chroma highlighting, search assets, docs:serve loopback and 404; go.mod adds only chroma/v2 and regexp2/v2 | unit + gate | go test ./internal/docsite -run '^(TestBuildSiteMarkers|TestServeHandler|TestServeRefusesNonLoopback)$' -count=1 -v && scripts/check-phase11.1.sh --deps |
❌ W0 | ⬜ pending |
| 11.1-03-T1 | 03 | DOCS-06 | Coming from WinterCMS page with checked identifiers and ExamplePlugin | toolchain + smoke | go test ./modules/party -run '^ExamplePlugin$' -count=1 -v && go test ./cmd/summer -run '^(TestDocsTree|TestDocsRequiredPages)$' -count=1 |
❌ W0 | ⬜ pending |
| 11.1-03-T2 | 03 | DOCS-01, DOCS-04 | Architecture and Plugins pages with running Examples | toolchain + smoke | go test ./modules/backpack ./modules/pact ./modules/festival ./modules/towel -run '^Example' -count=1 && go test ./cmd/summer -run '^(TestDocsTree|TestDocsRequiredPages)$' -count=1 |
❌ W0 | ⬜ pending |
| 11.1-03-T3 | 03 | DOCS-01, DOCS-04 | Setup and Console pages; every command name verified | smoke + gate | go test ./cmd/summer -run '^(TestDocsTree|TestDocsRequiredPages)$' -count=1 && scripts/check-phase11.1.sh --docs |
❌ W0 | ⬜ pending |
| 11.1-04-T1 | 04 | DOCS-04 | Jobs page with a runnable Example and a database-backed region run by TestDocsDispatch | integration (Docker) | go test ./modules/conga -run '^(Example.*|TestDocsDispatch)$' -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-04-T2 | 04 | DOCS-01, DOCS-04 | Database and core Services pages with running examples | toolchain + integration | go test ./modules/lagoon/... ./modules/compass ./modules/surf ./modules/wire ./modules/bouncer ./modules/wristband ./modules/postcard ./modules/phrasebook -run '^(Example|TestDocs)' -count=1 |
❌ W0 | ⬜ pending |
| 11.1-04-T3 | 04 | DOCS-01, DOCS-06 | Backend and remaining Services pages, Frontend and AJAX page, section order, concept-map links | smoke + gate | go test ./cmd/summer -run '^(TestDocsTree|TestDocsRequiredPages)$' -count=1 && scripts/check-phase11.1.sh --forbidden |
❌ W0 | ⬜ pending |
| 11.1-05-T1 | 05 | DOCS-07 | Blog plugin activates, route registered; walkthrough page from src= | unit + smoke | go test -short ./docs/examples/... -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-05-T2 | 05 | DOCS-07 | Admin controller, command, second migration proven against Postgres | integration (Docker) | go test ./docs/examples/... -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-05-T3 | 05 | DOCS-07 | Walkthrough file set equals scaffolder output | unit | go test -short ./docs/examples/blog -run '^TestScaffoldLayout$' -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-06-T1 | 06 | DOCS-05 | Every rule has a planted fixture that fails for its own rule | unit | go test ./internal/docsite -run '^(TestPlantedViolations|TestCleanFixture)$' -count=1 -v |
❌ W0 | ⬜ pending |
| 11.1-06-T2 | 06 | DOCS-01..05 | internal/docsite statement coverage at least 85% | unit | go test ./internal/docsite -count=1 -coverprofile=cover.out && go tool cover -func=cover.out |
❌ W0 | ⬜ pending |
| 11.1-06-T3 | 06 | DOCS-01..08 | SC1..SC5 acceptance subtests; final gate | acceptance + gate | go test ./cmd/summer -run '^TestPhase11_1Acceptance$' -count=1 -v && scripts/check-phase11.1.sh --all |
❌ W0 | ⬜ pending |
Status: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky
Wave 0 Requirements
internal/docsite/package with test scaffolding and atestdata/planted-violation corpusmodules/bonfire/example_test.go— first verified snippet (tracer)docs/site.yaml,docs/index.md,docs/setup/installation.mdcmd/summer/docs.go+TestToolCommandNamesextensionscripts/check-phase11.1.shwith--self-test/site/in.gitignore
Manual-Only Verifications
| Behavior | Requirement | Why Manual | Test Instructions |
|---|---|---|---|
| Client-side search returns relevant pages | DOCS-02 | No JS test runner without a Node toolchain | summer docs:serve, search for a module name and a CLI command, confirm results link correctly |
| Dark mode toggles and persists | DOCS-02 | Visual | summer docs:serve, toggle theme, reload, confirm persistence and contrast per UI-SPEC |
Validation Sign-Off
- All tasks have
<automated>verify or Wave 0 dependencies - Sampling continuity: no 3 consecutive tasks without automated verify
- Wave 0 covers all MISSING references
- No watch-mode flags
- Feedback latency < 60s
nyquist_compliant: trueset in frontmatter
Approval: pending