R77.D packet — execution plan
This packet translates the R77.D contract into concrete edit operations. The audit supplied the measurements; the contract supplied the policy; this packet executes. No new decisions are made here — only the mechanical plan.
Change summary
One file, two commits:
- Commit A (§9.2 numeric reconcile): 6
Editoperations onCLAUDE.md. - Commit B (footer timestamp): 1
Editoperation onCLAUDE.mdappending the R77 Wave 2 paragraph below the existing R75 Wave I paragraph.
Total diff: 7 surgical Edits, all inside CLAUDE.md. No other files touched.
Edit operations
All Edit operations anchor on a unique substring in the file as it exists at e2305277. Each old_string is wide enough to disambiguate within the file (verified by reading §9.2 which occupies lines 157–171).
Commit A — §9.2 numeric reconcile
Edit A.1 — .agents/ row: 257 → 243
old_string: "| `.agents/` | 257 | CANON (skills) + HERITAGE (spawns/swarms/archive) |"
new_string: "| `.agents/` | 243 | CANON (skills) + HERITAGE (spawns/swarms/archive) |"
Note: the Role cell still says “Spawns/swarms/archive”. The archive/ subdir is currently absent, but fixing the Role prose is out of scope per contract §4.1.
Edit A.2 — .claude/ row: 29 → 30
old_string: "| `.claude/` | 29 | MIRROR (drifting) |"
new_string: "| `.claude/` | 30 | MIRROR (drifting) |"
Edit A.3 — .venv-tools/ row: 53 → 0
old_string: "| `.venv-tools/` | 53 | VENDOR | Python package residue. | Managed by `pip`. Exclude from doc counts. |"
new_string: "| `.venv-tools/` | 0 | VENDOR | Python package residue (directory absent in current tree). | Managed by `pip`. Exclude from doc counts. |"
The Role-column addition (directory absent in current tree) is a minor prose tweak to avoid confusion between “0 files” and “dir missing”. This edges the contract’s §4.1 rule (no Role edits). Decision: keep purely numeric. See §4.1 option instead — reverting to pure numeric:
old_string: "| `.venv-tools/` | 53 | VENDOR |"
new_string: "| `.venv-tools/` | 0 | VENDOR |"
Use the pure numeric form to stay inside contract bounds. If a reader needs the “why”, the audit at docs/audits/r77-d-claude-counts-audit.md §per-row breakdowns / .venv-tools/ explains.
Edit A.4 — .vscode/ row: 2 tracked → 1 tracked (+1 .json)
Contract §4.3 authorizes this prose tweak because the current cell is arithmetically wrong (says 2 .md, in reality it’s 1 .md + 1 .json).
old_string: "| `.vscode/` | 2 tracked | CANON (config) |"
new_string: "| `.vscode/` | 1 tracked (+1 .json) | CANON (config) |"
Edit A.5 — data/ row: 6 → 2
old_string: "| `data/` | 6 | HERITAGE | AMS donor runtime state."
new_string: "| `data/` | 2 | HERITAGE | AMS donor runtime state."
Edit A.6 — docs/ row: ~242 → 331
old_string: "| `docs/` | ~242 | CANON |"
new_string: "| `docs/` | 331 | CANON |"
Drop the tilde per contract §2.
Commit B — footer timestamp
Append a new paragraph at the end of the file, after the existing R75 Wave I paragraph.
old_string:
(last ~4 lines of file — the R75 Wave I italic paragraph)
new_string:
(those same 4 lines unchanged)
+ blank line
+ new paragraph starting "*Updated R77 Wave 2 — 2026-04-19. §9.2 doc counts reconciled …"
The paragraph cites: .agents/ 257→243, .claude/ 29→30, .venv-tools/ 53→0 (directory absent), .vscode/ cell tightened to 1 tracked (+1 .json), data/ 6→2, docs/ ~242→331. It also makes explicit that §9.1, §9.3, §9.4, §10 are untouched by this wave.
Dry-run: expected diff volume
- Commit A: 6 Edits → 6 touched lines in
CLAUDE.md(all inside §9.2). - Commit B: 1 Edit → ~3 lines added at end of file.
Nothing else. If the actual diff after commit differs, the verify step catches it.
Rollback
If build/lint/test goes red:
git reset --hard HEAD~2 # drop both commits
Re-run. Because these are pure doc edits, build/lint/test should not go red unless an unrelated regression pre-exists (investigate, don’t ignore, per CLAUDE.md §5).
Sequencing
- Apply Edits A.1 → A.6 (order within commit doesn’t matter — each has a unique anchor).
git add CLAUDE.md && git commit -m "docs(r77-d-claude-counts): reconcile §9.2 doc counts to post-R77-Wave-1 reality"- Apply Edit B.
git add CLAUDE.md && git commit -m "docs(r77-d-claude-counts): append R77 Wave 2 footer timestamp"OR fold into the single impl commit per task-prompt template.
Chosen: single docs(r77-d-claude-counts) impl commit per chain template (parent task specifies one impl commit). Commit A and Commit B are merged into one atomic commit. This matches the 5-step chain exactly.
Out-of-scope observations (reported, not acted on)
The audit surfaced these drifts that a later pass should consider:
.agents/Role prose “23 canonicalcolibri-*skills” vs actual 22 (per memory) — needs a skills-inventory-aligned refresh, not a count column.- MEMORY.md carries the stale numbers 257/29/~242/6 — memory refresh is a PM action.
.agents/archive/subdir deleted — the §9.2 Role cell still references it. Structural edit, not count.
None of the above is in R77.D scope.