| name | skillset-smoke-test |
| description | Run and evaluate the Skillset smoke test (aliases, sets, and skill invocation) and interpret its JSON reports. Use this when validating $skill/$set behavior or checking Claude Code/Codex headless runs. |
Skillset Smoke Test Runner
Keep this skill self-contained. If you need more detail, read REFERENCE.md.
Prereqs
- Ensure
bunis available. - For full runs, ensure
claudeandcodexCLIs are installed and authenticated. - Run from the repo root so the smoke test can find
scripts/skillset-smoke.ts.
Run the smoke test
- Prefer the repo script so results are structured and gitignored.
- Quick smoke (hook-only):
bun run test:smoke:ci
- Hook-only (CLI mode):
bun run test:smoke:cli
- Full run (hook + Claude + Codex):
bun run test:smoke
Options
--tools hook,claude,codexto limit which tools run.--hook-mode ci|clito choose the hook path (repeatable or comma-separated).--no-cleanto preserve the sandbox workspace and XDG dirs.--clean-allto wipe all smoke test artifacts (workspace + reports).--strictto exit non-zero if any step fails.
Environment overrides
SKILLSET_SMOKE_CLAUDE_CMD(default:claude)SKILLSET_SMOKE_CLAUDE_ARGS(extra args)SKILLSET_SMOKE_CODEX_CMD(default:codex)SKILLSET_SMOKE_CODEX_ARGS(extra args)
Interpret results
- Reports live under
.skillset-smoke/reports/<runId>/report.json. - Check
steps[*].statusandsteps[*].details.evidencefor sentinel hits. - When a step fails, inspect its
stdoutPath/stderrPathfor errors.- Hook steps are labeled
hook-ciandhook-cli. - The smoke test cleans by default; re-run with
--no-cleanto keep state for debugging.
- Hook steps are labeled
Triage checklist
Use this checklist in order when a run fails or evidence is missing:
- Open the report JSON and find the first
steps[*].status !== "ok". - If
stdoutPath/stderrPathexist, read them for the error message. - Confirm the workspace and XDG paths in the report (they must be under
.skillset-smoke/). - If a tool step is
skipped, verify the CLI is installed and auth is valid. - If
hookevidence is missing for a set, confirm the set resolves inset-loadand re-run--tools hookto isolate hook output issues. - If sentinels are missing for skills, confirm the smoke test created fixtures in
.skillset-smoke/workspace/.claude/skills. - Re-run with
--tools hookto isolate local resolution issues before retrying full runs.
Notes
- Outputs are stored under
.skillset-smoke/and are gitignored. - If the
.codex/skillssymlink is missing, re-create it to mirror this skill.