[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GKGSV5GC23S7CZ8XMXQF7C":3,"skill-same:01M6GKGSV5GC23S7CZ8XMXQF7C":82},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":65},"01M6GKGSV5GC23S7CZ8XMXQF7C","wizard",null,"Generate an interactive bash wizard that walks a human through a manual procedure — third-party setup, credential provisioning, a one-off migration — opening URLs, capturing values, confirming each step, and writing .env files and CI secrets (GitHub and Gitea\u002FForgejo Actions).","dekoza\u002Foh-my-slop","dekoza","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F210980?v=4","01M6GK5KFK2SJQ364J2SR2P57S","Dominik Kozaczko","01M6GK5KP5PAA51JVTXYXHN66N",4,"Unlicense","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fwizard\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"interactive","true","manual","gitea","env","third-party","human","credential","files","migration","writing","Bash","secrets","provisioning","ci","actions","generate","setup","github","2026-11-10 10:12:30",false,"---\nname: wizard\ndescription: Generate an interactive bash wizard that walks a human through a manual procedure — third-party setup, credential provisioning, a one-off migration — opening URLs, capturing values, confirming each step, and writing .env files and CI secrets (GitHub and Gitea\u002FForgejo Actions).\ndisable-model-invocation: true\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\u002FGitea\u002FForgejo secrets), confirms at every stage, and shows how many stages are left. It might configure third-party services, provision credentials, 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, CI secret writes with graceful degradation (GitHub `gh` first, then Gitea\u002FForgejo Actions via `tea api`), 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: `pyproject.toml`, `settings.py` \u002F `settings\u002F*.py`, django-environ usage (`.Env()` calls, `environ.Env()` defaults), `.env*`, `compose*.yml`, README, and CI config (`.github\u002Fworkflows\u002F*`, `.gitlab-ci.yml`, `.gitea\u002Fworkflows\u002F*` or `actions\u002Fvariables` references) — 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 CI 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\n### When to invoke (and when not to)\n\nThis skill is **model-invoked**: reach for it the moment you hit a step only a human can perform — provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, a one-off migration or cutover. **Non-trigger:** do not invoke it for steps you can perform yourself. Work an agent can do, an agent should do; the wizard is for the clicks, approvals and dashboard trips you wouldn't hand to one. Keep that non-trigger — it's what stops this from firing constantly.\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\u002FGitea\u002FForgejo secrets), confirms at every stage, and shows how many stages are left. It might configure third-party services, provision credentials, 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, CI secret writes with graceful degradation (GitHub `gh` first, then Gitea\u002FForgejo Actions via `tea api`), 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: `pyproject.toml`, `settings.py` \u002F `settings\u002F*.py`, django-environ usage (`.Env()` calls, `environ.Env()` defaults), `.env*`, `compose*.yml`, README, and CI config (`.github\u002Fworkflows\u002F*`, `.gitlab-ci.yml`, `.gitea\u002Fworkflows\u002F*` or `actions\u002Fvariables` references) — 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 CI 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\n### When to invoke (and when not to)\n\nThis skill is **model-invoked**: reach for it the moment you hit a step only a human can perform — provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, a one-off migration or cutover. **Non-trigger:** do not invoke it for steps you can perform yourself. Work an agent can do, an agent should do; the wizard is for the clicks, approvals and dashboard trips you wouldn't hand to one. Keep that non-trigger — it's what stops this from firing constantly.\n",{"name":5,"description":7,"disable-model-invocation":43},true,"main","8c687fa2c077e1cd3ff8e5b2912c28fd443bc675","skills\u002Fworkflow\u002Fwizard",0,"https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop","https:\u002F\u002Fgithub.com\u002Fdekoza","https:\u002F\u002Fqoto.org\u002F@minder","Plz send BTC: 32UQpSVbcYXdfZnbyPuPvYi7rXvHcueqi1","2026-10-28 00:52:41",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":43},[55,58,61],{"tool":56,"command":57},"npx","npx skills add dekoza\u002Foh-my-slop --skill wizard",{"tool":59,"command":60},"bunx","bunx skills add dekoza\u002Foh-my-slop --skill wizard",{"tool":62,"command":63},"pnpm","pnpm dlx skills add dekoza\u002Foh-my-slop --skill wizard","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fwizard\u002FSKILL.md",[66,72,76],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"evals\u002Fevals.json","REFERENCE","参考文档",2238,"https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fwizard\u002Fevals\u002Fevals.json",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"evals\u002Ftrigger-evals.json",2519,"https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fwizard\u002Fevals\u002Ftrigger-evals.json",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"template.sh","SCRIPT","脚本",10217,"https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fwizard\u002Ftemplate.sh",[83,107,124,138,163,179],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":87,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":95,"publishedAt":38},"01M6GKFC9YYQ4CC6N7YAW7BWW1","restore-test-pyramid","Analyze the project's E2E suite and push every assertion that doesn't need a real browser down to a faster integration or unit test, proving each migration honest before thinning E2E.","MIT","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Frestore-test-pyramid\u002FSKILL.md",[90],{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[96,97,98,99,20,100,101,102,28,103,104,105,106],"restore test pyramid","restore","test","e2e","unit","project","real browser","analyze","integration","push","browser",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":38},"01M6GKEW0YH8ZSSN1PT543TDNZ","ponytail-debt","Harvest SHORTCUT markers from the codebase and report them grouped by file, flagging any missing upgrade paths.","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fponytail-debt\u002FSKILL.md",[],[114,115,116,117,118,119,120,121,20,122,123],"ponytail","ponytail debt","missing","harvest","upgrade","file","report","markers","shortcut","paths",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":87,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":38},"01M6GKE8R93K0Z9XCM0MVCMS82","humanify","Repair an inherited or human-blocked ticket for agent implementation, or finish its explicit human-only outcome.","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fhumanify\u002FSKILL.md",[],[126,20,131,132,133,25,134,135,136,137],"ticket","agent implementation","repair","implementation","finish","only","outcome",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":87,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":38},"01M6GKDQYP2QQZCVE34AAJW7KC","fix-pr","Repair an existing pull request's review findings and target-branch conflicts, verify the result, and update the same open PR.","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Ffix-pr\u002FSKILL.md",[],[145,146,147,148,149,150,151,20,152,153,133,154,155,156,157,158,159,160,161,162],"fix pr","fix","pr","review","testing","tdd","open","merge-conflicts","review findings","conflicts","discipline","branch","verify","pull","update","pull request","merge","workflow",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":38},"01M6GKDMR2V617S1V8APDT4R2B","feature-milestones","Reconstruct a fragmented backlog as finishable feature milestones with explicit delivery boundaries and an approval-gated tracker update.","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Ffeature-milestones\u002FSKILL.md",[],[170,171,172,20,173,174,175,176,177,178,159],"feature milestones","feature","backlog","with","as","delivery","gated","tracker","approval",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":185,"publishedAt":38},"01M6GKD73X16TSCBM5Q42Y7G52","council","Use when the user wants a high-stakes decision debated by independent perspectives and synthesized into a verdict — five advisors (Contrarian, First Principles, Expansionist, Outsider, Executor) answer independently, peer-review anonymously, then a chairman synthesizes. Triggers on: \"council this\", \"convene the council\", \"run a council on\", \"rerun the council\", \"I want the council to debate this\", \"five independent perspectives\", \"have advisors weigh in and peer-review each other\".","https:\u002F\u002Fgithub.com\u002Fdekoza\u002Foh-my-slop\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow\u002Fcouncil\u002FSKILL.md",[],[181,186,187,188,148,189,190,191,192,193,194,195,196,197,198,199],"decision","perspectives","user","run","use","first","triggers","executor","answer","principles","verdict","peer","debate","first principles"]