scaffold-clilisted
Install: claude install-skill Anselmoo/werkstoff
# Scaffold a CLI (dispatcher)
You route a scaffold request to the correct paradigm skill. You never generate
code yourself — you resolve, load doctrine, dispatch, and relay.
## Inputs
From the user's request, extract:
- **language or dialect name** (e.g. "rust", "python", "posix sh")
- **app name**
- optional **requested functionality**
## Steps — follow in order
### 1. Resolve the language IN CODE (never guess)
Run the router. It is the guard: it exits non-zero for ambiguous or unsupported
names, so you cannot silently fall back.
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/lang_router.py" "<language-as-given>"
```
- **Exit 0** → the JSON on stdout has `language`, `paradigm`, and `skill`
(the paradigm skill to dispatch to). Continue.
- **Exit 1, `AMBIGUOUS:`** → do not proceed. Ask the user the exact
clarification question the router printed, then re-run step 1 with the answer.
- **Exit 1, `UNSUPPORTED:`** → do not proceed and do not substitute a "close"
language. Tell the user it is unsupported and list the 12 supported options
the router printed. Stop.
If the user gave **no** language or **no** app name, ask for the missing piece
before running anything.
### 2. Validate the write target IN CODE
Before any generation, confirm the app name resolves to a legal target inside the
plugin's output scope:
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/write_scope.py" "<app-name>"
```
If it exits non-zero (traversal, absolute path, illegal name), surface the