[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7A8FRPJMDP3XGTPXF2TB2AP":3,"skill-same:01M7A8FRPJMDP3XGTPXF2TB2AP":52},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M7A8FRPJMDP3XGTPXF2TB2AP","wizard",null,"Generate 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 an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","MinZhi624\u002Fopencode-personal-plugins","MinZhi624","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F222435401?v=4","01M7A8D5X1N1VHJ0W0E9X8YSZ8","Min_Zhi","01M7A8D5XMYXKV0SW885ZY2EDP",4,"MIT","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwizard\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: wizard\ndescription: \"Generate 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 an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.\"\nslash: false\n---\n\n## OpenCode Adapter\n\nWorkflow references in this text name Workshop Workflow Skills by their exact ID. Describe what you need in natural language; the skill descriptions decide when a skill fires, and an exact ID is never required to start a flow. User-only skills are exposed through the native skill menu; other skills can be discovered as needed. Load skills by exact ID with the native skill tool. Workshop does not register a custom command executor. Use only the current Workshop Primary Agent's native OpenCode capabilities and role boundaries. Never switch Primary Agents automatically.\nBefore creating or validating a wizard, verify that Bash is available. On Windows, require WSL or Git Bash; do not attempt a PowerShell rewrite.\n\n\n# Wizard\n\nA **wizard** is a bash script that walks a human, step by step, through a manual procedure that's tedious to do by hand and tedious to re-explain to an AI every time. It opens each URL, says exactly what to click and copy, captures the values, writes them where they belong (`.env`, GitHub secrets), confirms at every stage, and shows how many stages are left. It might configure third-party services, run a one-off migration, or move the project from one state to another.\n\nThe delightful UX is already solved by [template.sh](template.sh) — stage-by-stage progress, confirmation gates, cross-platform URL opening (including WSL), hidden secret entry, idempotent `.env` upserts, `gh secret`\u002F`gh variable` writes, and a closing summary. **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.\n\nA wizard is ephemeral by default — built for one run, saved to a scratch or `scripts\u002F` path, deleted when the job's done. Commit it only when the user wants a repeatable setup path that should live in the repo.\n\n## Process\n\n### 1. Scope the procedure\n\nWork out every manual step the human must take and every value that gets captured along the way. Read the repo first — don't ask cold:\n\n- For setup: `.env`, `.env.example`, `.env.*`, `README`, `docker-compose*`, framework config, and `.github\u002Fworkflows\u002F*` (every `secrets.*` \u002F `vars.*` reference is a value the wizard must produce).\n- For a migration or transition: the current state, the target state, and the irreversible actions between them.\n\nThen show the user the ordered list of stages and the values each produces, and confirm — they may add, drop, or reorder.\n\n**Done when:** every stage is named in order, and for each captured value you know (a) where the human gets it, (b) where it's written (`.env`, a GitHub secret, both, or nowhere — some stages are pure actions), and (c) whether it's secret (hidden entry) or public.\n\n### 2. Map each stage's journey\n\nFor each stage, write the precise path a human follows: which URL to open, what to do there, where a value is shown, which variable it fills — e.g. \"Dashboard → Developers → API keys → Reveal test key → copy\". Where you don't actually 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.\n\n**Done when:** every stage traces to concrete instructions a stranger could follow.\n\n### 3. Author the wizard\n\nCopy `template.sh` to the target path. Replace the example stage with one `stage` per step, in dependency order. Use the library helpers — `stage`, `say`\u002F`step`, `open_url`, `ask`\u002F`ask_secret`, `write_env`, `set_secret`\u002F`set_var`, `pause`\u002F`confirm` — and set `TOTAL_STAGES` to the number of stages you wrote.\n\nHold 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, and `confirm` before any irreversible action. Each `stage` clears the screen so only the current step is visible — keep a stage to one focused task so nothing the human needs scrolls away. Don't touch the library above the marker.\n\n### 4. Verify and hand off\n\n- `bash -n \u003Cscript>`; run `shellcheck` if available.\n- `chmod +x \u003Cscript>`.\n- Don't run it end-to-end yourself — 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, and every `set_secret` name exactly matches a `secrets.*` reference in CI.\n- Tell the user how to run it. If it's a repeatable setup path, commit it and link it from the README so the next person runs the script instead of asking an AI.\n","## OpenCode Adapter\n\nWorkflow references in this text name Workshop Workflow Skills by their exact ID. Describe what you need in natural language; the skill descriptions decide when a skill fires, and an exact ID is never required to start a flow. User-only skills are exposed through the native skill menu; other skills can be discovered as needed. Load skills by exact ID with the native skill tool. Workshop does not register a custom command executor. Use only the current Workshop Primary Agent's native OpenCode capabilities and role boundaries. Never switch Primary Agents automatically.\nBefore creating or validating a wizard, verify that Bash is available. On Windows, require WSL or Git Bash; do not attempt a PowerShell rewrite.\n\n\n# Wizard\n\nA **wizard** is a bash script that walks a human, step by step, through a manual procedure that's tedious to do by hand and tedious to re-explain to an AI every time. It opens each URL, says exactly what to click and copy, captures the values, writes them where they belong (`.env`, GitHub secrets), confirms at every stage, and shows how many stages are left. It might configure third-party services, run a one-off migration, or move the project from one state to another.\n\nThe delightful UX is already solved by [template.sh](template.sh) — stage-by-stage progress, confirmation gates, cross-platform URL opening (including WSL), hidden secret entry, idempotent `.env` upserts, `gh secret`\u002F`gh variable` writes, and a closing summary. **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.\n\nA wizard is ephemeral by default — built for one run, saved to a scratch or `scripts\u002F` path, deleted when the job's done. Commit it only when the user wants a repeatable setup path that should live in the repo.\n\n## Process\n\n### 1. Scope the procedure\n\nWork out every manual step the human must take and every value that gets captured along the way. Read the repo first — don't ask cold:\n\n- For setup: `.env`, `.env.example`, `.env.*`, `README`, `docker-compose*`, framework config, and `.github\u002Fworkflows\u002F*` (every `secrets.*` \u002F `vars.*` reference is a value the wizard must produce).\n- For a migration or transition: the current state, the target state, and the irreversible actions between them.\n\nThen show the user the ordered list of stages and the values each produces, and confirm — they may add, drop, or reorder.\n\n**Done when:** every stage is named in order, and for each captured value you know (a) where the human gets it, (b) where it's written (`.env`, a GitHub secret, both, or nowhere — some stages are pure actions), and (c) whether it's secret (hidden entry) or public.\n\n### 2. Map each stage's journey\n\nFor each stage, write the precise path a human follows: which URL to open, what to do there, where a value is shown, which variable it fills — e.g. \"Dashboard → Developers → API keys → Reveal test key → copy\". Where you don't actually 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.\n\n**Done when:** every stage traces to concrete instructions a stranger could follow.\n\n### 3. Author the wizard\n\nCopy `template.sh` to the target path. Replace the example stage with one `stage` per step, in dependency order. Use the library helpers — `stage`, `say`\u002F`step`, `open_url`, `ask`\u002F`ask_secret`, `write_env`, `set_secret`\u002F`set_var`, `pause`\u002F`confirm` — and set `TOTAL_STAGES` to the number of stages you wrote.\n\nHold 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, and `confirm` before any irreversible action. Each `stage` clears the screen so only the current step is visible — keep a stage to one focused task so nothing the human needs scrolls away. Don't touch the library above the marker.\n\n### 4. Verify and hand off\n\n- `bash -n \u003Cscript>`; run `shellcheck` if available.\n- `chmod +x \u003Cscript>`.\n- Don't run it end-to-end yourself — 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, and every `set_secret` name exactly matches a `secrets.*` reference in CI.\n- Tell the user how to run it. If it's a repeatable setup path, commit it and link it from the README so the next person runs the script instead of asking an AI.\n",{"name":5,"slash":20,"description":7},"main","853a4ff30be3fc4f5956ce0b2c8dc74c91af942a","plugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwizard",1,"https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins","https:\u002F\u002Fgithub.com\u002FMinZhi624","Nothing","2026-11-07 16:54:16",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add MinZhi624\u002Fopencode-personal-plugins --skill wizard",{"tool":38,"command":39},"bunx","bunx skills add MinZhi624\u002Fopencode-personal-plugins --skill wizard",{"tool":41,"command":42},"pnpm","pnpm dlx skills add MinZhi624\u002Fopencode-personal-plugins --skill wizard","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwizard\u002FSKILL.md",true,[46],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"template.sh","SCRIPT","脚本",8596,"https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwizard\u002Ftemplate.sh",[53,60,67,74,81,88],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":19},"01M7A8FVYTF66FFYHVH450PDKF","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[],[],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M7A8FN5GHHJ114NA2TRKWDX3","wayfinder","Use ONLY when the user explicitly requests this workflow in natural language or by name; a suggestion from another skill does not count. Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwayfinder\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":19},"01M7A8FJWEHYAM4ZZ94ZVA190W","wait-what","Use ONLY when the user explicitly requests this workflow in natural language or by name; a suggestion from another skill does not count. Stop. That last message did not land — re-pitch it.","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M7A8FF8H9J9DXS3ZPWHQ94DM","triage","Use ONLY when the user explicitly requests this workflow in natural language or by name; a suggestion from another skill does not count. Move issues and external PRs through a state machine of triage roles — categorise, verify, grill if needed, and write agent-ready briefs.","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Ftriage\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7A8FAZ7EDG68ZSJ1B5VHQCH","to-tickets","Use ONLY when the user explicitly requests this workflow in natural language or by name; a suggestion from another skill does not count. Break a plan, spec, or the current conversation into a set of tracer-bullet tickets, each declaring its blocking edges, published to the configured tracker — edges as text in one file per ticket locally, or native blocking links on a real tracker.","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fto-tickets\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":19},"01M7A8F7ZXGPMMTJY3VTRPYAJT","to-spec","Use ONLY when the user explicitly requests this workflow in natural language or by name; a suggestion from another skill does not count. Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.","https:\u002F\u002Fgithub.com\u002FMinZhi624\u002Fopencode-personal-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fopencode-matt-workshop\u002Fskills\u002Fto-spec\u002FSKILL.md",[],[]]