← ClaudeAtlas

review-bashlisted

Use when reviewing or auditing shell scripts - .sh or .bash files, a file with a bash or sh shebang, "review this script", "is this deploy script safe", "audit this cron job" - covering unquoted expansions and word splitting, missing set -euo pipefail, eval, unsafe temp file creation, PATH assumptions, unvalidated positional parameters, and command substitution in arithmetic contexts.
mrevjd/claude-review-suite · ★ 0 · Code & Development · score 62
Install: claude install-skill mrevjd/claude-review-suite
# Review Bash Correctness and security review for shell. Shell fails quietly and destructively: the same script works for months and then deletes the wrong directory the first time a variable is empty. The checklist runs whether or not `shellcheck` is installed. ## Procedure Follow `../../references/procedure.md`. Probe, scope, run what exists, walk the checklist by hand, score per `../../references/rubric.md`, emit both artifacts. ## Capability probe ```bash command -v shellcheck command -v shfmt ``` | Tool | Invocation | If absent | |---|---|---| | `shellcheck` | `shellcheck -S style <files>` | `apt install shellcheck` / `brew install shellcheck` | | `shfmt` | `shfmt -d <files>`, with `-i <n>` set to the project's indent width | `go install mvdan.cc/sh/v3/cmd/shfmt@latest` | Several missing at once? The suite ships `review-tools.sh`, which probes and installs the whole toolchain in one pass. **Name it in `## Checks skipped` and leave running it to the user** — a review reports, it does not install. `bash -n <file>` is the always-available floor — `bash` is the interpreter under review, so it is present by definition. It only catches syntax errors, so it is a floor and not a substitute. `shellcheck` exits non-zero when it finds problems; that is a result. Exit 127, or a complaint about an unsupported shebang, is a crash and belongs in `## Checks skipped`. ## Checklist | ID | Look for | Why it matters | Fix direction | |---|---|---|---| | **SH-01** | Any `$VAR` or