---
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 1–7. 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 1–7 (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 1–7). 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>
