Files
ImpTune/.planning/phases/08-nyquist-validation-track/08-08-PLAN.md
T

209 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
phase: 08-nyquist-validation-track
plan: 08
type: execute
wave: 8
depends_on: [08-01, 08-02, 08-03, 08-04, 08-05, 08-06, 08-07]
files_modified:
- .planning/milestones/v1.0-VALIDATION-INDEX.md
- .planning/phases/01-foundation/01-VALIDATION.md
- .planning/phases/02-driver-management/02-VALIDATION.md
- .planning/phases/03-printer-configuration/03-VALIDATION.md
- .planning/phases/04-script-generation/04-VALIDATION.md
- .planning/phases/05-package-export/05-VALIDATION.md
- .planning/phases/06-wire-icon-intunewin/06-VALIDATION.md
- .planning/phases/07-dashboard-nav-polish/07-VALIDATION.md
- .planning/REQUIREMENTS.md
autonomous: false
requirements: [NYQ-02, NYQ-03]
must_haves:
truths:
- "An operator can open .planning/milestones/v1.0-VALIDATION-INDEX.md and see a single flat pass/fail table across all 7 v1.0 phases"
- "The index header shows audit date, auditor, and overall tally (X/Y pass, Z deferred, W fail-fix)"
- "Every gap row in the index has status in {fail-fix-v1.1, deferred-v1.2, wont-do} with non-empty rationale"
- "Every fail-fix-v1.1 row links to a real fixing phase (9, 10, or 11)"
- "Every per-phase VALIDATION.md has a dated sign-off checkbox matching the index sign-off"
- "REQUIREMENTS.md NYQ-01/02/03 are ticked [x] after sign-off"
artifacts:
- path: ".planning/milestones/v1.0-VALIDATION-INDEX.md"
provides: "Single flat pass/fail roll-up across 7 phases with gap triage column"
contains: "| Phase | # | Criterion | Status | Evidence | Gap Link |"
- path: ".planning/REQUIREMENTS.md"
provides: "NYQ-01..03 marked complete"
contains: "[x] **NYQ-01**"
key_links:
- from: ".planning/milestones/v1.0-VALIDATION-INDEX.md"
to: ".planning/phases/{01..07}-*/NN-VALIDATION.md"
via: "markdown links from each index row to its phase Nyquist Record"
pattern: "phases/0[1-7]-.*VALIDATION.md"
- from: ".planning/milestones/v1.0-VALIDATION-INDEX.md fail-fix rows"
to: ".planning/phases/{09,10,11}-*"
via: "fixing-phase back-links"
pattern: "fail-fix-v1.1.*Phase (9|10|11)"
---
<objective>
Aggregate all 7 per-phase Nyquist Records into a single milestone-level index (`.planning/milestones/v1.0-VALIDATION-INDEX.md`), triage every gap against Phases 9/10/11, obtain human sign-off, replicate sign-off into each phase's VALIDATION.md frontmatter, and tick NYQ-01/02/03 in REQUIREMENTS.md.
Purpose: Closes NYQ-02 (single pass/fail rollup) and NYQ-03 (gap triage) and formally closes Phase 8.
Output: New `v1.0-VALIDATION-INDEX.md`, updated 7 phase VALIDATION.md files, updated REQUIREMENTS.md.
</objective>
<execution_context>
@C:/Users/SebastienQUEROL/.claude/get-shit-done/workflows/execute-plan.md
@C:/Users/SebastienQUEROL/.claude/get-shit-done/templates/summary.md
</execution_context>
<context>
@.planning/ROADMAP.md
@.planning/STATE.md
@.planning/REQUIREMENTS.md
@.planning/phases/08-nyquist-validation-track/08-CONTEXT.md
@.planning/phases/08-nyquist-validation-track/08-01-SUMMARY.md
@.planning/phases/08-nyquist-validation-track/08-02-SUMMARY.md
@.planning/phases/08-nyquist-validation-track/08-03-SUMMARY.md
@.planning/phases/08-nyquist-validation-track/08-04-SUMMARY.md
@.planning/phases/08-nyquist-validation-track/08-05-SUMMARY.md
@.planning/phases/08-nyquist-validation-track/08-06-SUMMARY.md
@.planning/phases/08-nyquist-validation-track/08-07-SUMMARY.md
@.planning/milestones/v1.0-ROADMAP.md
@.planning/phases/01-foundation/01-VALIDATION.md
@.planning/phases/02-driver-management/02-VALIDATION.md
@.planning/phases/03-printer-configuration/03-VALIDATION.md
@.planning/phases/04-script-generation/04-VALIDATION.md
@.planning/phases/05-package-export/05-VALIDATION.md
@.planning/phases/06-wire-icon-intunewin/06-VALIDATION.md
@.planning/phases/07-dashboard-nav-polish/07-VALIDATION.md
</context>
<tasks>
<task type="auto">
<name>Task 1: Compile v1.0-VALIDATION-INDEX.md rollup</name>
<files>.planning/milestones/v1.0-VALIDATION-INDEX.md</files>
<action>
Create a NEW file `.planning/milestones/v1.0-VALIDATION-INDEX.md`. Structure (per CONTEXT.md locked decisions):
1. **Frontmatter:** milestone: v1.0, type: validation-index, audit_date: <date>, auditor: <name>, status: draft.
2. **Header block** above the table:
- Title: `# v1.0 Validation Index — Nyquist Rollup`
- Audit date + auditor
- Overall tally line: `**Tally:** X/Y pass, Z deferred, W fail-fix-v1.1, U wont-do` — compute from all 7 per-phase Nyquist Records
- One-sentence context: "Single flat pass/fail roll-up of every v1.0 success criterion across Phases 17. Source of truth for NYQ-02 and NYQ-03."
3. **Flat table** (NOT per-phase subsections — CONTEXT.md explicitly requires a single flat greppable table):
`| Phase | # | Criterion | Status | Evidence | Gap Link |`
- One row per success criterion across all 7 phases (total rows = sum of Phase 1..7 criteria)
- `Phase` cell: short label like "1-Foundation"
- `#` cell: criterion number within its phase
- `Criterion` cell: short paraphrase (full text lives in the per-phase VALIDATION.md)
- `Status` cell: pass | fail-fix-v1.1 | deferred-v1.2 | wont-do
- `Evidence` cell: markdown link to the per-phase VALIDATION.md Nyquist Record row (`[01-VALIDATION.md#nyquist-record](../phases/01-foundation/01-VALIDATION.md#nyquist-record)`) or direct cite
- `Gap Link` cell: empty for pass rows; for fail-fix-v1.1 rows → link to fixing phase (Phase 9/10/11); for deferred/wont-do → rationale sentence (MANDATORY, no empty cells per CONTEXT.md)
4. **Gap validation block** below the table:
- Sub-list of every fail-fix-v1.1 row with a sanity check: does the linked fixing phase actually own the fix? If any fail-fix-v1.1 row points to a phase that does NOT contain the fix, the CONTEXT.md rule says "the roadmap is wrong and must be amended before Phase 8 closes" — flag this loudly in the file and STOP; surface it in the wave-8 checkpoint.
5. **Sign-off line** at the bottom (unchecked initially, flipped in Task 3):
`- [ ] Nyquist audit complete — <date> — <auditor>`
Do NOT modify source code. This writes only to `.planning/milestones/`.
</action>
<verify>
<automated>test -f .planning/milestones/v1.0-VALIDATION-INDEX.md && grep -q "| Phase | # | Criterion | Status | Evidence | Gap Link |" .planning/milestones/v1.0-VALIDATION-INDEX.md && grep -q "Nyquist audit complete" .planning/milestones/v1.0-VALIDATION-INDEX.md</automated>
</verify>
<done>
v1.0-VALIDATION-INDEX.md exists with frontmatter, header + tally, flat table containing one row per v1.0 success criterion across all 7 phases, gap cells populated for every non-pass row, and an unchecked sign-off line. Any roadmap-mismatch fail-fix rows are loudly flagged.
</done>
</task>
<task type="checkpoint:human-verify" gate="blocking">
<name>Task 2: Human sign-off on v1.0-VALIDATION-INDEX.md</name>
<files>.planning/milestones/v1.0-VALIDATION-INDEX.md</files>
<action>Pause execution. Present the index and per-phase VALIDATION.md files to the human for review per the how-to-verify block. Do not proceed to Task 3 until a resume signal is received.</action>
<verify><automated>grep -q "Nyquist audit complete" .planning/milestones/v1.0-VALIDATION-INDEX.md</automated></verify>
<done>Human has reviewed the index and spot-checked two per-phase VALIDATION.md files and posted an approval resume signal (or returned corrections to Task 1).</done>
<what-built>
`.planning/milestones/v1.0-VALIDATION-INDEX.md` with a flat pass/fail table across all 7 v1.0 phases, gap triage column populated, and tally computed. Seven per-phase VALIDATION.md files each carry a `## Nyquist Record` with cited evidence.
</what-built>
<how-to-verify>
1. Open `.planning/milestones/v1.0-VALIDATION-INDEX.md`. Confirm:
- Header tally numbers add up to the total criterion count across Phases 17 (cross-check with milestones/v1.0-ROADMAP.md).
- Every row has non-empty Status, Evidence, and (for non-pass rows) Gap Link.
- Every fail-fix-v1.1 row links to a real fixing phase (9, 10, or 11).
- No row has status "needs investigation" or similar escape hatches — Nyquist requires a decision.
2. Spot-check two per-phase VALIDATION.md files (pick any two of phases 17). Confirm each has:
- `## Nyquist Record` section present
- One row per success criterion
- Cited evidence for each row (test, commit, artifact, or dated manual ref)
- Frontmatter has `nyquist_audited` and `nyquist_auditor`
3. Review any `fail-fix-v1.1` flag from Task 1's gap validation block. If a row is wrongly linked (fix does NOT live in the cited phase), halt and fix the roadmap before resuming.
4. Decision to make: approve sign-off, or send back for corrections.
</how-to-verify>
<resume-signal>Type "approved — signed off by &lt;name&gt;" or describe corrections needed.</resume-signal>
</task>
<task type="auto">
<name>Task 3: Finalize sign-off — flip flags, tick requirements, replicate into per-phase files</name>
<files>
.planning/milestones/v1.0-VALIDATION-INDEX.md,
.planning/phases/01-foundation/01-VALIDATION.md,
.planning/phases/02-driver-management/02-VALIDATION.md,
.planning/phases/03-printer-configuration/03-VALIDATION.md,
.planning/phases/04-script-generation/04-VALIDATION.md,
.planning/phases/05-package-export/05-VALIDATION.md,
.planning/phases/06-wire-icon-intunewin/06-VALIDATION.md,
.planning/phases/07-dashboard-nav-polish/07-VALIDATION.md,
.planning/REQUIREMENTS.md
</files>
<action>
Only run this task AFTER Task 2 returns "approved". Use the auditor name + sign-off date provided in the resume signal.
1. In `v1.0-VALIDATION-INDEX.md`:
- Flip frontmatter `status: draft → signed-off`
- Tick the sign-off line: `- [x] Nyquist audit complete — <date> — <auditor>`
2. In EACH of the 7 per-phase VALIDATION.md files:
- Flip frontmatter `nyquist_compliant: false → true` if (and only if) every row in that phase's Nyquist Record is pass or explicit-deferred
- Ensure `nyquist_audited: <date>` and `nyquist_auditor: <name>` match the index sign-off
- In the existing "Validation Sign-Off" section, tick the "nyquist_compliant: true set in frontmatter" box and add a dated sign-off line mirroring the index.
3. In `.planning/REQUIREMENTS.md`:
- Tick `[ ] **NYQ-01**``[x] **NYQ-01**` (only if all 7 phase VALIDATION.md files have complete Nyquist Records)
- Tick `[ ] **NYQ-02**``[x] **NYQ-02**` (index exists with flat rollup)
- Tick `[ ] **NYQ-03**``[x] **NYQ-03**` (every gap has status + rationale + fixing-phase link or written deferral)
- Update the Traceability table NYQ-01/02/03 rows: Status Pending → Complete
4. Do NOT touch ROADMAP.md or STATE.md here — the orchestrator's post-phase hooks handle those.
</action>
<verify>
<automated>grep -q "^- \[x\] Nyquist audit complete" .planning/milestones/v1.0-VALIDATION-INDEX.md && grep -q "^- \[x\] \*\*NYQ-01\*\*" .planning/REQUIREMENTS.md && grep -q "^- \[x\] \*\*NYQ-02\*\*" .planning/REQUIREMENTS.md && grep -q "^- \[x\] \*\*NYQ-03\*\*" .planning/REQUIREMENTS.md</automated>
</verify>
<done>
Index is signed off, all 7 per-phase VALIDATION.md files have matching sign-off stamps and (where applicable) nyquist_compliant: true, and REQUIREMENTS.md shows NYQ-01/02/03 as [x] Complete.
</done>
</task>
</tasks>
<verification>
- v1.0-VALIDATION-INDEX.md exists, has flat table, has tally header, has signed-off sign-off line
- All 7 per-phase VALIDATION.md files have matching nyquist_audited date
- REQUIREMENTS.md NYQ-01, NYQ-02, NYQ-03 all show [x]
- REQUIREMENTS.md Traceability table rows for NYQ-01..03 show Complete
- Every fail-fix-v1.1 row in the index links to a real Phase 9/10/11
</verification>
<success_criteria>
Phase 8 closes with:
1. NYQ-01 satisfied: all 7 v1.0 phases have Nyquist-compliant VALIDATION.md
2. NYQ-02 satisfied: single flat pass/fail rollup at .planning/milestones/v1.0-VALIDATION-INDEX.md
3. NYQ-03 satisfied: every gap is either linked to a fixing phase or explicitly deferred with rationale
4. Human sign-off recorded in both the index and each per-phase VALIDATION.md
</success_criteria>
<output>
After completion, create `.planning/phases/08-nyquist-validation-track/08-08-SUMMARY.md`
</output>