skills/shell-scripts/SKILL.md
Use when writing or reviewing Bash scripts and shell snippets, especially for shebang selection, quoting, parameter expansion ("${VAR}" style), test expressions ([ ] vs [[ ]]), ShellCheck-guided fixes, and portability decisions across POSIX sh, Bash, and zsh compatibility targets.
npx skillsauth add ahgraber/skills shell-scriptsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write shell code with an explicit portability target first, then apply strict quoting and a bounded ShellCheck remediation loop. Default to Bash readability and safety; switch to POSIX-only mode when the user asks for strict portability.
shell-scripts.When NOT to use:
fish, powershell, or Windows batch.sh and no Bash features (use POSIX mode from references/compatibility-matrix.md).references/compatibility-matrix.md:
POSIX strict, Bash-first, or Bash-with-zsh-compatibility.assets/script-template.sh or pull focused snippets from:
assets/usage-template.txtassets/logging-template.shassets/getopts-template.sh${VAR} expansion form for clarity.[[ ... ]] for Bash conditionals; use [ ... ] when POSIX compatibility is required.command -v / type -a when shadowing is possible.bash -n path/to/script.shshellcheck -x path/to/script.sh (if available)references/advanced-patterns.mdreferences/command-resolution-and-os-portability.mdreferences/quoting-and-expansion.mdreferences/tests-and-conditionals.mdreferences/shellcheck-workflow.mdreferences/compatibility-matrix.mdreferences/quoting-and-expansion.mdreferences/tests-and-conditionals.mdreferences/shellcheck-workflow.mdreferences/advanced-patterns.mdreferences/command-resolution-and-os-portability.mdreferences/shellcheck-codes.mddevelopment
Use when the user wants rigorous, non-sycophantic editorial feedback on a draft, essay, blog post, or argument through back-and-forth dialogue — pressure-testing thesis, structure, argument, clarity, tone, and evidence. Triggers: "be my sparring partner", "pressure-test this draft", "poke holes in my argument", "is this ready to publish", "sharpen this post", "where is this weak". Not for one-shot copyediting, proofreading, or ghostwriting.
testing
Use when distilling the through-line gist of one or more sources — the spine, argument, tension, or recurring frame running through a set of documents, notes, research, or transcripts, OR across the ideas within a single rich piece — into a few concise paragraphs. Triggers: "synthesize", "what's the through-line/gist", "extract the insight", "pull these together". Not for faithful summary or condensation that covers what a source says, nor for comparisons or catalogs where enumeration is the deliverable.
development
Use when writing or reviewing tests in any language, or diagnosing a suite that is slow, brittle, or hard to read. Triggers: "write tests", "how should I test this", "what kind of test", "test is flaky/fragile", "should I mock this", "test is hard to read". For Python-specific guidance see `python-testing`.
development
Use when writing, debugging, or explaining Strudel live-coding music patterns — mini-notation syntax, pattern functions (fast/slow/every/off/stack), synth/sample selection, audio effects, scale/chord/voicing API, or EDM production recipes. Triggers: "write a Strudel pattern", "how do I make a bassline in Strudel", "what does .every() do", "strudel drum beat", "strudel chord voicing", any Strudel code question.