Adds automated feedback architecture research to gsd-phase-researcher,
enforces it as Dimension 8 in gsd-plan-checker, and introduces
{phase}-VALIDATION.md as the per-phase validation contract.
Ensures every phase plan includes automated verify commands before
execution begins. Opt-out via workflow.nyquist_validation: false.
Closes #122 (partial), related #117
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
105 lines
3.4 KiB
Markdown
105 lines
3.4 KiB
Markdown
---
|
|
phase: {N}
|
|
slug: {phase-slug}
|
|
status: draft
|
|
nyquist_compliant: false
|
|
wave_0_complete: false
|
|
created: {date}
|
|
---
|
|
|
|
# Phase {N} — Validation Strategy
|
|
|
|
> Generated by `gsd-phase-researcher` during `/gsd:plan-phase {N}`.
|
|
> Updated by `gsd-plan-checker` after plan approval.
|
|
> Governs feedback sampling during `/gsd:execute-phase {N}`.
|
|
|
|
---
|
|
|
|
## Test Infrastructure
|
|
|
|
| Property | Value |
|
|
|----------|-------|
|
|
| **Framework** | {pytest 7.x / jest 29.x / vitest / go test / other} |
|
|
| **Config file** | {path/to/pytest.ini or "none — Wave 0 installs"} |
|
|
| **Quick run command** | `{e.g., pytest -x --tb=short}` |
|
|
| **Full suite command** | `{e.g., pytest tests/ --tb=short}` |
|
|
| **Estimated runtime** | ~{N} seconds |
|
|
| **CI pipeline** | {.github/workflows/test.yml — exists / needs creation} |
|
|
|
|
---
|
|
|
|
## Nyquist Sampling Rate
|
|
|
|
> The minimum feedback frequency required to reliably catch errors in this phase.
|
|
|
|
- **After every task commit:** Run `{quick run command}`
|
|
- **After every plan wave:** Run `{full suite command}`
|
|
- **Before `/gsd:verify-work`:** Full suite must be green
|
|
- **Maximum acceptable task feedback latency:** {N} seconds
|
|
|
|
---
|
|
|
|
## Per-Task Verification Map
|
|
|
|
| Task ID | Plan | Wave | Requirement | Test Type | Automated Command | File Exists | Status |
|
|
|---------|------|------|-------------|-----------|-------------------|-------------|--------|
|
|
| {N}-01-01 | 01 | 1 | REQ-{XX} | unit | `pytest tests/test_{module}.py::test_{name} -x` | ✅ / ❌ W0 | ⬜ pending |
|
|
| {N}-01-02 | 01 | 1 | REQ-{XX} | integration | `pytest tests/test_{flow}.py -x` | ✅ / ❌ W0 | ⬜ pending |
|
|
| {N}-02-01 | 02 | 2 | REQ-{XX} | smoke | `curl -s {endpoint} \| grep {expected}` | ✅ N/A | ⬜ pending |
|
|
|
|
*Status values: ⬜ pending · ✅ green · ❌ red · ⚠️ flaky*
|
|
|
|
---
|
|
|
|
## Wave 0 Requirements
|
|
|
|
> Test scaffolding committed BEFORE any implementation task. Executor runs Wave 0 first.
|
|
|
|
- [ ] `{tests/test_file.py}` — stubs for REQ-{XX}, REQ-{XX}
|
|
- [ ] `{tests/conftest.py}` — shared fixtures
|
|
- [ ] `{framework install}` — if no framework detected
|
|
|
|
*If none required: "Existing infrastructure covers all phase requirements — no Wave 0 test tasks needed."*
|
|
|
|
---
|
|
|
|
## Manual-Only Verifications
|
|
|
|
> Behaviors that genuinely cannot be automated, with justification.
|
|
> These are surfaced during `/gsd:verify-work` UAT.
|
|
|
|
| Behavior | Requirement | Why Manual | Test Instructions |
|
|
|----------|-------------|------------|-------------------|
|
|
| {behavior} | REQ-{XX} | {reason: visual, third-party auth, physical device...} | {step-by-step} |
|
|
|
|
*If none: "All phase behaviors have automated verification coverage."*
|
|
|
|
---
|
|
|
|
## Validation Sign-Off
|
|
|
|
Updated by `gsd-plan-checker` when plans are approved:
|
|
|
|
- [ ] All tasks have `<automated>` verify commands or Wave 0 dependencies
|
|
- [ ] No 3 consecutive implementation tasks without automated verify (sampling continuity)
|
|
- [ ] Wave 0 test files cover all MISSING references
|
|
- [ ] No watch-mode flags in any automated command
|
|
- [ ] Feedback latency per task: < {N}s ✅
|
|
- [ ] `nyquist_compliant: true` set in frontmatter
|
|
|
|
**Plan-checker approval:** {pending / approved on YYYY-MM-DD}
|
|
|
|
---
|
|
|
|
## Execution Tracking
|
|
|
|
Updated during `/gsd:execute-phase {N}`:
|
|
|
|
| Wave | Tasks | Tests Run | Pass | Fail | Sampling Status |
|
|
|------|-------|-----------|------|------|-----------------|
|
|
| 0 | {N} | — | — | — | scaffold |
|
|
| 1 | {N} | {command} | {N} | {N} | ✅ sampled |
|
|
| 2 | {N} | {command} | {N} | {N} | ✅ sampled |
|
|
|
|
**Phase validation complete:** {pending / YYYY-MM-DD HH:MM}
|