CommunityProgramación y desarrollogithub.com

mattpocock/wizard

Genera un asistente bash interactivo que guía a una persona paso a paso a través de tareas manuales que solo ella puede realizar. Úsalo al aprovisionar infraestructura, configurar credenciales o secretos de CI, navegar por un panel de terceros desconocido, o ejecutar una migración o transición única. No lo invoques para pasos que el agente pueda realizar por sí mismo.

¿Qué es wizard?

Wizard es una habilidad para agentes de IA que genera un script bash interactivo (un 'mago') diseñado para guiar a un humano paso a paso a través de procedimientos manuales tediosos que son difíciles de realizar a mano y de reexplicar a una IA cada vez. Es especialmente útil para tareas como configurar credenciales, aprovisionar infraestructura, gestionar secretos de CI (GitHub Actions, etc.), navegar por paneles de terceros desconocidos o ejecutar migraciones únicas. La habilidad se basa en una plantilla (`template.sh`) que ya resuelve la experiencia de usuario: progreso por etapas, confirmaciones, apertura de URLs compatible con WSL, entrada oculta de secretos, escritura idempotente en `.env`, comandos `gh secret`/`gh variable`, y un resumen final. El desarrollador solo debe definir el procedimiento y sus etapas, sin modificar el código de la librería subyacente. El asistente generado es efímero por defecto (se guarda en `scripts/` o una ruta temporal y se elimina al finalizar), pero puede ser versionado si se desea un proceso repetible. El flujo de trabajo incluye tres fases: (1) alcance del procedimiento (leer el repositorio para identificar variables de entorno, secretos de CI y pasos manuales), (2) mapeo de cada etapa (definir URLs, acciones y valores a capturar), y (3) autoría del asistente (copiar la plantilla, reemplazar los ejemplos con las etapas reales usando helpers como `stage`, `ask`, `ask_secret`, `write_env`, `set_secret`, etc.) Finalmente, se verifica sintaxis estáticamente con `bash -n` y `shellcheck`, y se entrega al usuario para su ejecución. Soporta cualquier plataforma donde se ejecute bash (Linux, macOS, WSL) y se integra con proveedores de CI como GitHub mediante los comandos `gh`. Está diseñado para usarse con agentes como Claude Code, Cursor, Codex, etc., siempre que el agente no pueda ejecutar los pasos por sí mismo.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Wizard (Asistente Guiado)

Un wizard (asistente guiado) es un script bash que guía a una persona, paso a paso, a través de un procedimiento manual tedioso de realizar a mano y de reexplicar a una IA cada vez. Abre cada URL, indica exactamente qué hacer clic y copiar, captura los valores, los escribe donde correspondan (.env, secretos de GitHub), confirma en cada etapa y muestra cuántas etapas quedan. Puede configurar servicios de terceros, ejecutar una migración única o mover el proyecto de un estado a otro.

La excelente experiencia de usuario ya está resuelta por template.sh: progreso por etapas, puertas de confirmación, apertura de URLs multiplataforma (incluyendo WSL), entrada oculta de secretos, escritura idempotente en .env, comandos gh secret/gh variable y un resumen final. Tu trabajo se limita a definir el procedimiento y redactar sus etapas. La parte de la librería que está por encima del marcador STAGES es idéntica en todos los asistentes; esa consistencia es el objetivo: no la edites a mano.

Un asistente es efímero por defecto: se crea para una ejecución, se guarda en una ruta temporal o en scripts/, y se elimina cuando el trabajo termina. Solo debes versionarlo cuando el usuario quiera un procedimiento de configuración repetible que deba permanecer en el repositorio.

Proceso

1. Definir el alcance del procedimiento

Determina cada paso manual que la persona debe realizar y cada valor que se capturará durante el proceso. Lee el repositorio primero, no preguntes en frío:

  • Para configuración: .env, .env.example, .env.*, README, docker-compose*, configuración del framework y .github/workflows/* (cada referencia a secrets.* / vars.* es un valor que el asistente debe producir).
  • Para una migración o transición: el estado actual, el estado objetivo y las acciones irreversibles entre ellos.

Luego muestra al usuario la lista ordenada de etapas y los valores que cada una produce, y confirma: pueden agregar, eliminar o reordenar.

Completado cuando: cada etapa está nombrada en orden, y para cada valor capturado sabes (a) dónde lo obtiene la persona, (b) dónde se escribe (.env, un secreto de GitHub, ambos, o ninguno; algunas etapas son solo acciones), y (c) si es secreto (entrada oculta) o público.

2. Mapear el recorrido de cada etapa

Para cada etapa, escribe la ruta precisa que sigue una persona: qué URL abrir, qué hacer allí, dónde se muestra un valor, qué variable completa: p. ej., "Dashboard → Desarrolladores → Claves API → Revelar clave de prueba → copiar". Cuando no conozcas realmente la interfaz de usuario actual o el comando exacto, indícalo y pregunta al usuario o consulta la documentación: nunca inventes pasos que puedan no existir.

Completado cuando: cada etapa se traduce a instrucciones concretas que un desconocido podría seguir.

3. Crear el asistente

Copia template.sh en la ruta de destino. Reemplaza la etapa de ejemplo con un bloque stage por cada paso, en orden de dependencias. Usa las funciones auxiliares de la librería: stage, say/step, open_url, ask/ask_secret, write_env, set_secret/set_var, pause/confirm. Establece TOTAL_STAGES al número de etapas que hayas escrito.

Mantén el nivel que establece la plantilla: abre la URL antes de pedir su valor, usa ask_secret para cualquier dato secreto, usa write_env para cada valor persistido, usa set_secret solo para los valores que CI realmente necesita, y usa confirm antes de cualquier acción irreversible. Cada stage limpia la pantalla para que solo se vea el paso actual: mantén cada etapa enfocada en una sola tarea para que nada de lo que la persona necesita se desplace fuera de la vista. No toques la parte de la librería que está por encima del marcador.

4. Verificar y entregar

  • bash -n <script>; ejecuta shellcheck si está disponible.
  • chmod +x <script>.
  • No lo ejecutes de principio a fin tú mismo: abre navegadores y se bloquea esperando entrada humana. En su lugar, haz una traza estática: cada valor del paso 1 se captura y llega al lugar que se indicó en el paso 1, y cada nombre de set_secret coincide exactamente con una referencia secrets.* en CI.
  • Indica al usuario cómo ejecutarlo. Si es un procedimiento de configuración repetible, guárdalo en el repositorio y enlázalo desde el README para que la siguiente persona ejecute el script en lugar de preguntar a una 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.

Skills relacionados