Verification: chore-rename-repo-facing-polish

1. Implementation evidence

1.1 Commits

Step SHA Message
Audit 1c16d236 audit(chore-rename-repo-facing-polish): inventory outlier + all references + mirror state
Contract 3d512c81 contract(chore-rename-repo-facing-polish): rename plan + invariants (count, byte-identity, kebab-case)
Packet f57fca9f packet(chore-rename-repo-facing-polish): execution plan
Implement b21de322 chore(rename-repo-facing-polish): unify corpus under colibri-* prefix
Verify (this commit) verify(chore-rename-repo-facing-polish): test evidence + grep proof + mirror byte-identity

1.2 Files changed in implementation commit

11 files changed, 22 insertions(+), 30 deletions(-)
rename .agents/skills/{repo-facing-polish => colibri-repo-facing-polish}/SKILL.md (86%)
create mode 100644 .agents/skills/colibri-repo-facing-polish/agents/openai.yaml
rename .agents/skills/{repo-facing-polish => colibri-repo-facing-polish}/references/checklist.md (100%)
delete mode 100644 .agents/skills/repo-facing-polish/agents/openai.yaml
rename .claude/skills/{repo-facing-polish => colibri-repo-facing-polish}/SKILL.md (86%)
M .agents/README.md
M .claude/README.md
M .claude/skills/README.md
M docs/PLAN-RED.md
M docs/world-schema.md
M src/__tests__/skill-schema.test.ts

Note: openai.yaml and references/checklist.md show as rename+create/delete rather than pure rename in git output due to the git stash pop during verification (stash split staged renames). The history is still traceable via git log --follow.

2. Invariant checks

I-1: Total SKILL.md count unchanged (22)

$ ls .agents/skills/ | wc -l
22

Result: 22

I-2: colibri-* count now 22 (was 21)

$ ls .agents/skills/ | grep "^colibri-" | wc -l
22

Result: 22

I-3: Zero outliers

$ ls .agents/skills/ | grep -v "^colibri-"
(empty)

Result: empty — zero outliers

I-4: Mirror SKILL.md byte-identical post-rename

$ diff .agents/skills/colibri-repo-facing-polish/SKILL.md \
       .claude/skills/colibri-repo-facing-polish/SKILL.md
(empty)

Result: byte-identical

I-5: Frontmatter name updated correctly

$ grep "^name:" .agents/skills/colibri-repo-facing-polish/SKILL.md
name: colibri-repo-facing-polish

$ grep "^name:" .claude/skills/colibri-repo-facing-polish/SKILL.md
name: colibri-repo-facing-polish

Result: updated correctly in both files

I-6: Kebab-case still valid

colibri-repo-facing-polish matches /^[a-z][a-z0-9-]+$/. No regression. ✓

I-7: Corpus test passes (22)

$ npm test -- --testPathPattern="skill-schema"
PASS src/__tests__/skill-schema.test.ts
Tests:       122 passed, 122 total

Key test: finds the expected number of colibri-* skills (22 after repo-facing-polish rename)

3. Grep proof

Post-implementation grep -rn "repo-facing-polish" . --exclude-dir=.git --exclude-dir=node_modules --exclude-dir=.worktrees returns hits in these categories only:

Category Files Count Action
This task’s 5-step chain docs (audit/contract/packet/verify) docs/audits/chore-rename-*, docs/contracts/chore-rename-*, docs/packets/chore-rename-* Many EXPECTED — document the rename, use old name in historical context
Historical P0.6.2 docs (frozen) docs/audits/p0-6-2-skill-crud-audit.md, docs/packets/p0-6-2-skill-crud-packet.md, docs/verification/p0-6-2-skill-crud-verification.md 5 EXPECTED — historical record, intentionally preserved
Historical plan-red packet (frozen) docs/packets/r75-plan-red-packet.md 1 EXPECTED — historical record
Spawn (HERITAGE read-only) .agents/spawns/colibri-research/r2/source-universe-ams.md 1 EXPECTED — HERITAGE, untouched
Test description string src/__tests__/skill-schema.test.ts 1 EXPECTED — rename rationale in test description
.agents/README.md context note (now about the rename) .agents/README.md line 7 1 EXPECTED — documents the rename action

Zero remaining live references to the old name — all hits are either intentional historical/narrative context or frozen records from prior waves. ✓

4. YAML fix discovery

During testing, the corpus sweep detected a pre-existing YAML parse error in the original repo-facing-polish/SKILL.md: an unquoted colon in the description: value ("Greek: α (alpha) — System Core. Use when..."). This was masked in P0.6.1 and P0.6.2 because the skill corpus sweep used e.name.startsWith('colibri-') to filter — explicitly excluding the outlier.

After the rename, colibri-repo-facing-polish joined the sweep and the YAML error surfaced. It was fixed in the implementation commit by wrapping the description value in double quotes. Both canon and mirror SKILL.md were fixed identically.

5. Gate outputs

5.1 Build

$ npm run build
(clean — zero TypeScript errors)

Result: ✓ clean

5.2 Skill-schema corpus test

$ npm test -- --testPathPattern="skill-schema"
Tests:       122 passed, 122 total

Result: ✓ all 122 pass

5.3 Full test suite

$ npm test
Test Suites: 1 failed, 16 passed, 17 total
Tests:       1 failed, 779 passed, 780 total

The 1 failing test is startup — subprocess smoke › tsx src/server.ts boots and logs [Startup] Phase 1 — a pre-existing intermittent race condition (subprocess timing). Verified pre-existing:

  • Stash/restore test showed same 1-failure pattern on baseline (before any implementation changes)
  • Running startup tests in isolation: PASS src/__tests__/startup.test.ts (5.1s) — 40 passed
  • The test spawns a real tsx src/server.ts subprocess; under parallel Jest workers the subprocess doesn’t always emit its first log line before the test timeout

This failure is pre-existing, not caused by this PR.

5.4 Lint

$ npm run lint
(clean — zero ESLint warnings or errors)

Result: ✓ clean

6. README consistency check

File Before After
.agents/README.md line 7 R75 note claiming 21 on-disk (stale) R75 wave-F note confirming 22 colibri-* on-disk
.agents/README.md line 20 ## Skills (21 colibri-*) ## Skills (22 colibri-*)
.agents/README.md line 58 repo-facing-polish colibri-repo-facing-polish
.claude/README.md line 55 repo-facing-polish colibri-repo-facing-polish
.claude/README.md structure block “26 skill definitions, colibri-* + ams-* stubs” “22 skill definitions, colibri-* only”
.claude/skills/README.md line 14 “Extra file: repo-facing-polish” “Renamed (R75 wave-F): colibri-repo-facing-polish”

7. Residual risks

  1. .agents/spawns/ HERITAGE hit.agents/spawns/colibri-research/r2/source-universe-ams.md:335 still shows repo-facing-polish in a historical research table. Per zone rules, spawns are read-only HERITAGE. Not a risk.

  2. Historical docs (p0-6-2-*)docs/verification/p0-6-2-skill-crud-verification.md:136 mentions the old name with an incorrect claim (“its name field doesn’t match the kebab-case constraint”) — this was wrong even before the rename (the field DID match). After the rename it is now a historical inaccuracy in a frozen verification doc. Not a risk.

  3. Sigma-PM memory updateMEMORY.md and reference_skills_inventory.md still say “21 canonical colibri-* + 1 outlier”. Sigma-PM handles these outside the repo after PR merge (they are outside the worktree scope per mission brief).

  4. Pre-existing startup subprocess flakiness — one intermittent test failure pre-dates this PR and will continue to appear occasionally in CI. Not caused by this PR; pre-existing CI issue.

  5. Mirror structural asymmetry.agents/skills/colibri-repo-facing-polish/ has agents/ and references/ subdirs not mirrored to .claude/skills/. This was true before the rename and is an acknowledged structural asymmetry in the mirror zone. Not a new risk.

8. CLAUDE.md status

CLAUDE.md §9.2 claims “22 canonical colibri-* skills in skills/” — this is now literally true without any CLAUDE.md edit. ✓


Back to top

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

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