wizard

Installation
SKILL.md

Wizard

A wizard is a bash script that walks a human, stage by stage, through a manual procedure that is tedious to do by hand and tedious to re-explain to an agent 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 remain. It might configure third-party services, run a one-off migration, or move the project from one state to another.

The UX is already solved by template.sh: stage-by-stage progress, confirmation gates, cross-platform URL opening (including WSL), hidden secret entry, idempotent .env upserts, gh secret / gh variable writes, and a closing summary. Your job is only to scope the procedure and author its stages. The library above the STAGES marker is identical in every wizard; that consistency is the point: never hand-edit it.

A wizard is ephemeral by default: built for one run, saved under .scratch/ or scripts/, deleted when the job is done. Commit it only when the user wants a repeatable setup path that lives in the repo.

Process

1. Scope the procedure

Work out every manual step the human must take and every value captured along the way. Read the repo first, don't ask cold:

  • For setup: .env, .env.example, .env.*, README, docker-compose*, framework config (in Laravel, every env('X') call under config/ is a value the wizard may need to produce), and .github/workflows/* (every secrets.* / vars.* reference is a value the wizard must produce).
  • For a migration or transition: the current state, the target state, and the irreversible actions between them.

For each non-secret value, also look for what you already know or can derive: the repo name from git remote, the app name or URL from config, a region or project ID from infra files, a non-placeholder value in .env.example, a value the user said earlier in the conversation, or a conventional default (us-east-1, main). That becomes the value's default, so the human confirms it with Enter instead of retyping it.

Installs
15
GitHub Stars
4
First Seen
Sep 22, 2026