wizard

Gera um wizard bash interativo que guia um humano passo a passo por etapas que apenas ele pode executar. Use ao provisionar infraestrutura, configurar credenciais ou segredos de CI, navegar por um dashboard de terceiros desconhecido, ou executar uma migração ou corte único. Não invoque para etapas que o agente pode executar sozinho.

O que é wizard?

O skill Wizard cria scripts bash interativos que guiam humanos passo a passo por procedimentos manuais tediosos ou repetitivos, como configuração de infraestrutura, migrações, ou configuração de serviços de terceiros. Ele automatiza a abertura de URLs, instruções exatas de clique e cópia, captura de valores, e escrita em locais como `.env` ou segredos do GitHub, tudo com confirmações e progresso visível. O skill é baseado em um template reutilizável (`template.sh`) que fornece uma experiência de usuário consistente, incluindo progresso etapa por etapa, entrada oculta para senhas, e suporte multiplataforma (incluindo WSL). O desenvolvedor só precisa definir as etapas do procedimento, usando funções como `stage`, `ask`, `open_url`, e `write_env`, sem modificar o código base. O wizard é efêmero por padrão, mas pode ser versionado se o usuário desejar um setup repetível. É compatível com ambientes de desenvolvimento locais, CI/CD (GitHub Actions) e qualquer sistema Unix-like com bash. A saída é um script bash executável que o humano roda, enquanto o agente não precisa executá-lo por completo, evitando abrir navegadores ou bloquear em entrada humana.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/engineering/wizard

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que wizard faz?

Um wizard é um script bash que guia um humano, passo a passo, por um procedimento manual tedioso de fazer à mão e tedioso de reexplicar a uma IA toda vez. Ele abre cada URL, diz exatamente o que clicar e copiar, captura os valores, escreve onde pertencem (.env, segredos do GitHub), confirma em cada estágio e mostra quantos estágios faltam. Pode configurar serviços de terceiros, executar uma migração única ou mover o projeto de um estado para outro.

A UX agradável já está resolvida por template.sh: progresso etapa por etapa, portões de confirmação, abertura de URL multiplataforma (incluindo WSL), entrada oculta para segredos, upserts idempotentes em .env, gravações em gh secret/gh variable e um resumo final. Seu trabalho é apenas escopar o procedimento e escrever suas etapas. A biblioteca acima do marcador STAGES é idêntica em todo wizard; essa consistência é o ponto: nunca edite manualmente.

Um wizard é efêmero por padrão: construído para uma execução, salvo em um caminho scratch/ ou scripts/, deletado quando o trabalho termina. Faça commit somente quando o usuário quiser um caminho de configuração repetível que deve viver no repositório.

Processo

1. Escopar o procedimento

Descubra cada etapa manual que o humano deve realizar e cada valor que será capturado ao longo do caminho. Leia o repositório primeiro, não pergunte frio:

  • Para configuração: .env, .env.example, .env.*, README, docker-compose*, config do framework e .github/workflows/* (cada referência a secrets.* / vars.* é um valor que o wizard deve produzir).
  • Para uma migração ou transição: o estado atual, o estado alvo e as ações irreversíveis entre eles.

Depois mostre ao usuário a lista ordenada de etapas e os valores que cada uma produz, e confirme: eles podem adicionar, remover ou reordenar.

Concluído quando: cada etapa está nomeada em ordem, e para cada valor capturado você sabe (a) onde o humano o obtém, (b) onde é escrito (.env, um segredo do GitHub, ambos, ou nenhum lugar; algumas etapas são apenas ações), e (c) se é secreto (entrada oculta) ou público.

2. Mapear a jornada de cada etapa

Para cada etapa, escreva o caminho preciso que um humano segue: qual URL abrir, o que fazer lá, onde um valor é mostrado, qual variável ele preenche: por exemplo, "Dashboard → Desenvolvedores → Chaves de API → Revelar chave de teste → copiar". Onde você não souber a interface atual ou o comando exato, diga isso e pergunte ao usuário ou verifique a documentação: nunca invente etapas que podem não existir.

Concluído quando: cada etapa traça instruções concretas que um estranho poderia seguir.

3. Escrever o wizard

Copie template.sh para o caminho alvo. Substitua a etapa de exemplo por uma stage por passo, em ordem de dependência. Use as funções auxiliares da biblioteca: stage, say/step, open_url, ask/ask_secret, write_env, set_secret/set_var, pause/confirm. Defina TOTAL_STAGES com o número de etapas que você escreveu.

Mantenha o padrão que o template define: abra a URL antes de perguntar pelo valor, use ask_secret para qualquer coisa secreta, write_env para todo valor persistido, set_secret apenas para os valores que o CI realmente precisa, e confirm antes de qualquer ação irreversível. Cada stage limpa a tela para que apenas a etapa atual seja visível: mantenha uma etapa focada em uma única tarefa para que nada que o humano precise role para fora. Não toque na biblioteca acima do marcador.

4. Verificar e entregar

  • bash -n <script>; execute shellcheck se disponível.
  • chmod +x <script>.
  • Não execute o script de ponta a ponta você mesmo: ele abre navegadores e bloqueia em entrada humana. Em vez disso, trace-o estaticamente: verifique se cada valor da etapa 1 é capturado e chega onde a etapa 1 disse, e se cada set_secret corresponde exatamente a uma referência secrets.* no CI.
  • Diga ao usuário como executá-lo. Se for um caminho de configuração repetível, faça commit e adicione um link no README para que a próxima pessoa execute o script em vez de perguntar a uma IA.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/grill-with-docs

Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

Habilidades Relacionadas