Audit — R77.C .claude/skills/ mirror resync (3 drifted skills)
Round: R77 (pages-finish)
Task: R77.C
Tier: T3 executor
Branch: feature/r77-c-mirror-resync
Worktree: .worktrees/claude/r77-c-mirror-resync
Base: origin/main @ ea5055e0
Date: 2026-04-18
1. Purpose
R76 Wave 1 (PR #153) resynced 9 drifted .claude/skills/colibri-* mirrors from .agents/skills/ canon. Subsequent R76 waves (H2 colibri-verification rewrite, H3 HERITAGE tagging, Phase B seal) edited canon SKILL.md files but the mirror was not re-pushed. This audit inventories the residual drift across 3 skills and confirms scope before the contract/packet/implement steps.
2. Scope
Three skills are in scope for R77.C. All three exist in both .agents/skills/ (canon) and .claude/skills/ (mirror) and have byte-divergent SKILL.md files:
colibri-mcp-server— 6 files (SKILL.md +agents/openai.yaml+references/{errors,tools,workflow}.md+scripts/setup-claude.ps1)colibri-tier1-chains— 2 files (SKILL.md +agents/openai.yaml)colibri-growth-strategy— 2 files (SKILL.md +agents/openai.yaml)
No other Colibri skill is in scope for R77.C.
3. File inventory — canon vs mirror
File trees are structurally identical between canon and mirror in every case; only the SKILL.md body diverges. There are zero mirror-only UX files to preserve.
3.1. colibri-mcp-server
Canon .agents/skills/colibri-mcp-server/ (6 files):
SKILL.md(182 lines)agents/openai.yamlreferences/errors.mdreferences/tools.mdreferences/workflow.mdscripts/setup-claude.ps1
Mirror .claude/skills/colibri-mcp-server/ (6 files):
SKILL.md(176 lines) — DIFFERSagents/openai.yaml— identicalreferences/errors.md— identicalreferences/tools.md— identicalreferences/workflow.md— identicalscripts/setup-claude.ps1— identical
Mirror-only files: none.
3.2. colibri-tier1-chains
Canon .agents/skills/colibri-tier1-chains/ (2 files):
SKILL.md(262 lines)agents/openai.yaml
Mirror .claude/skills/colibri-tier1-chains/ (2 files):
SKILL.md(256 lines) — DIFFERSagents/openai.yaml— identical
Mirror-only files: none.
3.3. colibri-growth-strategy
Canon .agents/skills/colibri-growth-strategy/ (2 files):
SKILL.md(221 lines)agents/openai.yaml
Mirror .claude/skills/colibri-growth-strategy/ (2 files):
SKILL.md(217 lines) — DIFFERSagents/openai.yaml— identical
Mirror-only files: none.
4. Diff character
All three divergences are canon-ahead-of-mirror drifts consisting of post-Phase-0 reality-stamp additions authored during R76 (H2/H3 waves). The mirror contains an older revision of the same SKILL.md body.
4.1. colibri-mcp-server (9 diff lines, canon +6 lines)
Canon adds three blockquote blocks not present in the mirror:
- A “Post-Phase-0 reality stamp (2026-04-19, R76.H3)” blockquote after the top-of-file banner, pointing at ADR-004 for the authoritative 14-tool surface.
- A “Phase 0 note” blockquote calling out donor-era tool families (
gsd_*,ams_autonomous_*,roadmap_*,workflow_*,analysis_rag_*,observe_*,watcher_*,unified_*, plusmemory_pack/memory_bundle) as out-of-scope for Phase 0 per ADR-004/ADR-005. - A second “Phase 0 note” blockquote clarifying that
gsd_*/ams_*/roadmap_*/analysis_rag_*/unified_*/workflow_*families plusskill_get/skill_reload(Phase 1) andagent_spawn*(Phase 1.5) are not shipped.
Signal: purely doc-level HERITAGE tagging. No behavioral change.
4.2. colibri-tier1-chains (25 diff lines, canon +6 lines)
Canon adds two new blockquote blocks and inline ~~name~~ <sup>(Phase 0: deferred…)</sup> strike-through annotations on the following inline tool references within existing paragraphs:
context_create,analysis_rag_search,task_eisenhower,analysis_recommend,gsd_plan,task_depends_on,gsd_validate,gsd_agent_spawn.
Two new blockquotes:
- A “Post-Phase-0 reality stamp (2026-04-19, R76.H3)” after the top banner.
- A “Phase 0 note” before the bullet list of donor families (
unified_*,gsd_*,roadmap_*,analysis_*,memory_*,context_*,observe_*).
Signal: HERITAGE tagging + inline strike-through of donor names; no behavioral change.
4.3. colibri-growth-strategy (25 diff lines, canon +4 lines)
Canon adds:
- A “Post-Phase-0 reality stamp (2026-04-19, R76.H3)” blockquote adjacent to the existing “Phase 0 note” block.
- Inline
~~name~~ <sup>…</sup>strike-throughs ontask_create_batch,task_link_roadmap,task_deps,unified_set_project,roadmap_nodes. - A HERITAGE do-not-invoke tag on the
colibri-roadmaps-tasksreference in the “Related skills” section, plus an explanatory blockquote.
Signal: same HERITAGE tagging + inline strike-through pattern as tier1-chains; no behavioral change.
5. Preservation requirement
Per CLAUDE.md §9.2 the mirror must not be hand-edited. Since none of the three mirror skills contain UX-specific files beyond what canon provides, this resync is a pure canon-wins overwrite — no mirror-side content needs to survive the operation.
6. Verification command (pre-resync)
Runs at the repo root of the worktree:
for skill in colibri-mcp-server colibri-tier1-chains colibri-growth-strategy; do
diff -qr ".agents/skills/$skill" ".claude/skills/$skill"
done
Expected output (confirmed at audit time):
Files .agents/skills/colibri-mcp-server/SKILL.md and .claude/skills/colibri-mcp-server/SKILL.md differ
Files .agents/skills/colibri-tier1-chains/SKILL.md and .claude/skills/colibri-tier1-chains/SKILL.md differ
Files .agents/skills/colibri-growth-strategy/SKILL.md and .claude/skills/colibri-growth-strategy/SKILL.md differ
All three are in scope. None is trivially clean.
7. Out of scope
- Any edit to canon (
.agents/skills/*). Canon is the source of truth and is untouched by this task. - Any edit to other
.claude/skills/colibri-*skills not listed in §2. - Any edit to
src/code. R77 ships nosrc/code per the round manifest. - Any tool-surface change. Zero MCP tools touched.
- Mirror-policy rewrite (CLAUDE.md §9.2 stands as-is).
8. Next step
Proceed to contract (docs/contracts/r77-c-mirror-resync-contract.md) to state the canon-wins resync policy and declare the per-file operations authorized.