Verification — .agents/skills/colibri-verification/SKILL.md body rewrite

1. Acceptance criteria results

# Criterion (from task brief) Result
1 Frontmatter preserved PASS. git diff origin/main of lines 1-4 shows zero changes. The frontmatter (name, description) is byte-stable. No version or updated field added — matches the convention shared by every other colibri-* skill.
2 Body references only the 14-tool surface (no roadmap_*, unified_*, gsd_*, context_*, memory_*, thought_plan, thought_decide, task_eisenhower, task_deps, task_create_batch, task_link_roadmap, audit_session_set_context, unified_backup, merkle_attest) PASS. Sweep returns exactly one match at line 21, which is inside the HERITAGE note’s list of “what is NOT in Phase 0” (specifically the server_info/server_shutdown mention). All matches occur as documented “absent” tools, never as code-literal invocations.
3 Verification workflow still serves the original PURPOSE (verifying writeback contract met) using the writeback protocol as ground truth PASS. Pre-Execution / Execution / Post-Execution structure preserved. Post-Execution writeback section now explicitly mirrors the writeback-protocol.md contract: task_updatethought_record (with required content fields) → optional merkle_finalize/merkle_root.
4 Skill cites writeback hard-block (src/domains/tasks/writeback.ts:97) and chain verifier (src/domains/trail/verifier.ts:119) PASS. writeback.ts:97 cited at lines 70, 116, 280, 303 (4 occurrences). verifier.ts:119 cited at lines 210, 255 (2 occurrences). Each appears in context — body bullet, post-execution prose block, JS comment, failure-mode table, and acceptance-criteria table row.
5 Skill mentions proof-grade workflow but is honest about Phase 0 reality (no session_id in thought_record); references ADR-007 (Proposed) PASS. New paragraph at line 246 explicitly explains the gap: thought_record’s Zod input schema (lines 114-119 of src/domains/trail/repository.ts) does not accept session_id, while merkle_finalize queries WHERE session_id = ? (src/tools/merkle.ts:296-300), so merkle_finalize raises NoThoughtRecordsError. ADR-007 (Proposed) named at lines 70, 263, 301, 327 (4 places); always with the “Proposed” qualifier. JS example reconciled — thought_record({type, task_id, agent_id, content}) matches the shipped schema.
6 R76.H2 top-of-file Phase 0 reality stamp preserved or refreshed with this round’s note PASS. R76.H2 stamp preserved verbatim at line 9. New “Body reconcile (post-R83 hygiene — 2026-05-05)” stamp added as line 10 (a sibling line in the same blockquote). Trailing italic note at line 333 also refreshed.
7 .claude/skills/colibri-verification/SKILL.md not modified PASS. git diff origin/main -- .claude/skills/colibri-verification/SKILL.md outputs 0 lines. Mirror is byte-stable. Flagged for resync via separate hygiene task per CLAUDE.md §9.2 edit rule.
8 All gates pass (npm run build && npm run lint && npm test) PASS for build + lint. PASS with documented flake for test: 1356/1357 tests pass; the 1 failure is the well-documented pre-existing startup — subprocess smoke flakiness on full-suite load (per MEMORY.md). Re-run in isolation: 40/40 PASS in src/__tests__/startup.test.ts. Round touched zero source files, so the flake is provably unrelated.

2. Donor-tool sweep — final result

Pattern: \b(roadmap_|unified_|gsd_|context_|memory_|thought_plan|thought_decide|
         task_eisenhower|task_deps|task_create_batch|task_link_roadmap|
         audit_session_set_context|unified_backup|merkle_attest|
         audit_session_end|task_transition|server_shutdown|rag_)
File: .agents/skills/colibri-verification/SKILL.md

Matches:
  Line 21: > - Phase 0 has no analysis / RAG / resume surfaces, and no `server_info` / `server_shutdown`.

Total: 1 match, inside HERITAGE note, framed as "NOT in Phase 0".

3. Required-citation sweep

Pattern: writeback\.ts:97|verifier\.ts:119|ADR-007
File: .agents/skills/colibri-verification/SKILL.md

  writeback.ts:97  → 4 occurrences (lines 10, 70, 116, 280, 303 ⇒ 5 contextual mentions, 4 unique line citations)
  verifier.ts:119  → 2 occurrences (lines 210, 255)
  ADR-007          → 5 occurrences (lines 10, 70, 263, 301, 327, 333)

4. Diff scope

$ git diff origin/main --stat
 .agents/skills/colibri-verification/SKILL.md           |  50 ++++++--
 docs/audits/rewrite-colibri-verification-skill-audit.md           | (new)
 docs/contracts/rewrite-colibri-verification-skill-contract.md     | (new)
 docs/packets/rewrite-colibri-verification-skill-packet.md         | (new)
 docs/verification/rewrite-colibri-verification-skill-verification.md (new — this file)

5. Volume

  • Body word count before: 2151
  • Body word count after: 2925
  • Net delta: +774 words (vs. packet target +20 to +50 lines / proportional words)
  • Net line delta: +43 / -7 = +36 lines net (per git diff origin/main --shortstat on the SKILL.md file)
  • The increase exceeds the packet’s optimistic estimate because Edit 5 (Verification Tools Quick Reference) added a substantial “Phase 0 reality” paragraph plus extensive JS comments — the honest acknowledgement was higher-density than initially estimated. All additions are content-bearing, not bloat.

6. Mirror state

$ git diff origin/main -- .claude/skills/colibri-verification/SKILL.md | wc -l
0

The mirror is unchanged. Per CLAUDE.md §9.2:

Do not edit .claude/skills/colibri-* by hand. Edit canon in .agents/ and flag for resync.

Resync is out of scope for this task and is flagged in the trailing italic stamp at line 333:

“Mirror at .claude/skills/colibri-verification/SKILL.md was NOT modified — flagged for resync as a separate hygiene task.”

7. Gate evidence

Gate Command Result
Build npm run build (ran tsc) GREEN — 0 errors
Lint npm run lint (ran eslint src) GREEN — 0 warnings/errors
Test (full) npm test 1356/1357 (1 known flake — startup — subprocess smoke under full-suite load)
Test (isolated repro) node --experimental-vm-modules node_modules/jest/bin/jest.js src/__tests__/startup.test.ts GREEN — 40/40

8. Residuals & follow-ups

  • Mirror resync.claude/skills/colibri-verification/SKILL.md is now divergent from .agents/; the existing .claude/skills/README.md notes this is a known drift surface. Resync is a separate hygiene task.
  • ADR-007 authoring — referenced as Proposed throughout, but the ADR file does not exist in docs/architecture/decisions/. Authoring is out of scope per the task brief; the Proposed reference is the right hand-off.
  • Startup flake — pre-existing, unchanged by this round (zero source-code edits), tracked in MEMORY.md.

9. Final commit chain (this branch)

Step Subject SHA
1 Audit audit(rewrite-colibri-verification-skill): inventory surface 0cf64d9d
2 Contract contract(rewrite-colibri-verification-skill): behavioral contract d234e62c
3 Packet packet(rewrite-colibri-verification-skill): execution plan 37df6339
4 Implement feat(rewrite-colibri-verification-skill): rewrite SKILL.md body to 14-tool surface 7e509b16
5 Verify verify(rewrite-colibri-verification-skill): test evidence (this commit)

Back to top

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

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