cli-scaffold-shelllisted
Install: claude install-skill Anselmoo/werkstoff
# Shell CLI scaffold (Bash / Zsh / PowerShell / POSIX sh)
You generate a CLI in a shell dialect. All rules come from the
**`cli-architecture`** doctrine — load it first and follow it; this skill does
not restate it.
## Step 1 — Load doctrine
Load the `cli-architecture` skill. Do not generate anything before it is loaded.
## Step 2 — Read the per-dialect reference
Read the reference for the resolved dialect (each maps 1:1 onto the five pillars):
- Bash → `${CLAUDE_PLUGIN_ROOT}/skills/cli-scaffold-shell/references/bash.md`
- Zsh → `${CLAUDE_PLUGIN_ROOT}/skills/cli-scaffold-shell/references/zsh.md`
- PowerShell → `${CLAUDE_PLUGIN_ROOT}/skills/cli-scaffold-shell/references/powershell.md`
- POSIX sh → `${CLAUDE_PLUGIN_ROOT}/skills/cli-scaffold-shell/references/posix-sh.md`
For **POSIX sh**, `references/posix-sh.md` also lists the forbidden bashisms the
verifier sweeps for. Avoid all of them while generating.
## Step 3 — Resolve the write target (in code)
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/write_scope.py" "<app-name>"
```
Write the scaffold **only** under the path it prints. If it exits non-zero, stop
and ask for a valid app name — never write outside the declared output scope.
## Step 4 — Generate the scaffold freeform
Following the reference idioms (not stored boilerplate), generate:
- a **sourced library** with **zero side effects at source-time** (only
definitions; nothing runs on `source`) and a **thin entry point** that only
parses, dispatches int