Theme / v1.2.3

Matt Pocock's Engineering Skills

可組合的 AI 工程工作流技能庫

指令詳解

/wizard 指令詳解

產生互動式 bash 精靈,帶人類走過只有人類能做的步驟——佈建基礎設施、設定憑證或 CI secrets、走過陌生的第三方儀表板、或執行一次性遷移

指令用途

/wizard 產生一個互動式 bash 腳本,帶人類走過手動程序 —— 第三方設定、一次性遷移、A→B 狀態轉換 —— 開啟每個 URL、說明要點什麼、捕獲輸入值,並寫進 .env 檔與 GitHub Actions secrets。

它專為只有人類能做的步驟設計:點擊、審批、儀表板導航 —— 那些你不會交給代理的工作。代理能做的,代理就該做;wizard 是給那些點擊、審批、儀表板之旅。

因為它是模型觸發的,代理能在它撞到「這一步只有人類能做」時自動伸手呼叫它,而不是把編號步驟倒進聊天視窗、然後指望你照著做。打 /wizard 當然也行 —— 模型觸發只是讓代理隨時可達。


四個觸發分支

wizard 的 description 寫成觸發器,決定模型何时啟動它:

  1. 佈建基礎設施:開帳號、開資源、設定網路。
  2. 設定憑證或 CI secrets:申請 API key、設定 OAuth、把 secret 寫進 CI。
  3. 走過陌生的第三方儀表板:第一次用某服務、不熟介面。
  4. 一次性遷移或切換:A→B 狀態轉換,例如換資料庫、換 auth provider。

明確的非觸發:代理自己能做的步驟,不要用 wizard。代理能做,代理就該做。


運作流程

  1. 界定程序:讀取 .env*docker-compose*、framework config,與 .github/workflows/ 內所有 secrets.* / vars.* 參考,來劃定這個程序的範圍。
  2. 提議階段:列出 stages,與使用者確認後才寫任何一行。stage 清單確認也兼作模型觸發時的提案。
  3. 產生精靈:產出一個互動式 bash 腳本,使用內建的 template.sh
  4. 驗證輸出:用 bash -n(語法檢查)與 shellcheck 驗證產出的腳本。

內建 template.sh 已解決的 UX

精靈的愉悅 UX 已被內建的 template.sh 預先解決 —— 你不必手寫這些,skill 的工作只是劃定程序範圍、並撰寫它的 stages

  • 以 stage 名稱與已完成數量呈現進度,不提供剩餘時間預估。
  • 確認閘道:每個關鍵步驟前先確認。
  • 跨平台 URL 開啟(含 WSL)。
  • 隱藏式 secret 輸入:密鑰輸入不回顯。
  • 冪等的 .env upsert:重複執行不會重複寫。
  • gh secret / gh variable 寫入,帶優雅降級(沒裝 gh 就跳過並說明)。
  • 結尾的跳過摘要:列出哪些 stage 被跳過。

template.shSTAGES 標記之上是一個固定的 library,永不手改 —— skill 的工作只有劃定程序、撰寫它的 stages。


實戰對話範例

範例一:自動觸發(模型觸發)

  • You:

    我要把這個專案接上 Stripe。

  • AI:

    接 Stripe 有幾步只有你能做(申請帳號、拿 API key、設定 webhook)。我啟動 /wizard

    我讀過你的 .env.example.github/workflows/deploy.yml,需要這些 secrets:

    • STRIPE_SECRET_KEY
    • STRIPE_WEBHOOK_SECRET
    • STRIPE_PUBLISHABLE_KEY

    提議的 stages:

    1. 開 Stripe 帳號(開啟 URL)
    2. 取得 API keys(說明在 dashboard 哪裡)
    3. 設定 webhook(開啟 URL、填 endpoint)
    4. 寫入 .envgh secret

    確認 stage 清單嗎?確認後我產精靈。


範例二:顯式呼叫

  • You:

    /wizard 帶我設定 SendGrid。

  • AI:

    SendGrid 設定範圍:

    1. 開帳號(URL)
    2. 建立 API key(dashboard 路徑說明)
    3. 驗證發信網域(DNS 設定步驟)
    4. 寫入 .envSENDGRID_API_KEYFROM_EMAIL

    確認後我產精靈,用 template.sh 包進進度條、確認閘道、隱藏 secret 輸入。產完跑 bash -n + shellcheck 驗證。


Engineering 而非 Productivity 的理由

wizard 被歸在 Engineering 而非 Productivity,因為它的範圍界定是工程性的:

  • .env*docker-compose*、framework config。
  • 讀遍 .github/workflows/ 內每個 secrets.* / vars.* 參考。
  • 寫 CI secrets。
  • bash -nshellcheck 驗證產出。

何時應該使用

  • 步驟只有人類能做:點擊、審批、儀表板導航。
  • 佈建基礎設施:開帳號、開資源。
  • 設定憑證 / CI secrets:申請 key、設 OAuth、寫 CI secret。
  • 走過陌生的第三方儀表板:第一次用某服務。
  • 一次性遷移或切換:A→B 狀態轉換。

何時不應該使用

  • 代理自己能做的步驟:代理能做,代理就該做 —— 別把編號步驟倒給人類。
  • 重複性的日常操作:那是腳本或自動化的事,不是 wizard。
  • 純粹的程式碼變更:用 /implement

與其他技能的關係

/wizard 是 engineering 流程中步驟只有人類能做時的 on-ramp —— 代理撞到這種步驟時自動伸手呼叫它。在 /ask-matt 中是一條 Standalone 路由,專為「只有人類能做的步驟」。不確定該用哪個 skill 時,用 /ask-matt 來路由。