[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71S7YC3KXMPE9G826DABHB2":3,"skill-same:01M71S7YC3KXMPE9G826DABHB2":74},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M71S7YC3KXMPE9G826DABHB2","ci-routing",null,"The canonical route-on-verdict protocol for a red CI diagnosis — fixable\u002Fflake\u002Finfra\u002Fneeds-debug handling, the single-render rule, and the fix-then-re-watch loop","HigorAlves\u002Forc","HigorAlves","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F11262976?v=4","01M71S79EZEMHZ8PQSV0XQJHYY","Higor Alves","01M71S79FKKTCHCN1EDR8DSTWQ",7,"MIT","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fci-routing\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"routing","ci routing","ci","infra","returns","watch","canonical","flow","investigator","diagnosis","route","phase","needs","loop","open","fix","render","delegate","re","flake","2026-11-10 13:02:02",false,"---\nname: ci-routing\ndescription: The canonical route-on-verdict protocol for a red CI diagnosis — fixable\u002Fflake\u002Finfra\u002Fneeds-debug handling, the single-render rule, and the fix-then-re-watch loop\nwhen_to_use: Use after orc-ci-investigator returns; $orc-ci Phase 3 and $orc-flow's post-open CI gate delegate here.\n---\n\n# CI Routing\n\nThe single source of truth for acting on an `orc-ci-investigator` diagnosis — `$orc-ci` and `$orc-flow`'s post-open CI gate both execute this protocol instead of restating it. Input: the diagnosis (verdict + evidence table + fix list), already saved verbatim to `${ORC_STATE_DIR}\u002F\u003Cbranch>\u002Ffiles\u002Fci-diagnosis.md`.\n\n**Single-render rule:** the diagnosis is saved via `Write` — never echoed wholesale into conversation. It gets ONE capped rendering: the fix list + one evidence line per root cause + the file path. Every later step references the saved file; quotes are capped at 3 evidence lines.\n\n## `green`\n\nSay so — one line, run ID cited. Mark the session step complete and stop.\n\n## `fixable`\n\nRender the one preview (`> **📋 Preview — CI fix list**`: N root causes across M jobs, then the numbered `\u003Cfile>:\u003Cline> — \u003Cchange> — clears \u003Cjob>` list), then `the available user-question tool (or ask in chat)` — **one call, two questions** (the landing decision is collected up front, so a green fixer report lands without a second stop):\n\n1. **Apply the fix list?** — Apply (dispatch `orc-code-fixer` with the fix list + diagnosis path; it applies edits, runs tests, returns a diff + test summary) \u002F Edit the list first \u002F This needs real debugging (jump to `needs-debug`) \u002F Abort.\n2. **After a green fixer report, land it how?** (ignored unless the fixer ran and came back green) — Commit + push + re-watch (Recommended: `orc-git-commit`, `git push`, re-watch the run until it concludes) \u002F Commit only \u002F Show me the diff first.\n\nRed fixer report → discard the landing answer and return the new evidence to the investigator (it sees the failed attempt) — or offer the `needs-debug` hand-off. Loop until green or the user explicitly advances with red CI (logged to the digest).\n\n## `flake`\n\nQuote up to 3 run-history evidence lines proving intermittency, then `the available user-question tool (or ask in chat)`: Re-run failed jobs (`gh run rerun \u003Cid> --failed`, then watch) \u002F Re-run everything \u002F Not convinced — treat as fixable or needs-debug \u002F Skip.\n\n## `infra`\n\nNo code changes to make. Surface the diagnosis path + the agent's recommendation (pin the action version, report to the platform team, wait out the outage) with its capped evidence. Offer a re-run only when the agent recommended one.\n\n## `needs-debug`\n\nThe failure needs root-cause work beyond the diff:\n\n```markdown\n> **➡️ Next**\n>\n> Genuine regression — run `$orc-debug` seeded with the CI diagnosis at `.orc\u002F\u003Cbranch>\u002Ffiles\u002Fci-diagnosis.md`.\n```\n\n`the available user-question tool (or ask in chat)`: Start `$orc-debug` now (diagnosis pre-seeded as the bug description — its investigator starts from the CI evidence instead of zero) \u002F I'll run it later \u002F Abort.\n\n## Iron rules\n\n- **No fix without the investigator's diagnosis.** The fixer only ever receives an evidence-cited fix list — never \"CI is red, go fix it\".\n- **Re-runs are gated.** `gh run rerun` only after the flake evidence is shown and the user confirms.\n- **Never `git push --force`** — a red pipeline is not a license for history rewrites.\n","# CI Routing\n\nThe single source of truth for acting on an `orc-ci-investigator` diagnosis — `$orc-ci` and `$orc-flow`'s post-open CI gate both execute this protocol instead of restating it. Input: the diagnosis (verdict + evidence table + fix list), already saved verbatim to `${ORC_STATE_DIR}\u002F\u003Cbranch>\u002Ffiles\u002Fci-diagnosis.md`.\n\n**Single-render rule:** the diagnosis is saved via `Write` — never echoed wholesale into conversation. It gets ONE capped rendering: the fix list + one evidence line per root cause + the file path. Every later step references the saved file; quotes are capped at 3 evidence lines.\n\n## `green`\n\nSay so — one line, run ID cited. Mark the session step complete and stop.\n\n## `fixable`\n\nRender the one preview (`> **📋 Preview — CI fix list**`: N root causes across M jobs, then the numbered `\u003Cfile>:\u003Cline> — \u003Cchange> — clears \u003Cjob>` list), then `the available user-question tool (or ask in chat)` — **one call, two questions** (the landing decision is collected up front, so a green fixer report lands without a second stop):\n\n1. **Apply the fix list?** — Apply (dispatch `orc-code-fixer` with the fix list + diagnosis path; it applies edits, runs tests, returns a diff + test summary) \u002F Edit the list first \u002F This needs real debugging (jump to `needs-debug`) \u002F Abort.\n2. **After a green fixer report, land it how?** (ignored unless the fixer ran and came back green) — Commit + push + re-watch (Recommended: `orc-git-commit`, `git push`, re-watch the run until it concludes) \u002F Commit only \u002F Show me the diff first.\n\nRed fixer report → discard the landing answer and return the new evidence to the investigator (it sees the failed attempt) — or offer the `needs-debug` hand-off. Loop until green or the user explicitly advances with red CI (logged to the digest).\n\n## `flake`\n\nQuote up to 3 run-history evidence lines proving intermittency, then `the available user-question tool (or ask in chat)`: Re-run failed jobs (`gh run rerun \u003Cid> --failed`, then watch) \u002F Re-run everything \u002F Not convinced — treat as fixable or needs-debug \u002F Skip.\n\n## `infra`\n\nNo code changes to make. Surface the diagnosis path + the agent's recommendation (pin the action version, report to the platform team, wait out the outage) with its capped evidence. Offer a re-run only when the agent recommended one.\n\n## `needs-debug`\n\nThe failure needs root-cause work beyond the diff:\n\n```markdown\n> **➡️ Next**\n>\n> Genuine regression — run `$orc-debug` seeded with the CI diagnosis at `.orc\u002F\u003Cbranch>\u002Ffiles\u002Fci-diagnosis.md`.\n```\n\n`the available user-question tool (or ask in chat)`: Start `$orc-debug` now (diagnosis pre-seeded as the bug description — its investigator starts from the CI evidence instead of zero) \u002F I'll run it later \u002F Abort.\n\n## Iron rules\n\n- **No fix without the investigator's diagnosis.** The fixer only ever receives an evidence-cited fix list — never \"CI is red, go fix it\".\n- **Re-runs are gated.** `gh run rerun` only after the flake evidence is shown and the user confirms.\n- **Never `git push --force`** — a red pipeline is not a license for history rewrites.\n",{"name":5,"description":7,"when_to_use":49},"Use after orc-ci-investigator returns; $orc-ci Phase 3 and $orc-flow's post-open CI gate delegate here.","main","7522fd7266944e30052204c2f6df287d8b5516be","codex\u002Forc\u002Fcontent\u002Fskills\u002Fci-routing",0,"https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc","https:\u002F\u002Forc.novacstack.com\u002F","https:\u002F\u002Fgithub.com\u002FHigorAlves","higoralves.dev","Software Engineering","2026-11-07 07:26:38",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add HigorAlves\u002Forc --skill ci-routing",{"tool":66,"command":67},"bunx","bunx skills add HigorAlves\u002Forc --skill ci-routing",{"tool":69,"command":70},"pnpm","pnpm dlx skills add HigorAlves\u002Forc --skill ci-routing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Fcodex\u002Forc\u002Fcontent\u002Fskills\u002Fci-routing\u002FSKILL.md",true,[],[75,111,137,158,180,199],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":90,"publishedAt":44},"01M71SW40F9TAAEDKBYYBCM814","writing-plans","Write a comprehensive implementation plan of bite-sized TDD tasks that an engineer with zero codebase context could execute — exact files, code, tests, and verification steps","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[81,86,87],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110],"writing","writing plans","plans","engineer","superpowers","implementation plan","files","when","you","code","tasks","verification","plan","write","steps","context","ZeRO","for","tests","use",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":122,"publishedAt":44},"01M71SW15KHE4MHJW9NEXV65X2","writing-for-agents","orc's doctrine layer for writing any document an agent consumes — skills, AGENTS.md\u002FCLAUDE.md, reference docs","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[117,118,121],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":119,"categoryName":120,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},[123,91,108,124,98,125,126,127,128,129,130,131,110,132,133,134,135,136],"writing for agents","matt pocock","inline","tuning","a skill","layer","doctrine","push","editing","document","github","https","reference","docs",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":44},"01M71SVYQKXT743HHHWGHT3G13","workspace-mode","Use when cwd is a parent dir holding multiple sibling git repos — defines repo auto-detection, --repos\u002F--repo\u002F--all-repos\u002F--this-repo precedence, per-repo dispatch, and linked-PR mechanics.","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fworkspace-mode\u002FSKILL.md",[143],{"categoryNo":119,"categoryName":120,"taxonomyType":84,"taxonomyTypeDesc":85},[145,146,147,148,149,98,150,151,152,153,110,154,155,156,157],"workspace mode","mode","workspace","mechanics","auto","repos","git","pr","repo","dispatch","auto-detection","detection","parent",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":44},"01M71SVVP3BXS06G9395P2K0RH","wizard","Generate an interactive bash wizard walking a human through work only they can perform — credentials, secrets, one-off migrations","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwizard\u002FSKILL.md",[164],{"categoryNo":119,"categoryName":120,"taxonomyType":84,"taxonomyTypeDesc":85},[160,166,167,168,169,124,98,170,171,172,173,174,175,105,176,177,108,110,178,179],"condition","never","provisioning infrastructure","only","Bash","work","credentials","generate","human","secrets","infrastructure","do","one","interactive",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":186,"publishedAt":44},"01M71SVT4AR6NKAM5B077E7QSJ","wait-what","Stop and re-pitch — the last message did not land; say it again simply, in the project's own vocabulary.","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[187,188,189,42,190,124,191,192,193,194,133,134,195,196,197,198],"wait what","wait","project","true","pitch","last","say","message","land","it","stop","vocabulary",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":209,"publishedAt":44},"01M71SVQVYRA9QBQ6G8MWR8G6F","vitest","Vitest fast unit testing framework powered by Vite with Jest-compatible API","https:\u002F\u002Fgithub.com\u002FHigorAlves\u002Forc\u002Fblob\u002Fmain\u002Forc\u002Fskills\u002Fvitest\u002FSKILL.md",[205,208],{"categoryNo":206,"categoryName":207,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[201,210,211,212,213,214,91,98,215,216,217,218,219,220,221,222,223,224,109,225],"coverage","unit","testing","testing framework","generated","api","jest","2026","at","scripts","unit testing","antfu","framework","vite","mocking","dev"]