@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,184 @@
1
+ ---
2
+ name: orc-pr-setup
3
+ description: >
4
+ Stacked-PR PLANNER. Use for "/orc-pr-setup", "plan the stacked PRs", "split
5
+ this change into stacked pull requests", "where do the PR cut lines go".
6
+ Decides the LAYERING of a big change — ordered layers, each with a purpose, a
7
+ value class, an explicit file list, a measured LoC/file budget and a
8
+ dependency reason — and writes stacked-pr/<slug>/stack-plan.md. Runs
9
+ INDEPENDENTLY (no orchestrator needed) and is also the lane ORC's ship phase
10
+ hands off to when a change is too big for one PR. It NEVER touches git
11
+ history: no branches, no commits, no pushes — that is orc-pr-driver's job.
12
+ P0 HARD GATE: when a boundary is uncertain it STOPS and asks, one decision at
13
+ a time, and records the answer.
14
+ ---
15
+
16
+ # ORC-PR-SETUP (stacked-PR planner)
17
+
18
+ Big PRs are not reviewed, they are rubber-stamped. A 3k-LoC / 40-file diff is
19
+ unreviewable, so review is weak, merges are big-bang, and reverts are painful.
20
+ GitHub's **stacked pull requests** fix the mechanics — an ordered chain of PRs in
21
+ one repo, each targeting the branch below it, each reviewable on its own.
22
+
23
+ The mechanics are the easy half. **The hard part is deciding where the cut lines
24
+ go**, and that is this skill's entire job: decide the layering correctly, prove
25
+ each layer stands alone, and **refuse to guess**.
26
+
27
+ This lane **plans only**. It writes one markdown file and stops. Every branch,
28
+ commit, push and merge belongs to `/orc-pr-driver`.
29
+
30
+ **Tier.** Not effort-gated (the effort guard matches the exact skill name `orc`),
31
+ so it runs at whatever tier the chat is on. Layering judgment is better at Opus
32
+ high; it is correct at any tier.
33
+
34
+ **Human guide:** this skill's own `README.md` (what a stack is, the whole
35
+ workflow, the plan file field by field, FAQ) — point the USER there when they ask
36
+ how any of this works; never load it to drive the run.
37
+
38
+ **Load at their phase, never preloaded:**
39
+ `../_shared/gh-stack-commands.md` (preflight + command surface) ·
40
+ `../_shared/stack-plan.md` (plan location, schema, budget math, `STACK-FROM`) ·
41
+ `../_shared/pr-templates.md` (template resolution) ·
42
+ `references/layer-taxonomy.md` (where the cut lines go) ·
43
+ `references/certainty-gate.md` (the P0 gate + red flags).
44
+
45
+ ## Hard rules
46
+
47
+ 1. **Never touches git history.** No branch, no commit, no push, no PR. Reads
48
+ git (`diff --numstat`, `status`, `log`) only.
49
+ 2. **P0 HARD GATE — uncertainty ASKS.** Every candidate boundary is classified
50
+ CERTAIN or UNCERTAIN (`references/certainty-gate.md`). Every UNCERTAIN stops
51
+ the lane and asks the user, **one decision at a time**, with the cost of each
52
+ option and a recommendation. Never a silent default, never "I assumed and
53
+ noted it".
54
+ 3. **Every layer needs a purpose and a value class.** No purpose → it is not a
55
+ layer, it is part of another one.
56
+ 4. **Budgets are measured, not estimated** (`../_shared/stack-plan.md`): real
57
+ `git diff --numstat` numbers, exclusions applied, ceilings from config.
58
+ 5. **Every answer is recorded** under `## Decisions` in the plan — that is the
59
+ audit trail and what makes the plan re-runnable after compaction.
60
+ 6. **A ticket is required.** Branch names and layer titles derive from it. No
61
+ ticket after asking once → stop and recommend one regular PR.
62
+
63
+ ## Phase S0 — Preflight (probe, never assume)
64
+
65
+ Per `../_shared/gh-stack-commands.md`: `gh` present and ≥ 2.0 · authed ·
66
+ `github/gh-stack` installed (offer the install if not) · **same repo, not a
67
+ fork** (a fork is a hard STOP — cross-fork stacks are unsupported) · trunk name ·
68
+ branch protections / required checks (this is where "N layers = N CI runs"
69
+ becomes a real number) · merge queue present? Report the block in a few lines.
70
+
71
+ Any hard fail → say which check failed and recommend ONE regular PR. Do not
72
+ plan a stack that cannot be submitted.
73
+
74
+ ## Phase S1 — Intake (ticket, entry mode, template)
75
+
76
+ 1. **Ticket** — ask for it if it was not given. Required (hard rule 6).
77
+ 2. **Entry mode** (`../_shared/stack-plan.md`) — exactly two:
78
+ - **`greenfield`** — nothing written yet; the input is a spec / TSD / ticket.
79
+ - **`orc-run`** — the change already exists in the worktree (ORC built it, or
80
+ the user did). The split is **file-granular only**; hunk surgery is
81
+ forbidden.
82
+ Detect it: a dirty worktree with real changes → `orc-run`; a clean tree →
83
+ `greenfield`. Say which mode you picked. An already-open fat PR is out of
84
+ scope — say so and recommend one regular PR.
85
+ 3. **`STACK-FROM` handoff?** If the invocation points at a
86
+ `stacked-pr/<slug>/STACK-FROM.md`, read it and skip everything it carries
87
+ (ticket, slug, entry mode, template, surface, run dir). `BUILD-GREEN: false`
88
+ is a **hard stop** — never plan a stack over a red build.
89
+ 4. **PR template** — resolve per `../_shared/pr-templates.md` (ORC template →
90
+ project → CLAUDE.md → recommend three options). The user declining every
91
+ option means the **stack is skipped** — say so and stop; the change ships as
92
+ one regular PR.
93
+ 5. Derive `<slug>` (kebab-case, from the ticket or the change).
94
+
95
+ ## Phase S2 — Inventory (the real numbers)
96
+
97
+ - `orc-run`: `git diff --numstat` (staged + unstaged) → every changed file with
98
+ its additions/deletions. Apply the exclusion list from
99
+ `../_shared/stack-plan.md`, keeping excluded files in a separate LISTED bucket.
100
+ - `greenfield`: enumerate the files the change WILL touch from the spec, and
101
+ estimate each one's size — marked as estimates, refined by the driver.
102
+ - Build the **dependency graph** between those files (imports/callers, schema →
103
+ reader, type → consumer). A `RUN-DIR` from a `STACK-FROM` handoff gives you
104
+ ORC's per-task `declared_files` and `depends_on` — use it; it is better
105
+ evidence than a fresh guess.
106
+ - Report: total LoC, total files, excluded count, and how many layers the
107
+ ceilings imply.
108
+
109
+ ## Phase S3 — Tier-assign
110
+
111
+ Map every file to a taxonomy tier per `references/layer-taxonomy.md` (framework
112
+ tiers first — data/schema → store → domain → adapter → wiring → transport →
113
+ async → tests-at-scale → docs/flag; generic fallback for unlisted stacks). A
114
+ file that fits no tier is an UNCERTAIN, not a guess.
115
+
116
+ ## Phase S4 — Cut (the P0 gate lives here)
117
+
118
+ Group tiers into layers under the config ceilings (`stacked_pr_loc`,
119
+ `stacked_pr_files`, `stacked_pr_max_layers`). **Ordering principle: dependency
120
+ direction = stack direction.** Layer N may depend only on layers < N; the bottom
121
+ is the widest blast radius and the least reversible (schema), the top is the
122
+ thinnest (docs, flag flip).
123
+
124
+ At **every seam**, run the certainty classifier (`references/certainty-gate.md`).
125
+ CERTAIN → proceed silently. UNCERTAIN → **STOP and ask**, one decision at a
126
+ time, showing both candidate boundaries, the LoC/file/CI cost of each, the
127
+ review-experience consequence, and a recommended option. Record the answer.
128
+
129
+ Component and handler are **different layers by default** — even when both are
130
+ small and were written in the same sitting. Same for handler vs async consumer,
131
+ and migration vs the code that reads the new column.
132
+
133
+ ## Phase S5 — Validate the plan (all seven, explicitly)
134
+
135
+ | # | Check | Fail → |
136
+ |---|-------|--------|
137
+ | 1 | every layer ≤ `stacked_pr_loc` | split, or log an accepted exception |
138
+ | 2 | every layer ≤ `stacked_pr_files` (soft target = half) | same |
139
+ | 3 | every layer has a purpose + value class (FOUNDATION names its consumer) | merge it into its consumer |
140
+ | 4 | component/handler and migration/reader are separated | re-cut |
141
+ | 5 | dependency order is acyclic and bottom-up | ask which seam breaks the cycle |
142
+ | 6 | every layer can plausibly **build + test on its own base** | re-cut, or ask |
143
+ | 7 | layer count ≤ `stacked_pr_max_layers` (+2 with an override, beyond → STOP) | multiple stacks or a phased release |
144
+
145
+ Check 6 is REASONED here and **verified for real by the driver** — say so, never
146
+ claim it as proven.
147
+
148
+ ## Phase S6 — Emit the plan, then stop
149
+
150
+ Write `stacked-pr/<slug>/stack-plan.md` exactly per the schema in
151
+ `../_shared/stack-plan.md`, including per-layer draft PR titles/bodies built from
152
+ the resolved template, `## Decisions` (every P0 answer) and `## Accepted
153
+ exceptions`. Then:
154
+
155
+ 1. Show the layer table in chat (# · branch · purpose · value · files · LoC).
156
+ 2. State plainly that **nothing has been created yet** — no branches, no PRs.
157
+ 3. Offer the handoff: write `stacked-pr/<slug>/STACK-FROM.md`
158
+ (`STACK-FROM: orc-pr-setup`, per `../_shared/stack-plan.md`) and tell the user
159
+ to run **`/orc-pr-driver`** — human approval sits exactly here, before any git
160
+ surgery.
161
+
162
+ ## Behavior trace (PERMANENT — every ORC entry point traces; always on)
163
+
164
+ Resolve `log_dir` (`../orc/config.md` default ← `.claude/orc.config.yaml`) at
165
+ start and follow `../orc/references/trace-protocol.md`: write
166
+ `log_dir/.current` = `run-prsetup-<slug>-<DDMMYY>-<HHMMSS>.txt` and
167
+ `touch the trace file` of that name in the SAME step, first. Narration is
168
+ dispatched, not remembered — collect the events with their REAL timestamps
169
+ (`PHASE S0..S6`, `GATE stack-certainty pass|bounce` per seam decision,
170
+ `QUESTION count=<n>`, `FINISH`) plus `decisions` (the WHY: every boundary the
171
+ user chose, verbatim), dispatch the trace writer ONCE at run end (the
172
+ single-dispatch-lane packet), then delete `.current`. A phase ending with
173
+ `zero new trace lines is a protocol violation`.
174
+
175
+ ## Boundaries
176
+
177
+ - **Plans only.** Never a branch, commit, push, PR, or `gh stack` write command.
178
+ - **Never guesses a seam.** Uncertainty is a question, not an assumption.
179
+ - **Never fake-splits** an unsplittable atom, and never games the budget.
180
+ - Out of scope: splitting an already-open PR (`gh stack link` retrofit), and
181
+ cross-repo stacks (unsupported by GitHub — use `/orc-poly` for cross-repo
182
+ planning).
183
+ - Reminder: to see usage limits, tell the user to run `/usage` (never invoke it
184
+ programmatically).
@@ -0,0 +1,66 @@
1
+ # Reference — the P0 certainty gate (never quietly pick a boundary)
2
+
3
+ Loaded at Phase S4, at **every** seam. The rule the whole lane exists to enforce:
4
+ **when the layering is uncertain, ASK — blocking.** A wrong seam costs re-cutting
5
+ N branches and force-pushing N PRs; the question costs seconds.
6
+
7
+ ## Step 1 — classify every candidate boundary
8
+
9
+ **CERTAIN (proceed, no question):**
10
+
11
+ - the files sit in different taxonomy tiers **by path** (`migrations/` vs
12
+ `handler/` vs `repository/`);
13
+ - file X is imported only by files in later layers (a one-way dependency you can
14
+ PROVE by grep, not assume);
15
+ - migration/DDL files (always their own bottom layer);
16
+ - a config/factory-registration-only change (always the wiring layer);
17
+ - the layer is already within both ceilings and single-concern.
18
+
19
+ **UNCERTAIN (STOP and ask):**
20
+
21
+ - two files in the **same tier** that could be one layer or two (two handlers,
22
+ two providers, two components);
23
+ - a shared util/helper consumed by two different layers — bottom layer, or
24
+ duplicate-then-dedupe?
25
+ - a refactor/rename mixed with a behavior change in the same file;
26
+ - a circular dependency between candidate layers (a human picks the seam);
27
+ - splitting would leave a layer that cannot build/test alone with no obvious fix;
28
+ - the smallest coherent unit exceeds a ceiling (an oversize atom);
29
+ - **ordering ambiguity** — two layers with no dependency between them, where the
30
+ order changes what reviewers see first;
31
+ - **feature-flag placement** — flag in the foundation layer or in the flip layer?
32
+ - (`orc-run` mode) a single FILE whose content belongs in two layers — the
33
+ default option offered is "the whole file lands in the LOWEST layer that needs
34
+ it", because hunk surgery is forbidden.
35
+
36
+ ## Step 2 — ask, blocking, ONE decision at a time
37
+
38
+ Use the question tool. Each question states:
39
+
40
+ - the two candidate boundaries, concretely (which files land where);
41
+ - the **cost of each**: LoC and file count per resulting layer, plus the extra CI
42
+ run a split adds;
43
+ - the **review-experience consequence** ("reviewer of layer 3 sees a call to a
44
+ function that does not exist yet");
45
+ - a **recommended option** — first in the list, marked as recommended.
46
+
47
+ Never batch six vague questions. Never assume and note it later.
48
+
49
+ ## Step 3 — record every answer
50
+
51
+ Append to `## Decisions` in the plan: the boundary, the options offered, the
52
+ choice, and the rationale in the user's own words. This is the audit trail, and
53
+ it is what lets the plan be re-run after compaction or handed to someone else.
54
+
55
+ ## Red flags — these thoughts mean STOP, you are rationalizing
56
+
57
+ | Excuse | Reality |
58
+ |---|---|
59
+ | "It's obvious these two handlers go together" | Same tier ≠ same layer. That is the DEFINITION of UNCERTAIN. Ask. |
60
+ | "I'll pick one and note the assumption in the plan" | The gate is blocking, not a footnote. Ask before cutting. |
61
+ | "Asking is slow, the user wants speed" | A wrong seam means re-cutting N branches and force-pushing N PRs. The question costs seconds. |
62
+ | "It's under the LoC ceiling, so the layer is fine" | The budget is a ceiling, not a definition. Mixed concerns fail at any size. |
63
+ | "I'll put everything in layer 1 and split later" | Post-hoc splitting is hunk surgery plus N force-pushes. Cut before submitting. |
64
+ | "Layer 2 doesn't compile alone but the stack does" | Merging layer 1 alone then breaks the trunk. Re-cut the seam. |
65
+ | "12 layers = maximum reviewability" | 12 layers = 12 CI runs + 12 review contexts. Reviewability peaks, then collapses. |
66
+ | "The user said 'just split it', so no questions" | "Split it" is the goal, not permission to guess the seams. |
@@ -0,0 +1,67 @@
1
+ # Reference — layer taxonomy (where the cut lines go)
2
+
3
+ Loaded at Phase S3/S4. **Ordering principle: dependency direction = stack
4
+ direction.** Layer N may depend only on layers < N. The bottom layer has the
5
+ widest blast radius and is the least reversible (schema); the top is the
6
+ thinnest (docs, a flag flip).
7
+
8
+ ## Generic tiers (the fallback — any stack)
9
+
10
+ `data/schema → store → domain logic → external adapter → wiring → transport →
11
+ async consumers → tests-at-scale → docs & flag flip`
12
+
13
+ Use the framework tiers below when they match; fall back to the generic four
14
+ (**data → logic → transport → wiring**) for anything unlisted.
15
+
16
+ ## Backend service (Go / Java / Node / Python — layered service shape)
17
+
18
+ | # | Tier | What it contains | Typical value class |
19
+ |---|------|------------------|---------------------|
20
+ | 1 | **Migrations / schema** | DDL only. Deployable ahead of code, reversible | CONTRACT or FOUNDATION |
21
+ | 2 | **Models + repository / store** | structs/entities, queries, repo tests. Consumes 1 | FOUNDATION |
22
+ | 3 | **Domain / service logic** | business rules, unit-tested in isolation | FOUNDATION or CONTRACT |
23
+ | 4 | **Adapter / external client** | provider HTTP/gRPC client, signing, DTO mapping | FOUNDATION |
24
+ | 5 | **Wiring** | factory registration, config, DI, feature flag default-OFF | FOUNDATION |
25
+ | 6 | **Handler / route / API contract** | transport layer, request validation, response shape | CONTRACT |
26
+ | 7 | **Callbacks / async consumers** | webhook + queue handlers — separate from 6: different reviewer, different risk | CONTRACT or OPERATOR |
27
+ | 8 | **Tests-at-scale / e2e** | only when they would blow the budget of the layer they belong to | FOUNDATION |
28
+ | 9 | **Docs / dashboards / flag flip** | the flip that turns the feature on for users | USER or OPERATOR |
29
+
30
+ ## Frontend
31
+
32
+ `types + API client → presentational component (+ stories/tests) → state/store →
33
+ page/route + wiring → flag flip`
34
+
35
+ ## Separation rule (the one people break)
36
+
37
+ A **component** and its **handler** are different concerns → **different layers
38
+ by default**, even when both are small and were written in the same sitting.
39
+ Likewise:
40
+
41
+ - handler vs async consumer (webhook/queue),
42
+ - migration vs the code that reads the new column,
43
+ - provider adapter vs the domain logic that calls it,
44
+ - refactor/rename vs behavior change in the same file (this one is an UNCERTAIN —
45
+ see `certainty-gate.md`).
46
+
47
+ ## Value classes (every layer carries exactly one)
48
+
49
+ - **`USER`** — an end user or merchant sees a behavior change.
50
+ - **`OPERATOR`** — ops/on-call gains a capability (dashboard, script, better
51
+ log/alert).
52
+ - **`CONTRACT`** — a consumer-visible API / schema / event contract lands,
53
+ unblocking another team or repo.
54
+ - **`FOUNDATION`** — no external value; it enables named upper layer(s). Allowed
55
+ (layer 1 of any stack is foundation by construction) but **capped**: it MUST
56
+ name its consumer layer, at most **2 consecutive** FOUNDATION layers, and a
57
+ FOUNDATION layer with no named consumer merges into its consumer.
58
+
59
+ No purpose → not a layer. No value class → not a layer.
60
+
61
+ ## Layer ordering when there is no dependency
62
+
63
+ Two layers with no dependency between them can go in either order — which means
64
+ **the order is a review decision, not a technical one**, and that makes it an
65
+ UNCERTAIN (ask). Default recommendation when you ask: the layer that gives a
66
+ reviewer the most context first (usually schema/contract before the code that
67
+ consumes it).