@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,22 @@
1
+ ## Phase: Mock example (after a green verify, before ship)
2
+
3
+ <!-- diy:when mock_example=off -->
4
+ The mock-example phase is DISABLED in this flow. Skip silently.
5
+ <!-- /diy:when -->
6
+ <!-- diy:when mock_example=ask -->
7
+ After the verify/smoke gate is GREEN and BEFORE any ship action, the offer is
8
+ MANDATORY (never silently skipped, never silently run): follow
9
+ `.claude/skills/_shared/drift-recovery.md` — build
10
+ `mock-examples/<change-slug>/` (EXAMPLE.md + one minimal runnable mocked
11
+ artifact) only on a yes. After the user runs it, ask the one drift question;
12
+ on drift run the `DRIFT-FROM` recovery loop (hard cap 2, then an honest
13
+ unresolved report). `mock-examples/` is NEVER staged by the ship phase.
14
+ <!-- /diy:when -->
15
+ <!-- diy:when mock_example=on -->
16
+ After the verify/smoke gate is GREEN and BEFORE any ship action, build the
17
+ mocked example without asking, per
18
+ `.claude/skills/_shared/drift-recovery.md`: `mock-examples/<change-slug>/`
19
+ (EXAMPLE.md + one minimal runnable mocked artifact; mocked inputs only). Then
20
+ ask the one drift question; on drift run the `DRIFT-FROM` recovery loop (hard
21
+ cap 2). `mock-examples/` is NEVER staged by the ship phase.
22
+ <!-- /diy:when -->
@@ -0,0 +1,18 @@
1
+ ## Phase: Code-pattern findings
2
+
3
+ <!-- diy:when pattern=off -->
4
+ Code-pattern codification is OFF: executors run language-agnostic (security/
5
+ correctness invariants still enforced; conventions imitate neighbor files).
6
+ Never prompt about patterns. A cached pattern under `.claude/orc/patterns/`
7
+ is still injected if present — cache hits are always silent.
8
+ <!-- /diy:when -->
9
+ <!-- diy:when pattern=ask -->
10
+ On an FE/BE pattern-cache miss at dispatch time, ask the user once: learn the
11
+ house style via the `.claude/skills/orc-pattern/SKILL.md` flow, or proceed
12
+ language-agnostic. Cache hits are used silently.
13
+ <!-- /diy:when -->
14
+ <!-- diy:when pattern=on -->
15
+ On an FE/BE pattern-cache miss at dispatch time, auto-codify without asking:
16
+ run the `.claude/skills/orc-pattern/SKILL.md` flow, then inject the cached
17
+ pattern literally into executor slices. Cache hits are used silently.
18
+ <!-- /diy:when -->
@@ -0,0 +1,34 @@
1
+ ## Phase: Planning
2
+
3
+ <!-- diy:when planning=auto -->
4
+ Route planning exactly as the full lane does — Superpowers plan, OpenSpec
5
+ change, or ORC's own planner, chosen by what exists in the project. Follow
6
+ `.claude/skills/orc/subskills/orc-planner/SKILL.md` for the own-planner path
7
+ and validate the planning output against
8
+ `.claude/skills/orc/schemas/planning-output.md`.
9
+ <!-- /diy:when -->
10
+ <!-- diy:when planning=own-planner -->
11
+ Always use ORC's own Requirement Planner, even when Superpowers/OpenSpec
12
+ artifacts exist: follow `.claude/skills/orc/subskills/orc-planner/SKILL.md`
13
+ and validate the planning output against
14
+ `.claude/skills/orc/schemas/planning-output.md`.
15
+ <!-- /diy:when -->
16
+ <!-- diy:when planning=superpowers -->
17
+ Plan via Superpowers: require a Superpowers-written plan as planning input
18
+ (ask the user to produce one if absent), then convert it to ORC planning
19
+ output validated against `.claude/skills/orc/schemas/planning-output.md` —
20
+ same conversion the full lane applies on its Superpowers route.
21
+ <!-- /diy:when -->
22
+ <!-- diy:when planning=openspec -->
23
+ Plan via OpenSpec: require an OpenSpec change as planning input (ask the user
24
+ to produce one if absent), then convert it to ORC planning output validated
25
+ against `.claude/skills/orc/schemas/planning-output.md` — same conversion the
26
+ full lane applies on its OpenSpec route.
27
+ <!-- /diy:when -->
28
+ <!-- diy:when tdd=on -->
29
+ TDD is ON for this flow: the plan must carry a `tdd_spec` per requirement
30
+ (given/when/then + a runnable skeleton in the project's test framework, or
31
+ `tdd: exempt — <reason>`; schema in
32
+ `.claude/skills/orc/schemas/planning-output.md`). No test runner in the
33
+ project → whole-run exemption, stated once at preflight.
34
+ <!-- /diy:when -->
@@ -0,0 +1,18 @@
1
+ ## Phase: Review
2
+
3
+ <!-- diy:when review=off -->
4
+ Code review is DISABLED in this flow. Say so in the run summary line ("review
5
+ skipped by flow config") — never imply the work was reviewed.
6
+ <!-- /diy:when -->
7
+ <!-- diy:when review=on -->
8
+ Dispatch the reviewer exactly as the full lane does — follow the review half
9
+ of `.claude/skills/orc/subskills/orc-review-verify/SKILL.md` (reviewer agent
10
+ `orc-reviewer-opus-5-med`; findings ride the severity ladder from the
11
+ locked rules, blocking and advisory findings both surfaced).
12
+ <!-- /diy:when -->
13
+ <!-- diy:when review=blocking-only -->
14
+ Dispatch the reviewer exactly as the full lane does — follow the review half
15
+ of `.claude/skills/orc/subskills/orc-review-verify/SKILL.md` — but only
16
+ P0/P1 findings gate anything; P2/P3 findings are listed once in the summary
17
+ and never re-offered as fix-up tasks.
18
+ <!-- /diy:when -->
@@ -0,0 +1,16 @@
1
+ ## Phase: Task scoring → executor selection
2
+
3
+ <!-- diy:when scoring=on -->
4
+ Score each task 0–100 with the full lane's rubric (see the scoring section of
5
+ `.claude/skills/orc/SKILL.md`), then dispatch the executor agent from THIS
6
+ compiled table — it is already clipped to this flow's session tier; never
7
+ substitute a preset from `config.md`:
8
+
9
+ {{score_table}}
10
+ <!-- /diy:when -->
11
+ <!-- diy:when scoring=off -->
12
+ Scoring is DISABLED in this flow. Skip the rubric entirely: EVERY execution
13
+ task dispatches to **{{fixed_executor}}**. Wave grouping, declared-files
14
+ conflict rules, and slice construction are unchanged — scoring off changes
15
+ model selection only, never scheduling.
16
+ <!-- /diy:when -->
@@ -0,0 +1,25 @@
1
+ ## Phase: Security pass
2
+
3
+ <!-- diy:when security=off -->
4
+ The security pass is OFF in this flow — skip silently.
5
+ <!-- /diy:when -->
6
+ <!-- diy:when security=ask -->
7
+ When at least one task scored at or above the risk floor (70), ask the user
8
+ once after review whether to run the security pass; on yes, run it exactly as
9
+ the full lane's Phase 5.5 (reviewer re-dispatched with the checklist from
10
+ `.claude/skills/orc/references/security-checklist.md`, sweeping only the
11
+ run's changed files).
12
+ <!-- /diy:when -->
13
+ <!-- diy:when security=on -->
14
+ When at least one task scored at or above the risk floor (70), dispatch the
15
+ security pass without asking — the full lane's Phase 5.5 with the checklist
16
+ from `.claude/skills/orc/references/security-checklist.md`, sweeping only the
17
+ run's changed files.
18
+ <!-- /diy:when -->
19
+ <!-- diy:when security=always -->
20
+ Dispatch the security pass on EVERY run of this flow, regardless of task
21
+ scores — the full lane's Phase 5.5 with the checklist from
22
+ `.claude/skills/orc/references/security-checklist.md`, sweeping only the
23
+ run's changed files. (This flow removes the risk-floor trigger, not the
24
+ pass's mechanics.)
25
+ <!-- /diy:when -->
@@ -0,0 +1,25 @@
1
+ ## Phase: Ship
2
+
3
+ State the current branch and the change summary BEFORE any git action, and
4
+ never ship on a red build (locked rule).
5
+
6
+ <!-- diy:when ship_mode=ask -->
7
+ Ask the user how to ship: commit, PR (via
8
+ `.claude/skills/orc/subskills/orc-pr/SKILL.md`), or leave the working tree
9
+ as-is. Default when auto-accepted by autonomy: leave as-is and report.
10
+ <!-- /diy:when -->
11
+ <!-- diy:when ship_mode=commit -->
12
+ Commit the run's changes on a green gate without asking (branch first if on
13
+ the default branch; conventional message from the intent). PRs only if the
14
+ user asks afterwards.
15
+ <!-- /diy:when -->
16
+ <!-- diy:when ship_mode=pr -->
17
+ On a green gate, create the PR without asking via
18
+ `.claude/skills/orc/subskills/orc-pr/SKILL.md` (branch + commit + push + PR
19
+ body from the run artifacts).
20
+ <!-- /diy:when -->
21
+ <!-- diy:when ship_mode=report-only -->
22
+ NEVER commit or push in this flow. Leave the working tree modified, and end
23
+ with the change report + suggested commit message the user can apply
24
+ themselves.
25
+ <!-- /diy:when -->
@@ -0,0 +1,18 @@
1
+ ## Phase: Summary
2
+
3
+ <!-- diy:when summary=off -->
4
+ No summary phase: end after ship with a single line (tasks done / gate color
5
+ / ship action taken) plus usage, and note which phases this flow skipped.
6
+ <!-- /diy:when -->
7
+ <!-- diy:when summary=short -->
8
+ Short summary: one paragraph — what was built, gate results, ship action,
9
+ skipped phases, and usage. No per-task breakdown.
10
+ <!-- /diy:when -->
11
+ <!-- diy:when summary=full -->
12
+ Full summary exactly as the full lane's final phase: per-task outcomes with
13
+ models used, findings outcomes, verify results, ship action, skipped
14
+ phases, and usage.
15
+ <!-- /diy:when -->
16
+
17
+ Always name the phases this flow skipped by config — the user must never
18
+ mistake a DIY run for a full-lane run.
@@ -0,0 +1,17 @@
1
+ ## Phase: Test authoring
2
+
3
+ <!-- diy:when testgen=off -->
4
+ Test authoring is OFF in this flow — skip silently.
5
+ <!-- /diy:when -->
6
+ <!-- diy:when testgen=ask -->
7
+ After verify (or after execution when verify is off), offer test authoring
8
+ once; on yes, run the full lane's Phase 6.5 via
9
+ `.claude/skills/orc/subskills/orc-testgen/SKILL.md` — it WRITES test cases
10
+ and a test plan, never runs them, and never gates the ship.
11
+ <!-- /diy:when -->
12
+ <!-- diy:when testgen=on -->
13
+ After verify (or after execution when verify is off), run the full lane's
14
+ Phase 6.5 without asking via
15
+ `.claude/skills/orc/subskills/orc-testgen/SKILL.md` — it WRITES test cases
16
+ and a test plan, never runs them, and never gates the ship.
17
+ <!-- /diy:when -->
@@ -0,0 +1,28 @@
1
+ <!-- GENERATED SOURCE BLOCK — stitched by `orc diy compile`. Edit the block
2
+ template in skills/orc-diy/references/blocks/, never the compiled file. -->
3
+ ## Behavior trace (PERMANENT — always on, no flow key)
4
+
5
+ Tracing is NOT composable: every ORC run traces, this one included. Follow
6
+ `.claude/skills/orc/references/trace-protocol.md` (load it at run start) — this
7
+ block is stitched into every compiled flow so a user-composed pipeline can never
8
+ be the one lane that runs blind.
9
+
10
+ **Run start:** create `log_dir`, write `log_dir/.current` =
11
+ `run-diy-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that name
12
+ in the SAME step (a pointer naming a file that does not exist reads as dangling —
13
+ the hook rotates away from it and the run splits across two files), then store
14
+ `trace_path` in the checkpoint. The lane token is `diy`, whatever the flow is
15
+ named.
16
+
17
+ **Narration is dispatched, never remembered:** record each event with its REAL
18
+ timestamp into a phase packet (`PHASE`, `DISPATCH`/`VERIFY` per spawn —
19
+ `actual_model`/`actual_effort` vs expected, surface any ⛔ DOWNGRADE to the user
20
+ — `SCORE`, `OUTCOME`, `GATE`, `FINDING`/`VERDICT` for whichever gates this flow
21
+ enabled, `FINISH`, plus `decisions` = the WHY), then dispatch
22
+ `orc-trace-writer-haiku-4-5` with it, PAIRED with the next phase's first
23
+ dispatch. **One packet per ENABLED phase group, minimum 2** — the flow shape is
24
+ composed, so the packet count is too; a phase this flow turned OFF owes nothing.
25
+ A phase ending with `zero new trace lines is a protocol violation`.
26
+
27
+ **Run end:** the `FINISH` packet goes out and RETURNS, then delete
28
+ `log_dir/.current`.
@@ -0,0 +1,25 @@
1
+ ## Phase: Verify
2
+
3
+ <!-- diy:when verify=off -->
4
+ Verification is DISABLED in this flow. The build+test evidence in each
5
+ executor return is the only green signal; say "verify skipped by flow
6
+ config" in the summary. Never claim criteria were verified.
7
+ <!-- /diy:when -->
8
+ <!-- diy:when verify=smoke -->
9
+ Run a SMOKE verify only: dispatch the verifier
10
+ (`orc-verifier-opus-5-med`) with an explicitly narrowed scope — build +
11
+ full test suite, red/green verdict, NO per-criterion definition-of-done
12
+ sweep. Red blocks ship exactly as a full verify would.
13
+ <!-- /diy:when -->
14
+ <!-- diy:when verify=full -->
15
+ Dispatch verification exactly as the full lane does — follow the verify half
16
+ of `.claude/skills/orc/subskills/orc-review-verify/SKILL.md` (build + tests +
17
+ every acceptance criterion checked against the definition of done).
18
+ <!-- /diy:when -->
19
+ <!-- diy:when tdd=on -->
20
+ TDD gate (rides the verify slot): the verifier slice carries the plan's
21
+ `tdd_suite[]`; green is the definition-of-done for non-exempt requirements,
22
+ red → the repair loop capped at `tdd_loop_max` (cap hit → STOP + honest red
23
+ report). The adversarial half of the verify pass applies as the full lane
24
+ defines it.
25
+ <!-- /diy:when -->
@@ -0,0 +1,26 @@
1
+ ## Wiki gate
2
+
3
+ <!-- diy:when wiki_gate=off -->
4
+ Skip the wiki freshness check entirely for this flow. If a project wiki
5
+ exists, executors may still receive wiki page pointers, but freshness is
6
+ never computed and never surfaced.
7
+ <!-- /diy:when -->
8
+ <!-- diy:when wiki_gate=notice -->
9
+ Compute the wiki freshness tier exactly as the full lane does (follow the
10
+ read-side procedure in `.claude/skills/orc-wiki/references/staleness.md`).
11
+ Fresh → use silently; aging → one-line notice, continue; stale → warn the
12
+ user that wiki hints may be outdated, continue. Never block on it.
13
+ <!-- /diy:when -->
14
+ <!-- diy:when wiki_gate=hard -->
15
+ Compute the wiki freshness tier exactly as the full lane does (follow the
16
+ read-side procedure in `.claude/skills/orc-wiki/references/staleness.md`).
17
+ Fresh or aging → proceed. Stale or missing → STOP and ask the user: refresh
18
+ the wiki first (recommended), or continue anyway with hints demoted. Respect
19
+ the precedence rule from that reference in every consumer slice.
20
+ <!-- /diy:when -->
21
+
22
+ <!-- diy:when post_ship_wiki_ask=on -->
23
+ After a successful ship on a big run, offer the post-ship wiki refresh ask
24
+ exactly as the full lane defines it in the orc skill (guarded on a non-empty
25
+ wiki; judged by final task/file counts at ship time).
26
+ <!-- /diy:when -->
@@ -0,0 +1,59 @@
1
+ # ORC-DIY — Compile procedure
2
+
3
+ Compilation turns the CLI-written config into a runnable flow. It is
4
+ **deterministic and CLI-owned**: `orc diy compile` does pure file stitching
5
+ with zero model tokens. `/orc-diy compile` in a session is a thin wrapper —
6
+ it runs the same CLI command via Bash and reports the result; there is no
7
+ second implementation, and the skill never stitches the flow itself.
8
+
9
+ ## What the compiler does (implemented in `bin/cli.js`)
10
+
11
+ 1. **Validate.** Load `.claude/orc-diy.config.yaml`; run the full cross-key
12
+ validation from `flow-schema.md`. Any hard error aborts the compile.
13
+ 2. **Resolve sources.** Block templates come from the installed stub
14
+ (`.claude/skills/orc-diy/references/blocks/`). Cherry-picked orc material
15
+ is REFERENCED in place, never copied: the compiler verifies that every
16
+ orc file a chosen variant points at actually exists under
17
+ `.claude/skills/` (project first, `~/.claude/skills/` fallback for a
18
+ global orc install) and aborts naming the missing file if orc is absent
19
+ or incomplete.
20
+ 3. **Stitch.** Concatenate in fixed order — this list and the `order` array in
21
+ `bin/cli.js` are ONE contract; change them together (a golden test compares
22
+ them, because the drift is grammar-shaped and the contract lint cannot see
23
+ it, which is how `mock-example` went missing here for a whole release):
24
+
25
+ `header` → `locked-blocks.md` (verbatim) → `trace` → `wiki` → `analyze` →
26
+ `planning` → `pattern` → `scoring` → `extra` → `execution` → `review` →
27
+ `security` → `verify` → `testgen` → `mock-example` → `ship` → `summary`.
28
+
29
+ `trace` is UNCONDITIONAL — behavior tracing is permanent and is not a flow
30
+ key, so every compiled flow carries the protocol (lane token `diy`) whatever
31
+ the user composed. **`tdd` is NOT a block** — it composes into `planning`,
32
+ `execution` and `verify` through `diy:when tdd=on` markers, so there is no
33
+ `tdd.md` to stitch and none should be added.
34
+
35
+ Inside each block, keep text outside markers, and keep a
36
+ `<!-- diy:when key=value -->…<!-- /diy:when -->` section only when the
37
+ config's `key` equals one of the listed values (`|`-separated).
38
+ 4. **Substitute placeholders.** `{{flow_name}}`, `{{config_hash}}`,
39
+ `{{orc_version}}`, `{{compiled_at}}`, `{{tier_model}}`, `{{tier_effort}}`,
40
+ `{{max_wave_tasks}}`, `{{batch_pause_every}}`, `{{fixed_executor}}`,
41
+ `{{score_table}}`. The score table is the shipped preset for the config's
42
+ `rubric_bands`, CLIPPED to `session_tier` at compile time (bands above the
43
+ tier collapse into the highest allowed executor) — the compiled flow never
44
+ clips at runtime.
45
+ 5. **Write + lock.** Emit `.claude/orc/diy/FLOW-COMPILED.md`, then finalize
46
+ `flow.lock.json`: `compiled_hash` (sha256 of the emitted file),
47
+ `compiled_at`, `orc_version` (from the installed payload stamp
48
+ `hooks/orc-version.json`, package version fallback), `session_tier`.
49
+ Print the gate status (should now be READY).
50
+
51
+ ## Recompile triggers
52
+
53
+ Any of these flips `orc diy status` to STALE until the user recompiles:
54
+ - the config changed (`config_hash` mismatch — every `orc diy set` does this),
55
+ - orc was updated (`orc_version` mismatch — `orc update`/`orc upgrade`),
56
+ - `FLOW-COMPILED.md` was edited or deleted (`compiled_hash` mismatch).
57
+
58
+ The stub skill NEVER runs a stale flow — it surfaces the reason and the fix
59
+ (`orc diy compile`), then offers the plain `/orc` fallback.
@@ -0,0 +1,100 @@
1
+ # ORC-DIY — Flow config schema
2
+
3
+ The single source of intent is `.claude/orc-diy.config.yaml`, written ONLY by
4
+ the `orc diy` CLI (never by hand, never in a Claude session). Every write
5
+ regenerates `.claude/orc/diy/flow.md` (the human-readable spec) and updates
6
+ `.claude/orc/diy/flow.lock.json`, invalidating any previous compile.
7
+
8
+ **Project-scoped only.** The config, lock, and compiled flow live in the
9
+ project's `.claude/` — there is no global variant; `orc diy` rejects
10
+ `--global`. One flow per project; `flow_name` is a display label, never a
11
+ selector.
12
+
13
+ ## Keys (all set via `orc diy set <key> <value>`)
14
+
15
+ | Key | Values (default first) | Meaning |
16
+ |---|---|---|
17
+ | `analyze` | `auto` / `off` / `mini` / `full` | Doc-intake analyst routing |
18
+ | `planning` | `auto` / `own-planner` / `superpowers` / `openspec` | Planning route |
19
+ | `pattern` | `ask` / `off` / `on` | Code-pattern gate on a cache miss |
20
+ | `scoring` | `on` / `off` | Rubric scoring; `off` needs `fixed_executor` |
21
+ | `fixed_executor` | (none) — an executor agent name | Used for every task when `scoring: off` |
22
+ | `extra` | `off` / `on` | May this flow dispatch an executor to a non-Claude worker (`_shared/extra-dispatch.md`)? It decides WHETHER; `orc extra resolve` still decides WHERE, per task, at run time — route rows are NOT baked into the compiled flow, because the lock's staleness triggers cannot see the ledger change. `off` makes a globally-enabled Extra **INERT here**, announced once, so turning it on globally never silently changes a compiled flow |
23
+ | `review` | `on` / `off` / `blocking-only` | Review phase strictness |
24
+ | `security` | `off` / `ask` / `on` / `always` | Security pass; `always` drops the risk-floor trigger |
25
+ | `verify` | `full` / `off` / `smoke` | Verify depth |
26
+ | `testgen` | `off` / `ask` / `on` | Test-authoring phase |
27
+ | `mock_example` | `ask` / `on` / `off` | Post-verify mocked example + drift recovery (`mock-examples/<slug>/`, never committed) |
28
+ | `tdd` | `on` / `off` | TDD-anchored planning: plan-time `tdd_spec` (scoped by `disposition`), paired TDD tasks for the red proof, TDD gate in the verify slot |
29
+ | `gotchas` | `on` / `off` | Repair memory: inject scope-matching gotchas into slices, record one when a repair loop goes red → green (`_shared/gotchas.md`) |
30
+ | `wiki_gate` | `notice` / `off` / `hard` | Wiki freshness handling at preflight |
31
+ | `post_ship_wiki_ask` | `on` / `off` | Post-ship wiki refresh offer on big runs |
32
+ | `summary` | `full` / `off` / `short` | Summary depth |
33
+ | `autonomy` | `interactive` / `semi` / `hands-off` | Who answers routine asks |
34
+ | `ship_mode` | `ask` / `commit` / `pr` / `report-only` | Terminal ship behavior |
35
+ | `session_tier` | `sonnet-4-6-{med,high}` / `opus-4-7-{med,high}` / `opus-4-8-{med,high,xhigh,max}` / `opus-5-{med,high,xhigh,max}` / `fable-5-{med,high,xhigh,max}` | Required main-session model+effort (default `opus-4-8-high`) |
36
+ | `max_wave_tasks` | `3` (integer ≥ 1) | Wave hard cap |
37
+ | `batch_pause_every` | `2` (integer ≥ 1) | Waves between pauses |
38
+ | `rubric_bands` | `5` (2–8) | Scoring granularity (`scoring: on` only) |
39
+ | `flow_name` | `my-flow` (slug) | Display label for traces/statusline |
40
+
41
+ ## Cross-key validation (CLI `orc diy validate`; also runs on every write)
42
+
43
+ Hard errors (config not written):
44
+ - `scoring: off` without a `fixed_executor`.
45
+ - `fixed_executor` or any agent choice above `session_tier` (tier order:
46
+ haiku-4-5 < sonnet-4-6 < sonnet-5 < opus-4-7 < opus-4-8 < opus-5 < fable-5 —
47
+ subagents cannot exceed the main session; effort medium < high < xhigh < max).
48
+ A tier below `opus-5-high` clips the `[90,100]` band to the highest agent it
49
+ allows, at compile time.
50
+ - `review: off` with `security` not `off` (the security pass reuses the
51
+ reviewer).
52
+ - Anything that would disable a locked rule (see `locked-blocks.md`).
53
+
54
+ Warnings (written, reported):
55
+ - `scoring: off` with `rubric_bands` overridden (ignored).
56
+ - `testgen` on/ask with `verify: off` (testgen normally follows verify).
57
+ - `tdd: on` with `verify: off` (the TDD gate runs in the verify slot; plan-time
58
+ tests are authored but never gate the ship).
59
+ - `autonomy: hands-off` with `ship_mode: commit` or `pr` (fully unattended
60
+ git actions).
61
+ - `session_tier` below `opus-5-med` with `review`/`verify` on: the pinned
62
+ Opus 5 reviewer/verifier agents will silently run at the session's model —
63
+ the flow still works, honesty-checked by the tier-honesty locked rule.
64
+
65
+ ## `flow.lock.json` (machine state — written by the CLI only)
66
+
67
+ ```json
68
+ {
69
+ "flow_name": "my-flow",
70
+ "session_tier": "opus-4-8-high",
71
+ "config_hash": "sha256 of orc-diy.config.yaml",
72
+ "flow_hash": "sha256 of flow.md",
73
+ "compiled_hash": "sha256 of FLOW-COMPILED.md (null until compiled)",
74
+ "compiled_at": "ISO timestamp or null",
75
+ "orc_version": "installed orc payload version at compile time, or null"
76
+ }
77
+ ```
78
+
79
+ Gate status (computed by `orc diy status`, consumed by the stub skill and
80
+ `orc doctor`; the effort guard does NOT read it — it keys on `flow.lock.json` +
81
+ `session_tier` directly, and the statusline reads the lock, not this verb):
82
+
83
+ **The exit code IS the contract** (v0.34.7), same convention as the sibling
84
+ `orc pattern status <lang>` in `_shared/detecting-artifacts.md`:
85
+
86
+ | Exit | State | Meaning |
87
+ |---|---|---|
88
+ | 0 | READY | everything matches; `/orc-diy` may run the compiled flow |
89
+ | 1 | STALE | see the triggers below — the flow must be recompiled first |
90
+ | 1 | UNCONFIGURED | no config file (or empty) |
91
+
92
+ It used to exit 0 in all three states, so anything branching on it treated a
93
+ hard-blocked flow as runnable — the direct inverse of its own sibling.
94
+
95
+ STALE triggers (**all live ones are reported, joined by `;`** — not just the
96
+ first): no lock / never compiled / `config_hash` mismatch (config changed since
97
+ compile) / `orc_version` mismatch (orc was updated) / compiled file missing or
98
+ `compiled_hash` mismatch (artifact modified). Reporting only the first meant a
99
+ flow stale ONLY because `orc update` bumped the payload said "config changed",
100
+ which contradicts a user who knows they never touched their config.
@@ -0,0 +1,37 @@
1
+ # ORC-DIY — Locked rules (compiled verbatim into EVERY flow)
2
+
3
+ These are the boundaries cherry-picked from the full orchestrator. The
4
+ compiler injects this file into every compiled flow unchanged; the CLI
5
+ validator hard-errors on any config that would violate one. No flow choice —
6
+ including hands-off autonomy — ever overrides a locked rule.
7
+
8
+ ## LOCKED (never configurable)
9
+
10
+ 1. **You NEVER implement. You coordinate.** All execution, review, verify,
11
+ and analysis work is done by spawned subagents — even the smallest task.
12
+ 2. **Disk is truth; conversation is a cache.** On any resume, fresh session,
13
+ or suspected compaction: re-read the run's `state-of-play.md` then the
14
+ checkpoint BEFORE acting. All run artifacts live in
15
+ `.claude/orc/run/{run-slug}/` — never the project root.
16
+ 3. **No two tasks with overlapping `declared_files` share a wave.** A task
17
+ without declared files cannot be waved.
18
+ 4. **Severity ladder (P0–P3).** P0 (objective breakage) → auto-fix ONCE;
19
+ second failure → STOP and surface. P1 (correctness/security risk) → gates
20
+ ship; dispatching the fix needs the user (autonomy may auto-accept the
21
+ ask, never skip the gate). P2/P3 → advisory, never auto-fixed. **Quote
22
+ spot-check before acting on any P0/P1:** read the cited `file:line`,
23
+ confirm the verbatim quote; mismatch → demote to P3 and tell the user.
24
+ 5. **You alone write the checkpoint and state-of-play.** Workers never touch
25
+ them. Validate every subagent return against its contract — malformed =
26
+ failure (requeue with reason). Record the failure reason, never just
27
+ "failed".
28
+ 6. **Never announce a stop before the checkpoint write is confirmed. Never
29
+ offer commit on a red build.**
30
+ 7. **Slices are constructed by you, never pulled by workers.** A worker
31
+ needing more context uses the `needs_context` return (cap: 2 per task).
32
+ 8. **Tier honesty.** Every dispatched agent's return carries its claimed
33
+ model + effort; flag a silent downgrade to the user instead of hiding it.
34
+ 9. **Keep the user informed before acting** — dispatch plan, counts, current
35
+ branch before any git action, every escalation, usage at every stop and
36
+ at run completion. Autonomy profiles change who answers routine asks,
37
+ never what gets reported.