Files
charleswiltgen__axiom/scripts
Charles Wiltgen 6725bf4e96 fix(manifest): close the cascade's blind spot, and the review's other findings
Seven defects an independent review of the two previous commits found, all in code
written minutes earlier.

The substantive one: `build:manifest`'s cascade was keyed on whether this run
wrote a file, so a body-only edit to any SKILL.md — the most common edit in a
corpus of skill files — skipped it, and the command reported success over a tree
whose Cursor, Codex and MCP outputs were stale. That is the trap the cascade was
added to close, reached through the guard. It now keys on the distributions' actual
inputs: ask.md, which they embed, or a dirty file under skills/, agents/ or
commands/. The same change stops a manifest-only hand-edit from rebuilding all
three for a bundle timestamp.

In `pre-deploy` check 4: a duplicated manifest entry passed all three comparisons —
a Set and a name→description map both collapse it, and the text comparison saw
nothing wrong — while the comment claimed parity with the unit suite that catches
it; a manifest-excluded skill was reported as "no corresponding skill on disk" when
it is on disk and filtered by MANIFEST_EXCLUDED_SKILLS; and one `skills!.length`
kept the non-null assertion this hunk removed one loop below.

Each case measured. Duplicate → "27 entries for 26 distinct skills". Excluded skill
→ names both possible causes. Clean → 26 descriptions matching. Cascade: a clean
tree stands down in 0.3s, a body-only edit rebuilds all three distributions, a
manifest-only edit rebuilds none.

Not addressed: the bundle step still requires pnpm and repeats package.json's
command string; it now fails with a message naming `npm run build:mcp` rather than
a raw ENOENT stack.

Verified: npm test (static clean), npm run test:unit (524/524).
2026-09-17 11:19:17 -07:00
..