R76.H3 Heritage Tagging — Audit
Round: R76 (Phase 0 → 1 bridge)
Task: R76.H3 — inline Phase 0 reality stamps on 4 active skills carrying donor-era tool references
Branch: feature/r76-h3-heritage-tagging
Date: 2026-04-19
1. Scope
Four skills in .agents/skills/ are not HERITAGE-marked (they still ship live Phase 0 guidance) yet reference donor-era tool families (gsd_*, unified_*, roadmap_*, memory_*, context_*, analysis_*, observe_*, watcher_*, workflow_*). Readers grazing these skills can mistake the vocabulary for current Phase 0 surface. This audit is the pre-edit inventory that drives inline tagging (strike-through + Phase 0 footnote, or > **Phase 0 note:** callout).
Canon-only. .claude/skills/ mirror edits are out of scope — that resync is a separate task.
2. Phase 0 14-tool surface (reference, for reconciliation)
- β (5):
task_create,task_list,task_get,task_update,task_next_actions - ζ (4):
audit_session_start,thought_record,thought_record_list,audit_verify_chain - η (2):
merkle_finalize,merkle_root - ε (1):
skill_list - System (2):
server_ping,server_health
Any tool name in the 4 skills that is not in the 14 above is a donor-era ref.
3. Per-skill grep inventory
3.1. .agents/skills/colibri-tier1-chains/SKILL.md
| Line | Context | Family | Tool(s) / Form |
|---|---|---|---|
| 13 | body paragraph listing negated families | gsd, unified, roadmap, memory, context, analysis, observe | unified_*, gsd_*, roadmap_*, analysis_*, memory_*, context_*, observe_* (7 family wildcards — keep as family wildcards) |
| 62 | Chain 1 output paragraph | context, analysis | context_create, analysis_rag_search (2 specific tools) |
| 79 | Chain 2 output paragraph | gsd, analysis | analysis_recommend, gsd_plan (2 specific tools) — plus task_eisenhower, task_depends_on (donor-era task_* variants not in the 14 surface) |
| 98 | Chain 3 gate paragraph | gsd | gsd_validate (1 specific tool) |
| 217 | Integration pattern footnote | gsd | gsd_agent_spawn (1 specific tool) |
| 234 | “Donor references — do not use” bullet | unified | unified_init, unified_vitals, unified_help, unified_set_project, unified_metrics (5 specific tools — already in a “do not use” section) |
| 235 | “Donor references — do not use” bullet | gsd | gsd_plan, gsd_validate, gsd_workflow_create, gsd_workflow_run, gsd_agent_spawn, gsd_phase_execute, gsd_parallel_map, gsd_verify_comprehensive (8 specific tools) |
| 236 | “Donor references — do not use” bullet | roadmap | roadmap_list, roadmap_nodes, roadmap_validate, roadmap_prerequisites_check (4 specific tools) |
| 237 | “Donor references — do not use” bullet | analysis | analysis_search, analysis_similar, analysis_rag_search, analysis_recommend, analysis_compare (5 specific tools) |
| 238 | “Donor references — do not use” bullet | memory, context | memory_pack, context_create, context_verify (3 specific tools) |
| 239 | “Donor references — do not use” bullet | task (donor variants) | task_eisenhower, task_deps, task_critical_path, task_sync_to_gsd, task_create_batch, task_link_roadmap (6 donor task_* names — tag since they are explicitly donor-family though the task_* prefix looks innocuous) |
Disposition: Lines 234–239 are already under a heading “Donor references — do not use” — the heading itself telegraphs the intent, but per R76.H3 acceptance each family-wildcard / specific tool must also carry an inline strike or callout. The cleanest treatment is a single > **Phase 0 note:** callout directly under the “Donor references — do not use” heading, which is immediate and covers every name in that section at once. Lines 13, 62, 79, 98, 217 get inline strike-through on each specific tool name (the family wildcards on 13 and the explicit negation context are left as readable prose, since striking a wildcard unified_* inside already-negating prose is noisy — but we add a > **Phase 0 note:** under line 13’s paragraph to stamp the whole paragraph).
3.2. .agents/skills/colibri-mcp-server/SKILL.md
| Line | Context | Family | Tool(s) / Form |
|---|---|---|---|
| 32 | §2 scope “does not cover” bullet | gsd, roadmap, workflow, analysis, memory, observe, watcher, unified | gsd_*, ams_autonomous_*, roadmap_*, workflow_*, analysis_rag_*, memory_pack, memory_bundle, observe_*, watcher_*, unified_* (8 family wildcards + 2 specific — already in a “not covered / out of scope” paragraph) |
| 138 | §9 “Tool not found” failure cause | gsd, ams, roadmap, analysis, unified, workflow | gsd_*, ams_*, roadmap_*, analysis_rag_*, unified_*, workflow_* (6 family wildcards — already in “Cause: agent is calling a donor-era tool” prose) |
Disposition: Both lines are already explicitly framed as “out of scope” / “donor-era”. The inline strike on 10+ wildcards inside one sentence would be unreadable. Best treatment: immediately-follow > **Phase 0 note:** callouts after lines 32 and 138.
3.3. .agents/skills/colibri-docs-check/SKILL.md
| Line | Context | Family | Tool(s) / Form |
|---|---|---|---|
| 100 | Step 5 stale-donor-patterns table row | gsd, unified, roadmap, watcher, observe, memory, context | gsd_*, unified_*, roadmap_*, watcher_*, observe_*, memory_*, context_* (7 family wildcards — in a table row whose “Why it’s stale” column already says “Donor tool families”) |
Disposition: Line 100 is a row in a “stale donor patterns” table with “Donor tool families” as its own negation column. One > **Phase 0 note:** callout directly below the table is the right call (the table is 13 rows; adding per-row inline strikes across 7 family wildcards in a single table cell would collapse readability).
3.4. .agents/skills/colibri-growth-strategy/SKILL.md
| Line | Context | Family | Tool(s) / Form |
|---|---|---|---|
| 10 | Top “Phase 0 note” paragraph | unified, roadmap, analysis | unified_*, roadmap_*, analysis_* (3 family wildcards) + task_create_batch, task_link_roadmap, task_deps (3 donor task_* names) — all already inside “Do not invoke donor tools like…” |
| 67 | §Quick Start paragraph | unified | unified_set_project (1 specific tool — already in “There is no unified_set_project”) |
| 175 | §Converting Strategy to Tasks step 5 | roadmap | roadmap_nodes, task_link_roadmap (2 specific tools — already framed “There is also no task_link_roadmap or roadmap_nodes”) |
| 211 | §Strategy Docs bullet | roadmap | roadmap_nodes (1 specific tool — already “There is no roadmap_nodes tool”) |
Disposition: Line 10 is already the skill’s own “Phase 0 note” paragraph — it’s effectively the top-of-file reality stamp and shouldn’t be re-stamped with another callout. But per R76.H3 acceptance, each specific tool name inside it should carry an inline strike. Lines 67, 175, 211 all contain specific tool names in negation prose — add inline strikes to the tool names.
4. Total inventory (pre-edit)
| Skill | Family wildcards (X_*) |
Specific donor tools | Treatment |
|---|---|---|---|
| colibri-tier1-chains | 7 (line 13) | 6 (lines 62,79,98,217) + 26 (lines 234–239 in donor-ref block) | Line 13: > **Phase 0 note:** after paragraph. Lines 62,79,98,217: inline strike per name. Lines 234–239: single > **Phase 0 note:** under heading. |
| colibri-mcp-server | 10 (line 32) + 6 (line 138) | 2 (line 32: memory_pack, memory_bundle) |
Both lines: > **Phase 0 note:** after paragraph. |
| colibri-docs-check | 7 (line 100) | 0 | Single > **Phase 0 note:** after table. |
| colibri-growth-strategy | 3 (line 10) | 6 (lines 10,67,175,211) | Inline strikes on specific tools; top-of-file reality stamp is line 10 already. |
5. Top-of-file reality stamps
| Skill | Already has stamp? | Action |
|---|---|---|
| colibri-tier1-chains | Yes (line 11, R75 Wave I stamp pointing at ADR-004) | Add R76.H3 marker only if not already present |
| colibri-mcp-server | Yes (§1 “Phase 0 reality stamp”) | R76.H3 marker — append line |
| colibri-docs-check | Yes (line 11, R75 Wave I stamp) | R76.H3 marker — append line |
| colibri-growth-strategy | Yes (line 10 “Phase 0 note”) | R76.H3 marker — append line |
Every skill already has a stamp. R76.H3 adds a minimal marker pointing at ADR-004 R75 Wave H amendment.
6. Acceptance criteria (contract input)
- Every family wildcard + every specific donor tool name is either inside
~~...~~OR immediately followed by a> **Phase 0 note:**callout. - Top-of-file reality stamps reference ADR-004 R75 Wave H amendment.
- Canon-only edits:
.claude/skills/unchanged. - npm gates green (no code touched — should be a no-op).
7. Non-scope
.claude/skills/mirror sync (separate task).- Rewriting the donor-tools body text — only tagging, not deleting.
- HERITAGE-banner on any of the 4 skills (they stay active).
- Adding any new tool name to any family.
- Touching skills outside the 4 listed.
R76.H3 — Inline heritage tagging audit. See docs/contracts/r76-h3-heritage-tagging-contract.md for the authored format; docs/packets/r76-h3-heritage-tagging-packet.md for the edit-by-edit plan.