@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,188 @@
1
+ ---
2
+ name: orc-fast
3
+ description: >
4
+ Fastest ORC lane — knowledge-gated single-executor implementation. Use for
5
+ "use orc-fast to implement X" or "/orc-fast". Requires TWO prerequisites:
6
+ a fresh project wiki (orc-wiki) AND a cached code-pattern for the request's
7
+ language — the precomputed knowledge replaces the analyst/planner entirely.
8
+ Either missing → falls back to orc-mini (never stops the chat). One
9
+ Sonnet 4.6 high executor, a build+test smoke gate, one repair round, ship.
10
+ Orchestrator runs fine at Sonnet medium. The orchestrator never implements —
11
+ it spawns.
12
+ ---
13
+
14
+ # ORC-FAST
15
+
16
+ The speed lane: precomputed knowledge instead of pipeline phases — the wiki
17
+ supplies grounding, the pattern cache supplies house style, so fast pays for
18
+ neither an analyst nor a planner. That trade only holds when both exist and
19
+ the wiki is fresh, so the two prerequisite gates below are hard: fail either →
20
+ **fall back to orc-mini** carrying whatever intake was done. Fallback is the
21
+ router — orc-fast is always safe to try.
22
+
23
+ Runs fine with the orchestrator at **Sonnet 4.6 / Sonnet 5, medium effort** —
24
+ no scoring, no planning judgment (the effort guard only gates the full `orc`
25
+ skill). **You never implement — you spawn.**
26
+
27
+ ## What fast deliberately does NOT have
28
+
29
+ No analyst, planner, scoring, waves, reviewer, verifier, test-author, or
30
+ summary. One executor, one smoke gate, one repair round. More than that → the
31
+ fit gate hands it to orc-mini.
32
+
33
+ ## Phase F0 — Preflight (the two prerequisite gates; no spawn)
34
+
35
+ Emit a `GATE` trace line per check when logging.
36
+
37
+ **a. Wiki gate.** Decide existence with `orc wiki status` — the deterministic
38
+ probe in `../_shared/detecting-artifacts.md`, never an ad-hoc `find` (`.claude`
39
+ is hidden). `none` = gate FAILED → fallback; else wiki present → compute the
40
+ tier from `.claude/orc/wiki-meta.json` per `../orc-wiki/references/staleness.md`:
41
+ `git rev-list --count <scan_commit>..HEAD` → FRESH / AGING / STALE (manifest
42
+ absent but docs present = STALE; wiki absent/empty = gate FAILED → fallback).
43
+ - **FRESH** → proceed silently. **AGING** → one-line notice, proceed.
44
+ - **STALE** → the user judges. Ask with exactly these options:
45
+ 1. **Refresh wiki, then continue fast** *(recommended)* — run orc-wiki's
46
+ incremental refresh (diff since `scan_commit`, re-scan only affected
47
+ docs), then re-enter this preflight.
48
+ 2. **Drop to orc-mini** *(preferable if in a hurry — mini grounds itself)*.
49
+ 3. **Continue fast anyway** *(not recommended — the executor may follow
50
+ stale claims)* — proceed and stamp `wiki_stale_override: true` in the
51
+ checkpoint so /orc-retro can correlate outcomes with overrides.
52
+
53
+ **b. Pattern gate.** Detect the request's language (file extensions / repo
54
+ deps, same signals as the full lane's tagging) and confirm the cache with
55
+ `orc pattern status <lang>` (exit 0 = cached — the deterministic probe in
56
+ `../_shared/detecting-artifacts.md`, never an ad-hoc `find`). Absent for the
57
+ language in play → gate FAILED → fallback. (A request touching no FE/BE language — pure docs/
58
+ config — passes this gate as N/A.) The cross-cutting `postgres` pattern is
59
+ NEVER a gate prerequisite — it is bonus-only (injected at F2 on a cache HIT),
60
+ so a missing `postgres-pattern.md` never fails the gate or forces a fallback.
61
+
62
+ **Any gate FAILED** → announce which prerequisite failed in one line, then
63
+ hand off to orc-mini via the fallback contract below. Never stop the chat.
64
+
65
+ **c. Gotchas — NOT a gate.** Two prerequisites stay two: a missing
66
+ `.claude/orc/gotchas.md` never forces a fallback. Fast READS repair memory
67
+ (`orc gotcha status`, then inject the SCOPE-MATCHING entries into the F2 slice,
68
+ cap 3) and never WRITES it — `../_shared/gotchas.md` §10.
69
+
70
+ ## Phase F1 — Fit gate + micro-intake (one pass, ONE user round-trip)
71
+
72
+ Draft a 3–5 line intent spec + 2–3 acceptance bullets. Judge fit: more than
73
+ one real task, ~5+ files, or core/security-sensitive surface → fallback to
74
+ orc-mini WITH the intent spec attached (no rework); emit a `GATE` line for the
75
+ verdict. Then the lane's ONLY pre-spawn ask — one combined confirmation:
76
+ preflight result + intent spec + acceptance bullets + "proceed?" (soft
77
+ sign-off; never split into multiple questions). Create the run folder
78
+ (`.claude/orc/run/{run-slug}/` — shared format, so fallback needs no
79
+ migration) and write the intent-spec + a minimal checkpoint.
80
+
81
+ ## Phase F2 — Slice build + dispatch (ONE executor)
82
+
83
+ Build one slice for `orc-executor-sonnet-4-6-high` (dispatch BY NAME; model
84
+ pinned in the agent file). **Under `opus5_only` it is `orc-executor-opus-5-low`** — forced, and while that mode is on this lane needs an Opus 5 main session, so the "runs fine at Sonnet medium" premise applies only with it off (`../_shared/opus5-only.md`).
85
+
86
+ **Extra (`extra_enabled`, `../_shared/extra-dispatch.md`):** the same slice may run off Claude. **This lane has no score at all, so it holds a POSITION, not a band:** resolve `orc extra resolve --slot fast-executor --json` (set with `orc extra role set fast-executor <profile>/<model>`). No row on that slot = Claude, and that is an answer, not a gap. The `extra:` line joins the F0 preflight (P0, printed whenever the gate is on) and NAMES the agent it displaces — `orc-executor-sonnet-4-6-high`; dispatch through `orc extra dispatch --task <file> --json` with `slot: "fast-executor"` and **no `score`** (both is refused by name); validate with `return-validation.md` **§2b, not §2**; a failure runs `orc extra reconcile <task_id>` FIRST — a worktree that moved is RESUMED, never re-done — then falls back to that same pinned agent BY NAME, announced. Extra is orthogonal to the knowledge gate — a fresh wiki and a cached pattern are still required, and a foreign worker gets the same pointers-not-content slice.
87
+
88
+ - the task (intent spec) + acceptance bullets as definition-of-done
89
+ - **wiki pointers, not content** (fast's lane-delta in
90
+ `../orc/references/wiki-consult.md`): the PATHS of 1–3 relevant pages
91
+ selected from `wiki/INDEX.md` by keyword match — prefer the cross-cutting
92
+ maps (`orc-reference-api-surface` etc.) when the domain matches. Instruct
93
+ the executor to READ them first, and include the precedence line verbatim:
94
+ `code > fresh wiki > stale wiki (hints) > model priors`. Never paste wiki
95
+ bodies into the slice (a Sonnet-medium orchestrator curating wiki prose
96
+ defeats the lane). **Emit `WIKI-CONSULT <tier> :: docs=<the selected pointer
97
+ paths>`** (tier from the F0 gate; `docs=none` if no pages fit) — the F0
98
+ `GATE` line captured the gate *decision*; this captures which pages grounded
99
+ the run.
100
+ - the cached pattern injected LITERALLY (same `pattern` slice contract as
101
+ full; the pattern file is small by design)
102
+ - **crosslink (cross-repo, advisory):** a task touching a boundary in
103
+ `.claude/orc/crosslink/needs.json` gets the cached linked contract injected
104
+ as `crosslink` ("hints, not verified") — advisory, never blocks, never
105
+ outranks local code.
106
+ - **`db:postgres` bonus:** a data-access task with
107
+ `.claude/orc/patterns/postgres-pattern.md` CACHED merges it into the same
108
+ `pattern` slice (query invariants). Cache MISS → skip silently — fast never
109
+ codifies and never falls back on this.
110
+ - **the read ladder** (`../_shared/read-ladder.md`): read only as far up as the
111
+ question needs — a file the task will EDIT is read in full first. Precomputed
112
+ knowledge REPLACING exploration is this lane; a directory sweep is not.
113
+ - the standing `house_rules` card (`../orc/references/house-rules.md`,
114
+ injected literally, same as full/mini)
115
+ - constraints from the intent spec
116
+ - **terse-return rule:** standard contract fields, NO narrative prose — files
117
+ changed, one-line diff summary, smoke-relevant notes only.
118
+
119
+ Validate the return per `../_shared/return-validation.md` — `unmet[]`
120
+ honesty, `pattern_version` + `invariants_checked` attestation, `actual_model`
121
+ / `actual_effort` downgrade check (emit the `VERIFY` trace line), and §6's worktree delta (`git status --short` before/after; a path changed outside `declared_files` is a violation whatever the return said). Malformed
122
+ return = failure (one re-dispatch, then fallback offer).
123
+
124
+ ## Phase F3 — Smoke gate (build + test; blocks ship on red)
125
+
126
+ Run the gate per `../_shared/smoke-gate.md`, sourcing commands **from
127
+ `wiki-meta.json`'s `commands` block** (recorded at wiki scan — don't
128
+ rediscover tooling; manifest lacks them → detect once and say so). **GREEN**
129
+ → ship. **RED** → one repair round; second red → STOP and offer: escalate to
130
+ orc-mini (reason `smoke-red-escalation`) / switch to full `/orc` / stop.
131
+ Docs-only → gate N/A, say so.
132
+
133
+ ## Phase F3.5 — Mock example (config `mock_example`, default ask)
134
+
135
+ Canonical: `../_shared/drift-recovery.md` — load on fire. Only after a GREEN
136
+ F3, before ship: `ask` → MANDATORY offer · `on` → build · `off` → skip.
137
+ Deliverable `mock-examples/<change-slug>/` at project root — **never
138
+ committed/staged**. Drift answer → `DRIFT-FROM` recovery (cap 2 loops, honest
139
+ report on cap). Trace: `PHASE mock-example`, `DRIFT loop=<n>`.
140
+
141
+ ## Phase F4 — Ship
142
+
143
+ Offer commit (push if asked; never stage `mock-examples/`). Append the final markers to the checkpoint, emit
144
+ `OUTCOME task=… band=fast model=… retries=… unmet=…` + `FINISH`, show the
145
+ dispatch line (model/effort actually used) + the `/usage` reminder. Fast never
146
+ triggers the post-ship wiki refresh ask (preflight polices freshness on the
147
+ way in) — the passive stale-flag note still applies to touched covered files.
148
+
149
+ ## Fallback contract (orc-fast → orc-mini)
150
+
151
+ Follow the writer side of `../_shared/fallback-handoff.md`: announce the
152
+ failed gate in one line, write the `FALLBACK-FROM` block into the run folder
153
+ (REASON: wiki-absent | wiki-stale-user-choice | pattern-absent | fit-gate |
154
+ smoke-red-escalation), and invoke orc-mini pointing at it. The run folder is
155
+ already in the shared format — no migration.
156
+
157
+ ## Behavior trace (PERMANENT — same rule as every lane; always on)
158
+
159
+ Follow `../orc/references/trace-protocol.md`: at run start write
160
+ `log_dir/.current` = `run-fast-<slug>-<DDMMYY>-<HHMMSS>.txt`, `touch the trace file`
161
+ of that name in the SAME step, + store `trace_path`. Narration is **dispatched, never remembered**: record each event
162
+ with its REAL timestamp into a packet (F0–F4 `PHASE`, `GATE` at the preflight/
163
+ fit/smoke verdicts, `DISPATCH`/`VERIFY` — `actual_model`/`actual_effort` vs
164
+ expected — `OUTCOME`, `FINISH`, plus `decisions` = the WHY), then dispatch
165
+ `orc-trace-writer-haiku-4-5` PAIRED with the next dispatch; fast batches to
166
+ **2 packets** (preflight+dispatch, gate+ship). A phase ending with
167
+ zero new trace lines is a protocol violation — dispatch its packet NOW. The
168
+ `FINISH` packet returns BEFORE you delete `log_dir/.current`.
169
+
170
+ ## Config
171
+
172
+ Resolve at run start (`../orc/config.md` ← `.claude/orc.config.yaml`):
173
+ `wiki_fresh_max` / `wiki_aging_max` (tier edges) + `log_dir`. Fast has no
174
+ config key of its own — command-entry only; wave/scoring/review keys never
175
+ apply.
176
+
177
+ ## Checkpoint (minimal, append-only)
178
+
179
+ One `fast-checkpoint.md` in the run folder: GATE results (+ any
180
+ `wiki_stale_override`), the dispatch, smoke verdicts, OUTCOME — enough for
181
+ /orc-retro mining and fresh-session resume, nothing more.
182
+
183
+ ## What fast still enforces (from the main hard rules)
184
+
185
+ Never implement yourself (smoke gate = read-only build+test) · all artifacts
186
+ in the run subfolder, never project root · validate the subagent return
187
+ (malformed = failure) · never offer commit on a red build · report the
188
+ dispatch + remind the user to run `/usage` (never invoke it programmatically).
@@ -0,0 +1,207 @@
1
+ ---
2
+ name: orc-grill
3
+ description: >
4
+ Standalone idea-sharpening lane — start from one vague sentence and leave with
5
+ a settled idea written down. Use for "/orc-grill", "help me think this
6
+ through", "I want X but I do not know what I want yet", "something is wrong
7
+ with Y". It asks you rounds of questions (every question that is ready, in the
8
+ same round), looks facts up itself instead of making you recite your own
9
+ codebase, and stops only when YOU say the idea matches what you meant. Three
10
+ exits: save it, carry it straight into /orc-analyze, or drop it. No scan, no
11
+ plan, no build, no run folder, no code written. The orchestrator never answers
12
+ its own questions.
13
+ ---
14
+
15
+ # ORC-GRILL
16
+
17
+ The lane you use **before** you know what you want. One short sentence is a
18
+ complete input:
19
+
20
+ > "I want notifications for merchants."
21
+ > "Something is wrong with our refunds."
22
+
23
+ **Vagueness is the input here, not a reason to refuse.** Every other lane
24
+ punishes a thin request — the planner refuses it, the analyst absorbs it into
25
+ `ASSUMPTION` tags and then asks you the questions anyway, at scan prices. This
26
+ lane asks them at conversation prices, and hands the result to those lanes
27
+ already sharp.
28
+
29
+ ## What this lane is NOT
30
+
31
+ - **Not `/orc-analyze`.** Analyze checks a requirement **against the code**. It
32
+ answers "does the repo really do that?". Grill answers "what do I actually
33
+ want?". Grill first, analyze second — that order is the whole point.
34
+ - **Not `/orc-plan` or `/orc`.** No tasks, no waves, no scoring, no build. It
35
+ never writes code and never touches a file outside its own context doc.
36
+ - **Not `/orc-learn`.** Learn teaches you an existing feature. Grill shapes one
37
+ that does not exist yet.
38
+ - **Not `/orc-quick`.** Quick DOES something now. Grill decides what should be
39
+ done at all.
40
+ - **Not `/orc-brainstorm`.** Brainstorm GENERATES options when you have none —
41
+ it proposes and you judge. Grill sharpens the one you have — it asks and you
42
+ answer. Brainstorm picks which mountain; grill picks the path up it.
43
+
44
+ ## Nothing to configure
45
+
46
+ Standalone and command-entry only. It reads `log_dir` and nothing else. No
47
+ dispatch-forcing key applies, because it has no scored dispatch to force.
48
+
49
+ ---
50
+
51
+ ## G0 — Preflight (ONE time, silent, nothing here can stop the run)
52
+
53
+ 1. **Config.** Read `log_dir`. Read no other key.
54
+ 2. **Trace.** Write `log_dir/.current` = `run-grill-<slug>-<DDMMYY>-<HHMMSS>.txt`
55
+ AND `touch the trace file` of that name in the SAME step. Both, or neither.
56
+ The slug comes from the user's opening sentence; if it is too vague to slug,
57
+ use `idea` plus the next free number.
58
+ 3. **Knowledge probes.** Follow `../_shared/detecting-artifacts.md` — never a raw
59
+ `find`, because `.claude` is hidden. `orc wiki status` · `orc pattern status
60
+ <lang>` · `orc gotcha status`. **All three are helpful extras.** Missing
61
+ knowledge never gates this lane, never triggers a scan, and never causes a
62
+ fallback — it only means more of the frontier is a question instead of a
63
+ lookup. Print ONE line each, then move on.
64
+
65
+ ---
66
+
67
+ ## G1 — The interview (the whole lane)
68
+
69
+ **Follow `../_shared/interview.md` exactly.** It is the canonical mechanic and
70
+ this lane does not get a private version of it. In short, and in that file's
71
+ words:
72
+
73
+ - Build a **design tree** of open questions from the opening sentence. Draw the
74
+ dependencies — "which queue?" sits under "is this async at all?".
75
+ - Ask the **whole frontier** each round: every open question whose prerequisites
76
+ are settled, and nothing that depends on an answer you do not have yet.
77
+ - Use the fixed shape, so a round can be answered by number:
78
+ `❓ **Q1** — **<title>**: <body>`, then the recommendation alone on a `➡️` line.
79
+ - **Facts are yours to find; decisions are the user's to make.** Resolve facts up
80
+ the ladder — wiki status, wiki pages, cached pattern, `orc gotcha list`, and a
81
+ read-only ad-hoc dispatch **last**. Never block a round on a running fact-find;
82
+ only the questions genuinely downstream of it wait. And never soften the other
83
+ half: **a lane that answers its own interview question has broken this
84
+ contract.**
85
+ - Tag every settled decision `intent` or `constraint` as it settles. The
86
+ constraints are what later become `spec_invariants[]` — this is the step that
87
+ makes the conversation load-bearing instead of merely pleasant.
88
+
89
+ **Fact-finding dispatches.** Read-only recon is an **ad-hoc dispatch by model +
90
+ effort** (the `/orc-quick` recon precedent), never a pinned agent — so no agent
91
+ file ships for this lane and the hook writes no `SPAWN`/`RETURN` for it. Announce
92
+ it on one line before it goes out (`recon: claude-sonnet-4-6 / medium — where
93
+ refunds are written`) so the spend is never silent, but do NOT stop the round
94
+ waiting for permission. Emit `DISPATCH … adhoc=true` and `VERIFY` yourself; the
95
+ agent reports its own `actual_model` / `actual_effort`.
96
+
97
+ **No question cap.** Some ideas settle in three questions and some need fifty. A
98
+ cap would truncate exactly the case this lane exists for. The controls are the
99
+ user's own words ("stop asking, just save it") and `/orc-explain` when a round
100
+ gets dense.
101
+
102
+ **"I do not even know what the options are" is a different lane, not a worse
103
+ answer.** When a round comes back that way — the user cannot choose because
104
+ nobody has generated anything to choose between — OFFER `/orc-brainstorm`, which
105
+ proposes candidates on purpose and hands the chosen direction back here. Use
106
+ `../_shared/lane-suspend.md` (`RETURN-TO`) so the trip returns to this same
107
+ invocation. This does not soften the rule above: handing the user a lane whose job
108
+ is generating options is not answering their question for them. It is an offer —
109
+ "answer it roughly and I will keep going" stays on the menu.
110
+
111
+ **Ungrillable questions get named, not talked around.** "How should this feel?"
112
+ cannot be settled by talking — say so and point at ORC's `mock_example` phase
113
+ (`mock-examples/<slug>/`). "Does the code really do that?" is `/orc-analyze`.
114
+ Carrying an open question with the right instrument named is a finished answer.
115
+
116
+ **The confirmation gate ends the lane, not an empty frontier.** Play the idea
117
+ back in plain words and ask whether it matches what they meant. Only a yes ends
118
+ it.
119
+
120
+ ---
121
+
122
+ ## G2 — Exit (ONE question, three answers)
123
+
124
+ Ask once, after the confirmation gate:
125
+
126
+ ```
127
+ The idea is sharp now. What next?
128
+
129
+ 1 Stop here — save it → writes orc-grill/<slug>/grill-context.md
130
+ 2 Continue into /orc-analyze → checks it against the real code
131
+ 3 Save the constraints to the pact → they outlive this run (/orc-pact)
132
+ 4 Write it up as a document → /orc-doc, so other people can act on it
133
+ 5 Stop, save nothing
134
+ ```
135
+
136
+ **Exit 3 (v0.46.0)** is present only when at least one decision settled here was
137
+ tagged `constraint`. It writes the doc first, then hands those rows — quoted
138
+ VERBATIM, with `origin: {lane: orc-grill, run: <this run>}` — to `/orc-pact`,
139
+ which is the only thing that writes the ledger. Without it, every constraint this
140
+ lane settles evaporates when the run ends, which is exactly the failure `/orc-pact`
141
+ exists for. No constraints settled → the option is **absent with the reason
142
+ printed**, never a dead number.
143
+
144
+ **Exit 4 (v0.48.0)** writes the doc first, then enters `/orc-doc` with it as the
145
+ D1 context. The interview has already produced exactly what D1 and D4 ask for, so
146
+ those gates are **pre-answered from the artifact and the user only confirms** —
147
+ which is the whole point of not re-asking a frozen question. Settled decisions
148
+ travel with their `intent`/`constraint` tags, and any `spec_invariants[]` lands
149
+ in `context.md`'s decision table. Exits 2 and 4 are different questions: 2 asks
150
+ *is this buildable*, 4 asks *can somebody who was not here act on it*.
151
+
152
+ **When is it sharp enough?** Exit 2 exists to clear the analyst's own entry
153
+ floor, so use that floor as the bar:
154
+ **analyzable ⇔ the input names (a) a subject the repo could plausibly contain —
155
+ a feature, a flow, a file, or a document — AND (b) at least one thing that should
156
+ be true when the work is done.** Below it, exit 2 just bounces straight back.
157
+
158
+ **One extra exit, present ONLY when this run was entered with a `RETURN-TO`
159
+ marker** (`../_shared/lane-suspend.md`): `Return to /<sender-lane> — carry these
160
+ decisions back`, and it is the recommended option in that state. It is added to
161
+ the menu, never a replacement: a user who picks "stop, save nothing" simply does
162
+ not return, and the sender's snapshot is still on disk. Decisions travel back with
163
+ their `intent`/`constraint` tags intact plus `source: /orc-grill`, and the
164
+ **Facts looked up** rows go with them.
165
+
166
+ - **1 — save.** Write the doc (below) and end the run.
167
+ - **2 — hand off.** Write the doc first, then enter `/orc-analyze` with that file
168
+ as the input. The analyst receives an already-scoped requirement and spends its
169
+ tokens **grounding it in code** instead of re-asking scope. From there it is an
170
+ ordinary analyze run — same phases, same gates, same `requirement-spec.md`.
171
+ When this lane was entered FROM `/orc-analyze` (its reverse trigger), exit 2
172
+ returns to that same invocation and the user retypes nothing.
173
+ - **5 — drop it.** Write nothing. Still close the trace properly.
174
+
175
+ ---
176
+
177
+ ## The doc it writes
178
+
179
+ ```
180
+ <projectRoot>/orc-grill/<slug>/grill-context.md
181
+ ```
182
+
183
+ Project root, visible — **never inside `.claude/`**, never inside a run folder,
184
+ for the same reason `/orc-quick` puts its doc there: a document a human reads and
185
+ reuses belongs where the human can find it. One `.md` per slug, ever; the same
186
+ slug re-opens and extends the same file. **Never staged for commit by ORC.**
187
+
188
+ Shape, and what each part is for: `references/grill-doc.md`. The top carries a
189
+ delimited `<!-- orc-grill:context -->` block so a later session reads the summary
190
+ without reading the whole file.
191
+
192
+ ## Behavior trace (always on — same as every lane)
193
+
194
+ Follow `../orc/references/trace-protocol.md`. Lane name `grill`. This is a
195
+ **single-dispatch** lane: **exactly ONE end-of-run packet**, dispatched solo to
196
+ `orc-trace-writer-haiku-4-5` after the exit choice and BEFORE you delete
197
+ `log_dir/.current`. It carries `run_meta`, the round-by-round event list, the
198
+ settled decisions as `decisions` (the WHY layer), the exit taken, and `FINISH`. A
199
+ run that ends with `zero new trace lines is a protocol violation`.
200
+
201
+ ## Rules this lane always keeps
202
+
203
+ Never answer your own question · never write code or edit a project file · never
204
+ scan the repo · never force a lane on the user (exit 2 is an offer) · look facts
205
+ up before asking for them · announce every dispatch · tag every decision `intent`
206
+ or `constraint` · never stage `orc-grill/**` · tell the user to run `/usage`
207
+ (never run it yourself).
@@ -0,0 +1,105 @@
1
+ # The grill context doc — shape and rules
2
+
3
+ This is the file `/orc-grill` writes when the user picks exit 1 or exit 2. It is
4
+ written for a HUMAN to read later, and for `/orc-analyze` to consume as an input
5
+ instead of re-asking scope.
6
+
7
+ ## Where it goes
8
+
9
+ ```
10
+ <projectRoot>/orc-grill/<slug>/grill-context.md
11
+ ```
12
+
13
+ - `<slug>` comes from the **first** grill on this idea. No date in the folder
14
+ name, so re-running with the same slug re-opens the same thread.
15
+ - **One file per folder. Never a second `.md`.**
16
+ - Project root, next to `orc-quick/`, `test-generator/` and `learning-docs/` —
17
+ never inside `.claude/`, never inside a run folder.
18
+ - **Never staged for commit by ORC.** Do not edit `.gitignore`.
19
+
20
+ ## Rules
21
+
22
+ 1. **Write it before the exit completes.** Exit 2 writes the doc FIRST, then
23
+ hands off — the analyst reads a file, not a memory of a conversation.
24
+ 2. **Re-opening extends, never replaces.** A second grill on the same slug adds
25
+ a new dated round section and updates the context block. Earlier decisions
26
+ stay, with the date they were made. A decision that was later reversed is
27
+ struck through with its reason, not deleted — the reversal is the useful part.
28
+ 3. **Only what was settled.** A question the user never answered belongs in
29
+ "still open", never in "decided" with a guessed value.
30
+ 4. **Quote the user.** Their own words for what the thing is; your paraphrase is
31
+ how intent drifts.
32
+
33
+ ## The context block
34
+
35
+ The top of the file carries a delimited summary:
36
+
37
+ ```markdown
38
+ <!-- orc-grill:context -->
39
+ **merchant-notifications** · last grilled 08-08-2026 · 11 decisions · 2 open
40
+ Merchants get told when a payout fails. Email only, no in-app, no SMS.
41
+ Batched hourly, not per-event. Existing `notifications` table is reused.
42
+ Open: what the email actually says (needs a mock) · whether the retry
43
+ worker already has a hook (needs code).
44
+ <!-- /orc-grill:context -->
45
+ ```
46
+
47
+ **Why the markers matter.** A later session — or `/orc-analyze` deciding whether
48
+ this input is worth consuming — reads ONLY this block. It is small and cheap. The
49
+ body below is for a human.
50
+
51
+ ## Body shape
52
+
53
+ ```markdown
54
+ ## What this is
55
+ <the user's own words, quoted, then one paragraph of plain-language summary>
56
+
57
+ ## Decided
58
+ | # | decision | tag | why it was settled this way |
59
+ |---|---|---|---|
60
+ | 1 | email only, no in-app | intent | in-app needs a socket layer that does not exist yet |
61
+ | 2 | no new dependencies | constraint | the user said "no new deps" — verbatim |
62
+ | 3 | batch hourly | intent | per-event was rejected: payout retries fire in bursts |
63
+
64
+ `tag` is `intent` (what to build) or `constraint` (a boundary the build must not
65
+ cross). Every `constraint` row becomes a `spec_invariants[]` entry downstream and
66
+ is appended VERBATIM to every executor slice — so word it as an instruction, not
67
+ as a note.
68
+
69
+ ## Ruled out of scope
70
+ - SMS — "later, not now"
71
+ - backfilling old failed payouts — the user said the data is not worth it
72
+
73
+ Say why, in the user's terms. A scope boundary with no reason gets re-litigated.
74
+
75
+ ## Facts looked up (not asked)
76
+ | fact | source | value |
77
+ |---|---|---|
78
+ | is there a notifications table | wiki FRESH · wiki/orc-feature-notifications.md | yes, `notifications(id, kind, payload)` |
79
+ | does this project retry payouts | recon dispatch (sonnet-4-6/medium) | yes, `src/jobs/payout-retry.js:88` |
80
+
81
+ This table is what stops the next lane re-deriving the same things.
82
+
83
+ ## Still open — each with the instrument that settles it
84
+ | question | why talking cannot settle it | instrument |
85
+ |---|---|---|
86
+ | what the email says | taste — needs something to look at | `mock_example` phase → `mock-examples/<slug>/` |
87
+ | does the retry worker expose a hook | a claim about the repo | `/orc-analyze` |
88
+
89
+ An open question with the right instrument named is a finished answer. An open
90
+ question with no instrument is unfinished work.
91
+
92
+ ## Rounds
93
+ A short log: round number, what was asked, what came back. One line per question.
94
+ This is what makes a re-opened thread cheap to resume.
95
+ ```
96
+
97
+ ## Writing style
98
+
99
+ Write for the person who comes back in three weeks having forgotten everything —
100
+ and for the analyst who will read this instead of interviewing them again.
101
+
102
+ - Plain words, short sentences.
103
+ - Name real files and line numbers wherever a fact came from the repo.
104
+ - Always record **why** an option lost. A rejected idea with its reason is what
105
+ stops the next session proposing it again.