battle-testlisted
Install: claude install-skill Jewgah/claude-code-skills
# Battle-test the current change
Decide what can be run, run it, score how well the change is actually covered, and hand back the
checks a human still has to do. `$ARGUMENTS` narrows the side (`frontend`/`backend`) and the git
scope; blank means both sides, all pending changes.
## Phase 1 - Triage (before running anything)
1. Resolve the scope: `staged` -> `git diff --cached`, `unstaged` -> `git diff`, `last-commit` ->
`git diff HEAD~1` (empty tree if there is no parent), blank -> both diffs. **Add untracked files**
(`git ls-files --others --exclude-standard`): a brand-new module is invisible to `git diff` and
is exactly the code least likely to be covered. Not a git repo (`git rev-parse --git-dir` fails)
-> fall back to the files the user names, and say the scope came from them, not from git.
2. **Empty-diff guard**: no changes in scope -> say so and stop. Do not run a suite for nothing.
3. Detect what the repo actually has (`package.json` scripts, `composer.json`, `Makefile`,
`pytest`/`cargo`/`go`, a dev script, a compose file, an emulator), then sort every check that
matters **for this diff** into three buckets and print them before executing anything:
- **AUTO** - runnable now, non-destructive, no credentials: test/typecheck/lint/build scripts,
and single-file language checks (`php -l` through the Docker wrapper, `tsc --noEmit`,
`node --check`).
- **BOOTABLE** - runnable after starting something the repo owns: dev server, Docker stack,