--- phase: 01 slug: framework-kernel-foundation status: draft nyquist_compliant: false wave_0_complete: false created: 2026-09-16 --- # Phase 1 — Validation Strategy ## Test Infrastructure | Property | Value | |---|---| | Framework | `go test` (Go 1.27.0) | | Config file | No test harness yet; first implementation slice adds Go tests | | Quick run | `go vet ./... && go test ./...` from repo root, then from `examples/hello` once created | | Full suite | Both modules: `go vet ./...`, `go test ./...`, `go test -race ./...`; generated binary integration | | Estimated runtime | Measure after dependencies are cached; no assumed threshold | ## Sampling Rate - After each implementation task commit, run root `go vet ./... && go test ./...`; run the same from `examples/hello` after it exists. - After each plan wave, run both module checks plus the relevant built-binary smoke. - Before verify-work, run race tests in both modules and an end-to-end `summer build`/hello invocation. - Record actual feedback latency and single-plugin rebuild latency; no fixed performance promise has been set. ## Per-Requirement Verification Map | Requirement | Test type | Automated command or assertion | Initial status | |---|---|---|---| | KERN-01 | unit + integration | Config precedence and typed decode tests; hello binary prints env-overlay value | Pending | | KERN-02 | unit + integration | Reordered Register/Boot trace, missing dependency, cycle and duplicate tests | Pending | | KERN-03 | compile + unit | Hello plugins satisfy optional interfaces; type-assertion discovery | Pending | | KERN-04 | integration | Stable codegen, `plugin:add`, `go.work`, built hello app boot | Pending | | KERN-05 | unit | Absent optional plugin returns false; present service lookup returns typed value | Pending | | KERN-06 | unit + race | Three dispatch modes, priority, stable ties, errors and panic recovery | Pending | | KERN-07 | unit + race | Two app contexts remain isolated; request values passed only via `context.Context` | Pending | | KERN-08 | unit | Interface service publish and typed lookup `(value, ok)` | Pending | | KERN-09 | integration | Temp app source edit triggers one debounced rebuild and restart, latency line captured | Pending | | CLI-01 | unit + integration | Plugin command discovery, injected output, non-TTY spinner/progress/table/prompt behavior | Pending | ## Wave 0 Requirements - [ ] First implementation slice creates `examples/hello`, its `go.mod`, and a root `go.work` that names every example module. - [ ] First implementation slice adds smoke tests for generated app boot and the initial plugin command. - [ ] Final plan expands unit coverage; it does not substitute for executable checks during earlier work. ## Manual-Only Verifications | Behavior | Requirement | Why manual | Instructions | |---|---|---|---| | Interactive terminal rendering | CLI-01 | Terminal appearance varies by terminal emulator | Run hello command in a TTY; inspect spinner/progress/table and prompts. Automated non-TTY assertions remain required. | | Rebuild feel | KERN-09 | Human experience complements measured latency | Edit one hello plugin file under `summer dev`; observe restart and printed elapsed time. | ## Validation Sign-Off - [ ] Every plan task has an automated verification or an explicit Wave 0 dependency. - [ ] No three consecutive implementation tasks lack automated feedback. - [ ] Root and nested example modules both run `go vet`, tests and race tests. - [ ] No watch-mode flags in CI commands. - [ ] Set `nyquist_compliant: true` after plan-task mapping is complete. **Approval:** pending plan verification