← ClaudeAtlas

internal-sandbox-checklisted

Audits the current branch for skill or script edits that lack a matching sandbox scenario update. Reports per-item pairings, drives a headless verification run against the first changed scenario, and prints the interactive re-test command for the rest. Auto-trigger at ship time after editing `claude/skills/**/SKILL.md`, `scripts/**`, or `src/**` when the user signals end-of-feature ("ready to ship", "open PR", "before push", "wrap up", "ship it"). Do NOT auto-trigger on individual file edits mid-feature or on docs-only changes.
erclx/canon · ★ 2 · Data & Documents · score 68
Install: claude install-skill erclx/canon
# Sandbox check Manual guard after editing a plugin skill or a domain script. Reports whether each changed item has a paired scenario edit, verifies the first changed scenario headlessly, and prints the interactive re-test command for the user to launch against the rest. Verification runs without a human opening a session. `scripts/sandbox/run.sh` drives a skill through `claude -p`, provisions the scenario itself, and returns a verdict. An item that still ships unverified names which gate stopped it. ## Guards - If the current branch is `main` or `master`, stop: `❌ On main. Checkout a feature branch first.` - If both `git diff "$(git merge-base main HEAD)" --name-only -- 'claude/skills/**/SKILL.md' '.claude/skills/**/SKILL.md'` and `git diff "$(git merge-base main HEAD)" --name-only -- 'scripts/**' 'src/**'` are empty, stop: `✅ No skill or script changes since main.` ## Step 1: collect changed files Run in parallel from the worktree root: ```bash git diff "$(git merge-base main HEAD)" --name-only -- 'claude/skills/**/SKILL.md' '.claude/skills/**/SKILL.md' ``` ```bash git diff "$(git merge-base main HEAD)" --name-only -- 'scripts/**' 'src/**' ``` ```bash git diff "$(git merge-base main HEAD)" --name-only -- 'scripts/sandbox/**/*.sh' ``` ```bash pwd ``` The four lists, in order: - The changed skills, both plugin (`claude/skills/`) and internal (`.claude/skills/`) - The changed scripts (`scripts/`, `src/`) - The changed sandbox scenarios - The current root, whether t