---
phase: 09-requirements-roadmap-metadata-closure
plan: 03
type: execute
wave: 1
depends_on: []
files_modified:
  - .planning/phases/02-core-vm-lifecycle/02-01-SUMMARY.md
  - .planning/phases/02-core-vm-lifecycle/02-02-SUMMARY.md
  - .planning/phases/02-core-vm-lifecycle/02-03-SUMMARY.md
  - .planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md
  - .planning/phases/03-ssh-execution/03-01-SUMMARY.md
  - .planning/phases/03-ssh-execution/03-02-SUMMARY.md
  - .planning/phases/03-ssh-execution/03-03-SUMMARY.md
  - .planning/phases/04-snapshot-management/04-01-SUMMARY.md
  - .planning/phases/04-snapshot-management/04-02-SUMMARY.md
  - .planning/phases/05-artifact-pipeline/05-01-SUMMARY.md
  - .planning/phases/05-artifact-pipeline/05-02-SUMMARY.md
  - .planning/phases/05-artifact-pipeline/05-03-SUMMARY.md
  - .planning/phases/06-kernel-observability/06-01-SUMMARY.md
  - .planning/phases/06-kernel-observability/06-02-SUMMARY.md
  - .planning/phases/07-network-node-fault-injection/07-01-SUMMARY.md
  - .planning/phases/07-network-node-fault-injection/07-02-SUMMARY.md
  - .planning/phases/07-network-node-fault-injection/07-03-SUMMARY.md
  - .planning/phases/07-network-node-fault-injection/07-04-SUMMARY.md
  - .planning/phases/07-network-node-fault-injection/07-05-SUMMARY.md
  - .planning/phases/08-retroactive-phase-verification/08-01-SUMMARY.md
  - .planning/phases/08-retroactive-phase-verification/08-02-SUMMARY.md
autonomous: true
must_haves:
  truths:
    - "Every phase summary that claims an implemented requirement has requirements-completed frontmatter"
    - "The requirements-completed field lists exactly the requirement IDs delivered by that plan"
    - "Phase 02 summaries collectively cover CLUS-01..07"
    - "Phase 03 summaries collectively cover EXEC-01..03"
    - "Phase 04 summaries collectively cover SNAP-01..04"
    - "Phase 05 summaries collectively cover ART-01..05"
    - "Phase 06 summaries collectively cover OBS-01..03"
    - "Phase 07 summaries collectively cover FAULT-01..07"
    - "Phase 08 summaries contain requirements-completed listing CLUS and EXEC IDs"
  artifacts:
    - path: ".planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md"
      provides: "requirements-completed frontmatter"
      contains: "requirements-completed:"
  key_links:
    - from: "requirements-completed frontmatter in each summary"
      to: "milestone audit 3-source cross-reference"
      via: "summary-extract tool reads requirements-completed field"
      pattern: "requirements-completed:"
---

<objective>
Add `requirements-completed` frontmatter to every phase summary that is missing it, so the milestone audit's 3-source cross-reference can score all implemented requirements as satisfied.

Purpose: The milestone audit runs summary-extract on each summary file checking for `requirements-completed`. If this field is absent, the requirement scores as "partial" (only 2 of 3 required sources). All phases 2-8 are missing this field.

Output: 21 updated SUMMARY.md files, each with a `requirements-completed` YAML frontmatter field listing the requirement IDs that plan delivered.

Format: The field uses hyphen notation matching the Phase 1 pattern already established in 01-01-SUMMARY.md:
`requirements-completed: [REQ-ID, REQ-ID]`

The `requirements-completed` line goes INSIDE the YAML frontmatter block (between the pair of triple-dash delimiters), immediately before the closing triple-dash line.
</objective>

<execution_context>
@$HOME/.claude/get-shit-done/workflows/execute-plan.md
@$HOME/.claude/get-shit-done/templates/summary.md
</execution_context>

<context>
@.planning/PROJECT.md
@.planning/ROADMAP.md
@.planning/STATE.md
</context>

<interfaces>
Existing requirements-completed pattern from Phase 01 (source of truth for format).

From 01-01-SUMMARY.md (inside YAML frontmatter block before closing triple-dash):
  requirements-completed: [FOUND-01]

From 01-02-SUMMARY.md:
  requirements-completed: [FOUND-01, FOUND-02]

From 01-03-SUMMARY.md:
  requirements-completed: [FOUND-03, FOUND-04]
</interfaces>

<tasks>

<task type="auto">
  <name>Task 1: Add requirements-completed to Phase 02 and Phase 03 summaries</name>
  <read_first>
    - .planning/phases/02-core-vm-lifecycle/02-01-SUMMARY.md (has YAML frontmatter — add field inside block before closing triple-dash)
    - .planning/phases/02-core-vm-lifecycle/02-02-SUMMARY.md (has YAML frontmatter — cluster_define implements CLUS-01, CLUS-07)
    - .planning/phases/02-core-vm-lifecycle/02-03-SUMMARY.md (NO YAML frontmatter — plain markdown, must add frontmatter block at top)
    - .planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md (NO YAML frontmatter — plain markdown, must add frontmatter block at top)
    - .planning/phases/03-ssh-execution/03-01-SUMMARY.md (has YAML frontmatter — SSHConnectionManager implements EXEC-03)
    - .planning/phases/03-ssh-execution/03-02-SUMMARY.md (has YAML frontmatter — node_exec implements EXEC-01)
    - .planning/phases/03-ssh-execution/03-03-SUMMARY.md (has YAML frontmatter — node_exec_all implements EXEC-02)
  </read_first>
  <files>
    .planning/phases/02-core-vm-lifecycle/02-01-SUMMARY.md,
    .planning/phases/02-core-vm-lifecycle/02-02-SUMMARY.md,
    .planning/phases/02-core-vm-lifecycle/02-03-SUMMARY.md,
    .planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md,
    .planning/phases/03-ssh-execution/03-01-SUMMARY.md,
    .planning/phases/03-ssh-execution/03-02-SUMMARY.md,
    .planning/phases/03-ssh-execution/03-03-SUMMARY.md
  </files>
  <action>
Add `requirements-completed` to each Phase 02 and Phase 03 summary file.

EXACT LINE TO ADD PER FILE (add inside YAML frontmatter before closing triple-dash delimiter):

02-01-SUMMARY.md: requirements-completed: []
  (libvirt client infrastructure only — no user-facing tools; CLUS requirements credited to plans that deliver tools)

02-02-SUMMARY.md: requirements-completed: [CLUS-01, CLUS-07]
  (02-02 implements cluster_define tool → CLUS-01 "define a cluster from topology", CLUS-07 "cluster_define is idempotent")

02-03-SUMMARY.md: requirements-completed: [CLUS-02, CLUS-03, CLUS-04]
  (02-03 implements cluster_start + cluster_stop + cluster_destroy → CLUS-02 start, CLUS-03 stop, CLUS-04 destroy)

02-04-SUMMARY.md: requirements-completed: [CLUS-05, CLUS-06]
  (02-04 implements cluster_status + cluster_handle → CLUS-05 query status, CLUS-06 obtain ClusterHandle)

03-01-SUMMARY.md: requirements-completed: [EXEC-03]
  (03-01 implements SSHConnectionManager with transparent reconnect → EXEC-03 "SSH connections reestablished after reboot")

03-02-SUMMARY.md: requirements-completed: [EXEC-01]
  (03-02 implements node_exec → EXEC-01 "run command on single node, structured output")

03-03-SUMMARY.md: requirements-completed: [EXEC-02]
  (03-03 implements node_exec_all → EXEC-02 "run command across all/subset nodes in parallel")

FOR FILES WITH EXISTING YAML FRONTMATTER (02-01, 02-02, 03-01, 03-02, 03-03):
Insert the requirements-completed line on a new line immediately before the closing triple-dash delimiter of the frontmatter block. The result should look like other fields in that same YAML block.

FOR FILES WITHOUT YAML FRONTMATTER (02-03, 02-04 — these start with "# Plan..." heading):
Add a minimal YAML frontmatter block at the very start of the file, before the existing content. The block must start with triple-dash on line 1, contain only the phase, plan, and requirements-completed fields, and end with a triple-dash on its own line, followed by a blank line, followed by the existing markdown content.

For 02-03-SUMMARY.md, insert at top:
  phase: 02-core-vm-lifecycle
  plan: "03"
  requirements-completed: [CLUS-02, CLUS-03, CLUS-04]

For 02-04-SUMMARY.md, insert at top:
  phase: 02-core-vm-lifecycle
  plan: "04"
  requirements-completed: [CLUS-05, CLUS-06]

(Each field block is wrapped in YAML frontmatter triple-dash delimiters as required by the format.)
  </action>
  <verify>
    <automated>grep -l 'requirements-completed' .planning/phases/02-core-vm-lifecycle/0*-SUMMARY.md .planning/phases/03-ssh-execution/0*-SUMMARY.md | wc -l | grep -q '^7$' && echo "PASS: all 7 summaries have requirements-completed" || echo "FAIL"</automated>
  </verify>
  <acceptance_criteria>
    - `grep 'requirements-completed' .planning/phases/02-core-vm-lifecycle/02-01-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/02-core-vm-lifecycle/02-02-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/02-core-vm-lifecycle/02-03-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/03-ssh-execution/03-01-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/03-ssh-execution/03-02-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/03-ssh-execution/03-03-SUMMARY.md` returns a match
    - `grep 'CLUS-01' .planning/phases/02-core-vm-lifecycle/02-02-SUMMARY.md` returns a match
    - `grep 'CLUS-07' .planning/phases/02-core-vm-lifecycle/02-02-SUMMARY.md` returns a match
    - `grep 'CLUS-02' .planning/phases/02-core-vm-lifecycle/02-03-SUMMARY.md` returns a match
    - `grep 'CLUS-05' .planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md` returns a match
    - `grep 'EXEC-01' .planning/phases/03-ssh-execution/03-02-SUMMARY.md` returns a match
    - `grep 'EXEC-02' .planning/phases/03-ssh-execution/03-03-SUMMARY.md` returns a match
    - `grep 'EXEC-03' .planning/phases/03-ssh-execution/03-01-SUMMARY.md` returns a match
    - `head -1 .planning/phases/02-core-vm-lifecycle/02-03-SUMMARY.md` outputs `---` (frontmatter block added)
    - `head -1 .planning/phases/02-core-vm-lifecycle/02-04-SUMMARY.md` outputs `---` (frontmatter block added)
  </acceptance_criteria>
  <done>All 7 Phase 02 and Phase 03 summaries have requirements-completed frontmatter with appropriate requirement IDs.</done>
</task>

<task type="auto">
  <name>Task 2: Add requirements-completed to Phase 04 through Phase 08 summaries</name>
  <read_first>
    - .planning/phases/04-snapshot-management/04-01-SUMMARY.md
    - .planning/phases/04-snapshot-management/04-02-SUMMARY.md
    - .planning/phases/05-artifact-pipeline/05-01-SUMMARY.md
    - .planning/phases/05-artifact-pipeline/05-02-SUMMARY.md
    - .planning/phases/05-artifact-pipeline/05-03-SUMMARY.md
    - .planning/phases/06-kernel-observability/06-01-SUMMARY.md
    - .planning/phases/06-kernel-observability/06-02-SUMMARY.md
    - .planning/phases/07-network-node-fault-injection/07-01-SUMMARY.md
    - .planning/phases/07-network-node-fault-injection/07-02-SUMMARY.md
    - .planning/phases/07-network-node-fault-injection/07-03-SUMMARY.md
    - .planning/phases/07-network-node-fault-injection/07-04-SUMMARY.md
    - .planning/phases/07-network-node-fault-injection/07-05-SUMMARY.md
    - .planning/phases/08-retroactive-phase-verification/08-01-SUMMARY.md
    - .planning/phases/08-retroactive-phase-verification/08-02-SUMMARY.md
  </read_first>
  <files>
    .planning/phases/04-snapshot-management/04-01-SUMMARY.md,
    .planning/phases/04-snapshot-management/04-02-SUMMARY.md,
    .planning/phases/05-artifact-pipeline/05-01-SUMMARY.md,
    .planning/phases/05-artifact-pipeline/05-02-SUMMARY.md,
    .planning/phases/05-artifact-pipeline/05-03-SUMMARY.md,
    .planning/phases/06-kernel-observability/06-01-SUMMARY.md,
    .planning/phases/06-kernel-observability/06-02-SUMMARY.md,
    .planning/phases/07-network-node-fault-injection/07-01-SUMMARY.md,
    .planning/phases/07-network-node-fault-injection/07-02-SUMMARY.md,
    .planning/phases/07-network-node-fault-injection/07-03-SUMMARY.md,
    .planning/phases/07-network-node-fault-injection/07-04-SUMMARY.md,
    .planning/phases/07-network-node-fault-injection/07-05-SUMMARY.md,
    .planning/phases/08-retroactive-phase-verification/08-01-SUMMARY.md,
    .planning/phases/08-retroactive-phase-verification/08-02-SUMMARY.md
  </files>
  <action>
All 14 files have existing YAML frontmatter. Insert `requirements-completed` line inside each frontmatter block, immediately before the closing triple-dash delimiter.

EXACT LINE TO ADD PER FILE:

Phase 04:
  04-01-SUMMARY.md: requirements-completed: [SNAP-01, SNAP-03]
    (04-01 implements snapshot_create + snapshot_list → SNAP-01 create, SNAP-03 list)
  04-02-SUMMARY.md: requirements-completed: [SNAP-02, SNAP-04]
    (04-02 implements snapshot_revert + snapshot_delete → SNAP-02 revert, SNAP-04 delete)

Phase 05:
  05-01-SUMMARY.md: requirements-completed: [ART-01, ART-04, ART-05]
    (05-01 implements artifact_register + artifact_list + artifact_diff → ART-01 register, ART-04 list, ART-05 diff)
  05-02-SUMMARY.md: requirements-completed: [ART-02]
    (05-02 implements artifact_sync → ART-02 sync with dedup)
  05-03-SUMMARY.md: requirements-completed: [ART-03]
    (05-03 implements artifact_install → ART-03 install with 4 modes)

Phase 06:
  06-01-SUMMARY.md: requirements-completed: [OBS-01]
    (06-01 implements dmesg_mark + classify_line → OBS-01 timestamped marker insertion)
  06-02-SUMMARY.md: requirements-completed: [OBS-02, OBS-03]
    (06-02 implements dmesg_collect with marker filtering and event classification → OBS-02 collect, OBS-03 classify)

Phase 07:
  07-01-SUMMARY.md: requirements-completed: [FAULT-07]
    (07-01 implements fault_registry with atomic disk persistence and startup reconciliation → FAULT-07)
  07-02-SUMMARY.md: requirements-completed: [FAULT-01]
    (07-02 implements net_partition with tagged iptables rules → FAULT-01 partition)
  07-03-SUMMARY.md: requirements-completed: [FAULT-02, FAULT-03, FAULT-04]
    (07-03 implements net_impair + net_heal + net_heal_all → FAULT-02 impair, FAULT-03 heal, FAULT-04 heal_all)
  07-04-SUMMARY.md: requirements-completed: [FAULT-05, FAULT-06]
    (07-04 implements net_fault_list + node_crash → FAULT-05 list faults, FAULT-06 crash node)
  07-05-SUMMARY.md: requirements-completed: []
    (07-05 is gap-closure wiring only — no new requirements delivered beyond what 07-01 credits)

Phase 08:
  08-01-SUMMARY.md: requirements-completed: [CLUS-01, CLUS-02, CLUS-03, CLUS-04, CLUS-05, CLUS-06, CLUS-07]
    (08-01 wrote 02-VERIFICATION.md, providing the 3rd source closing the audit gap for all CLUS requirements)
  08-02-SUMMARY.md: requirements-completed: [EXEC-01, EXEC-02, EXEC-03]
    (08-02 wrote 03-VERIFICATION.md, providing the 3rd source closing the audit gap for all EXEC requirements)

INSERTION POINT: Inside the YAML frontmatter block, on a new line immediately before the closing triple-dash delimiter line. Do NOT add outside the frontmatter block.
  </action>
  <verify>
    <automated>grep -l 'requirements-completed' .planning/phases/04-snapshot-management/0*-SUMMARY.md .planning/phases/05-artifact-pipeline/0*-SUMMARY.md .planning/phases/06-kernel-observability/0*-SUMMARY.md .planning/phases/07-network-node-fault-injection/0*-SUMMARY.md .planning/phases/08-retroactive-phase-verification/0*-SUMMARY.md | wc -l | grep -q '^14$' && echo "PASS: all 14 summaries updated" || echo "FAIL"</automated>
  </verify>
  <acceptance_criteria>
    - `grep 'requirements-completed' .planning/phases/04-snapshot-management/04-01-SUMMARY.md` returns a match
    - `grep 'requirements-completed' .planning/phases/04-snapshot-management/04-02-SUMMARY.md` returns a match
    - `grep 'SNAP-01' .planning/phases/04-snapshot-management/04-01-SUMMARY.md` returns a match
    - `grep 'SNAP-02' .planning/phases/04-snapshot-management/04-02-SUMMARY.md` returns a match
    - `grep 'ART-01' .planning/phases/05-artifact-pipeline/05-01-SUMMARY.md` returns a match
    - `grep 'ART-02' .planning/phases/05-artifact-pipeline/05-02-SUMMARY.md` returns a match
    - `grep 'ART-03' .planning/phases/05-artifact-pipeline/05-03-SUMMARY.md` returns a match
    - `grep 'OBS-01' .planning/phases/06-kernel-observability/06-01-SUMMARY.md` returns a match
    - `grep 'OBS-02' .planning/phases/06-kernel-observability/06-02-SUMMARY.md` returns a match
    - `grep 'OBS-03' .planning/phases/06-kernel-observability/06-02-SUMMARY.md` returns a match
    - `grep 'FAULT-01' .planning/phases/07-network-node-fault-injection/07-02-SUMMARY.md` returns a match
    - `grep 'FAULT-07' .planning/phases/07-network-node-fault-injection/07-01-SUMMARY.md` returns a match
    - `grep 'FAULT-05' .planning/phases/07-network-node-fault-injection/07-04-SUMMARY.md` returns a match
    - `grep 'FAULT-06' .planning/phases/07-network-node-fault-injection/07-04-SUMMARY.md` returns a match
    - `grep 'CLUS-01' .planning/phases/08-retroactive-phase-verification/08-01-SUMMARY.md` returns a match
    - `grep 'EXEC-01' .planning/phases/08-retroactive-phase-verification/08-02-SUMMARY.md` returns a match
  </acceptance_criteria>
  <done>All 14 Phase 04-08 summaries have requirements-completed frontmatter. Every implemented requirement ID appears in at least one phase summary's requirements-completed field.</done>
</task>

</tasks>

<verification>
Run after both tasks complete:

```bash
grep -rl 'requirements-completed' .planning/phases/0*/0*-SUMMARY.md | wc -l
```
Expected: 24 (3 existing Phase 01 + 21 new)

```bash
grep 'requirements-completed' .planning/phases/02-core-vm-lifecycle/0*-SUMMARY.md
grep 'requirements-completed' .planning/phases/03-ssh-execution/0*-SUMMARY.md
grep 'requirements-completed' .planning/phases/04-snapshot-management/0*-SUMMARY.md
```
</verification>

<success_criteria>
1. `grep -rl 'requirements-completed' .planning/phases/0*/0*-SUMMARY.md | wc -l` returns 24
2. Every requirement CLUS-01..07, EXEC-01..03, SNAP-01..04, ART-01..05, OBS-01..03, FAULT-01..07 appears in at least one summary
3. FOUND-01..04 already covered by Phase 01 summaries (no change needed there)
4. 02-03-SUMMARY.md and 02-04-SUMMARY.md begin with triple-dash (frontmatter added)
</success_criteria>

<output>
After completion, create `.planning/phases/09-requirements-roadmap-metadata-closure/09-03-SUMMARY.md`
</output>
