@azure-id/orc 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/CHANGELOG.md +2017 -0
  2. package/README-id.md +521 -0
  3. package/README.md +485 -0
  4. package/bin/build-agents.js +86 -0
  5. package/bin/cli.js +29050 -0
  6. package/bin/mockrun-catalog.js +267 -0
  7. package/bin/onboarding-content.js +172 -0
  8. package/bin/pricing.json +200 -0
  9. package/bin/providers.json +437 -0
  10. package/bin/ui.js +95 -0
  11. package/bin/verify-contracts.js +3277 -0
  12. package/bin/verify-package.js +498 -0
  13. package/bin/webui/api.js +1163 -0
  14. package/bin/webui/app.html +198 -0
  15. package/bin/webui/css/00-tokens.css +92 -0
  16. package/bin/webui/css/01-base.css +42 -0
  17. package/bin/webui/css/02-shell.css +103 -0
  18. package/bin/webui/css/03-components.css +462 -0
  19. package/bin/webui/css/04-motion.css +91 -0
  20. package/bin/webui/css/05-tour.css +100 -0
  21. package/bin/webui/css/06-responsive.css +108 -0
  22. package/bin/webui/css/panels/boundary.css +26 -0
  23. package/bin/webui/css/panels/challenge.css +151 -0
  24. package/bin/webui/css/panels/crosslink.css +194 -0
  25. package/bin/webui/css/panels/docs.css +254 -0
  26. package/bin/webui/css/panels/experiment.css +23 -0
  27. package/bin/webui/css/panels/extra.css +536 -0
  28. package/bin/webui/css/panels/flow.css +177 -0
  29. package/bin/webui/css/panels/handoff.css +67 -0
  30. package/bin/webui/css/panels/knowledge.css +86 -0
  31. package/bin/webui/css/panels/learn.css +154 -0
  32. package/bin/webui/css/panels/maintenance.css +55 -0
  33. package/bin/webui/css/panels/mockrun.css +268 -0
  34. package/bin/webui/css/panels/overview.css +100 -0
  35. package/bin/webui/css/panels/pact.css +43 -0
  36. package/bin/webui/css/panels/runs.css +105 -0
  37. package/bin/webui/css/panels/settings.css +227 -0
  38. package/bin/webui/css/panels/stats.css +87 -0
  39. package/bin/webui/fixtures/boundary.js +92 -0
  40. package/bin/webui/fixtures/challenge.js +825 -0
  41. package/bin/webui/fixtures/crosslink.js +31 -0
  42. package/bin/webui/fixtures/docs.js +982 -0
  43. package/bin/webui/fixtures/extra.js +1934 -0
  44. package/bin/webui/fixtures/flow.js +81 -0
  45. package/bin/webui/fixtures/handoff.js +35 -0
  46. package/bin/webui/fixtures/index.js +486 -0
  47. package/bin/webui/fixtures/knowledge.js +291 -0
  48. package/bin/webui/fixtures/maintenance.js +42 -0
  49. package/bin/webui/fixtures/mockrun.js +36 -0
  50. package/bin/webui/fixtures/pact.js +111 -0
  51. package/bin/webui/fixtures/runs.js +109 -0
  52. package/bin/webui/fixtures/settings.js +78 -0
  53. package/bin/webui/fixtures/shell.js +48 -0
  54. package/bin/webui/fixtures/stats.js +104 -0
  55. package/bin/webui/i18n/TERMS.md +134 -0
  56. package/bin/webui/i18n/en/banner.json +29 -0
  57. package/bin/webui/i18n/en/boundary.json +20 -0
  58. package/bin/webui/i18n/en/challenge.json +106 -0
  59. package/bin/webui/i18n/en/common.json +69 -0
  60. package/bin/webui/i18n/en/crosslink.json +69 -0
  61. package/bin/webui/i18n/en/docs.json +175 -0
  62. package/bin/webui/i18n/en/experiment.json +17 -0
  63. package/bin/webui/i18n/en/extra.json +313 -0
  64. package/bin/webui/i18n/en/flow.json +30 -0
  65. package/bin/webui/i18n/en/handoff.json +37 -0
  66. package/bin/webui/i18n/en/knowledge.json +141 -0
  67. package/bin/webui/i18n/en/learn.json +16 -0
  68. package/bin/webui/i18n/en/maintenance.json +52 -0
  69. package/bin/webui/i18n/en/mockrun.json +19 -0
  70. package/bin/webui/i18n/en/nav.json +19 -0
  71. package/bin/webui/i18n/en/overview.json +89 -0
  72. package/bin/webui/i18n/en/pact.json +36 -0
  73. package/bin/webui/i18n/en/runs.json +51 -0
  74. package/bin/webui/i18n/en/settings.json +49 -0
  75. package/bin/webui/i18n/en/stats.json +69 -0
  76. package/bin/webui/i18n/en/tour.json +33 -0
  77. package/bin/webui/i18n/id/banner.json +29 -0
  78. package/bin/webui/i18n/id/boundary.json +20 -0
  79. package/bin/webui/i18n/id/challenge.json +106 -0
  80. package/bin/webui/i18n/id/common.json +70 -0
  81. package/bin/webui/i18n/id/crosslink.json +69 -0
  82. package/bin/webui/i18n/id/docs.json +175 -0
  83. package/bin/webui/i18n/id/experiment.json +17 -0
  84. package/bin/webui/i18n/id/extra.json +313 -0
  85. package/bin/webui/i18n/id/flow.json +30 -0
  86. package/bin/webui/i18n/id/handoff.json +37 -0
  87. package/bin/webui/i18n/id/knowledge.json +141 -0
  88. package/bin/webui/i18n/id/learn.json +16 -0
  89. package/bin/webui/i18n/id/maintenance.json +52 -0
  90. package/bin/webui/i18n/id/mockrun.json +19 -0
  91. package/bin/webui/i18n/id/nav.json +19 -0
  92. package/bin/webui/i18n/id/overview.json +89 -0
  93. package/bin/webui/i18n/id/pact.json +36 -0
  94. package/bin/webui/i18n/id/runs.json +51 -0
  95. package/bin/webui/i18n/id/settings.json +49 -0
  96. package/bin/webui/i18n/id/stats.json +69 -0
  97. package/bin/webui/i18n/id/tour.json +33 -0
  98. package/bin/webui/js/00-core.js +115 -0
  99. package/bin/webui/js/01-i18n.js +149 -0
  100. package/bin/webui/js/02-ui.js +211 -0
  101. package/bin/webui/js/03-md.js +286 -0
  102. package/bin/webui/js/04-router.js +51 -0
  103. package/bin/webui/js/05-banners.js +172 -0
  104. package/bin/webui/js/06-edit.js +183 -0
  105. package/bin/webui/js/90-tour.js +488 -0
  106. package/bin/webui/js/91-shortcuts.js +126 -0
  107. package/bin/webui/js/99-boot.js +118 -0
  108. package/bin/webui/js/panels/boundary.js +104 -0
  109. package/bin/webui/js/panels/challenge.js +781 -0
  110. package/bin/webui/js/panels/crosslink.js +654 -0
  111. package/bin/webui/js/panels/docs.js +1338 -0
  112. package/bin/webui/js/panels/experiment.js +98 -0
  113. package/bin/webui/js/panels/extra.js +3011 -0
  114. package/bin/webui/js/panels/flow.js +297 -0
  115. package/bin/webui/js/panels/handoff.js +169 -0
  116. package/bin/webui/js/panels/knowledge.js +890 -0
  117. package/bin/webui/js/panels/learn.js +220 -0
  118. package/bin/webui/js/panels/maintenance.js +235 -0
  119. package/bin/webui/js/panels/mockrun.js +227 -0
  120. package/bin/webui/js/panels/overview.js +447 -0
  121. package/bin/webui/js/panels/pact.js +189 -0
  122. package/bin/webui/js/panels/runs.js +416 -0
  123. package/bin/webui/js/panels/settings.js +573 -0
  124. package/bin/webui/js/panels/stats.js +378 -0
  125. package/bin/webui/serve.js +557 -0
  126. package/mock-run/INDEX.md +106 -0
  127. package/mock-run/a-normal-day.md +587 -0
  128. package/mock-run/context-combiner.md +100 -0
  129. package/mock-run/extra-recovery.md +330 -0
  130. package/mock-run/extra-slots.md +177 -0
  131. package/mock-run/media/README.md +43 -0
  132. package/mock-run/orc-aftermath.md +392 -0
  133. package/mock-run/orc-boundary.md +356 -0
  134. package/mock-run/orc-brainstorm.md +177 -0
  135. package/mock-run/orc-budget.md +534 -0
  136. package/mock-run/orc-challenge-council.md +262 -0
  137. package/mock-run/orc-challenge.md +416 -0
  138. package/mock-run/orc-cli.md +200 -0
  139. package/mock-run/orc-diy.md +129 -0
  140. package/mock-run/orc-doc.md +448 -0
  141. package/mock-run/orc-explain.md +86 -0
  142. package/mock-run/orc-export.md +423 -0
  143. package/mock-run/orc-extra.md +392 -0
  144. package/mock-run/orc-fast.md +106 -0
  145. package/mock-run/orc-grill.md +151 -0
  146. package/mock-run/orc-handoff.md +480 -0
  147. package/mock-run/orc-pact.md +421 -0
  148. package/mock-run/orc-pattern.md +112 -0
  149. package/mock-run/orc-plan.md +108 -0
  150. package/mock-run/orc-pr-setup.md +126 -0
  151. package/mock-run/orc-quick.md +113 -0
  152. package/mock-run/orc-route.md +93 -0
  153. package/mock-run/orc-ui.md +125 -0
  154. package/mock-run/orc-ultra.md +103 -0
  155. package/mock-run/orc.md +157 -0
  156. package/mock-run/the-example-project.md +55 -0
  157. package/package.json +39 -0
  158. package/templates/agents/MODEL-MAPPING.md +168 -0
  159. package/templates/agents/orc-advisor-fable-5.md +50 -0
  160. package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -0
  161. package/templates/agents/orc-analyst-fable-5.md +115 -0
  162. package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -0
  163. package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -0
  164. package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -0
  165. package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -0
  166. package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -0
  167. package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -0
  168. package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -0
  169. package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -0
  170. package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -0
  171. package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -0
  172. package/templates/agents/orc-claude-writer-opus-4-8-high.md +53 -0
  173. package/templates/agents/orc-claude-writer-opus-5-med.md +55 -0
  174. package/templates/agents/orc-context-combiner-opus-5-high.md +88 -0
  175. package/templates/agents/orc-doc-checker-opus-5-low.md +108 -0
  176. package/templates/agents/orc-doc-writer-opus-5-med.md +134 -0
  177. package/templates/agents/orc-executor-haiku-4-5.md +113 -0
  178. package/templates/agents/orc-executor-opus-4-7-high.md +114 -0
  179. package/templates/agents/orc-executor-opus-4-7-med.md +114 -0
  180. package/templates/agents/orc-executor-opus-4-8-high.md +114 -0
  181. package/templates/agents/orc-executor-opus-5-high.md +114 -0
  182. package/templates/agents/orc-executor-opus-5-low.md +114 -0
  183. package/templates/agents/orc-executor-opus-5-med.md +114 -0
  184. package/templates/agents/orc-executor-sonnet-4-6-high.md +114 -0
  185. package/templates/agents/orc-executor-sonnet-4-6-med.md +114 -0
  186. package/templates/agents/orc-executor-sonnet-5-high.md +114 -0
  187. package/templates/agents/orc-judge-fable-5.md +79 -0
  188. package/templates/agents/orc-judge-opus-5-xhigh.md +85 -0
  189. package/templates/agents/orc-learn-writer-opus-5-low.md +73 -0
  190. package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -0
  191. package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +63 -0
  192. package/templates/agents/orc-planner-fable-5.md +152 -0
  193. package/templates/agents/orc-planner-mini-opus-5-med.md +69 -0
  194. package/templates/agents/orc-planner-mini-sonnet-5-high.md +67 -0
  195. package/templates/agents/orc-planner-opus-5-med.md +160 -0
  196. package/templates/agents/orc-retro-opus-5-med.md +73 -0
  197. package/templates/agents/orc-retro-sonnet-5-high.md +72 -0
  198. package/templates/agents/orc-reviewer-fable-5.md +57 -0
  199. package/templates/agents/orc-reviewer-opus-5-med.md +60 -0
  200. package/templates/agents/orc-scout-opus-5-low.md +40 -0
  201. package/templates/agents/orc-scout-sonnet-4-6-high.md +39 -0
  202. package/templates/agents/orc-system-analyst-opus-5-high.md +120 -0
  203. package/templates/agents/orc-test-author-opus-5-med.md +71 -0
  204. package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -0
  205. package/templates/agents/orc-verifier-opus-5-med.md +69 -0
  206. package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +79 -0
  207. package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -0
  208. package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +106 -0
  209. package/templates/commands/orc-aftermath.md +49 -0
  210. package/templates/commands/orc-analyze.md +21 -0
  211. package/templates/commands/orc-boundary.md +46 -0
  212. package/templates/commands/orc-brainstorm.md +51 -0
  213. package/templates/commands/orc-budget.md +54 -0
  214. package/templates/commands/orc-challenge.md +58 -0
  215. package/templates/commands/orc-claude.md +14 -0
  216. package/templates/commands/orc-diy.md +13 -0
  217. package/templates/commands/orc-doc.md +128 -0
  218. package/templates/commands/orc-explain.md +20 -0
  219. package/templates/commands/orc-export.md +46 -0
  220. package/templates/commands/orc-fast.md +15 -0
  221. package/templates/commands/orc-grill.md +40 -0
  222. package/templates/commands/orc-handoff.md +52 -0
  223. package/templates/commands/orc-learn.md +17 -0
  224. package/templates/commands/orc-mini.md +12 -0
  225. package/templates/commands/orc-pact.md +44 -0
  226. package/templates/commands/orc-pattern.md +15 -0
  227. package/templates/commands/orc-plan.md +22 -0
  228. package/templates/commands/orc-poly.md +21 -0
  229. package/templates/commands/orc-pr-driver.md +30 -0
  230. package/templates/commands/orc-pr-setup.md +31 -0
  231. package/templates/commands/orc-quick.md +33 -0
  232. package/templates/commands/orc-retro.md +17 -0
  233. package/templates/commands/orc-route.md +41 -0
  234. package/templates/commands/orc-ultra.md +17 -0
  235. package/templates/commands/orc-verify.md +11 -0
  236. package/templates/commands/orc-wiki.md +42 -0
  237. package/templates/commands/orc.md +16 -0
  238. package/templates/hooks/orc-effort-guard.js +178 -0
  239. package/templates/hooks/orc-statusline.js +305 -0
  240. package/templates/hooks/orc-trace.js +471 -0
  241. package/templates/hooks/orc-update-lib.js +125 -0
  242. package/templates/skills/_shared/README.md +50 -0
  243. package/templates/skills/_shared/detecting-artifacts.md +90 -0
  244. package/templates/skills/_shared/drift-recovery.md +98 -0
  245. package/templates/skills/_shared/extra-dispatch.md +1051 -0
  246. package/templates/skills/_shared/fable5-override.md +56 -0
  247. package/templates/skills/_shared/fallback-handoff.md +42 -0
  248. package/templates/skills/_shared/gh-stack-commands.md +65 -0
  249. package/templates/skills/_shared/gotchas.md +177 -0
  250. package/templates/skills/_shared/interview.md +144 -0
  251. package/templates/skills/_shared/lane-suspend.md +82 -0
  252. package/templates/skills/_shared/opus5-only.md +131 -0
  253. package/templates/skills/_shared/pr-templates.md +106 -0
  254. package/templates/skills/_shared/read-ladder.md +54 -0
  255. package/templates/skills/_shared/return-validation.md +145 -0
  256. package/templates/skills/_shared/smoke-gate.md +28 -0
  257. package/templates/skills/_shared/stack-plan.md +135 -0
  258. package/templates/skills/_shared/untrusted-input.md +63 -0
  259. package/templates/skills/context-combiner/SKILL.md +187 -0
  260. package/templates/skills/context-combiner/schemas/combined-report.md +78 -0
  261. package/templates/skills/context-combiner/schemas/combined-requirement-spec.md +87 -0
  262. package/templates/skills/orc/README.md +150 -0
  263. package/templates/skills/orc/SKILL.md +526 -0
  264. package/templates/skills/orc/config.md +389 -0
  265. package/templates/skills/orc/examples/full-run-mock.md +73 -0
  266. package/templates/skills/orc/references/analyst-gates.md +124 -0
  267. package/templates/skills/orc/references/effort-and-mode.md +224 -0
  268. package/templates/skills/orc/references/house-rules.md +20 -0
  269. package/templates/skills/orc/references/intake.md +120 -0
  270. package/templates/skills/orc/references/log-protocol.md +39 -0
  271. package/templates/skills/orc/references/pattern-gate.md +89 -0
  272. package/templates/skills/orc/references/plan-handoff.md +84 -0
  273. package/templates/skills/orc/references/preflight-report.md +220 -0
  274. package/templates/skills/orc/references/security-checklist.md +39 -0
  275. package/templates/skills/orc/references/stop-and-resume.md +160 -0
  276. package/templates/skills/orc/references/trace-protocol.md +314 -0
  277. package/templates/skills/orc/references/ultra-mode.md +123 -0
  278. package/templates/skills/orc/references/wave-grouping.md +121 -0
  279. package/templates/skills/orc/references/wiki-consult.md +177 -0
  280. package/templates/skills/orc/schemas/checkpoint.md +122 -0
  281. package/templates/skills/orc/schemas/intent-spec.md +42 -0
  282. package/templates/skills/orc/schemas/planning-output.md +279 -0
  283. package/templates/skills/orc/subskills/orc-checkpoint/SKILL.md +55 -0
  284. package/templates/skills/orc/subskills/orc-execution/SKILL.md +72 -0
  285. package/templates/skills/orc/subskills/orc-execution/core.md +151 -0
  286. package/templates/skills/orc/subskills/orc-execution/subagent.md +13 -0
  287. package/templates/skills/orc/subskills/orc-planner/SKILL.md +264 -0
  288. package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -0
  289. package/templates/skills/orc/subskills/orc-pr/SKILL.md +51 -0
  290. package/templates/skills/orc/subskills/orc-pr/pr.md +22 -0
  291. package/templates/skills/orc/subskills/orc-pr/stack-gate.md +108 -0
  292. package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -0
  293. package/templates/skills/orc/subskills/orc-review-verify/core.md +135 -0
  294. package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -0
  295. package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -0
  296. package/templates/skills/orc/subskills/orc-testgen/core.md +59 -0
  297. package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -0
  298. package/templates/skills/orc-advisor/SKILL.md +60 -0
  299. package/templates/skills/orc-aftermath/SKILL.md +136 -0
  300. package/templates/skills/orc-aftermath/references/report.md +95 -0
  301. package/templates/skills/orc-analyze/SKILL.md +220 -0
  302. package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -0
  303. package/templates/skills/orc-analyze/references/branching.md +51 -0
  304. package/templates/skills/orc-analyze/references/deep-mode.md +27 -0
  305. package/templates/skills/orc-analyze/references/thin-input.md +77 -0
  306. package/templates/skills/orc-analyze/schemas/report-audit.md +83 -0
  307. package/templates/skills/orc-analyze/schemas/report-prose.md +63 -0
  308. package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -0
  309. package/templates/skills/orc-analyze/schemas/requirement-spec.md +77 -0
  310. package/templates/skills/orc-analyze-mini/SKILL.md +112 -0
  311. package/templates/skills/orc-analyze-mini/examples/quick-analysis-mock.md +31 -0
  312. package/templates/skills/orc-boundary/SKILL.md +208 -0
  313. package/templates/skills/orc-boundary/references/card.md +78 -0
  314. package/templates/skills/orc-boundary/references/gate.md +113 -0
  315. package/templates/skills/orc-brainstorm/SKILL.md +339 -0
  316. package/templates/skills/orc-brainstorm/references/brainstorm-doc.md +133 -0
  317. package/templates/skills/orc-brainstorm/references/lenses.md +152 -0
  318. package/templates/skills/orc-budget/SKILL.md +225 -0
  319. package/templates/skills/orc-budget/references/corpus.md +87 -0
  320. package/templates/skills/orc-challenge/README.md +142 -0
  321. package/templates/skills/orc-challenge/SKILL.md +255 -0
  322. package/templates/skills/orc-challenge/examples/code-module.md +110 -0
  323. package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -0
  324. package/templates/skills/orc-challenge/examples/tsd-two-iterations.md +213 -0
  325. package/templates/skills/orc-challenge/references/conservation.md +107 -0
  326. package/templates/skills/orc-challenge/references/council.md +315 -0
  327. package/templates/skills/orc-challenge/references/cycle-state.md +185 -0
  328. package/templates/skills/orc-challenge/references/dimensions.md +121 -0
  329. package/templates/skills/orc-challenge/references/fix-brief.md +130 -0
  330. package/templates/skills/orc-challenge/references/intake.md +171 -0
  331. package/templates/skills/orc-challenge/references/kinds.md +44 -0
  332. package/templates/skills/orc-challenge/references/plain-english.md +98 -0
  333. package/templates/skills/orc-challenge/references/rubric.md +109 -0
  334. package/templates/skills/orc-challenge/references/sealed-slice.md +97 -0
  335. package/templates/skills/orc-challenge/references/verdict-doc.md +154 -0
  336. package/templates/skills/orc-claude/SKILL.md +199 -0
  337. package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -0
  338. package/templates/skills/orc-claude/references/refresh.md +76 -0
  339. package/templates/skills/orc-claude/references/template.md +109 -0
  340. package/templates/skills/orc-diy/README.md +142 -0
  341. package/templates/skills/orc-diy/SKILL.md +70 -0
  342. package/templates/skills/orc-diy/references/blocks/analyze.md +24 -0
  343. package/templates/skills/orc-diy/references/blocks/execution.md +42 -0
  344. package/templates/skills/orc-diy/references/blocks/extra.md +55 -0
  345. package/templates/skills/orc-diy/references/blocks/header.md +55 -0
  346. package/templates/skills/orc-diy/references/blocks/mock-example.md +22 -0
  347. package/templates/skills/orc-diy/references/blocks/pattern.md +18 -0
  348. package/templates/skills/orc-diy/references/blocks/planning.md +34 -0
  349. package/templates/skills/orc-diy/references/blocks/review.md +18 -0
  350. package/templates/skills/orc-diy/references/blocks/scoring.md +16 -0
  351. package/templates/skills/orc-diy/references/blocks/security.md +25 -0
  352. package/templates/skills/orc-diy/references/blocks/ship.md +25 -0
  353. package/templates/skills/orc-diy/references/blocks/summary.md +18 -0
  354. package/templates/skills/orc-diy/references/blocks/testgen.md +17 -0
  355. package/templates/skills/orc-diy/references/blocks/trace.md +28 -0
  356. package/templates/skills/orc-diy/references/blocks/verify.md +25 -0
  357. package/templates/skills/orc-diy/references/blocks/wiki.md +26 -0
  358. package/templates/skills/orc-diy/references/compile.md +59 -0
  359. package/templates/skills/orc-diy/references/flow-schema.md +100 -0
  360. package/templates/skills/orc-diy/references/locked-blocks.md +37 -0
  361. package/templates/skills/orc-doc/README.md +229 -0
  362. package/templates/skills/orc-doc/SKILL.md +444 -0
  363. package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -0
  364. package/templates/skills/orc-doc/references/chunking.md +527 -0
  365. package/templates/skills/orc-doc/references/gates.md +311 -0
  366. package/templates/skills/orc-doc/references/generation-rules.md +122 -0
  367. package/templates/skills/orc-doc/references/house-rules.md +170 -0
  368. package/templates/skills/orc-doc/references/import-targets.md +40 -0
  369. package/templates/skills/orc-doc/references/plain-language.md +66 -0
  370. package/templates/skills/orc-doc/references/portable-markdown.md +74 -0
  371. package/templates/skills/orc-doc/references/resume-protocol.md +228 -0
  372. package/templates/skills/orc-doc/references/templates/collaboration.md +118 -0
  373. package/templates/skills/orc-doc/references/templates/prd.md +133 -0
  374. package/templates/skills/orc-doc/references/templates/report.md +102 -0
  375. package/templates/skills/orc-doc/references/templates/tsd.md +122 -0
  376. package/templates/skills/orc-doc/references/templates/workflow.md +112 -0
  377. package/templates/skills/orc-explain/SKILL.md +57 -0
  378. package/templates/skills/orc-export/SKILL.md +154 -0
  379. package/templates/skills/orc-fast/SKILL.md +188 -0
  380. package/templates/skills/orc-grill/SKILL.md +207 -0
  381. package/templates/skills/orc-grill/references/grill-doc.md +105 -0
  382. package/templates/skills/orc-handoff/SKILL.md +204 -0
  383. package/templates/skills/orc-handoff/references/handoff-log.md +67 -0
  384. package/templates/skills/orc-handoff/references/surfaces.md +88 -0
  385. package/templates/skills/orc-judge/SKILL.md +82 -0
  386. package/templates/skills/orc-learn/SKILL.md +156 -0
  387. package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -0
  388. package/templates/skills/orc-learn/references/deepen.md +70 -0
  389. package/templates/skills/orc-learn/references/refresh.md +65 -0
  390. package/templates/skills/orc-learn/references/template-knowledge.md +83 -0
  391. package/templates/skills/orc-learn/references/template-learning.md +67 -0
  392. package/templates/skills/orc-mini/SKILL.md +226 -0
  393. package/templates/skills/orc-mini/examples/mini-run-mock.md +50 -0
  394. package/templates/skills/orc-pact/SKILL.md +218 -0
  395. package/templates/skills/orc-pact/references/gate.md +70 -0
  396. package/templates/skills/orc-pact/references/ledger.md +99 -0
  397. package/templates/skills/orc-pattern/SKILL.md +124 -0
  398. package/templates/skills/orc-pattern/references/INDEX.md +73 -0
  399. package/templates/skills/orc-pattern/references/be-django.md +80 -0
  400. package/templates/skills/orc-pattern/references/be-express.md +82 -0
  401. package/templates/skills/orc-pattern/references/be-fastapi.md +107 -0
  402. package/templates/skills/orc-pattern/references/be-go.md +96 -0
  403. package/templates/skills/orc-pattern/references/be-nestjs.md +86 -0
  404. package/templates/skills/orc-pattern/references/be-postgres.md +98 -0
  405. package/templates/skills/orc-pattern/references/fe-a11y.md +36 -0
  406. package/templates/skills/orc-pattern/references/fe-angular.md +87 -0
  407. package/templates/skills/orc-pattern/references/fe-nextjs.md +65 -0
  408. package/templates/skills/orc-pattern/references/fe-perf.md +39 -0
  409. package/templates/skills/orc-pattern/references/fe-react.md +83 -0
  410. package/templates/skills/orc-pattern/references/fe-vue.md +75 -0
  411. package/templates/skills/orc-pattern/schemas/pattern-doc.md +62 -0
  412. package/templates/skills/orc-poly/SKILL.md +216 -0
  413. package/templates/skills/orc-poly/examples/poly-run-mock.md +51 -0
  414. package/templates/skills/orc-poly/references/gather.md +70 -0
  415. package/templates/skills/orc-poly/references/poly-spec.md +84 -0
  416. package/templates/skills/orc-pr-driver/README.md +349 -0
  417. package/templates/skills/orc-pr-driver/SKILL.md +167 -0
  418. package/templates/skills/orc-pr-driver/references/conflict-playbook.md +78 -0
  419. package/templates/skills/orc-pr-driver/references/green-gate.md +105 -0
  420. package/templates/skills/orc-pr-driver/references/orc-run-split.md +99 -0
  421. package/templates/skills/orc-pr-setup/README.md +436 -0
  422. package/templates/skills/orc-pr-setup/SKILL.md +184 -0
  423. package/templates/skills/orc-pr-setup/references/certainty-gate.md +66 -0
  424. package/templates/skills/orc-pr-setup/references/layer-taxonomy.md +67 -0
  425. package/templates/skills/orc-quick/README.md +423 -0
  426. package/templates/skills/orc-quick/SKILL.md +306 -0
  427. package/templates/skills/orc-quick/references/context-doc.md +114 -0
  428. package/templates/skills/orc-quick/references/dispatch-gate.md +163 -0
  429. package/templates/skills/orc-quick/references/gh-mode.md +127 -0
  430. package/templates/skills/orc-retro/SKILL.md +222 -0
  431. package/templates/skills/orc-retro/examples/retro-mock.md +171 -0
  432. package/templates/skills/orc-route/SKILL.md +165 -0
  433. package/templates/skills/orc-verify/SKILL.md +86 -0
  434. package/templates/skills/orc-verify/examples/verify-mock.md +33 -0
  435. package/templates/skills/orc-wiki/README.md +325 -0
  436. package/templates/skills/orc-wiki/SKILL.md +322 -0
  437. package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -0
  438. package/templates/skills/orc-wiki/references/claude-md-injection.md +61 -0
  439. package/templates/skills/orc-wiki/references/crosslink-compile.md +39 -0
  440. package/templates/skills/orc-wiki/references/crosslink-kinds.md +57 -0
  441. package/templates/skills/orc-wiki/references/crosslink.md +284 -0
  442. package/templates/skills/orc-wiki/references/extra.md +79 -0
  443. package/templates/skills/orc-wiki/references/integrity-check.md +86 -0
  444. package/templates/skills/orc-wiki/references/orientation.md +51 -0
  445. package/templates/skills/orc-wiki/references/partial-refresh.md +203 -0
  446. package/templates/skills/orc-wiki/references/pattern-prewarm.md +19 -0
  447. package/templates/skills/orc-wiki/references/staleness.md +288 -0
  448. package/templates/skills/orc-wiki/schemas/crosslink-tag.md +166 -0
  449. package/templates/skills/orc-wiki/schemas/wiki-doc.md +120 -0
@@ -0,0 +1,44 @@
1
+ ---
2
+ description: The invariant ledger — the promises your project makes, and which ones are in doubt right now
3
+ ---
4
+
5
+ Use the **orc-pact** skill. Standalone — no scan, no plan, no build, no code
6
+ written.
7
+
8
+ `/orc-grill` and `/orc-brainstorm` already settle constraints, and a plan already
9
+ carries them into every executor slice. Then the run ends and they evaporate. This
10
+ is the ledger that outlives the run.
11
+
12
+ Four states, and every one is **computed on read**, never stored:
13
+
14
+ - **HOLDING** — its check passed at a commit that still covers the files it anchors.
15
+ - **DRIFTED** — commits since then touched those files. Coverage-relative: a promise
16
+ about payments does not fall into doubt because the README changed.
17
+ - **UNCHECKABLE** — nothing cheap proves it. **This is the honest state and the
18
+ point of the lane**, and it never counts as a failure.
19
+ - **BROKEN** — the check ran and failed.
20
+
21
+ How it runs:
22
+
23
+ 1. **Harvest** — pull constraints out of a run's `spec_invariants[]`, a grill doc, a
24
+ brainstorm doc, or a frozen poly-repo contract. Each one arrives quoted verbatim
25
+ with an origin recorded. **It never invents a promise.**
26
+ 2. **Recheck** — `orc pact check` runs the cheap proofs for the drifted ones only,
27
+ and re-anchors what passes. No model judges what a test can answer.
28
+ 3. **Reconcile** — one promise at a time. ORC brings the facts (which commits
29
+ touched it, what the check returned, whether this already went wrong before);
30
+ **you** decide whether the promise still stands. It recommends, then waits.
31
+ 4. **Write** — the ledger, plus a committed, PM-readable `PACT.md` at the project
32
+ root, rendered by the CLI from the ledger so the two can never disagree.
33
+
34
+ **It never retires a promise on its own.** Retirement is your decision and records
35
+ your reason, and a retired promise stays visible struck through.
36
+
37
+ Inside `/orc` (`pact_gate`, default `warn`): one preflight line, and — the payoff —
38
+ a drifted promise whose files a plan is about to touch is injected into the planner
39
+ as a constraint. Last month's decision constrains this month's plan, automatically.
40
+ It never blocks a run.
41
+
42
+ Read it back any time without this lane: `orc pact status`.
43
+
44
+ What you want to do (harvest / review / add — or nothing, and it will ask): $ARGUMENTS
@@ -0,0 +1,15 @@
1
+ ---
2
+ description: Learn & cache the project's real code conventions per language — reconciles a generic playbook against your actual files so ORC executors match your house style
3
+ ---
4
+
5
+ Use the **orc-pattern** skill. Start at Phase 0: detect the project's
6
+ frontend/backend languages, then branch per language (cache miss → codify; cache
7
+ hit + no drift → report and skip; cache hit + drift → auto-refresh). Dispatch the
8
+ `orc-pattern-codifier-sonnet-5-high` subagent (`orc-pattern-codifier-opus-5-med`
9
+ when `opus5_only` is set) to reconcile the generic playbook
10
+ against the most-recently-modified real files (project conventions win; invariants
11
+ always kept; conflicts flagged), then write `.claude/orc/patterns/<lang>-pattern.md`.
12
+ Never run tests or change project code. Follow the skill's SKILL.md exactly.
13
+
14
+ Optional: a language name to codify just that one, or `--refresh` to force
15
+ re-codification. $ARGUMENTS
@@ -0,0 +1,22 @@
1
+ ---
2
+ description: Requirement Planner — turn a detailed request or analyst spec into a grounded task plan (plan only)
3
+ ---
4
+
5
+ Use the **orc-planner** subskill via the orchestrator. Take the input (a
6
+ detailed request, or a System Analyst requirement-spec) and produce a grounded,
7
+ right-sized, dependency-checked plan in orc's planning-output format. If the
8
+ request is below the plannable floor (an observable outcome + an identifiable
9
+ repo area), do not plan — recommend `/orc-analyze` requirement mode instead.
10
+ Ground declared files from the repo/wiki when run standalone; trust the analyst
11
+ spec when chained. If the input is an orc-poly `poly-spec.md` (first line
12
+ `orc-poly:spec`), the planner switches to **poly-repo split mode** — one plan
13
+ per repo in its `repos[]` block, each written into its own repo and each pinned
14
+ to the frozen `interface-contract.md` (see the planner agent). Every declared path carries a grounding attestation
15
+ (exists|new + evidence), every task a sliced source-cited acceptance[] plus the
16
+ requirements[] it implements — the orchestrator spot-checks grounding AND
17
+ recomputes coverage (an orphan requirement bounces the plan), plus cycle and
18
+ same-file collision checks. Show the plan once for approval/edits (task
19
+ breakdown/approach only), then offer to take it into a build or save it as
20
+ plan-{name}.md and stop. The orchestrator dispatches the planning to a subagent.
21
+
22
+ Request / spec: $ARGUMENTS
@@ -0,0 +1,21 @@
1
+ ---
2
+ description: Poly-repo planning — plan ONE change across 2+ repos, freeze the shared interface contract, split into one plan per repo (no drift)
3
+ ---
4
+
5
+ Run the **orc-poly** skill. You are in the HOST repo; paste the path of each
6
+ PEER repo the change also touches (one or many — FE→BE, BE→another service's
7
+ gRPC, …). orc-poly peeks at every repo's wiki + crosslink read-only (or, when a
8
+ wiki is missing, asks you which folders/files to dig — never a blind scan),
9
+ gathers the cross-repo context by asking questions until the shared boundary is
10
+ pinned with no guesses, then writes a source-of-truth doc set
11
+ (`poly-context.md`, `interface-contract.md`, `poly-spec.md`) into
12
+ `poly-repo-implementation/<slug>/`. Each iteration it offers three choices: pass
13
+ to orc-plan · stop & chat · add more context (another repo path or pasted
14
+ knowledge). On "pass to orc-plan" the shared planner self-activates poly mode on
15
+ the `orc-poly:spec` marker and splits ONE plan per repo — the HOST plan into
16
+ this repo, each PEER plan written into that peer repo — every plan pinned to the
17
+ frozen `interface-contract.md`. You then build each repo later, in its own
18
+ session, with plain `/orc`, and no repo drifts. PEER source is READ-ONLY (the
19
+ only peer write is its plan file); orc-poly never builds.
20
+
21
+ Change / peer path(s): $ARGUMENTS
@@ -0,0 +1,30 @@
1
+ ---
2
+ description: Stacked-PR driver — execute a stack plan: one branch per layer, mandatory per-layer green gate, gh stack submit, then sync/rebase/bottom-up merge
3
+ ---
4
+
5
+ Run the **orc-pr-driver** skill. It takes an approved stack plan and makes the
6
+ layers real: `gh stack init` → per layer `gh stack add`, only that layer's files,
7
+ the **mandatory green-gate ladder** (build → tests → lint scoped to *that layer's
8
+ own base* → the repo's own pre-commit hooks, never `--no-verify`) → commit →
9
+ `gh stack submit`, PR bodies filled from the resolved template, then the ongoing
10
+ `gh stack sync` / `rebase --upstack` / `modify` care and the bottom-up merge.
11
+
12
+ **Three ways in — all read the same file** (`stacked-pr/<slug>/stack-plan.md`,
13
+ probed with `orc pr stack status`):
14
+
15
+ 1. `/orc-pr-setup` planned it (the normal path),
16
+ 2. ORC's ship phase handed it over (`stacked-pr/<slug>/STACK-FROM.md`),
17
+ 3. **you wrote the plan yourself** — run `orc pr stack template` for the skeleton,
18
+ fill it in, and start here. No planner run required.
19
+
20
+ It **refuses to run** — naming the exact missing field — on a plan with an
21
+ unanswered uncertain seam, a missing ticket, a layer with no purpose or value
22
+ class, a FOUNDATION layer that names no consumer, fewer than 2 layers, or a red
23
+ build. It never fills a field in for you.
24
+
25
+ When the change already exists in the worktree, your work is snapshotted to a
26
+ scratch branch BEFORE any branch surgery, every layer is materialized from that
27
+ snapshot file-by-file, and a completeness gate proves the union of the layers
28
+ equals the snapshot exactly before anything is submitted.
29
+
30
+ Slug / plan path / stack action: $ARGUMENTS
@@ -0,0 +1,31 @@
1
+ ---
2
+ description: Stacked-PR planner — decide where the PR cut lines go, prove each layer stands alone, write stacked-pr/<slug>/stack-plan.md (plans only, never touches git)
3
+ ---
4
+
5
+ Run the **orc-pr-setup** skill. It plans a **stack of pull requests** for a
6
+ change that is too big to review as one PR: ordered layers, each with a one-line
7
+ purpose, a value class (`USER | OPERATOR | CONTRACT | FOUNDATION`), an explicit
8
+ file list, measured LoC/file budgets and a dependency reason — written to
9
+ `stacked-pr/<slug>/stack-plan.md`.
10
+
11
+ It **plans only**: no branches, no commits, no pushes, no PRs. That is
12
+ `/orc-pr-driver`.
13
+
14
+ Two entry modes, auto-detected: **greenfield** (nothing written yet — a spec or
15
+ ticket) and **orc-run** (the change already exists in the worktree, e.g. ORC just
16
+ built it — the split is file-granular; hunk surgery is forbidden). A ticket
17
+ number is required. The PR-description template is resolved from the ORC template,
18
+ then the project (`.github/`, `docs/`), then a `CLAUDE.md` section — and if none
19
+ exists you get three recommended options to pick from; declining them all means
20
+ the stack is skipped and the change ships as one regular PR.
21
+
22
+ **P0 hard gate:** every uncertain boundary STOPS the lane and asks you, one
23
+ decision at a time, with the LoC/file/CI cost of each option and a recommendation
24
+ — and records your answer under `## Decisions`. Same-tier files, shared helpers,
25
+ refactor mixed with behavior change, ordering ambiguity and oversize atoms are all
26
+ uncertain by definition. It never guesses a seam.
27
+
28
+ When the plan is written it shows the layer table, states that nothing has been
29
+ created yet, and hands off to `/orc-pr-driver`.
30
+
31
+ Ticket / change / spec: $ARGUMENTS
@@ -0,0 +1,33 @@
1
+ ---
2
+ description: Quick lane for almost anything — look, ask once, dispatch. Always asks which agent. Saves every request as a numbered entry in orc-quick/<slug>/quick-context.md
3
+ ---
4
+
5
+ Use the **orc-quick** skill. It is standalone — not part of the `/orc` pipeline,
6
+ and no config key can change how it dispatches.
7
+
8
+ Three steps per request, one user turn:
9
+
10
+ 1. **LOOK** (silent) — check the wiki and code-pattern if they exist (never a
11
+ blocker), find the files, read the PR comments if this is PR work, and note
12
+ anything the user already decided.
13
+ 2. **ASK** (one turn) — up to 3 grounded questions *plus* the dispatch gate in
14
+ the same turn. **The gate is hard: always ask which agent to dispatch.**
15
+ Code work offers `orc-executor-sonnet-4-6-med` or `orc-executor-opus-5-low`;
16
+ read-only work offers an ad-hoc model + effort.
17
+ 3. **DO** — dispatch, check the return, run build/tests if they exist, write the
18
+ numbered entry to `orc-quick/<slug>/quick-context.md`, then offer tests /
19
+ review / commit.
20
+
21
+ Not only for code: a quick context dig, a defect hunt, a dependency bump, or
22
+ fixing PR review comments all run the same way. A request that turns out too big
23
+ gets an **offer** of `/orc-mini` — never a forced fallback.
24
+
25
+ No smoke gate. A red build starts a repair loop (2 rounds reuse the executor,
26
+ round 3 asks again, then it asks what to do). Red tests stop the commit offer but
27
+ never loop. No test suite means no check at all.
28
+
29
+ `gh` is read + push only — never a comment, never a resolve, never a merge.
30
+
31
+ Ask for a new request any time and it becomes entry 2, 3, 4 … in the same doc.
32
+
33
+ Request (or `pr <n>`, `thread=<name>`): $ARGUMENTS
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: Mine the ORC behavior traces — per-band calibration, downgrades, pipeline leaks (read-only report)
3
+ ---
4
+
5
+ Use the **orc-retro** skill. **P0 preflight first:** verify a delivery channel
6
+ exists — the gh CLI (authed) or a GitHub MCP server; if NEITHER is available,
7
+ do not run the retro at all (the report must land upstream or it's pointless).
8
+ Then: read the persistent behavior traces in `log_dir` (behavior-trace logging is
9
+ permanent — every run writes one), dispatch the retro miner subagent to aggregate
10
+ per-band outcomes (retries, requeues, needs_context, unmet), tier downgrades,
11
+ and pipeline leaks, write the AI-readable calibration report to
12
+ `log_dir/retro/`, and DELIVER it to the ORC repo (`retro_repo` config, default
13
+ azure-id/orc) as a PR — issue fallback — showing the created URL. Never edits
14
+ the rubric, skills, or code locally. If no traces exist yet (no runs have
15
+ happened), say so and stop.
16
+
17
+ Optional trace subset / date range: $ARGUMENTS
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: You have a plan — this says which lane should build it, with the numbers it decided from. Plan-only: it refuses a request in words rather than guess
3
+ ---
4
+
5
+ Use the **orc-route** skill. Zero agents, nothing is built.
6
+
7
+ **It routes a PLAN, and only a plan** — pasted ORC planning-output, a
8
+ `plan-<name>.md` path, or a saved `orc/planner/<name>/` checkpoint (the same
9
+ definition `references/plan-handoff.md` already uses). A plan carries real
10
+ numbers: tasks, files per task, dependencies, facets, scores. Routing from those
11
+ is arithmetic; routing from a sentence is guessing, so a request in words gets a
12
+ refusal and a pointer to `/orc-plan`, not a guess.
13
+
14
+ It reads the plan plus ORC's deterministic probes (`orc wiki status`,
15
+ `orc pattern status`, `orc gotcha status`, `orc diy status`) and answers:
16
+
17
+ ```
18
+ Plan: merchant-notifications — 7 tasks, 3 waves, 14 files touched
19
+ top score 78, two tasks marked risky
20
+
21
+ → /orc the plan has risky tasks and a task above 70;
22
+ review and verify are worth paying for here
23
+ runner-up /orc-mini — about 3x faster, but it skips full review
24
+ and verification. Fine only if you will read the diff yourself.
25
+ not possible /orc-fast — needs a fresh wiki (yours is STALE) and this plan
26
+ is 7 tasks; that lane runs ONE task
27
+
28
+ Start /orc now? [yes / no]
29
+ ```
30
+
31
+ Every runner-up says what choosing it costs you. Every impossible lane names the
32
+ condition blocking it **and** how to fix it. Risk beats size: a small plan with a
33
+ cited risk still earns the full lane.
34
+
35
+ `/orc-plan` also offers this automatically after **Save & stop**, so you rarely
36
+ need to type it.
37
+
38
+ New to ORC and wondering which command to use at all? That is
39
+ `orc onboarding first-run`, not this.
40
+
41
+ Plan (paste it, or give a path): $ARGUMENTS
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: Ultra lane — full orchestrator + Opus 5 xhigh advisor and three judgment gates, for ultra-complex work (maximum rigor, cost accepted)
3
+ ---
4
+
5
+ Use the **orc** skill with `ultra_mode: true` forced on for this run. Ultra is
6
+ the maximum-rigor lane for complex/ultra-complex requests: everything the full
7
+ pipeline does, PLUS an up-front Advisor brief with a batched clarification
8
+ round (orc-advisor skill), three judgment gates — after analysis, after
9
+ planning, and after verify (implementation fidelity + ultra-strict quality;
10
+ orc-judge skill) — an assumption ledger, a deterministic traceability matrix,
11
+ a blast-radius map, and an executor tier floor. Forced for the run (run-scoped,
12
+ never written to the user's config): deep analyze (Phase A′ gate bypassed),
13
+ pattern findings on, test authoring on, security review on. Ultra is costly by
14
+ design — state it once, never prompt about cost mid-run. Follow the orc
15
+ SKILL.md's ULTRA LANE section and references/ultra-mode.md exactly.
16
+
17
+ Request: $ARGUMENTS
@@ -0,0 +1,11 @@
1
+ ---
2
+ description: Standalone verify — checks git-modified changes only, shows summary, Opus 5 medium
3
+ ---
4
+
5
+ Use the **orc-verify** skill independently (no orchestrator): verify
6
+ only the git-modified changes in the working tree using Opus 5 medium effort,
7
+ classify findings on the P0–P3 severity ladder (P0/P1 gate, P2/P3 advisory;
8
+ every P0–P2 finding anchored with file:line + a verbatim quote, else it's
9
+ auto-P3), and show the summary. Read-only — do not fix or commit.
10
+
11
+ Optional focus: $ARGUMENTS
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: Build/maintain the project knowledge base (wiki) — Opus 4.8 high, expensive, multi-session, warns before scanning
3
+ ---
4
+
5
+ Use the **orc-wiki** skill. Start at Phase 0: auto-detect whether this is a
6
+ repair of an unregistered wiki, a fresh build, a resume of an in-progress scan,
7
+ or a refresh of an existing wiki, and branch accordingly. On a fresh build, show
8
+ the cost warning and scan NOTHING until the user explicitly confirms. Refreshes
9
+ also sweep for coverage gaps (changed files no doc covers → propose new areas)
10
+ and dead docs (covered files gone → archive/delete, user decides). Every run
11
+ registers via `orc wiki sync` and ends with the integrity self-check. Follow the
12
+ skill's SKILL.md exactly.
13
+
14
+ **Crosslink is always on.** Plain `/orc-wiki` — every scan, resume, incremental,
15
+ full regenerate, or selective refresh — publishes/updates this repo's boundary
16
+ tags (`wiki/crosslink/`) in the SAME pass as the docs, and a refresh never
17
+ deletes them. There is no separate "generate crosslink" step in a wiki's normal
18
+ life; the only crosslink config is the graph (`orc crosslink`), needed only to
19
+ resolve what this repo consumes.
20
+
21
+ **`/orc-wiki crosslink`** → the CROSSLINK-ONLY branch (Phase 3c) is a LEGACY
22
+ BACKFILL: publish tags + resolve consumption from the existing docs'
23
+ `Contracts & shapes` rows (opening only the files they anchor), for wikis whose
24
+ docs predate v0.24.0 and so have no `wiki/crosslink/` yet. No area is re-scanned,
25
+ no doc rewritten. On a wiki scanned at ≥v0.24.0, missing tags are not this
26
+ branch — `orc wiki sync --check` names the real fix. Never a refresh.
27
+
28
+ **`/orc-wiki crosslink compile`** → the one-shot CROSSLINK COMPILE branch
29
+ (v0.33.0 — references/crosslink-compile.md): resolve/consume from the graph →
30
+ generate the federation atlas (`wiki/crosslink/atlas.md`) → write it into each
31
+ linked repo → inject/update the CLAUDE.md pointer block locally and in each
32
+ linked repo (in-place, user content byte-preserved). Requires a crosslink
33
+ config with ≥1 edge; every step warn-only; never a re-scan. Peer writes are
34
+ FILE writes only — never a commit or push.
35
+
36
+ | Argument | Branch |
37
+ |---|---|
38
+ | *(none)* | Phase 0 auto-branch: repair / fresh / resume / refresh (delta default) |
39
+ | `crosslink` | Phase 3c legacy backfill (publish tags from existing docs) |
40
+ | `crosslink compile` | one-shot resolve + atlas + CLAUDE.md injection (local + peers) |
41
+
42
+ Optional focus (or `crosslink` / `crosslink compile`): $ARGUMENTS
@@ -0,0 +1,16 @@
1
+ ---
2
+ description: Full orchestrator — intake, planning, scored parallel subagents, review, verify, ship
3
+ ---
4
+
5
+ Use the **orc** skill to handle this request end to end: Phase 0
6
+ intake (with intent-spec sign-off), planning, per-task scoring, spawning scored
7
+ subagents in conflict-free waves, review, verify, and ship. Follow the skill's
8
+ SKILL.md exactly.
9
+
10
+ If the input IS a plan (pasted planning-output, a `plan-{name}.md` path, or an
11
+ `orc/planner/{name}/` checkpoint) rather than a request, the skill switches to
12
+ its plan-handoff entry contract (`references/plan-handoff.md`) — it re-grounds
13
+ and re-scores the plan in this session, then runs Phase 2–8; it never executes a
14
+ handed-off plan task-by-task ad hoc.
15
+
16
+ Request: $ARGUMENTS
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ /**
5
+ * ORC effort guard — a Claude Code PreToolUse hook.
6
+ *
7
+ * Blocks invocation of the full `orc` orchestrator skill unless the MAIN
8
+ * session is running at HIGH reasoning effort (Opus 5 / Fable 5 clear at
9
+ * medium+ — see the session-model bridge below). This is the one half of the
10
+ * "run ORC on Opus 4.8 high or better" rule hooks can enforce deterministically:
11
+ * Claude Code exposes `effort.level` (and $CLAUDE_EFFORT) to PreToolUse, but
12
+ * NOT the model id (only SessionStart may see the model, and cannot block).
13
+ * The model tier is surfaced separately by the statusline warning + the
14
+ * self-check inside skills/orc/SKILL.md.
15
+ *
16
+ * Wiring (installed by `orc init` into .claude/settings.json):
17
+ * hooks.PreToolUse[] { matcher: "Skill", hooks:[{ type:"command",
18
+ * command: 'node "<.claude>/hooks/orc-effort-guard.js"' }] }
19
+ *
20
+ * Contract: read PreToolUse JSON from stdin. Exit 0 = allow. Exit 2 = block
21
+ * the tool call and show stderr to Claude, which relays it to the user.
22
+ *
23
+ * Also surfaces a "newer orc version available" nudge here — this hook fires
24
+ * exactly when /orc is invoked, so it's the natural place to tell the user
25
+ * without them running `orc version`. On allow it emits a `systemMessage`
26
+ * (shown to the user, NOT added to model context → zero tokens); on block it
27
+ * appends the nudge to the block reason. Version check is cached 24h and
28
+ * fail-silent. (systemMessage handling may vary by Claude Code version — verify
29
+ * with /doctor if you don't see it; the statusline shows it regardless.)
30
+ */
31
+
32
+ // Shared update-check helper (sibling file). Degrade gracefully if absent.
33
+ let updater = null;
34
+ try {
35
+ updater = require("./orc-update-lib.js");
36
+ } catch (_) {
37
+ updater = null;
38
+ }
39
+
40
+ // Effort ladder: low < medium < high < xhigh < max. A tier that meets the bar
41
+ // meets it at that rung OR anything stronger — so "requires high" allows xhigh
42
+ // and max too (the bug this fixes: an xhigh/max session was hard-blocked).
43
+ const EFFORT_LADDER = ["low", "medium", "high", "xhigh", "max"];
44
+ const effortsAtOrAbove = (e) => {
45
+ const i = EFFORT_LADDER.indexOf(String(e).toLowerCase());
46
+ return i === -1 ? ["high", "xhigh", "max"] : EFFORT_LADDER.slice(i);
47
+ };
48
+
49
+ // Session-model bridge (written by orc-statusline.js). The guard can't see the
50
+ // model id itself, so it reads it here to grant the medium-effort allowance of
51
+ // the models that are strictly stronger than the Opus 4.8 baseline (Opus 5 and
52
+ // Fable 5). Fail-OPEN: missing / unreadable / stale → null, and the guard
53
+ // behaves exactly as it would without a bridge (never blocks on our own error).
54
+ // Stale = older than this window; a live session re-renders the statusline far
55
+ // more often, so a fresh file always exists during active use.
56
+ const BRIDGE_MAX_AGE_MS = 30 * 60 * 1000;
57
+ function readSessionModel(projectDir) {
58
+ try {
59
+ const fs = require("fs");
60
+ const path = require("path");
61
+ const p = path.join(projectDir, ".claude", "orc", "session-model.json");
62
+ const j = JSON.parse(fs.readFileSync(p, "utf8").replace(/^/, ""));
63
+ if (!j || typeof j.written_at !== "number") return null;
64
+ if (Date.now() - j.written_at > BRIDGE_MAX_AGE_MS) return null;
65
+ return String(j.model_id || "");
66
+ } catch (_) {
67
+ return null;
68
+ }
69
+ }
70
+ // Models that clear /orc at medium effort — strictly stronger than the Opus 4.8
71
+ // baseline, so medium on them beats high on it. Opus 5 (v0.34.0) joins Fable 5.
72
+ // The `\b` after the 5 keeps 4.8 / 4.7 / 5-something-else correctly gated.
73
+ const isMediumOkModel = (id) =>
74
+ /(opus|fable)[\s._-]?5\b/.test(String(id || "").toLowerCase());
75
+
76
+ let raw = "";
77
+ process.stdin.on("data", (c) => (raw += c));
78
+ process.stdin.on("end", () => {
79
+ let data = {};
80
+ try {
81
+ data = JSON.parse(raw || "{}");
82
+ } catch (_) {
83
+ // Unparseable payload — never block on our own error.
84
+ process.exit(0);
85
+ }
86
+
87
+ const tool = data.tool_name || "";
88
+ const input = data.tool_input || {};
89
+ const skill = String(input.skill || input.name || "");
90
+
91
+ // Only gate the full orchestrator and the compiled DIY lane. orc-mini /
92
+ // orc-fast / orc-analyze / subskills pass — orc-fast is DESIGNED to run at
93
+ // Sonnet medium; never widen this match to include it.
94
+ const isOrc = tool === "Skill" && /^orc$/i.test(skill);
95
+ const isDiy = tool === "Skill" && /^orc-diy$/i.test(skill);
96
+ if (!isOrc && !isDiy) process.exit(0);
97
+
98
+ const effort = String(
99
+ (data.effort && data.effort.level) || process.env.CLAUDE_EFFORT || ""
100
+ ).toLowerCase();
101
+ const installed = updater ? updater.installedVersion(__dirname) : null;
102
+ const projectDir = data.cwd || process.cwd();
103
+
104
+ // Baseline /orc: the session must be at high effort OR stronger (xhigh/max).
105
+ // Opus 5 and Fable 5 additionally clear at medium — strictly-capable models —
106
+ // detected through the session-model bridge (the guard can't see the model id
107
+ // itself; fail-open when the bridge is missing/stale, i.e. medium stays blocked).
108
+ let requiredEfforts = effortsAtOrAbove("high");
109
+ let requiredLabel =
110
+ "Opus 4.8 at high effort (Opus 5 / Fable 5 also clear at medium+)";
111
+ if (!isDiy && isMediumOkModel(readSessionModel(projectDir))) {
112
+ requiredEfforts = ["medium", ...requiredEfforts];
113
+ }
114
+
115
+ // /orc-diy: the required tier is whatever the flow was COMPILED for — read
116
+ // it from flow.lock.json (written only by the `orc diy` CLI). Fail closed:
117
+ // no lock = no compiled flow = deterministic onboarding block. `compile` /
118
+ // `status` invocations pass at any effort (they just shell out to the CLI).
119
+ if (isDiy) {
120
+ if (/^\s*(compile|status)\b/i.test(String(input.args || ""))) process.exit(0);
121
+ const fs = require("fs");
122
+ const path = require("path");
123
+ let lock = null;
124
+ try {
125
+ lock = JSON.parse(
126
+ fs
127
+ .readFileSync(
128
+ path.join(projectDir, ".claude", "orc", "diy", "flow.lock.json"),
129
+ "utf8"
130
+ )
131
+ .replace(/^\uFEFF/, "")
132
+ );
133
+ } catch (_) {}
134
+ if (!lock || !lock.session_tier) {
135
+ process.stderr.write(
136
+ "\n⛔ /orc-diy blocked — no compiled flow in this project (fail-closed gate)." +
137
+ "\n Compose and build your flow in the terminal first:" +
138
+ "\n orc diy init (then shape it: orc diy set <key> <value>)" +
139
+ "\n orc diy compile" +
140
+ "\n Guide: .claude/skills/orc-diy/README.md — or use plain /orc for this request.\n"
141
+ );
142
+ process.exit(2);
143
+ }
144
+ // Effort half is DETERMINISTIC from the compiled slug's suffix (allow that
145
+ // effort or anything stronger); the model half is warn-only on the
146
+ // statusline (hooks can't block on model). Covers the full tier grid —
147
+ // sonnet-4-6 / opus-4-7 / opus-4-8 / fable-5 at med|high|xhigh|max.
148
+ const m = String(lock.session_tier).match(/-(med|high|xhigh|max)$/);
149
+ const slugEffort = m ? (m[1] === "med" ? "medium" : m[1]) : "high";
150
+ requiredEfforts = effortsAtOrAbove(slugEffort);
151
+ requiredLabel = `${lock.session_tier} (compiled session_tier — needs effort ${slugEffort}+)`;
152
+ }
153
+
154
+ const decide = (nudge) => {
155
+ if (requiredEfforts.includes(effort)) {
156
+ // Requirement met — allow. Surface a version nudge if one exists.
157
+ if (nudge) {
158
+ try {
159
+ process.stdout.write(JSON.stringify({ systemMessage: nudge }));
160
+ } catch (_) {}
161
+ }
162
+ process.exit(0);
163
+ }
164
+
165
+ process.stderr.write(
166
+ `\n⛔ ${isDiy ? "/orc-diy" : "ORC"} blocked — required effort not met` +
167
+ (effort ? ` (current effort: ${effort}).` : " (effort not detected).") +
168
+ `\n Switch this session to ${requiredLabel}, then re-run.` +
169
+ "\n Run the MAIN session at (or above) the required tier — subagents cannot" +
170
+ "\n exceed the main tier, so pinned agents silently downgrade below it.\n" +
171
+ (nudge ? "\n" + nudge + "\n" : "")
172
+ );
173
+ process.exit(2);
174
+ };
175
+
176
+ if (updater) updater.refreshAndNudge(installed, decide);
177
+ else decide(null);
178
+ });