From the round-3 review of #216.
Where: .claude/skills/update-xmech-page/SKILL.md, step 11 on docs/skill-snapshot-cleanup.
Step 11 says a later PR "can rebuild this one with step 2 from the pins in _fleet/data/site_audit.json". Step 2 creates only $SNAP/mechs/*. The CLAW clone and revisions.json come from step 1, which pins CLAW at its current main, not at a recorded pin, and rewrites manifest.json.
Failure scenario: a directory rebuilt by step 2 alone has no claw/, so step 8's refresh_manifest.py --check crashes. Step 7 has no revisions.json. And step 11's own guard refuses the rebuilt directory, so it leaks. Rebuilding CLAW via step 1 after CLAW has moved rewrites the manifest at a new revision and breaks the audit-pin test.
Fix: drop the rebuild claim, or spell out a full rebuild: CLAW at the audit's culturebotai-claw sha, with refresh_manifest.py --check only, and revisions.json written from the audit.
From the round-3 review of #216.
Where:
.claude/skills/update-xmech-page/SKILL.md, step 11 ondocs/skill-snapshot-cleanup.Step 11 says a later PR "can rebuild this one with step 2 from the pins in
_fleet/data/site_audit.json". Step 2 creates only$SNAP/mechs/*. The CLAW clone andrevisions.jsoncome from step 1, which pins CLAW at its currentmain, not at a recorded pin, and rewritesmanifest.json.Failure scenario: a directory rebuilt by step 2 alone has no
claw/, so step 8'srefresh_manifest.py --checkcrashes. Step 7 has norevisions.json. And step 11's own guard refuses the rebuilt directory, so it leaks. Rebuilding CLAW via step 1 after CLAW has moved rewrites the manifest at a new revision and breaks the audit-pin test.Fix: drop the rebuild claim, or spell out a full rebuild: CLAW at the audit's
culturebotai-clawsha, withrefresh_manifest.py --checkonly, andrevisions.jsonwritten from the audit.