@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,121 @@
1
+ ---
2
+ name: orc-planner-mini
3
+ description: >
4
+ Fast-lane Requirement Planner for ORC-MINI (Sonnet 5, high effort). Turns a
5
+ detailed request OR a System Analyst requirement-spec into orc's
6
+ planning-output: right-sized tasks, each with grounded declared_files (incl.
7
+ tests), explicit depends_on, owns_area, and spec_ref — self-checked for
8
+ dependency cycles, same-file collisions, and requirement coverage. Use when
9
+ orc-mini needs a fast plan for a well-scoped request — fires on "plan this
10
+ quickly", "fast task breakdown", "break this into tasks", or after mini doc
11
+ analysis. Distinct from the full orc-planner (Opus 5 medium — pick that one
12
+ when the dependency graph is genuinely complex: >8 tasks, deep chains, or
13
+ many same-file serializations): single-pass, lighter grounding, deep
14
+ dependency tracing trimmed. The orchestrator dispatches this to a subagent —
15
+ it never plans itself.
16
+ ---
17
+
18
+ # orc-planner-mini
19
+
20
+ Fast variant of the Requirement Planner, dispatched by orc-mini as a Sonnet 5
21
+ high subagent. Produces the SAME artifact (orc's `schemas/planning-output.md`)
22
+ and follows the SAME input + grounding + branch rules as `../orc-planner/`, which
23
+ is AUTHORITATIVE for the full procedure; the summary below orients.
24
+
25
+ ## Procedure (summary)
26
+
27
+ 1. **Accept** a detailed request OR an analyst requirement-spec. "Too thin to
28
+ plan" is defined, not felt: plannable ⇔ the request states (a) an observable
29
+ outcome AND (b) an identifiable repo area it lands in — failing either, do
30
+ NOT plan; recommend `orc-analyze-mini` (requirement mode) instead.
31
+ 2. **Ground** `declared_files[]` in real paths: standalone → read the repo (+ a
32
+ non-empty `wiki/` — select via `wiki/INDEX.md` keywords; pull `Contracts &
33
+ shapes` + `Testing map` from the matching docs; code outranks any wiki
34
+ claim); from-SA → trust the spec's file map, no repo re-read —
35
+ but NEW paths beyond the spec (tests, new modules) still get their own
36
+ parent-dir Glob. Fill each task's `grounding[]` attestation (`{path,
37
+ disposition: exists|new, evidence}`) — never mark `exists` on a path you
38
+ didn't confirm; the orchestrator Globs every `exists` path and bounces
39
+ misses back (one retry).
40
+ 3. **Draft** right-sized tasks — anchors, not adjectives: normally **1–5
41
+ declared files, one `owns_area`** per task; >7 files or two unrelated areas
42
+ → split; ≤~10-line dependency-bound change → merge; deviation needs a
43
+ one-line reason. Each task carries `depends_on`, `owns_area`, `spec_ref`,
44
+ `requirements[]` (the R#/DoD ids it implements — `[]` only for pure-infra
45
+ with a stated reason), `spec_invariants[]` (load-bearing Context & invariants
46
+ lines copied verbatim — the orchestrator appends them to the executor
47
+ slice's constraints[]), a `facets` block (breadth = `len(declared_files)`,
48
+ novelty/logic/test_surface/uncertainty, cited `risk[]` — the orchestrator
49
+ scores from these; you never compute the score), and a sliced `acceptance[]`
50
+ where each line cites its source (`R3` / `DoD#2` — a line with no source is
51
+ invented). **When the caller's slice says `tdd: on`** (orc-mini asked its
52
+ one intake question and the user said yes), also author each requirement's
53
+ `tdd_spec` entry — given/when/then + a runnable skeleton in the project's
54
+ test framework, or `tdd: exempt — <reason>` (schema: planning-output.md).
55
+ 4. **Self-check (always — cheap, prevents broken waves):**
56
+ - **cycle detection** — no `depends_on` chain loops back on itself;
57
+ - **same-file collision** — two tasks sharing a `declared_files` entry must be
58
+ merged, or serialized with a dependency;
59
+ - **coverage** — every in-scope R# / DoD line appears in ≥1 task's
60
+ `requirements[]`; an orphan requirement is a MALFORMED plan.
61
+ On a failed check, FIX the plan (merge/split/add-dep/add-task) before
62
+ presenting — never emit a plan with a cycle, an unserialized collision, or
63
+ an orphan. The orchestrator recomputes all three at Phase 1 exit and
64
+ bounces failures (one retry). Deep dependency tracing is trimmed here.
65
+ 5. **Ask clearly; step back when unclear:** set `plan_confidence: high|medium|low`
66
+ (+ reason) and turn every ambiguity into an `open_questions[]` entry
67
+ (`{question, proposed_default, blocking}`) — never silently pick a reading.
68
+ `plan_confidence: low` OR >3 blocking questions → recommend stepping back to
69
+ `orc-analyze-mini` (the user may override).
70
+ 6. **Present** the plan once → approve/edit (breakdown/approach only).
71
+ 7. **Branch** → take into build (hand back to orc-mini) or save & stop — checkpoint
72
+ FIRST either way (never a loose plan file with no checkpoint).
73
+
74
+ ## What's trimmed vs the full planner
75
+
76
+ - **Lighter grounding:** confirms the main file paths rather than exhaustively
77
+ tracing every reference (standalone case). From-SA case is identical — trust
78
+ the spec, no repo re-read (new paths still grounded).
79
+ - **Lighter self-check:** cycle + same-file-collision + coverage checks always
80
+ run (they're cheap and prevent broken waves); deep dependency tracing is
81
+ trimmed.
82
+ - **Concrete escalation thresholds** (suggest the full `../orc-planner/`, Opus
83
+ 4.8 medium, and let the user choose — not self-assessed vibes): >8 tasks, OR
84
+ any dependency chain 3+ deep, OR >2 same-file serializations needed.
85
+ - **Model:** Sonnet 5, high effort.
86
+
87
+ ## Checkpoint + hand-back (same as full)
88
+
89
+ Checkpoint the plan into `orc/planner/{name}/` before branching (never a loose
90
+ file with no checkpoint). On "take into build", hand back to the orchestrator,
91
+ which runs the full Phase 2–8 (scoring, effort table, wave cap, pauses). The
92
+ mini planner never builds directly.
93
+
94
+ ## Identical
95
+
96
+ - Accepts detailed request OR analyst requirement-spec; refuses requests below
97
+ the plannable floor.
98
+ - Grounding provenance recorded only when standalone.
99
+ - Show plan once → approve/edit (breakdown/approach only) → branch
100
+ (take into build / save plan-{name}.md and stop).
101
+ - Plain-language handoffs, dispatched not self-run.
102
+
103
+ ## Return contract (inlined — do not reconstruct from the full planner)
104
+
105
+ Produce `../orc-planner/`'s artifact — orc's `schemas/planning-output.md`: every
106
+ task with `declared_files` (incl. tests), `grounding[]` (per-file
107
+ exists|new attestation with evidence), `acceptance[]` (sliced, source-cited
108
+ definition-of-done lines), `requirements[]`, `spec_invariants[]`, `facets`
109
+ (breadth/novelty/logic/test_surface/uncertainty + cited `risk[]`), `depends_on`,
110
+ `owns_area`, `spec_ref`; and at the top level `plan_head`, `plan_confidence`, and
111
+ `open_questions[]`. Checkpoint it into `orc/planner/{name}/` before branching.
112
+ Return exactly:
113
+
114
+ - the `planning-output` (the plan itself) + a plain-language `summary`.
115
+ - `coverage: {requirements: N, tasks: M, orphans: []}` — self-attested; the
116
+ orchestrator recomputes it and bounces orphans.
117
+ - `actual_model` — quoted verbatim from your system prompt's "The exact model ID
118
+ is …" line (`unknown` if absent, never guessed).
119
+ - `actual_effort` — `$CLAUDE_EFFORT`.
120
+
121
+ Never build or spawn.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: orc-pr
3
+ description: >
4
+ Ship-phase subskill for ORC Phase 8. Handles commit, push, and PR
5
+ file generation from the team's template (pr.md in this folder). Coordination
6
+ skill: always runs inline. Not for direct user invocation.
7
+ ---
8
+
9
+ # orc-pr
10
+
11
+ ## Input slice
12
+
13
+ - ticket, pr_title, target_branch — asked together by the orchestrator
14
+ - changed_files[] / commit_range
15
+ - template_ref = subskills/orc-pr/pr.md — the team's PR template (user-provided)
16
+ - build_green: bool — MUST be true; refuse commit otherwise (hard rule 8)
17
+ - stacked_pr, stacked_pr_loc, stacked_pr_files, stacked_pr_max_layers — the
18
+ stack-gate config (`../../config.md`)
19
+
20
+ ## Procedure
21
+
22
+ 1. Gate: build_green must be true. If not, return failure — never commit red.
23
+ 2. **Stacked-PR gate (load `stack-gate.md` — full `/orc` + `/orc-ultra` only).**
24
+ Measure the change, compare against `stacked_pr_loc` / `stacked_pr_files`, and
25
+ on a tripped threshold ask the ONE P0 question. "Yes" (with a ticket AND a
26
+ resolved PR template) → write `stacked-pr/<slug>/STACK-FROM.md` and hand off to
27
+ `/orc-pr-setup` → `/orc-pr-driver`; anything else (under threshold, `off`,
28
+ declined, no ticket, no template) → continue this procedure as one regular PR.
29
+ 3. Show the current branch to the user via the orchestrator before committing.
30
+ 4. Commit (message referencing the ticket) → push → generate the PR file:
31
+ - Read pr.md as the template. Fill its sections from the run: intent-spec
32
+ scope, task summary, test results, verify outcome.
33
+ - Filename: run/{ticket}-{sanitized-title}.md
34
+ (lowercase, spaces→hyphens, strip anything unsafe for filenames)
35
+ 5. PR targets `target_branch` as base.
36
+
37
+ ## Return contract
38
+
39
+ - { pr_file_path, commit_result, push_result, pr_result }
40
+ - `stack_gate`: { tripped: bool, loc, files, decision: `under-threshold` | `off` |
41
+ `declined` | `no-ticket` | `no-template` | `handoff`, slug } — always present in
42
+ full `/orc` / `/orc-ultra`; `handoff` means no PR was created here.
43
+ - failure_reason on any failed step (the why). Malformed = failure to caller.
44
+
45
+ ## Template
46
+
47
+ The file `pr.md` in this folder is the team's default PR template. Replace the
48
+ placeholder with your real template — the skill reads whatever is there. Template
49
+ resolution when it is still the placeholder (project `.github/`, `docs/`,
50
+ `CLAUDE.md`, or three recommended options) is
51
+ `../../../_shared/pr-templates.md` — shared with the stacked-PR lanes.
@@ -0,0 +1,22 @@
1
+ <!--
2
+ PLACEHOLDER — replace this entire file with your team's real PR template (md).
3
+ orc-pr reads this file as the template for every generated PR description.
4
+ The structure below is only a fallback so the skill works before you paste yours.
5
+ -->
6
+
7
+ # {pr_title}
8
+
9
+ **Ticket:** {ticket}
10
+ **Target:** {target_branch}
11
+
12
+ ## What changed
13
+ {summary of tasks completed, from the run}
14
+
15
+ ## Why
16
+ {scope-in from the intent-spec}
17
+
18
+ ## Testing
19
+ {tests added/updated, verify result}
20
+
21
+ ## Notes
22
+ {P2/P3 findings left unfixed, stale_review flags, anything reviewers should know}
@@ -0,0 +1,108 @@
1
+ # Ship-phase STACKED-PR gate (Phase 8, deterministic)
2
+
3
+ Loaded by `orc-pr` at Phase 8, before the commit/push/PR question. Turns "this
4
+ change is too big for one PR" from a judgment call into a measured gate with ONE
5
+ P0 question.
6
+
7
+ Scope: full `/orc` and `/orc-ultra` only — **never in orc-mini**, orc-fast (the
8
+ fast lane never stops the chat) or orc-diy (flow shape is compile-owned).
9
+
10
+ ## Step 1 — measure the change (never estimate)
11
+
12
+ ```bash
13
+ git diff --numstat # unstaged
14
+ git diff --numstat --cached # staged
15
+ git status --short # untracked adds
16
+ ```
17
+
18
+ `LoC = additions + deletions` and `files = count`, both **after** removing the
19
+ exclusion list in `../../../_shared/stack-plan.md` (generated code, lockfiles,
20
+ `vendor/`, `node_modules/`, `testdata/`, pure renames). Excluded paths are kept as
21
+ a LISTED bucket, never silently dropped. `test-generator/` deliverables count;
22
+ `mock-examples/` is never staged, so it never counts.
23
+
24
+ ## Step 2 — the threshold (config, not vibes)
25
+
26
+ Read from `../../config.md` (← `.claude/orc.config.yaml`):
27
+
28
+ | Key | Default | Meaning here |
29
+ |---|---|---|
30
+ | `stacked_pr` | `ask` | `ask` = P0 question when the threshold trips · `on` = go straight into the stack flow · `off` = never offer, regular PR |
31
+ | `stacked_pr_loc` | 1000 | change LoC **≥ this** → stack candidate (also the per-layer LoC ceiling) |
32
+ | `stacked_pr_files` | 20 | changed files **≥ this** → stack candidate (also the per-layer file ceiling) |
33
+ | `stacked_pr_max_layers` | 6 | soft layer cap the planner honors |
34
+
35
+ **Trigger = `LoC >= stacked_pr_loc` OR `files >= stacked_pr_files`.** One number
36
+ does both jobs on purpose: a change that cannot fit inside ONE layer's budget is
37
+ exactly the change worth stacking.
38
+
39
+ Below the threshold, or `stacked_pr: off` → **no question, no mention**: continue
40
+ the normal ship flow. Emit `GATE stack-gate pass :: under-threshold loc=<n>
41
+ files=<n>` and move on. Above it, print the one-line report either way:
42
+
43
+ ```
44
+ STACK GATE — <n> LoC · <n> files (excluded: <n> files) → threshold <loc>/<files> TRIPPED
45
+ ```
46
+
47
+ ## Step 3 — prerequisites (both required, asked in the SAME round as the P0)
48
+
49
+ 1. **Ticket number.** Required — layer branch names and titles derive from it.
50
+ Ask once. No ticket → skip stacking, ship one regular PR.
51
+ 2. **PR template.** Resolve per `../../../_shared/pr-templates.md`: the ORC
52
+ template (`pr.md`, only if the team replaced the placeholder) → a project
53
+ template (`.github/`, `docs/`) → a PR-template section in `CLAUDE.md` → else
54
+ RECOMMEND three options (`minimal`, `context-first`, `risk-and-rollback`) and
55
+ let the user pick or paste their own. **Declining every option → skip
56
+ stacking, ship one regular PR** and say so in one line.
57
+
58
+ Neither prerequisite is silently defaulted, and neither is a build failure — both
59
+ degrade to a regular PR.
60
+
61
+ ## Step 4 — the P0 question (one question, both answers legitimate)
62
+
63
+ With the threshold tripped and both prerequisites satisfied, ask ONE question
64
+ (`stacked_pr: on` skips the asking and takes "yes"):
65
+
66
+ ```
67
+ This change is <n> LoC across <n> files — above the one-PR budget
68
+ (<stacked_pr_loc> LoC / <stacked_pr_files> files).
69
+
70
+ Stack it into reviewable layers?
71
+ [yes] plan the layers (/orc-pr-setup) → build + submit them (/orc-pr-driver).
72
+ <n> layers means <n> full CI runs; each layer is reviewable on its own.
73
+ [no] push one regular PR as usual. ← no penalty, no re-ask
74
+ ```
75
+
76
+ "No" → continue the normal ship flow, and never re-ask this run. Emit
77
+ `GATE stack-gate pass :: declined`.
78
+
79
+ ## Step 5 — handoff (never inline)
80
+
81
+ The ship phase does NOT plan or cut layers itself. It hands off:
82
+
83
+ 1. Verify the build is green (`build_green` — hard rule 10: never stack a red
84
+ build; a red build ends the gate).
85
+ 2. Commit the run's work as usual **on the current feature branch** — the
86
+ snapshot the driver splits from (`orc-pr-driver/references/orc-run-split.md`).
87
+ Do not push it as a PR yet.
88
+ 3. Write `stacked-pr/<slug>/STACK-FROM.md` per `../../../_shared/stack-plan.md`
89
+ with `STACK-FROM: orc-ship`, the ticket, `ENTRY-MODE: orc-run`, the resolved
90
+ `PR-TEMPLATE`, the measured `SURFACE`, this run's `RUN-DIR` (the driver reads
91
+ the task graph, `declared_files` and verify evidence from it) and
92
+ `BUILD-GREEN: true`.
93
+ 4. Tell the user, in this order: run **`/orc-pr-setup`** (plans the layers, asks
94
+ on every uncertain seam, writes `stacked-pr/<slug>/stack-plan.md`), then
95
+ **`/orc-pr-driver`** (branches, per-layer green gate, `gh stack submit`).
96
+ A user who already has a filled plan can go straight to `/orc-pr-driver`.
97
+ 5. Emit `GATE stack-gate pass :: handoff ticket=<T> slug=<slug>` and finish the
98
+ ship phase normally (usage report, wiki stale-flag, `FINISH`) — the stack
99
+ itself completes in the two standalone lanes.
100
+
101
+ ## Boundaries
102
+
103
+ - The gate **measures and asks**; it never plans layers, never creates a branch
104
+ per layer, never runs `gh stack`.
105
+ - Missing `gh`/`gh-stack`, or a fork, is not this gate's problem to solve — the
106
+ lanes preflight it (`../../../_shared/gh-stack-commands.md`) and fall back to a
107
+ regular PR.
108
+ - One question per run. A declined stack is never re-offered.
@@ -0,0 +1,76 @@
1
+ ---
2
+ name: orc-review-verify
3
+ description: >
4
+ Review/verify worker for ORC Phases 5–6 (Opus 5 medium). Two modes: a REVIEW
5
+ pass — examine the changed files against the code pattern + constraints,
6
+ create/update tests, and classify EVERY finding on the P0–P3 severity
7
+ ladder (P0/P1 gate ship, P2/P3 advisory); a VERIFY
8
+ pass — run the build + full test suite and check each intent-spec
9
+ definition-of-done criterion PLUS the pattern's enforceable validation-gate
10
+ lines, reporting pass/fail; or an opt-in SECURITY pass — sweep the changed
11
+ files against a supplied OWASP/STRIDE checklist. Returns findings[] with
12
+ severity, a tests tally, and a verify result — it reports; the orchestrator
13
+ owns the auto-fix-once loop. Dispatched in-pipeline after execution; distinct
14
+ from the standalone /orc-verify (which checks only git-modified changes with no
15
+ orchestrator). ALWAYS a spawned subagent — not for direct user invocation.
16
+ ---
17
+
18
+ # orc-review-verify
19
+
20
+ One entry point: spawned via the Task tool with `subagent.md` framing + the
21
+ slice, which points to `core.md`. `core.md` is the AUTHORITATIVE spec (full input
22
+ slice, both procedures, return contract); the summary below orients — on any
23
+ conflict, `core.md` wins.
24
+
25
+ ## What the worker does (summary)
26
+
27
+ - **phase=review:** examine `changed_files[]` against `code_pattern` + `constraints[]`;
28
+ create/update tests for the changed surface; independently re-check each
29
+ `invariants[]` rule AND each enforceable `validation_gate[]` line against the
30
+ diff (a violation is P0), plus any `fe_rules[]` pack rules on FE diffs
31
+ (file:line findings, P1–P3 by impact, never auto-P0); classify EVERY
32
+ finding on the ladder — **P0** (failing tests/build, unmet acceptance
33
+ criteria, runtime errors, invariant violations — caller auto-fixes, no ask),
34
+ **P1** (correctness/security risk, constraint violations — caller asks the
35
+ user before fixing), **P2** (maintainability — advisory fix-batch offer),
36
+ **P3** (cosmetic — advisory, counted). Never fix P2/P3; P0/P1 fixes are the
37
+ caller's call. **Evidence-or-advisory:** every P0–P2 finding carries
38
+ `file:line` + the offending line(s) quoted VERBATIM; an unanchored finding is
39
+ AUTO-P3 (never gates, never triggers a fix) — the caller spot-checks quotes
40
+ before acting on P0/P1.
41
+ - **phase=verify (two halves, v0.33.0):** FIRST the **TDD gate** — run the
42
+ plan's TDD suite (`tdd_suite[]` in the slice) plus the build + full test
43
+ suite; green is the definition-of-done for non-exempt requirements, and each
44
+ red TDD test is a P0 tied to its requirement (the caller owns the
45
+ `tdd_loop_max` repair loop). THEN the **adversarial review** — attack the
46
+ green implementation: edge cases the spec missed, error paths, contract
47
+ violations, race/ordering, workflow breaks (dead wiring, broken commands) —
48
+ findings on the same P0–P3 ladder. Also fold the enforceable
49
+ `validation_gate[]` lines into the criteria set, then check EACH criterion
50
+ individually (pass/fail, nothing invented; an unmet gate line = unmet
51
+ criterion = P0), each with per-criterion `evidence` (the test/output line or
52
+ file:line that proves it); report failures precisely. You don't fix — the
53
+ caller owns the auto-fix-once loop.
54
+ - **phase=security (opt-in):** sweep only `changed_files[]` against the supplied
55
+ `security_checklist[]` (wrap Semgrep if installed, never install it); findings
56
+ on the same ladder (exploitable-in-diff = P0, hardening gap = P1,
57
+ defense-in-depth = P2/P3). Report-only, no `result` verdict.
58
+
59
+ ## Return shape (summary — full contract in `core.md`)
60
+
61
+ `{ phase, findings[]{severity: P0|P1|P2|P3, location "file:line", quote (verbatim,
62
+ required P0–P2; unanchored ⇒ AUTO-P3), description, criterion},
63
+ criteria[] (verify only){criterion, result, evidence}, tests{added,updated,passing},
64
+ result (verify only): passed|failed, actual_model, actual_effort, failure_reason }`
65
+
66
+ **Validation checkpoint before returning:** every finding carries a `severity`
67
+ from the P0–P3 ladder; every P0–P2 finding carries `file:line` + a VERBATIM
68
+ `quote` (else downgrade it to P3 yourself);
69
+ verify sets `result` + per-criterion `evidence`; `actual_model` is quoted
70
+ VERBATIM (never inferred). A
71
+ malformed return is treated as failure by the caller.
72
+
73
+ Fixed models (from `../../references/effort-and-mode.md`): review on the OpenSpec/self
74
+ path = Opus 5 medium; review on the Superpowers path is delegated to the
75
+ Superpowers review skill instead (Sonnet 4.6 medium). Verify = Opus 5 medium,
76
+ always this subskill.
@@ -0,0 +1,135 @@
1
+ # orc-review-verify — Core (mode-neutral)
2
+
3
+ ## Input slice
4
+
5
+ - phase: review | verify | security
6
+ - acceptance_criteria[] — the intent-spec's definition-of-done, verbatim
7
+ (verify checks EXACTLY these; nothing invented)
8
+ - code_pattern — resolved/user-provided style guide, or null (review bare)
9
+ - invariants[] — BLOCKING code-pattern rules to re-check, or empty
10
+ (a violation is a P0 finding)
11
+ - validation_gate[] — the pattern's enforceable acceptance checks (already
12
+ measurability-filtered at reconciliation), or empty.
13
+ Verify treats each line as an acceptance criterion;
14
+ review re-checks them against the diff.
15
+ - fe_rules[] — impact-ordered FE rule-pack rules (a11y/perf) when the
16
+ diff touches FE files, else empty. Findings from these
17
+ are P1–P3 by impact (never automatic P0), always with
18
+ file:line.
19
+ - security_checklist[] — OWASP/STRIDE checklist items (phase=security only),
20
+ else empty
21
+ - tdd_suite[] — (phase=verify, v0.33.0) the plan's materialized TDD
22
+ acceptance tests: {requirement, test_path} per
23
+ non-exempt requirement, plus the run's exemptions
24
+ (`tdd: exempt — <reason>` lines). Empty on a
25
+ whole-run exemption or a pre-v0.33.0 plan.
26
+ - gotchas[] — 0–3 repair-memory entries whose `scope` glob matches
27
+ `changed_files`, or empty. A CHECKLIST, not a rule
28
+ set: "has this change reintroduced a failure this
29
+ project already paid for?" A confirmed hit is a
30
+ normal finding, anchored and severity-classified like
31
+ any other — never an automatic P0 because a gotcha
32
+ named it. Empty is the normal case. Canonical:
33
+ `.claude/skills/_shared/gotchas.md`.
34
+ - changed_files[] — the surface to examine
35
+ - constraints[] — intent-spec hard rules (a violation is a P1 finding)
36
+ - model, effort — informational
37
+
38
+ ## Review procedure (phase=review)
39
+
40
+ 1. Examine changed_files against code_pattern (if given) and constraints.
41
+ 2. Create/update test files and test cases for the changed surface.
42
+ 3. Re-check each `invariants[]` rule against the diff independently (don't trust the
43
+ executor's self-attestation) — any violation is a P0 finding. Re-check each
44
+ `validation_gate[]` line the same way — an unmet enforceable line is P0.
45
+ 4. Re-check each `fe_rules[]` rule against the FE parts of the diff; emit
46
+ findings with file:line, classified P1–P3 by real impact (a rule-pack hit is
47
+ never automatically P0 — invariants and the gate own that severity).
48
+ 5. **Evidence-or-advisory (anti-phantom rule):** every P0–P2 finding MUST carry
49
+ `location` as `file:line` plus `quote` — the offending line(s) copied
50
+ VERBATIM from the file (like `actual_model`: quoted, never reconstructed).
51
+ A finding you cannot anchor to a real line you read this session is
52
+ AUTO-P3 (advisory — it never gates ship and never triggers a fix dispatch).
53
+ The caller spot-checks quotes before acting on P0/P1.
54
+ 6. Classify EVERY finding on the P0–P3 ladder:
55
+ - P0 — objective breakage: failing tests, broken build, unmet acceptance
56
+ criteria, runtime errors, invariant violations. Gates ship; the caller
57
+ auto-fixes immediately (no ask).
58
+ - P1 — correctness or security risk, constraint violations (judgment-level
59
+ blockers that don't break the build). Gates ship; the caller asks the user
60
+ before fixing.
61
+ - P2 — maintainability: duplication, missing tests for a changed path,
62
+ unclear structure. Advisory; itemized in the summary as an optional fix-batch.
63
+ - P3 — cosmetic: naming, formatting, length, style. Advisory; counted only.
64
+ 7. Never fix P2/P3. P0/P1 fixes are the caller's decision, not yours.
65
+
66
+ ## Verify procedure (phase=verify — two halves, v0.33.0)
67
+
68
+ **Half 1 — TDD gate (deterministic):**
69
+ 1. Run the build and full test suite — INCLUDING every `tdd_suite[]` test.
70
+ 2. Per non-exempt requirement: its TDD test green = that requirement's
71
+ definition-of-done met; red = a P0 finding tied to that requirement
72
+ (`criterion` = the requirement id). Report `tdd: {green: n, red: n,
73
+ exempt: n}` — the caller owns the `tdd_loop_max` repair loop; you never fix.
74
+ An empty `tdd_suite[]` (whole-run exemption / older plan) → skip this half
75
+ and SAY so in the return; never invent tests here.
76
+
77
+ **Half 2 — adversarial review (attack the green implementation):**
78
+ 3. Hunt what the spec missed: edge cases (empty/zero/max inputs, unicode,
79
+ pagination edges), error paths (failure of each external call, partial
80
+ writes), contract violations (response shapes, status codes, event
81
+ payloads vs consumers), race/ordering hazards on shared state, and
82
+ workflow breaks — dead wiring (a route/handler/command nothing reaches),
83
+ broken commands, config keys read by nothing. Findings on the P0–P3
84
+ ladder with the same evidence-or-advisory rule (verbatim quote or AUTO-P3).
85
+
86
+ **Criteria sweep (unchanged):**
87
+ 4. Fold every `validation_gate[]` line into the criteria set (each enforceable
88
+ line IS an acceptance criterion; the slice only carries enforceable ones —
89
+ measurability was decided at reconciliation, don't re-litigate it).
90
+ 5. Check each criterion individually — pass/fail per criterion, each with
91
+ `evidence`: the test name/output line that proves it, or the `file:line`
92
+ that satisfies it (quoted, never asserted from memory). An unmet gate
93
+ line is an unmet criterion (P0).
94
+ 6. Report failures precisely (which criterion, what observed). You do not fix;
95
+ the caller owns the auto-fix-once loop.
96
+
97
+ ## Security procedure (phase=security — opt-in, config `security_review`)
98
+
99
+ 1. Sweep ONLY `changed_files[]` against each `security_checklist[]` item
100
+ (OWASP/STRIDE-derived; supplied in the slice, never invented).
101
+ 2. If Semgrep is installed in the environment (`semgrep --version` succeeds),
102
+ run it scoped to the changed files and fold its results in; skip silently
103
+ otherwise — never install tooling.
104
+ 3. Findings on the same P0–P3 ladder: a directly exploitable flaw introduced by
105
+ the diff (injection, authz bypass, secret in code) is P0; a hardening gap or
106
+ risky-but-guarded path is P1; defense-in-depth suggestions are P2/P3.
107
+ 4. Report only; you never fix. Same return contract (no `result` field —
108
+ security is a findings pass, not a verdict).
109
+
110
+ ## Return contract (emit EXACTLY this)
111
+
112
+ - phase
113
+ - findings[]: { severity: P0|P1|P2|P3, location ("file:line" — REQUIRED for
114
+ P0–P2), quote (offending line(s) VERBATIM — REQUIRED for P0–P2;
115
+ missing/unanchored ⇒ the finding is AUTO-P3), description,
116
+ criterion|null }
117
+ - criteria[] (verify only): { criterion, result: pass|fail, evidence — the test
118
+ name/output line or file:line that proves it }
119
+ - tdd (verify only): { green: int, red: int, exempt: int } — the TDD-gate tally
120
+ (omit only when the slice carried no tdd_suite[])
121
+ - tests: { added: int, updated: int, passing: "x/y" }
122
+ - result (verify only): passed | failed
123
+ - actual_model — the model id quoted VERBATIM from your system prompt ("The exact
124
+ model ID is …"); NEVER inferred; `unknown` if absent
125
+ - actual_effort — the value of $CLAUDE_EFFORT (read via Bash)
126
+ - failure_reason — required if the pass itself could not run; else null
127
+ - gotcha_recorded — REQUIRED only when a repair loop CLOSED inside this same run
128
+ and you re-checked it (a P0/P1 you raised and that was fixed; a
129
+ verify criterion that was unmet and is now met): the entry body
130
+ {trigger, symptom, cause, fix, scope}, or `none` + a one-line
131
+ reason. Not required otherwise. A finding left OPEN returns
132
+ `none` — an unsolved failure is not a gotcha. You RETURN it;
133
+ the caller writes the file (`_shared/return-validation.md` §7)
134
+
135
+ Malformed returns are treated as failure by the caller.
@@ -0,0 +1,7 @@
1
+ # orc-review-verify — Subagent wrapper (orchestrator prepends at spawn)
2
+
3
+ You are an isolated review/verify worker. Examine only what the slice gives
4
+ you. You do not fix anything — you classify, test, and report. Emit the return
5
+ structure from core.md and STOP.
6
+
7
+ [Orchestrator: append the input slice here at spawn time.]
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: orc-testgen
3
+ description: >
4
+ Worker subskill for ORC's opt-in Phase 6.5 (Test Authoring). Fires when the user
5
+ opts into writing tests ("write test cases", "generate tests", "author test
6
+ cases for these changes"). Writes test cases as a deliverable — automated test
7
+ files, a manual TEST-PLAN.md, and (for HTTP/API backends) a Postman-importable
8
+ curl bundle. It NEVER runs tests and NEVER gates the ship; the user tests
9
+ manually. ALWAYS invoked as a spawned subagent by the orchestrator. Not for
10
+ direct user invocation.
11
+ ---
12
+
13
+ # orc-testgen
14
+
15
+ One entry point: spawned via the Task tool with `subagent.md` framing + the
16
+ slice, which points to `core.md` — the AUTHORITATIVE procedure + return contract;
17
+ the summary below orients.
18
+
19
+ ## What the worker does (summary)
20
+
21
+ 1. Take the slice: changed surface (`actual_files`), the intent-spec's
22
+ definition-of-done (acceptance criteria), touched flows, constraints, detected stack.
23
+ 2. Write **automated test files** in the project's framework, covering the changed surface.
24
+ 3. Write a manual **TEST-PLAN.md** with two separated sections — "run the automated
25
+ suite" (exact CLI command) and "exercise the real running service" (manual/curl steps).
26
+ 4. For an HTTP/API backend, write a Postman-importable **test-cases.http** curl bundle
27
+ (env-var placeholders — never real secrets).
28
+ 5. Run NOTHING. Advisory `notes[]` may flag a case the code likely won't satisfy.
29
+
30
+ The manual deliverables (TEST-PLAN.md + test-cases.http) are pinned to
31
+ **`test-generator/<change-slug>/` at the project root** — a visible user
32
+ deliverable, never inside `.claude/` or the run folder (see `core.md`).
33
+
34
+ **Validation checkpoint before returning:** confirm each promised deliverable
35
+ actually exists on disk **at the pinned path** (test files in the project's
36
+ conventions; TEST-PLAN.md and — when the stack exposes HTTP — test-cases.http
37
+ under `test-generator/<change-slug>/`) before emitting the return contract in `core.md`.
38
+
39
+ Fixed model: `orc-test-author-opus-5-med` (Opus 5 medium — authoring good
40
+ integration tests is a judgment task). Opt-in: the orchestrator dispatches this
41
+ only when the user accepts the offer, defaulted from `config.generate_tests`. The
42
+ full lane runs it as Phase 6.5 (after Verify, confirmed at intake); **orc-mini
43
+ also offers it** as an end-of-run ask (only on a GREEN smoke gate). Either lane,
44
+ it never runs tests and never gates the ship. orc-mini still skips full
45
+ review/verify.
@@ -0,0 +1,59 @@
1
+ # orc-testgen — Core (mode-neutral)
2
+
3
+ A procedure specification: inputs, steps, outputs. Executed by a spawned
4
+ `orc-test-author-opus-5-med` subagent; the orchestrator never runs this
5
+ itself. **Authoring only — RUN NOTHING, GATE NOTHING.** The user tests manually.
6
+
7
+ ## Input slice (you receive exactly this)
8
+
9
+ - changed_files[] — the surface the change touched (from the run's actual_files)
10
+ - acceptance_criteria[] — the intent-spec's definition-of-done (the "new behaviour")
11
+ - touched_flows[] — user journeys through the changed code (may be empty)
12
+ - constraints[] — intent-spec hard rules
13
+ - stack — {language, test_framework, is_http_api}; detect if absent
14
+ - test_types[] — subset of {new_behaviour, flow, change, regression}; default all
15
+ - output_conventions — where tests live in this repo
16
+
17
+ ## Procedure
18
+
19
+ 1. Detect stack: test framework + conventions, and whether the project exposes
20
+ HTTP endpoints (→ `is_http_api`).
21
+ 2. Derive a **test matrix** from changed_files + acceptance_criteria + flows —
22
+ one row per case {id, type, target, asserts, external_deps}. Bound regression
23
+ to the diff's blast radius; never test the whole app.
24
+ 3. Author **automated test files** in the project's framework/conventions where
25
+ feasible. Match existing test style. These stay in the project's own test
26
+ conventions (`output_conventions`) — do NOT move them.
27
+ 4. **Pin the manual-QA output folder.** The two manual deliverables below are
28
+ USER deliverables, not run state — write BOTH to
29
+ **`test-generator/<change-slug>/` at the PROJECT ROOT** (create the folder if
30
+ absent). `<change-slug>` = the run's existing kebab-case run-folder slug (e.g.
31
+ `post-users`). NEVER write them inside `.claude/`, and NEVER inside the run
32
+ folder — a hidden path is invisible for self-QA.
33
+ 5. Write **`test-generator/<change-slug>/TEST-PLAN.md`** (manual cases: scenario,
34
+ setup, steps, expected) with two CLEARLY SEPARATED sections:
35
+ - "Run the automated test suite" — the exact CLI command(s), pasted.
36
+ - "Exercise the real running service" — manual steps / curl.
37
+ 6. If `is_http_api`: write **`test-generator/<change-slug>/test-cases.http`** —
38
+ one Postman-importable `curl` per endpoint/flow (env-var placeholders for base
39
+ URL + auth; NEVER real secrets). Reference it from TEST-PLAN.md.
40
+ 7. Advisory only: note (do not gate) any case the code likely won't satisfy.
41
+
42
+ ## Return contract (emit EXACTLY this; the caller validates)
43
+
44
+ - test_matrix[] — the rows above (or counts by type)
45
+ - files_authored[] — automated test files created/updated
46
+ - test_plan_path — path to TEST-PLAN.md; MUST be inside
47
+ `test-generator/<change-slug>/` (any other location is
48
+ a malformed return)
49
+ - curl_bundle_path — path to test-cases.http (also inside
50
+ `test-generator/<change-slug>/`), or null (non-API projects)
51
+ - run_command — exact CLI command(s) to run the authored tests
52
+ - notes[] — advisory gaps noticed while authoring (non-blocking); else []
53
+ - actual_model — model id quoted VERBATIM from your system prompt ("The
54
+ exact model ID is …"); NEVER inferred; `unknown` if absent
55
+ - actual_effort — the value of $CLAUDE_EFFORT (read via Bash)
56
+ - failure_reason — required if you could not author; else null
57
+
58
+ Malformed returns are treated as failure by the caller. Never run tests; never
59
+ spawn subagents.
@@ -0,0 +1,7 @@
1
+ # orc-testgen — Subagent wrapper (orchestrator prepends at spawn)
2
+
3
+ You are an isolated test-authoring worker. You WRITE test cases from the slice
4
+ below; you never run them, never fix code, never gate the ship. Make manual
5
+ testing easy for the user. Emit the return structure from core.md and STOP.
6
+
7
+ [Orchestrator: append the input slice here at spawn time.]