Files
msd-core/get-shit-done/templates/VALIDATION.md
Bantuson e0f9c738c9 feat: add Nyquist validation layer to plan-phase pipeline
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>
2026-02-20 13:46:39 +02:00

3.4 KiB

phase, slug, status, nyquist_compliant, wave_0_complete, created
phase slug status nyquist_compliant wave_0_complete created
N
phase-slug
draft false false
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}