wizardlisted
Install: claude install-skill ksdisch/claude-config
# Wizard
A **wizard** is a bash script that walks a human, step by step, through a manual procedure that's tedious to do by hand and tedious to re-explain to an AI every time. It opens each URL, says exactly what to click and copy, captures the values, writes them where they belong (`.env`, GitHub secrets), confirms at every stage, and shows how many stages are left. It might configure third-party services, run a one-off migration, or move the project from one state to another.
Upstream ships the wizard UX as a copy-paste shell template; this repo deliberately doesn't. **The UX contract below is a set of named invariants, not a script: author the wizard fresh each time, and hold every invariant.** Your job is to scope the procedure, author its stages, and write a script that satisfies the contract.
A wizard is ephemeral by default: built for one run, saved to a scratch or `scripts/` path, deleted when the job's done. Commit it only when Kyle wants a repeatable setup path that should live in the repo.
## The UX contract
Each invariant is named so it can be cited during authoring and verification.
- **`fail-fast`** — the script runs under strict shell modes (`set -euo pipefail`), so a failed command halts the wizard instead of plowing on with unset values. Decorations (color, bold) are used only when the terminal supports them. Strict mode turns an *answer* into an error if you let it: every interactive `read` is guarded so EOF can't kill the run, and any helper that retu