R76.H2 Audit — colibri-verification SKILL.md donor-ref inventory
Task: R76.H2 — rewrite .agents/skills/colibri-verification/SKILL.md to eliminate donor-era tool references outside heritage blocks.
Base commit: d5f6a1ff (main, Phase 0 SEALED at 28/28).
Scope: .agents/skills/colibri-verification/SKILL.md (297 lines, canon) + .claude/skills/colibri-verification/SKILL.md (mirror, currently stale per CLAUDE.md §9.2 drift backlog).
Method
Ran rg -n against the canonical SKILL.md for every donor-era pattern the task prompt requires striking, plus the broader donor memory/context/gsd/roadmap families memory lists as carry-over.
Canon vs. mirror divergence (pre-rewrite)
diff .agents/skills/colibri-verification/SKILL.md .claude/skills/colibri-verification/SKILL.md reports:
- Frontmatter
description:is bare in mirror; quoted in canon. - Mirror is missing the Phase 0 reality stamp (> blockquote) at line 9.
- Mirror’s PLAN table (
line 178-182in canon,177-181in mirror) still liststask_create_batch,task_link_roadmap,task_deps,gsd_workflow_create,gsd_agent_pool_createas clean live tools (no heritage note). - Mirror’s CLOSE table (
line 223-227in canon,222-226in mirror) still listsmemory_packandaudit_session_endas clean live tools.
Net: mirror is the less-reality-stamped ancestor that canon partially attempted to annotate in Wave H. Wave H did not cascade the fix to mirror. R76.H2 will rewrite canon clean and resync mirror from canon.
Donor-ref hit list (canonical file only)
All hits are outside any > HERITAGE: block. Line numbers reference the current canon.
| Line | Family | Donor token(s) | Substitute |
|---|---|---|---|
| 9 | reality stamp | Lists all donor names under back-ticks as part of the Wave H explanatory stamp | Keep (reality stamp) — replace with a cleaner R76.H2 stamp that lists the 14 shipped tools positively instead of listing the donor tokens |
| 35 | roadmap_* | roadmap_list |
Drop bullet; replace with “Target task identified in docs/guides/implementation/task-breakdown.md” |
| 36 | roadmap_* | roadmap_validate |
Drop bullet; replace with a docs-check reference to colibri-docs-check skill |
| 37 | roadmap_* | roadmap_nodes |
Drop bullet; node enumeration lives in task-breakdown.md |
| 38 | roadmap_* | roadmap_get |
Drop bullet; content lookup is a file read |
| 44 | unified_* | unified_set_project |
Drop — no project-switching surface in Phase 0 (single project colibri) |
| 45 | task edge | task_deps |
Rewrite as task_get / task_list (check status and description manually; no dep tool in Phase 0) |
| 52 | unified_* | unified_init |
Drop — server is auto-initialized on MCP handshake |
| 53 | unified_* | unified_vitals |
Replace with server_health |
| 59 | audit_session_set_context | audit_session_set_context |
Replace with note: context arg is merged into audit_session_start |
| 84 | context_* | context_create |
Drop — no context surface in Phase 0; use thought_record to snapshot reasoning at checkpoints |
| 89 | unified_* + context_* | unified_backup / context_create |
Drop — no backup surface in Phase 0; rollback is git reset + worktree discard |
| 121 | memory_pack | memory_pack |
Drop — no memory surface in Phase 0; reasoning is anchored in thought_record + Merkle root |
| 129 | merkle_attest | merkle_attest |
Replace with merkle_root (Phase 0 attestation = root hash) |
| 147 | roadmap_* | roadmap_list |
Drop row; roadmap lives in docs/guides/implementation/task-breakdown.md |
| 148 | roadmap_* | roadmap_nodes |
Drop row (same reason) |
| 150 | context_* | context_create |
Replace with thought_record (Phase 0 reasoning capture) |
| 162 | task edge | task_eisenhower |
Drop — no prioritizer tool in Phase 0; priority is a field on task_create |
| 163 | task edge | task_deps |
Drop — deps are not a Phase 0 MCP surface; noted via task description |
| 164 | roadmap_* | roadmap_prerequisites_check |
Drop — prerequisites live in task-breakdown.md narrative |
| 165 | analysis_* | analysis_recommend |
Drop — no analysis surface in Phase 0 |
| 166 | thought edge | thought_plan |
Replace with thought_record (single Phase 0 reasoning-capture tool) |
| 167 | thought edge | thought_decide |
Replace with thought_record |
| 168 | gsd_* | gsd_plan |
Drop — gsd surface deferred to Phase 1.5 per ADR-005; plan is the 5-step chain packet |
| 179 | task_link_roadmap | task_link_roadmap |
Drop — row already noted Phase 0 absence; rewrite row to reference task_create description field only |
| 180 | task_deps / task_depends_on | task_deps / task_depends_on |
Drop — row rewrite for “dependency narrative lives in description” only |
| 181 | gsd_workflow_create | gsd_workflow_create |
Drop row — Phase 1.5 defer; not in Phase 0 exit gate for PLAN |
| 182 | gsd_agent_pool_create | gsd_agent_pool_create |
Drop row — Phase 1.5 defer per ADR-005 |
| 196 | context_* | context_create |
Replace with thought_record |
| 208 | roadmap_* | roadmap_validate |
Drop row — colibri-docs-check skill handles doc-integrity |
| 209 | gsd_* | gsd_verify_comprehensive |
Drop row — no verification omnibus tool in Phase 0; npm run build && npm run lint && npm test is the gate |
| 211 | context_* | context_verify |
Drop row — no context surface |
| 227 | audit_session_end | Inline mention “no separate audit_session_end” |
Keep cell narrative but adjust: “Session seals when merkle_finalize commits the final root” (wording-only polish) |
| 243 | context_* | context_verify |
Remove from JS chain |
| 246 | roadmap_* | roadmap_validate |
Remove from JS chain |
| 249-255 | gsd_* | gsd_verify_comprehensive |
Remove from JS chain — replace with audit_verify_chain + thought_record + merkle_finalize + merkle_root sequence per CLAUDE.md §7 |
| 270 | roadmap_* | roadmap_repair |
Drop row — nothing to repair outside docs; handled by colibri-docs-check |
| 273 | context_* | context_create |
Drop row — no context surface |
Total donor-ref hits to rewrite: 36 discrete mentions across 33 lines.
Quick-reference table audit (line 15-25)
The Quick Reference table at line 15 is pure phase-name prose — no tool names — so it requires no rewrite.
Common-failures table audit (line 268-275)
Three rows cite donor tools (roadmap_repair, context_create, memory_pack). All three rows lose their donor cells per the rewrite plan. Two other rows (Task not found, Audit chain broken) use only Phase 0 shipped tools — task_list, audit_session_start — and stay intact. The Merkle finalize fails row stays. The Memory pack empty row is struck entirely.
JS example audit (line 236-262)
The verifyCompletion chain currently calls:
audit_verify_chain✓ (Phase 0 shipped)context_verify✗ (strike)roadmap_validate✗ (strike)gsd_verify_comprehensive✗ (strike)merkle_finalize✓ (Phase 0 shipped)
Rewrite target (from task prompt §Canonical verification chain):
audit_session_start(...)
... work ...
audit_verify_chain(...)
thought_record(...) ← MUST precede merkle_finalize
merkle_finalize(...)
merkle_root(...)
The rewritten JS block will implement exactly that 6-call chain.
No heritage blocks currently in the file
The file contains zero > HERITAGE: blockquote markers. All donor refs are on the live path and all need rewriting. The existing “Phase 0 reality stamp” line-9 blockquote is not a heritage block (the rest of the file is still live process guidance); it is a reality stamp that R76.H2 will replace with a cleaner affirmative stamp.
Out-of-scope confirmations
- No other skills touched.
- No
src/changes. - No frontmatter redesign beyond the description cleanup forced by YAML quoting safety.
- Skill description keeps the Greek labels η + π (correct — verification sits on the η proof store + π verifier axes).
Exit gate
This audit establishes:
- 36 donor-ref hits across 33 lines
- Zero heritage blocks present
- JS example chain fully rewritable to the CLAUDE.md §7 6-call sequence
- Mirror is stale; resync from canon at Step 4
Ready for Step 2 (Contract).