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:

  1. Commit A (§9.2 numeric reconcile): 6 Edit operations on CLAUDE.md.
  2. Commit B (footer timestamp): 1 Edit operation on CLAUDE.md appending 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 tracked1 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: ~242331

old_string: "| `docs/` | ~242 | CANON |"
new_string: "| `docs/` | 331 | CANON |"

Drop the tilde per contract §2.

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

  1. Apply Edits A.1 → A.6 (order within commit doesn’t matter — each has a unique anchor).
  2. git add CLAUDE.md && git commit -m "docs(r77-d-claude-counts): reconcile §9.2 doc counts to post-R77-Wave-1 reality"
  3. Apply Edit B.
  4. 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 canonical colibri-* 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.


Back to top

Colibri — documentation-first MCP runtime. Apache 2.0 + Commons Clause.

This site uses Just the Docs, a documentation theme for Jekyll.