R76.H2 Verification — colibri-verification SKILL.md rewrite

Task: R76.H2. Branch: feature/r76-h2-verification-rewrite. Worktree: .worktrees/claude/r76-h2-verification-rewrite. Base commit: d5f6a1ff (main, Phase 0 SEALED).

Acceptance gate 1 — donor-family grep returns zero hits outside HERITAGE blocks

Grep (required regex from the task prompt):

rg -n "gsd_|unified_|roadmap_|memory_pack|context_|thought_plan|thought_decide|audit_session_set_context|merkle_attest|task_eisenhower|task_deps|task_link_roadmap|task_create_batch|task_depends_on|audit_session_end|task_transition|server_info|server_shutdown" .agents/skills/colibri-verification/SKILL.md

Result (12 hits, all inside the single > **HERITAGE:** blockquote that spans lines 11-23):

13:> - `roadmap_*` (entire family) — roadmap lives in `docs/guides/implementation/task-breakdown.md`, not an MCP surface.
14:> - `unified_*` (entire family, incl. `unified_init`, `unified_set_project`, `unified_vitals`, `unified_backup`, `unified_metrics`) — no Phase 0 equivalent; use `server_ping` / `server_health` for liveness.
15:> - `context_*` (entire family, incl. `context_create`, `context_verify`) — no Phase 0 context surface; reasoning is captured via `thought_record`.
16:> - `memory_*` (entire family, incl. `memory_pack`, `memory_bundle`, `memory_verify`) — no Phase 0 memory surface; reasoning is anchored via `thought_record` + Merkle root.
17:> - `gsd_*` (entire family, incl. `gsd_plan`, `gsd_verify_comprehensive`, `gsd_workflow_create`, `gsd_agent_pool_create`) — agent runtime deferred to Phase 1.5 per ADR-005.
18:> - `task_eisenhower`, `task_deps`, `task_depends_on`, `task_link_roadmap`, `task_create_batch`, `task_transition`, `task_delete` — donor task-edge tools; Phase 0 β is exactly five tools (`task_create`, `task_list`, `task_get`, `task_update`, `task_next_actions`).
19:> - `thought_plan`, `thought_decide` — collapsed into `thought_record` (the single Phase 0 reasoning-capture tool; distinguish via `thought_type`).
20:> - `audit_session_set_context` — merged into `audit_session_start` (pass context inline at start).
21:> - `audit_session_end` — sealing happens at `merkle_finalize` in Phase 0.
22:> - `merkle_attest` — Phase 0 attestation is the root hash from `merkle_root`.
23:> - `analysis_*`, `rag_*`, `ams_session_resume`, `server_info`, `server_shutdown` — never shipped in Phase 0.

Every matching line is prefixed by > and sits inside the blockquote that opens at line 11 (> **HERITAGE:** the following donor-era families…). Zero hits on the live path. Gate 1 passes.

Acceptance gate 2 — mirror/canon diff is empty

diff .agents/skills/colibri-verification/SKILL.md .claude/skills/colibri-verification/SKILL.md

Result: no output; exit code 0. Mirror is byte-identical to canon. Gate 2 passes.

Acceptance gate 3 — all 4 chain docs exist

docs/audits/r76-h2-verification-rewrite-audit.md
docs/contracts/r76-h2-verification-rewrite-contract.md
docs/packets/r76-h2-verification-rewrite-packet.md
docs/verification/r76-h2-verification-rewrite-verification.md  (this file)

All four present. Gate 3 passes.

Acceptance gate 4 — npm build + lint + test green

npm run build

> colibri@0.0.1 build
> tsc

Exit 0, no output. Build green.

npm run lint

> colibri@0.0.1 lint
> eslint src

Exit 0, no output. Lint green.

npm test

Full-suite run:

Test Suites: 1 failed, 25 passed, 26 total
Tests:       1 failed, 1083 passed, 1084 total
Time:        43.145 s

The one failure is src/__tests__/startup.test.ts › startup — subprocess smoke › tsx src/server.ts boots and logs [Startup] Phase 1. This is the pre-existing, documented flake called out in MEMORY.md §Drift surfaced but NOT yet resolved:

Pre-existing startup — subprocess smoke flakiness under full-suite load — predates Wave H.

And Wave I memory:

Zero flake on final verification (one known pre-existing smoke flake documented; not regression).

Confirmation that it is the known environmental flake and not a regression from R76.H2:

npm test -- --testPathPattern=startup
Test Suites: 1 passed, 1 total
Tests:       40 passed, 40 total
Time:        15.413 s

In isolation the full startup.test.ts (all 40 tests, including subprocess smoke) passes green. The failure surfaces only under full-suite load, matching the documented flake signature exactly.

R76.H2 touched zero source files — only .agents/skills/colibri-verification/SKILL.md, .claude/skills/colibri-verification/SKILL.md, and four new chain docs under docs/. The flake cannot be caused by a docs-only change.

Gate 4 passes (1083/1084 excluding the documented pre-existing flake, which is not a regression).

Summary of edits

File Change
.agents/skills/colibri-verification/SKILL.md Full rewrite — 36 donor-ref hits stripped from the live path; every donor family catalogued in a single explicit > **HERITAGE:** blockquote near the top for traceability. JS verification-chain example rewritten to match CLAUDE.md §7 proof-grade sequence. 5 phase-acceptance tables rewritten to cite only the 14 Phase 0 tools. Common-failures table rewritten to Phase-0-shaped failure modes. description frontmatter tightened and kept quoted for YAML safety.
.claude/skills/colibri-verification/SKILL.md Mirror resynced from canon; byte-identical.
docs/audits/r76-h2-verification-rewrite-audit.md New — donor-ref inventory with line numbers.
docs/contracts/r76-h2-verification-rewrite-contract.md New — behavioural contract declaring the 14-tool allowed set and the forbidden donor families.
docs/packets/r76-h2-verification-rewrite-packet.md New — section-by-section rewrite plan.
docs/verification/r76-h2-verification-rewrite-verification.md New — this file.

No other files touched. No src/ changes. No new tools. No skill renames.

Writeback (queued for PR body — no live MCP client)

task_update(id="R76.H2", status="done", progress=100)

thought_record(
  session_id="r76-phase-0-to-1-bridge",
  thought_type="reflection",
  content="task_id: R76.H2
branch: feature/r76-h2-verification-rewrite
worktree: .worktrees/claude/r76-h2-verification-rewrite
commit: <SHA pending>
tests: npm run build (green) && npm run lint (green) && npm test (1083/1084; 1 pre-existing documented startup smoke flake, not regression)
summary: Rewrote colibri-verification SKILL.md to eliminate 36 donor-family tool-name hits from the live path; grouped every donor family into a single explicit HERITAGE blockquote near the top; rewrote the JS verification-chain example to the CLAUDE.md §7 proof-grade 6-call sequence (audit_session_start → work → audit_verify_chain → thought_record(reflection) → merkle_finalize → merkle_root); rewrote 5 phase-acceptance tables + common-failures table to cite only the Phase 0 14-tool surface. Mirror .claude/skills/colibri-verification/SKILL.md resynced byte-for-byte.
blockers: none — other mirror-drift items flagged in memory carry over to a later round (out of scope for R76.H2)."
)

Out-of-scope confirmations

  • No other skill under .agents/skills/ or .claude/skills/ was touched.
  • No rename or file move.
  • No src/ edit.
  • No new tools invented.
  • No Obsidian vault sync.
  • No new frontmatter fields or description wording outside what the donor-name strip required.

Back to top

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

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