Communityコーディング&開発github.com

mattpocock/wizard

インタラクティブなbashウィザードを生成し、人間だけが実行可能な手順をステップバイステップで案内します。インフラストラクチャのプロビジョニング、認証情報やCIシークレットの設定、馴染みのないサードパーティダッシュボードの操作、または一度きりのマイグレーションやカットオーバーの実行に使用します。エージェント自身が実行できる手順では呼び出さないでください。

wizard とは?

このスキルは、人間による手動操作が必要な複雑な手順を、インタラクティブなbashウィザードとして自動生成します。ウィザードは、各URLを開き、クリックやコピーすべき箇所を正確に指示し、入力された値を`.env`やGitHub Secretsに保存し、各段階で確認を促し、残りのステージ数を表示します。主な用途は、クラウドサービスの認証情報設定、CIシークレットの設定、サードパーティダッシュボードの操作ガイド、または一度きりのデータベースマイグレーションやカットオーバーです。ウィザードは`template.sh`をベースにしており、ステージの進行状況表示、確認ゲート、クロスプラットフォームなURLオープン、隠しテキスト入力、`.env`への冪等な書き込み、`gh secret`/`gh variable`の設定、終了時のサマリー表示などのUXは既に解決済みです。開発者は手順のスコープ設定と各ステージの内容を記述するだけで、一貫性のある信頼性の高いウィザードを即座に作成できます。

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

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

wizard は何をしますか?

Wizardは、人間が手作業で行うには面倒で、AIに毎回説明するのも手間な手動手順を、ステップバイステップで人間を案内するbashスクリプトです。各URLを開き、クリックしてコピーすべき内容を正確に指示し、値を取得して適切な場所(.env、GitHub Secretsなど)に書き込み、各段階で確認を促し、残りのステージ数を表示します。サードパーティサービスの設定、一度きりのマイグレーションの実行、プロジェクトの状態遷移などに使用できます。

優れたUXはtemplate.shによって既に解決されています。ステージごとの進捗表示、確認ゲート、クロスプラットフォームなURLオープン(WSL含む)、隠しシークレット入力、冪等な.envのupsert、gh secret/gh variableの書き込み、終了時のサマリー表示などです。あなたの仕事は手順のスコープを決め、そのステージを作成することだけです。 STAGESマーカーの上のライブラリ部分はすべてのウィザードで同一であり、その一貫性が重要です。決して手動で編集しないでください。

ウィザードはデフォルトで一時的なものです。1回の実行のために作成され、スクラッチディレクトリまたはscripts/パスに保存され、ジョブが完了すると削除されます。ユーザーがリポジトリに残すべき繰り返し可能なセットアップパスを希望する場合にのみコミットしてください。

プロセス

1. 手順のスコープを決める

人間が実行しなければならないすべての手動ステップと、その過程で取得されるすべての値を洗い出します。まずリポジトリを読み、何も聞かずに始めないでください。

  • セットアップの場合: .env、.env.example、.env.*、README、docker-compose*、フレームワークの設定、および.github/workflows/*(すべてのsecrets.* / vars.*参照は、ウィザードが生成しなければならない値です)。
  • マイグレーションまたは移行の場合: 現在の状態、目標の状態、およびそれらの間の不可逆的なアクション。

次に、ユーザーにステージの順序付きリストと各ステージが生成する値を表示し、確認を取ります。ユーザーはステージの追加、削除、順序変更を行うことができます。

完了条件: すべてのステージが順序付けられて名前が付けられ、取得する各値について、(a) 人間がどこからそれを取得するか、(b) どこに書き込まれるか(.env、GitHubシークレット、両方、またはなし。一部のステージは純粋なアクションです)、(c) シークレット(非表示入力)か公開か、が明確になっていること。

2. 各ステージの道筋をマッピングする

各ステージについて、人間が従う正確なパスを記述します。どのURLを開くか、そこで何をするか、値がどこに表示されるか、どの変数に入力するか。例: 「ダッシュボード → 開発者 → APIキー → テストキーを表示 → コピー」。現在のUIや正確なコマンドが実際にはわからない場合は、その旨を伝え、ユーザーに尋ねるかドキュメントを確認してください。存在しない可能性のある手順を決して発明しないでください。

完了条件: すべてのステージが、見知らぬ人でも従える具体的な手順にまで落とし込まれていること。

3. ウィザードを作成する

template.shを目的のパスにコピーします。例のステージを、依存関係の順に1つのstageで置き換えます。ライブラリのヘルパー(stage、say/step、open_url、ask/ask_secret、write_env、set_secret/set_var、pause/confirm)を使用します。TOTAL_STAGESを作成したステージ数に設定します。

テンプレートが設定する基準を維持してください。値を尋ねる前にURLを開き、シークレットにはask_secretを使用し、すべての永続化された値にはwrite_envを使用し、CIが実際に必要とする値にのみset_secretを使用し、不可逆的なアクションの前にはconfirmを使用します。各stageは画面をクリアして現在のステップのみが表示されるようにします。各ステージは1つのタスクに集中させ、人間が必要とする情報がスクロールアウトしないようにします。マーカーの上のライブラリ部分には触れないでください。

4. 確認と引き渡し

  • bash -n <script>で構文チェックを行います。可能であればshellcheckを実行します。
  • chmod +x <script>で実行権限を付与します。
  • 自分でエンドツーエンドで実行しないでください。ブラウザが開き、人間の入力でブロックされます。代わりに静的にトレースします。ステップ1のすべての値が取得され、ステップ1で指定された場所に格納されていること、およびすべてのset_secret名がCI内のsecrets.*参照と完全に一致していることを確認します。
  • ユーザーに実行方法を伝えます。繰り返し可能なセットアップパスの場合は、コミットしてREADMEからリンクし、次回の担当者がAIに尋ねる代わりにスクリプトを実行できるようにします。

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.

関連スキル