Skip to content
Back to skills

Wizard

ASecurity

Generates an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking a third-party dashboard, or running a one-off migration or cutover. Not for steps the agent can perform itself.

  • 17 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added August 31, 2026
ai-agentsshellbashdockergitapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned August 31, 2026

npx -y skills add domengabrovsek/claude --skill wizard --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wizard?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wizard
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/domengabrovsek-wizard/badge)](https://www.skillsdirectory.com/skills/domengabrovsek-wizard)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wizard
description: "Generates an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking a third-party dashboard, or running a one-off migration or cutover. Not for steps the agent can perform itself."
---

> Source: [mattpocock/skills - engineering/wizard](https://github.com/mattpocock/skills/tree/main/skills/engineering/wizard)

# Wizard

A **wizard** is a bash script that walks a human through a manual procedure, step by step. It opens each URL and says exactly what to click and copy. It captures the values and writes them where they belong (`.env`, GitHub secrets). It confirms at every stage and shows how many stages are left. Typical jobs: configure third-party services, run a one-off migration, move the project from one state to another.

The UX is already solved by [template.sh](template.sh):

- stage-by-stage progress and a closing summary
- confirmation gates
- cross-platform URL opening (including WSL)
- hidden secret entry
- idempotent `.env` upserts and `gh secret` / `gh variable` writes

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 to a scratch or `scripts/` path, deleted when the job is done. Commit it only when the user wants a repeatable setup path 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, do not ask cold:

- For setup: `.env.example`, `README`, `docker-compose*`, framework config, and `.github/workflows/*`. Every `secrets.*` or `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.

Then show the user the ordered list of stages and the values each produces. Confirm: they may add, drop, or reorder.

**Done when:** every stage is named in order. For each captured value you know three things: where the human gets it, where it lands (`.env`, a GitHub secret, both, or nowhere), and whether it is secret.

### 2. Map each stage's journey

For each stage, write the precise path a human follows: which URL to open, what to do there, where the value shows, which variable it fills. Example: "Dashboard → Developers → API keys → Reveal test key → copy". Where you do not know the current UI or the exact command, say so and ask the user or check the docs. Never invent steps that may not exist.

**Done when:** every stage traces to concrete instructions a stranger could follow.

### 3. Author the wizard

Copy `template.sh` to the target path. Replace the example stage with one `stage` per step, in dependency order. Use the library helpers: `stage`, `say`/`step`, `open_url`, `ask`/`ask_secret`, `write_env`, `set_secret`/`set_var`, `pause`/`confirm`. Set `TOTAL_STAGES` to the number of stages you wrote.

Hold the bar the template sets: open the URL before asking for its value. Use `ask_secret` for anything secret. `write_env` every persisted value. `set_secret` only the values CI actually needs. `confirm` before any irreversible action. Each `stage` clears the screen, so keep a stage to one focused task. Do not touch the library above the marker.

### 4. Verify and hand off

- `bash -n <script>`; run `shellcheck` if available.
- `chmod +x <script>`.
- Do not run it end-to-end: it opens browsers and blocks on human input. Trace it statically instead: every value from step 1 is captured and lands where step 1 said. Every `set_secret` name must match a `secrets.*` reference in CI.
- Tell the user how to run it. For a repeatable setup path, commit it and link it from the README.

Files in this skill

  • SKILL.md3.8 KB
  • template.sh8.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.