[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XDE6YMVMXCPM5JSYD5WWG7":3,"skill-same:01M6XDE6YMVMXCPM5JSYD5WWG7":81},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":14,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":52,"updatedAt":53,"install":54,"resources":66},"01M6XDE6YMVMXCPM5JSYD5WWG7","rollback-prod",null,"Roll back the most recent production release across configured deploy targets after an explicit typed confirmation. Use only when the user directly invokes \u002Frollback-prod during incident response or release recovery.","kaiohenricunha\u002Fdotbabel","kaiohenricunha","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F69804490?v=4","01M6XCZD37W0KPCDGEA40Y610V","Kaio Cunha","01M6XCZD7SX714D114H3ZPNW09",0,"MIT","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fplugins\u002Fdotbabel\u002Ftemplates\u002Fclaude\u002Fskills\u002Frollback-prod\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"rollback prod","rollback","only","when","dry-run","true","targets","dry","across","incident","back","incident response","use","confirmation","recovery","Production","release","run","deploy","release recovery","2026-11-10 10:12:30",false,"---\n# dotbabel:generated projection=sha256:ba2c8364c15aba7e68467fd85ed8c896cf8de93c5dafc08ac473345b99f1b3d3 source=skills\u002Frollback-prod\u002FSKILL.md — do not edit directly\nargument-hint: \"[--dry-run]\"\ndescription: |\n  Roll back the most recent production release across configured deploy targets after an explicit typed confirmation. Use only when the user directly invokes \u002Frollback-prod during incident response or release recovery.\ndisable-model-invocation: true\nname: rollback-prod\nuser-invocable: true\n---\n\n# Rollback Prod\n\nRoll back production deploy targets to their previous releases using each\nprovider's native rollback primitive.\n\n## Workflow\n\n1. Resolve the shared deploy helper:\n\n   ```bash\n   if [ -f \"$HOME\u002F.claude\u002Fskills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\" ]; then\n     DEPLOY_OPS=\"$HOME\u002F.claude\u002Fskills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\"\n   elif [ -f \"skills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\" ]; then\n     DEPLOY_OPS=\"skills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\"\n   else\n     echo \"rollback-prod helper not found; re-run dotbabel bootstrap or dotbabel init\" >&2\n     exit 2\n   fi\n   ```\n\n2. Run the rollback planner\u002Fexecutor from the consuming project root:\n\n   ```bash\n   node \"$DEPLOY_OPS\" rollback $ARGUMENTS\n   ```\n\n3. Preserve the helper's exit code:\n   - `0` - rollback ran and post-rollback status is in sync\n   - `1` - confirmation declined or post-rollback deploy status reports drift\n   - `2` - discovery, auth, release lookup, or rollback execution failed\n\n## Confirmation Contract\n\nThe helper always prints the rollback plan first. Unless `--dry-run` is present,\nit must require the operator to type exactly:\n\n```text\nROLLBACK PROD\n```\n\nNo `--yes`, environment variable, autonomous mode, or model routing decision may\nbypass this confirmation. Provider CLIs may receive their own non-interactive\nflags only after this confirmation succeeds.\n\n## Target Ordering\n\nThe helper uses the same target discovery as `\u002Fdeploy-status`. If\n`.claude\u002Fdeploy-targets.json` contains `rollback_order`, targets matching each\nentry are serialized in that order and targets in the same group run in\nparallel. Example:\n\n```json\n{\n  \"rollback_order\": [\"fly\", \"vercel\"]\n}\n```\n\nThis rolls backend targets back before frontend targets.\n\n## Provider References\n\nLoad only the provider notes that match discovered targets:\n\n| Provider    | Reference                   |\n| ----------- | --------------------------- |\n| Vercel      | `references\u002Fvercel.md`      |\n| Fly.io      | `references\u002Ffly.md`         |\n| AWS Amplify | `references\u002Faws-amplify.md` |\n\n## Rules\n\n- Never run rollback actions without typed confirmation.\n- If any target cannot produce both current and previous releases, run no\n  rollback actions and exit `2`.\n- If one target fails during rollback, report the partial state clearly and do\n  not auto-revert targets that already succeeded.\n- After attempted rollback actions, run deploy status automatically and print\n  the new state.\n","# Rollback Prod\n\nRoll back production deploy targets to their previous releases using each\nprovider's native rollback primitive.\n\n## Workflow\n\n1. Resolve the shared deploy helper:\n\n   ```bash\n   if [ -f \"$HOME\u002F.claude\u002Fskills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\" ]; then\n     DEPLOY_OPS=\"$HOME\u002F.claude\u002Fskills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\"\n   elif [ -f \"skills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\" ]; then\n     DEPLOY_OPS=\"skills\u002Fdeploy-status\u002Fscripts\u002Fdeploy-ops.mjs\"\n   else\n     echo \"rollback-prod helper not found; re-run dotbabel bootstrap or dotbabel init\" >&2\n     exit 2\n   fi\n   ```\n\n2. Run the rollback planner\u002Fexecutor from the consuming project root:\n\n   ```bash\n   node \"$DEPLOY_OPS\" rollback $ARGUMENTS\n   ```\n\n3. Preserve the helper's exit code:\n   - `0` - rollback ran and post-rollback status is in sync\n   - `1` - confirmation declined or post-rollback deploy status reports drift\n   - `2` - discovery, auth, release lookup, or rollback execution failed\n\n## Confirmation Contract\n\nThe helper always prints the rollback plan first. Unless `--dry-run` is present,\nit must require the operator to type exactly:\n\n```text\nROLLBACK PROD\n```\n\nNo `--yes`, environment variable, autonomous mode, or model routing decision may\nbypass this confirmation. Provider CLIs may receive their own non-interactive\nflags only after this confirmation succeeds.\n\n## Target Ordering\n\nThe helper uses the same target discovery as `\u002Fdeploy-status`. If\n`.claude\u002Fdeploy-targets.json` contains `rollback_order`, targets matching each\nentry are serialized in that order and targets in the same group run in\nparallel. Example:\n\n```json\n{\n  \"rollback_order\": [\"fly\", \"vercel\"]\n}\n```\n\nThis rolls backend targets back before frontend targets.\n\n## Provider References\n\nLoad only the provider notes that match discovered targets:\n\n| Provider    | Reference                   |\n| ----------- | --------------------------- |\n| Vercel      | `references\u002Fvercel.md`      |\n| Fly.io      | `references\u002Ffly.md`         |\n| AWS Amplify | `references\u002Faws-amplify.md` |\n\n## Rules\n\n- Never run rollback actions without typed confirmation.\n- If any target cannot produce both current and previous releases, run no\n  rollback actions and exit `2`.\n- If one target fails during rollback, report the partial state clearly and do\n  not auto-revert targets that already succeeded.\n- After attempted rollback actions, run deploy status automatically and print\n  the new state.\n",{"name":5,"description":44,"argument-hint":45,"user-invocable":46,"disable-model-invocation":46},"Roll back the most recent production release across configured deploy targets after an explicit typed confirmation. Use only when the user directly invokes \u002Frollback-prod during incident response or release recovery.\n","[--dry-run]",true,"main","91c337164997b99943fbcc64e8e362577b67bc81","plugins\u002Fdotbabel\u002Ftemplates\u002Fclaude\u002Fskills\u002Frollback-prod","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha","I'm a Platform\u002FInfra engineer who happens to work in cybersec and write Go code.","2026-10-26 14:12:51",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":46},[56,59,62],{"tool":57,"command":58},"npx","npx skills add kaiohenricunha\u002Fdotbabel --skill rollback-prod",{"tool":60,"command":61},"bunx","bunx skills add kaiohenricunha\u002Fdotbabel --skill rollback-prod",{"tool":63,"command":64},"pnpm","pnpm dlx skills add kaiohenricunha\u002Fdotbabel --skill rollback-prod","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fplugins\u002Fdotbabel\u002Ftemplates\u002Fclaude\u002Fskills\u002Frollback-prod\u002FSKILL.md",[67,73,77],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Faws-amplify.md","REFERENCE","参考文档",518,"https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fplugins\u002Fdotbabel\u002Ftemplates\u002Fclaude\u002Fskills\u002Frollback-prod\u002Freferences\u002Faws-amplify.md",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Ffly.md",1122,"https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fplugins\u002Fdotbabel\u002Ftemplates\u002Fclaude\u002Fskills\u002Frollback-prod\u002Freferences\u002Ffly.md",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002Fvercel.md",755,"https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fplugins\u002Fdotbabel\u002Ftemplates\u002Fclaude\u002Fskills\u002Frollback-prod\u002Freferences\u002Fvercel.md",[82,112,144,165,186,209],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":93,"publishedAt":39},"01M6XDQ7QMASPFZ355MYKCD06T","yolo","Start temporary autonomy for the current task or an explicit scope with a required --for expiry. Codex permits scoped pushes, merges, deploys, and releases after strict testing and validation; Full access is a separate runtime setting. Claude Code uses a session permission hook with a protected-action denylist.","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fskills\u002Fyolo\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[84,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,24,109,110,111],"testing","merge","code","start","access","session","ops","autonomy","releases","permission","full","runtime","scope","devex","hook","action","for","scoped",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":126,"publishedAt":39},"01M6XDQ1N21VE4KH98JWGZ7GN9","veracity-audit","Audit a data pipeline for Veracity and Value. Dispatches data-scientist, compliance-auditor, and data-engineer agents with project context injected at dispatch time. All source paths are supplied via flags — no defaults, no project assumptions. Subcommands: audit (full pipeline walk), score-check (scoring math only), gate-check (gate coverage only), source-trace \u003Clabel> (single source end-to-end). Invoke when: \"audit pipeline\", \"veracity check\", \"scoring math correct?\", \"check gates\", \"trace source\", \"verify quality gates\", \"formula correct?\".","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fskills\u002Fveracity-audit\u002FSKILL.md",[118,123],{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":124,"categoryName":125,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000037","律师与法务",[127,128,94,129,130,131,132,133,134,21,135,136,137,138,139,140,141,142,143,22],"audit","veracity audit","review","data pipeline","pipeline","Bash","math","coverage","engineer","formula","scoring","time","project","worker","end","at","invoke",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":150,"publishedAt":39},"01M6XDPVDKBR376C06CEK9BC5S","validate-spec","Audit an already-implemented spec against the codebase. Walks each constraint (ARCH-N, PERF-N, KD-N, etc.) and acceptance criterion, grounds findings in file:line evidence, runs the spec.json acceptance_commands, and writes a single audit doc to docs\u002Faudits\u002F. Use whenever the user asks to \"validate a spec\", \"audit a spec\", \"check if spec is implemented\", \"verify the spec is done\", \"is this spec really done\", or otherwise wants closure on spec-driven work. Read-only against the spec — produces an audit, never modifies the spec itself.","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fskills\u002Fvalidate-spec\u002FSKILL.md",[],[151,152,153,94,129,36,154,127,132,155,156,157,21,158,159,160,161,162,163,164],"spec","validate","validate spec","acceptance","work","read","never","max","done","arch","line","2025","spec-driven","closure",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":174,"publishedAt":39},"01M6XDPMMECH82RAW553Y94HDS","terragrunt-specialist","Deep-dive Terragrunt hierarchy review, DRY pattern audits, and run-all orchestration analysis. Use for structured investigations of multi-environment Terragrunt layouts, dependency graphs, remote state config, and hook correctness. Triggers on: \"Terragrunt audit\", \"run-all review\", \"dependency block\", \"DRY pattern review\", \"env hierarchy audit\", \"mock_outputs\", \"terragrunt hooks\".","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fskills\u002Fterragrunt-specialist\u002FSKILL.md",[171],{"categoryNo":172,"categoryName":173,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000011","运维与部署",[175,176,177,129,178,179,36,127,180,132,156,181,182,158,183,26,162,184,142,185],"terragrunt","specialist","terragrunt specialist","orchestration","debugging","analysis","dependency","hooks","deep","remote","hierarchy",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":199,"publishedAt":39},"01M6XDPFJS2HGSE13RXF1HV8S7","terraform-specialist","Deep-dive Terraform architecture review, module design, state management, and migration. Use for structured investigations of Terraform workspaces, provider configuration, module coupling, import workflows, and test coverage. Triggers on: \"Terraform audit\", \"module review\", \"state management\", \"Terraform import\", \"workspace design\", \"provider config review\", \"Terraform testing\".","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fskills\u002Fterraform-specialist\u002FSKILL.md",[192,195,196],{"categoryNo":193,"categoryName":194,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":172,"categoryName":173,"taxonomyType":121,"taxonomyTypeDesc":122},{"categoryNo":197,"categoryName":198,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000015","视觉设计",[200,201,176,94,202,129,203,204,205,179,127,132,156,134,206,207,183,208,162,142],"terraform","terraform specialist","design","workflows","architecture","architecture review","test coverage","workspaces","problem",{"skillNo":210,"name":151,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":218,"publishedAt":39},"01M6XDP7V6H8WYPSXVEKYE6HJ6","Create structured engineering specs through interactive pairing. Use when the user wants to create a spec, design doc, technical specification, architecture document, RFC, or engineering plan. Triggers on \"let's spec this out\", \"create a spec\", \"design doc\", \"write a technical plan\", \"plan the architecture\". Works for greenfield and brownfield projects. Outputs to docs\u002Fspecs\u002F.","https:\u002F\u002Fgithub.com\u002Fkaiohenricunha\u002Fdotbabel\u002Fblob\u002Fmain\u002Fskills\u002Fspec\u002FSKILL.md",[214,215],{"categoryNo":197,"categoryName":198,"taxonomyType":121,"taxonomyTypeDesc":122},{"categoryNo":216,"categoryName":217,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000032","设计师",[151,202,219,204,220,221,222,223,224,31,225,226,227,228,229,110,230,231,232,233],"component","create","plan","projects","write","interactive","document","specification","triggers","opus","technical specification","trade-offs","technical plan","outputs","frontier"]