@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,421 @@
1
+ # Mock run — `/orc-pact`
2
+
3
+ > The promises your system makes, and which ones are in doubt right now.
4
+
5
+ ---
6
+
7
+ ## 1. What it does
8
+
9
+ When you use `/orc-grill` or `/orc-brainstorm`, you settle some decisions.
10
+ Some of those are **constraints** — rules the system must always follow.
11
+
12
+ Today those rules die when the run ends. Nobody checks them again. Six weeks
13
+ later someone breaks one, and nobody notices.
14
+
15
+ `/orc-pact` keeps them. It calls each one an **invariant** — a promise.
16
+
17
+ Each promise has four possible states. ORC works out the state itself. It never
18
+ saves the state to disk, because a saved state gets old and lies to you.
19
+
20
+ | State | Meaning in easy English |
21
+ |---|---|
22
+ | **HOLDING** | The check passed. Nothing changed since. This promise is fine. |
23
+ | **DRIFTED** | Someone changed a file this promise depends on. We owe it a re-check. |
24
+ | **UNCHECKABLE** | There is no cheap way to test this. **We are being honest, not lazy.** |
25
+ | **BROKEN** | We ran the check. It failed. This promise is not true any more. |
26
+
27
+ `UNCHECKABLE` is the most important one. Other tools would just say "OK". ORC
28
+ says "I cannot prove this", and shows you the list.
29
+
30
+ ---
31
+
32
+ ## 2. The run
33
+
34
+ Rina ran `/orc-grill` last week about checkout. Now she runs `/orc-pact` for
35
+ the first time.
36
+
37
+ ```
38
+ > /orc-pact
39
+ ```
40
+
41
+ ```
42
+ ORC · pact
43
+
44
+ Preflight (silent probes)
45
+ ledger : none yet — this will be the first one
46
+ git : clean, 47 commits since the grill run
47
+ test runner : vitest (npm test)
48
+ runs with constraints found : 2
49
+
50
+ I found 2 past runs that settled constraints and never saved them.
51
+
52
+ run-grill-checkout-100826-141130 4 constraints
53
+ run-brainstorm-refunds-220726-093015 2 constraints
54
+
55
+ Do you want me to harvest them into a new ledger?
56
+
57
+ 1 Yes, harvest both runs (recommended)
58
+ 2 Harvest only the grill run
59
+ 3 No, I want to add promises by hand instead
60
+ ```
61
+
62
+ ```
63
+ > 1
64
+ ```
65
+
66
+ ```
67
+ ORC · pact · harvest
68
+
69
+ Reading the 6 constraints. For each one I look for the cheapest thing that
70
+ can prove it. I do not run anything yet.
71
+
72
+ PACT-001 A payment is never written twice for one idempotency key.
73
+ anchors : api/payments/ledger.ts:88, api/payments/idempotency.ts
74
+ check : test → npm test -- idempotency
75
+ found because: test file api/payments/__tests__/idempotency.test.ts exists
76
+
77
+ PACT-002 Every price is stored as a whole number of cents. Never a decimal.
78
+ anchors : api/payments/money.ts:12, db/migrations/0004_prices.sql
79
+ check : grep → no `float` or `numeric` in price columns
80
+ found because: migration 0004 declares price_cents INTEGER
81
+
82
+ PACT-003 A guest can finish checkout with no account.
83
+ anchors : web/checkout/GuestFlow.tsx, api/checkout/session.ts:31
84
+ check : test → npm test -- guest-checkout
85
+ found because: test file exists
86
+
87
+ PACT-004 A refund is only allowed inside 30 days of the order.
88
+ anchors : api/refunds/window.ts:19
89
+ check : test → npm test -- refund-window
90
+ found because: test file exists
91
+
92
+ PACT-005 A full card number is never written to any log.
93
+ anchors : api/payments/*.ts, api/middleware/logger.ts
94
+ check : NONE FOUND
95
+ → I will mark this UNCHECKABLE. See the question below.
96
+
97
+ PACT-006 Refund money always goes back to the original payment method.
98
+ anchors : api/refunds/payout.ts:44
99
+ check : NONE FOUND
100
+ → I will mark this UNCHECKABLE. See the question below.
101
+
102
+ Two promises have no check. I have one question about each.
103
+ I will not guess an answer for you.
104
+ ```
105
+
106
+ ```
107
+ ORC · pact · round 1 (2 questions)
108
+
109
+ Q1 — PACT-005 (card number in logs)
110
+ A grep for a 16-digit pattern in the logger would be cheap and would
111
+ catch the common mistake. It would not catch a card number that was
112
+ split into parts first.
113
+ Do you want that grep as the check?
114
+
115
+ a Yes, use the grep. Better than nothing.
116
+ b No. Keep it UNCHECKABLE until we write a real test.
117
+ c Something else (tell me)
118
+
119
+ Q2 — PACT-006 (refund goes to the original method)
120
+ I found no test and no cheap signal. The only honest options:
121
+
122
+ a Keep it UNCHECKABLE and add a note: "check by hand at release"
123
+ b Drop this promise — it was never really agreed
124
+ c Something else (tell me)
125
+ ```
126
+
127
+ ```
128
+ > Q1 a. Q2 a, and add the note "Finance checks this in the monthly report".
129
+ ```
130
+
131
+ ```
132
+ ORC · pact · re-check
133
+
134
+ Running the checks now. Only the ones that can run.
135
+
136
+ PACT-001 npm test -- idempotency ✓ pass → HOLDING
137
+ PACT-002 grep price columns ✓ pass → HOLDING
138
+ PACT-003 npm test -- guest-checkout ✓ pass → HOLDING
139
+ PACT-004 npm test -- refund-window ✗ FAIL → BROKEN
140
+ PACT-005 grep 16-digit in logger ✓ pass → HOLDING
141
+ PACT-006 (manual) — not run → UNCHECKABLE
142
+
143
+ One promise is BROKEN.
144
+
145
+ PACT-004 A refund is only allowed inside 30 days of the order.
146
+ check : npm test -- refund-window
147
+ error : expected 30, received 45
148
+ file : api/refunds/window.ts:19 → REFUND_WINDOW_DAYS = 45
149
+ commit: 8a62b4f "allow longer refunds for the Nov sale" (12 days ago)
150
+
151
+ I do not know if this is a bug or a decision. Only you know.
152
+ I will not retire this promise by myself.
153
+
154
+ 1 It is a bug. Keep the promise. Fix the code later.
155
+ 2 It changed on purpose. Update the promise to 45 days.
156
+ 3 Retire the promise. It does not apply any more.
157
+ ```
158
+
159
+ ```
160
+ > 2, but only for the sale. It goes back to 30 days on 01-12-2026.
161
+ ```
162
+
163
+ ```
164
+ ORC · pact · write
165
+
166
+ Updated PACT-004:
167
+ statement : A refund is only allowed inside 45 days of the order.
168
+ Temporary for the November sale.
169
+ review_by : 01-12-2026
170
+ reason : changed on purpose at commit 8a62b4f, confirmed by user
171
+
172
+ Wrote:
173
+ PACT.md (project root — you can read this)
174
+ .claude/orc/pact/ledger.json (the machine copy)
175
+
176
+ 4 holding · 0 broken · 2 uncheckable · 1 review due 01-12-2026
177
+
178
+ Trace: run-pact-first-ledger-100826-153020.txt
179
+
180
+ Next time, run `orc pact status` any time. It is free and takes no tokens.
181
+ ```
182
+
183
+ ---
184
+
185
+ ## 3. The files it made
186
+
187
+ ### `PACT.md` — at the project root, safe to commit, a PM can read it
188
+
189
+ ````markdown
190
+ # PACT — what shopcart promises
191
+
192
+ Last checked: 10-08-2026 at commit `c273793`
193
+ State: **4 holding · 0 broken · 2 uncheckable · 1 review due**
194
+
195
+ This file is written by `/orc-pact`. Do not edit it by hand.
196
+ Run `orc pact status` to see the live state.
197
+
198
+ ---
199
+
200
+ ## Holding — we checked, and these are true
201
+
202
+ ### PACT-001 · A payment is never written twice for one idempotency key
203
+ - **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
204
+ - **Where it lives:** `api/payments/ledger.ts:88`, `api/payments/idempotency.ts`
205
+ - **How we prove it:** `npm test -- idempotency`
206
+ - **Last proved at:** commit `c273793`
207
+
208
+ ### PACT-002 · Every price is a whole number of cents
209
+ - **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
210
+ - **Where it lives:** `api/payments/money.ts:12`, `db/migrations/0004_prices.sql`
211
+ - **How we prove it:** grep — no float or numeric type on a price column
212
+ - **Last proved at:** commit `c273793`
213
+
214
+ ### PACT-003 · A guest can finish checkout with no account
215
+ - **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
216
+ - **Where it lives:** `web/checkout/GuestFlow.tsx`, `api/checkout/session.ts:31`
217
+ - **How we prove it:** `npm test -- guest-checkout`
218
+ - **Last proved at:** commit `c273793`
219
+
220
+ ### PACT-005 · A full card number is never written to any log
221
+ - **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
222
+ - **Where it lives:** `api/payments/*.ts`, `api/middleware/logger.ts`
223
+ - **How we prove it:** grep — no 16-digit run reaches the logger
224
+ - **Weak check:** this grep does not catch a card number split into parts
225
+ - **Last proved at:** commit `c273793`
226
+
227
+ ---
228
+
229
+ ## Under review — changed on purpose, with an end date
230
+
231
+ ### PACT-004 · A refund is only allowed inside 45 days of the order
232
+ - **Was:** 30 days, until 29-07-2026
233
+ - **Changed:** commit `8a62b4f` — "allow longer refunds for the Nov sale"
234
+ - **Confirmed by:** user, on 10-08-2026
235
+ - **Review by:** 01-12-2026 — goes back to 30 days
236
+ - **How we prove it:** `npm test -- refund-window`
237
+
238
+ ---
239
+
240
+ ## Uncheckable — we cannot prove these cheaply
241
+
242
+ **These are not broken. We simply have no cheap way to test them.**
243
+ This list is the honest part of the file. Read it before you trust the rest.
244
+
245
+ ### PACT-006 · Refund money always goes back to the original payment method
246
+ - **Why it exists:** settled in `/orc-brainstorm` on 22-07-2026 (refunds)
247
+ - **Where it lives:** `api/refunds/payout.ts:44`
248
+ - **How we prove it:** by hand. Finance checks this in the monthly report.
249
+ - **To make this checkable:** write a test that mocks two payment methods and
250
+ asserts the payout target matches the original charge.
251
+ ````
252
+
253
+ ### `.claude/orc/pact/ledger.json` — the machine copy
254
+
255
+ ```json
256
+ {
257
+ "version": 1,
258
+ "generated_at": "2026-08-10T15:30:20Z",
259
+ "generated_commit": "c273793",
260
+ "entries": [
261
+ {
262
+ "id": "PACT-004",
263
+ "statement": "A refund is only allowed inside 45 days of the order. Temporary for the November sale.",
264
+ "origin": { "lane": "orc-grill", "run": "run-grill-checkout-100826-141130", "kind": "constraint" },
265
+ "anchors": ["api/refunds/window.ts:19"],
266
+ "check": { "kind": "test", "ref": "npm test -- refund-window" },
267
+ "verified_commit": "c273793",
268
+ "confidence": "high",
269
+ "review_by": "2026-12-01",
270
+ "history": [
271
+ { "at": "2026-08-10", "was": "30 days", "now": "45 days", "commit": "8a62b4f", "reason": "November sale, confirmed by user" }
272
+ ]
273
+ }
274
+ ]
275
+ }
276
+ ```
277
+
278
+ ---
279
+
280
+ ## 4. The CLI part
281
+
282
+ ```
283
+ $ orc pact status
284
+ ```
285
+
286
+ ```
287
+ PACT · shopcart
288
+
289
+ HOLDING 4 api/payments · api/checkout · web/checkout
290
+ DRIFTED 0
291
+ BROKEN 0
292
+ UNCHECKABLE 2 api/refunds/payout.ts
293
+
294
+ 1 review due PACT-004 by 01-12-2026
295
+
296
+ ledger anchored at c273793 · you are at c273793 · nothing to re-check
297
+ ```
298
+
299
+ Exit code: `0`
300
+
301
+ **The exit codes** — same idea as `orc pattern status`:
302
+
303
+ | Code | Meaning |
304
+ |---|---|
305
+ | 0 | Every promise is HOLDING |
306
+ | 1 | At least one DRIFTED — a re-check is owed |
307
+ | 2 | At least one BROKEN |
308
+ | 3 | No ledger on disk |
309
+
310
+ Now a week goes by. Rina edits `api/refunds/window.ts`.
311
+
312
+ ```
313
+ $ orc pact status
314
+ ```
315
+
316
+ ```
317
+ PACT · shopcart
318
+
319
+ HOLDING 3
320
+ DRIFTED 1 PACT-004 → api/refunds/window.ts changed at e9dad01
321
+ BROKEN 0
322
+ UNCHECKABLE 2
323
+
324
+ Run `orc pact check PACT-004` to re-prove it. Takes ~4 seconds.
325
+ ```
326
+
327
+ Exit code: `1`
328
+
329
+ **Note what did NOT happen.** The other 3 promises did not go stale. Only the
330
+ one whose file changed. This is the same rule the wiki uses
331
+ (`computeWikiFreshness`) — **a promise is only old if the files it depends on
332
+ moved.** A date alone never makes it old.
333
+
334
+ ```
335
+ $ orc pact status --json
336
+ ```
337
+
338
+ ```json
339
+ {
340
+ "ledger_present": true,
341
+ "generated_commit": "c273793",
342
+ "head_commit": "e9dad01",
343
+ "counts": { "holding": 3, "drifted": 1, "broken": 0, "uncheckable": 2 },
344
+ "drifted": [
345
+ { "id": "PACT-004", "touched_by": ["e9dad01"], "anchor": "api/refunds/window.ts" }
346
+ ],
347
+ "reviews_due": [
348
+ { "id": "PACT-004", "by": "2026-12-01" }
349
+ ],
350
+ "exit": 1
351
+ }
352
+ ```
353
+
354
+ ---
355
+
356
+ ## 5. Inside a normal `/orc` run
357
+
358
+ **Phase 1 — preflight.** One new line. It is never silent.
359
+
360
+ ```
361
+ Preflight
362
+ wiki : FRESH (12 docs, anchored e9dad01)
363
+ pattern : typescript cached
364
+ crosslink : none configured
365
+ pact : 3 holding · 1 drifted · 2 uncheckable ← new
366
+ ```
367
+
368
+ **Phase 2 — planning.** This is the payoff.
369
+
370
+ ```
371
+ Planning · shopcart · "add partial refunds"
372
+
373
+ The plan touches api/refunds/window.ts and api/refunds/payout.ts.
374
+ Two promises point at those files. I am giving them to the planner as
375
+ hard constraints:
376
+
377
+ PACT-004 refund window is 45 days (temporary, review 01-12-2026)
378
+ PACT-006 refund goes back to the original payment method [UNCHECKABLE]
379
+
380
+ PACT-006 has no test. The planner will add one to the plan, because the
381
+ new code touches the same file.
382
+ ```
383
+
384
+ A decision Rina made in July now shapes a plan in August. **Nobody had to
385
+ remember it.**
386
+
387
+ **Phase 6 — verify.** Re-check only what the change touched.
388
+
389
+ ```
390
+ Verify
391
+ build ✓
392
+ tests ✓ 142 passed
393
+ pact re-check ✓ PACT-004 HOLDING · PACT-006 now has a test → HOLDING
394
+ uncheckable count 2 → 1
395
+ ```
396
+
397
+ ---
398
+
399
+ ## 6. Why this is good for ORC
400
+
401
+ **It turns two lanes that were dead ends into a supply chain.**
402
+ `/orc-grill` and `/orc-brainstorm` already make `spec_invariants[]`. Today
403
+ that array is used once and thrown away. With `/orc-pact` the output of a
404
+ thinking lane becomes the input of every future build lane. ORC starts to
405
+ compound.
406
+
407
+ **It is a moat.** No other skill can build this. To have an invariant ledger
408
+ you first need a lane that produces invariants and tags them. ORC shipped that
409
+ in v0.42.0 for a different reason. Nobody else has it.
410
+
411
+ **It gives the PM something to read.** `PACT.md` is twelve sentences in plain
412
+ English about what the system promises. Budi can read it in a pull request.
413
+ Today there is nothing in ORC that a non-developer can open and understand.
414
+
415
+ **It makes `UNCHECKABLE` a product.** Every other tool in this space hides what
416
+ it cannot prove. ORC prints the list. That single behaviour is a real reason to
417
+ choose ORC over a generator skill.
418
+
419
+ **Cost is close to zero after the first run.** `orc pact status` is pure CLI —
420
+ no model, no tokens. The model is only needed when you harvest new promises or
421
+ when something breaks and a human must decide.
@@ -0,0 +1,112 @@
1
+ # Mock run — `/orc-pattern`
2
+
3
+ > Learns how **your** code is actually written, and caches it, so every future
4
+ > executor writes code that looks like yours.
5
+
6
+ ---
7
+
8
+ ## 1. What it does
9
+
10
+ ORC ships a generic best-practice playbook for each language (React, Vue,
11
+ Next.js, Angular, Express, NestJS, Django, FastAPI, Go, Postgres, plus a11y and
12
+ performance rule packs). On its own, a playbook would fight your codebase.
13
+
14
+ So the pattern is a **reconciliation** of two things, with two different rules:
15
+
16
+ | Rule class | Example | Who wins |
17
+ |---|---|---|
18
+ | **Conventions** — style and shape | folder layout, naming, how you do DI | **Your project wins**, even if the playbook disagrees |
19
+ | **Invariants** — correctness and security | no SQL built by string concat, no stack traces in a response, no index as a React key | **Always applied.** A project breaking these is buggy, not different |
20
+
21
+ The result is cached at `.claude/orc/patterns/<lang>-pattern.md` and copied
22
+ **word for word** into every executor slice from then on.
23
+
24
+ ---
25
+
26
+ ## 2. The run
27
+
28
+ ```
29
+ > /orc-pattern
30
+ ```
31
+
32
+ ```
33
+ Languages I can see in this repo:
34
+ express api/ 38 files no cached pattern
35
+ react web/ 52 files no cached pattern
36
+
37
+ Learning a pattern reads your most recently changed files with a subagent.
38
+ That costs tokens once, and every run after it is cheaper and more accurate.
39
+
40
+ Codify which? [both / express / react / none]
41
+
42
+ > both
43
+ ```
44
+
45
+ ```
46
+ Dispatching orc-pattern-codifier-sonnet-5-high (express) …
47
+ returned as: claude-sonnet-5 / high ✓
48
+
49
+ PATTERN — express source: reconciled 14 recent files read
50
+
51
+ Conventions taken FROM YOUR CODE (the playbook lost these)
52
+ · routes live in api/<area>/routes.ts, handlers in the same folder
53
+ · every handler is `export async function`, never an arrow const
54
+ · errors go through next(err) — you do not try/catch in handlers
55
+ · money is always integer minor units (api/payments/*.ts, 6 files)
56
+
57
+ Invariants KEPT from the playbook (not negotiable)
58
+ · no SQL string interpolation — you use parameterised queries already ✓
59
+ · no stack trace or raw error in a response body
60
+ · every route that reads :id re-checks ownership
61
+
62
+ Conflicts I will not guess about (1)
63
+ · api/refunds/ uses try/catch in 3 handlers while api/orders/ uses
64
+ next(err). Most recently modified wins → next(err). Say so if that is
65
+ backwards and I will flip it.
66
+
67
+ Written: .claude/orc/patterns/express-pattern.md
68
+
69
+ Dispatching orc-pattern-codifier-sonnet-5-high (react) …
70
+ Written: .claude/orc/patterns/react-pattern.md
71
+ ```
72
+
73
+ ---
74
+
75
+ ## 3. How other lanes see it
76
+
77
+ ```
78
+ $ orc pattern status express
79
+ express cached 2026-08-12 (exit 0)
80
+
81
+ $ orc pattern status svelte
82
+ svelte unknown language key (exit 2)
83
+ keys come from orc-pattern/references/INDEX.md — it is a framework
84
+ name, never a file extension
85
+
86
+ $ orc pattern status go
87
+ go not cached (exit 1)
88
+ ```
89
+
90
+ That exit code is how `/orc-fast` decides whether it is allowed to run. It is
91
+ a deterministic probe, never a guess and never a file search — the `.claude/`
92
+ folder is hidden, so a plain search would say "missing" from the wrong folder.
93
+
94
+ ---
95
+
96
+ ## 4. What to notice
97
+
98
+ - **ORC does not codify by itself.** It sends a subagent, reads the answer,
99
+ and writes the cache itself.
100
+ - **The cache survives updates.** It lives outside `templates/`, so
101
+ `orc update` never touches it.
102
+ - **Ambiguity is reported once, not guessed silently.** The try/catch conflict
103
+ above is a real example of that rule.
104
+ - **A brand new language folder gets the plain playbook**, marked
105
+ `source: generic` — there is nothing to reconcile yet.
106
+
107
+ ---
108
+
109
+ ## 5. Related
110
+
111
+ - The lane that requires this: [`/orc-fast`](orc-fast.md)
112
+ - Build the other half of the knowledge: [`/orc-wiki`](../templates/skills/orc-wiki/examples/wiki-run-mock.md)
@@ -0,0 +1,108 @@
1
+ # Mock run — `/orc-plan`
2
+
3
+ > Turns a request (or an analyst spec) into a real task plan. It plans only —
4
+ > it never builds.
5
+
6
+ ---
7
+
8
+ ## 1. What it does
9
+
10
+ A plan here is not a to-do list. Every task carries:
11
+
12
+ - the **files it will touch**, each checked against the real repo,
13
+ - **what it depends on**, so waves can be worked out later,
14
+ - **facets** — the properties the score is computed from,
15
+ - and a **test disposition**: does this task need a failing test first, or not,
16
+ and why not.
17
+
18
+ The planner also says how confident it is. Low confidence is an answer, and it
19
+ changes what ORC recommends next.
20
+
21
+ ---
22
+
23
+ ## 2. The run
24
+
25
+ ```
26
+ > /orc-plan add a sent_to_bank state for refunds, shown to customers
27
+ and to support
28
+ ```
29
+
30
+ ```
31
+ Grounding: I checked every path I am about to claim.
32
+ api/refunds/webhook.ts exists
33
+ api/refunds/state.ts exists
34
+ web/refunds/RefundRow.tsx exists
35
+ web/admin/RefundList.tsx exists
36
+ db/migrations/ exists
37
+ api/refunds/notify.ts DOES NOT EXIST → this task creates it (new)
38
+
39
+ 5 tasks · 2 waves · plan_confidence: medium
40
+
41
+ | # | Task | Files | depends_on | facets | test |
42
+ |---|---|---|---|---|---|
43
+ | T1 | add sent_to_bank to the state enum + migration | 2 | — | breadth 2 · new-surface · stateful | new-surface → red proof first |
44
+ | T2 | webhook writes the new state | 1 | T1 | breadth 1 · imitate · branching | behavior-change → red proof first |
45
+ | T3 | customer refund row shows it | 1 | T1 | breadth 1 · imitate | covered-by-existing → web/refunds/RefundRow.test.tsx:44 |
46
+ | T4 | admin list shows it | 1 | T1 | breadth 1 · imitate | covered-by-existing → web/admin/RefundList.test.tsx:87 |
47
+ | T5 | the two label strings | 1 | — | breadth 1 · mechanical | no-behavior → no test |
48
+
49
+ TDD tasks emitted: 2 (T1a, T2a). They are ordinary tasks — same conflict
50
+ graph, same waves — and T1/T2 depend on them, so each proof runs before its
51
+ code. Skipped: 2 covered-by-existing (both cited above and both found on
52
+ disk), 1 no-behavior.
53
+
54
+ Carried, not built (constraints from your grill session)
55
+ · refund state is only ever written by the webhook handler
56
+ · no backfill of existing refund rows
57
+
58
+ Open questions (2)
59
+ Q1 Does the customer email change too, or only the screen?
60
+ Q2 Is `sent_to_bank` allowed to go back to `requested`?
61
+
62
+ > Q1 screen only for now. Q2 no, one direction only.
63
+
64
+ plan_confidence: high (both questions answered)
65
+ ```
66
+
67
+ ```
68
+ What next?
69
+
70
+ 1 Take it into build → /orc scores it and runs the whole pipeline
71
+ 2 Save & stop → keeps the plan, builds nothing
72
+ 3 Drop it
73
+
74
+ > 2
75
+
76
+ Saved: .claude/skills/orc/planner/refund-visibility/ (+ plan-refund-visibility.md at the root)
77
+
78
+ Want a lane recommendation for building this? [yes / no]
79
+
80
+ > yes
81
+
82
+ → /orc-mini 5 tasks, 2 waves, top score 57, no risk flags.
83
+ Full review and verification are not what this plan needs.
84
+ runner-up /orc — safer, roughly 3x the tokens
85
+ not possible /orc-fast — this plan is 5 tasks; that lane runs ONE
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 3. What to notice
91
+
92
+ - **A path that does not exist is caught here**, before any agent is told to
93
+ edit it. `api/refunds/notify.ts` is marked `new` on purpose, not by accident.
94
+ - **Tests are scoped to what can actually fail.** A label string gets no test.
95
+ But a skip is never silent: `covered-by-existing` must name a test file that
96
+ really exists, and ORC checks that it does.
97
+ - **A task with a risk flag can never be scoped out of testing**, whatever its
98
+ facets say.
99
+ - **Only "Save & stop" offers the lane recommendation.** If you take it into
100
+ build, the lane is already chosen and running.
101
+
102
+ ---
103
+
104
+ ## 4. Related
105
+
106
+ - Route the saved plan: [`/orc-route`](orc-route.md)
107
+ - Build it: [`/orc`](orc.md)
108
+ - Ground it in a document first: [`/orc-analyze`](../templates/skills/orc-analyze/examples/analyze-mock.md)