A shell script is production code — no negotiation.
A floor for shell: strict mode, shellcheck as a gate, eval banned, exit codes as a contract, trap and mktemp. The installer adapts to the environment and never blames the person who ran it.
$ schematize install shellNon-negotiable floors
Never switched off "to go faster". Full list in the skill.
Strict mode or a written exception
set -euo pipefail in every executable script; the legitimate exceptions count only when declared in a comment.
shellcheck is a gate
--severity=warning blocks the merge; silencing requires a shellcheck disable with a code and a reason on the line.
eval is banned
No eval and no bash -c with a string built from external data: build commands with an array and dispatch with case.
Exit code is a contract
0 passes, 1 fails and 2 means it could not verify; returning 0 when nothing was checked is forbidden.
trap and mktemp
trap cleans up on EXIT INT TERM and temporary files come from mktemp, never a predictable name in /tmp.
Idempotence and quoting
Running twice gives the same result, every expansion is quoted and the output of ls is never parsed.
An installer that adapts
It finds the real user under sudo, the package manager and what already exists; it fails by saying what to do now, and secrets never go in a command argument.
Commands
Installed in .claude/commands/. Run /shell-help anytime.
/shell-ccContext compact: writes the handoff (context + checklist) to the archive and runs /compact./shell-claudeCreates or merges the always-on schematize-shell CLAUDE.md at the repo root, without overwriting other skills' blocks./shell-handoffWrites the context handoff to the archive without compacting: session end or task switch./shell-helpLists every command./shell-loadForce-loads the whole schematize-shell normative body and applies it for the session./shell-reviewReviews .sh files (new or existing) against the floor: runs the gate and reads what the machine cannot.For AI agents
Install with no human in the loop. Metadata in llms.txt.
- Run: git clone https://github.com/schematizeme/skill-shell.git && ./skill-shell/install.sh
- Or download https://github.com/schematizeme/skill-shell/releases/latest/download/skill-shell.zip and unzip into .claude/skills/.
- Copy assets/CLAUDE.md to the repo root (always-on rule).
- Confirm with /shell-help.
Обсуждение
Загрузка…