Universal insurance policy against upstream slash-command shadowing.
The /checkpoint bug (Claude Code shipped /checkpoint as a /rewind alias,
silently shadowing the gstack skill) cost us weeks of user confusion
before we realized. This test is the "never again" check: enumerate
every gstack skill name and cross-check against a per-host list of
known built-in slash commands.
Architecture:
- KNOWN_BUILTINS per host. Currently Claude Code: 23 built-ins
(checkpoint, rewind, compact, plan, cost, stats, context, usage,
help, clear, quit, exit, agents, mcp, model, permissions, config,
init, review, security-review, continue, bare, model). Sourced from
docs + live skill-list dumps + claude --help output.
- KNOWN_COLLISIONS_TOLERATED: skill names that DO collide but we've
consciously decided to live with. Mandatory justification comment
per entry.
- GENERIC_VERB_WATCHLIST: advisory list of names at higher risk of
future collision (save, load, run, deploy, start, stop, etc.).
Prints a warning but doesn't fail.
Tests (6 total, 26ms, free tier):
1. At least one skill discovered (enumerator sanity)
2. No duplicate skill names within gstack
3. No skill name collides with any claude-code built-in
(with KNOWN_COLLISIONS_TOLERATED escape hatch)
4. KNOWN_COLLISIONS_TOLERATED entries are all still live collisions
(prevents stale exceptions rotting after a rename)
5. The /checkpoint rename actually landed (checkpoint not in skills,
context-save and context-restore are)
6. Advisory: generic-verb watchlist (informational only)
Current real collisions:
- /review — gstack pre-dates Claude Code's /review. Tolerated with
written justification (track user confusion, rename to /diff-review
if it bites). The rest of gstack is collision-free.
Maintenance: when a host ships a new built-in, add the name to the
host's KNOWN_BUILTINS list. If a gstack skill needs to coexist with a
built-in, add an entry to KNOWN_COLLISIONS_TOLERATED with a written
justification. Blind additions fail code review.
TODO: add codex/kiro/opencode/slate/cursor/openclaw/hermes/factory/
gbrain built-in lists as we encounter collisions. Claude Code is the
primary shadow risk (biggest audience, fastest release cadence).
Note: bun's parser chokes on backticks inside block comments (spec-
legal but regex-breaking in @oven/bun-parser). Workaround: avoid them.