@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,227 @@
1
+ /* panels/settings.css — orc ui
2
+ The toolbar, the tier accordions, every control kind, the ladder.
3
+
4
+ The <link> ORDER in app.html is the cascade order, and the numeric
5
+ prefix is that order. No @import: it would carry no session token and
6
+ 401. */
7
+
8
+ /* ---------------------------------------------------------------- PANELS -- */
9
+
10
+ /* --- Settings ------------------------------------------------------------ */
11
+
12
+ /* The settings toolbar — find a key across every tier without scrolling. */
13
+ .toolbar {
14
+ display: flex;
15
+ align-items: center;
16
+ gap: var(--sp-3);
17
+ flex-wrap: wrap;
18
+ padding: var(--sp-3) var(--sp-4);
19
+ background: var(--surface);
20
+ border: 1px solid var(--line);
21
+ border-radius: var(--radius);
22
+ position: sticky;
23
+ top: var(--sp-3);
24
+ z-index: 5;
25
+ }
26
+ .search { flex: 1 1 220px; min-width: 0; }
27
+ .search .text-input { width: 100%; padding: 6px 10px; font-size: 13px; }
28
+ .toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-dim); cursor: pointer; white-space: nowrap; }
29
+ .toggle:has(input:disabled) { opacity: .5; cursor: default; }
30
+ .toolbar-result { font-size: 12px; color: var(--text-faint); font-variant-numeric: tabular-nums; }
31
+ .toolbar-result-none { color: var(--warn); }
32
+
33
+ /* `hidden` here is the FILTER's hide. It is a class, not the [hidden]
34
+ attribute, so a filtered-out row cannot fight a component that sets its own
35
+ display. */
36
+ .hidden { display: none !important; }
37
+
38
+ /* Each tier is its own card with a clickable header, so 36 keys read as three
39
+ labelled groups instead of one wall. */
40
+ .tier { padding: 0; overflow: hidden; }
41
+ .tier-head {
42
+ display: flex;
43
+ align-items: center;
44
+ gap: var(--sp-3);
45
+ width: 100%;
46
+ padding: var(--sp-3) var(--sp-4);
47
+ background: var(--surface-2);
48
+ border: 0;
49
+ border-bottom: 1px solid var(--line-soft);
50
+ cursor: pointer;
51
+ text-align: left;
52
+ transition: background var(--dur-fast) var(--ease);
53
+ }
54
+ .tier-head:hover { background: var(--surface-3); }
55
+ .tier-head h2 { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--text); }
56
+ .tier-count { font-size: 12px; color: var(--text-faint); margin-left: auto; font-variant-numeric: tabular-nums; }
57
+ .tier-caret {
58
+ color: var(--text-faint);
59
+ font-size: 11px;
60
+ transform: rotate(90deg);
61
+ transition: transform var(--dur) var(--ease);
62
+ }
63
+ .tier-desc { padding: var(--sp-3) var(--sp-4) 0; color: var(--text-dim); font-size: 12.5px; }
64
+ .tier-rows { padding: 0 var(--sp-4) var(--sp-2); }
65
+
66
+ /* Collapsed: the caret turns and the body folds away. `grid-template-rows`
67
+ animates 1fr -> 0fr, which `height: auto` cannot do — and it needs a real
68
+ element to collapse against, which is what `.tier-body-inner` is for. */
69
+ .tier-body {
70
+ display: grid;
71
+ grid-template-rows: 1fr;
72
+ transition: grid-template-rows var(--dur-slow) var(--ease), opacity var(--dur) var(--ease);
73
+ }
74
+ .tier-body-inner { min-height: 0; overflow: hidden; }
75
+ .tier.collapsed > .tier-body { grid-template-rows: 0fr; opacity: 0; }
76
+ .tier.collapsed .tier-caret { transform: rotate(0deg); }
77
+
78
+ .setting {
79
+ display: grid;
80
+ grid-template-columns: minmax(0, 1fr) 260px;
81
+ gap: var(--sp-4);
82
+ align-items: start;
83
+ padding: var(--sp-3) var(--sp-2);
84
+ margin: 0 calc(var(--sp-2) * -1);
85
+ border-radius: var(--radius-sm);
86
+ border-bottom: 1px solid var(--line-soft);
87
+ /* 220ms desaturate + lock slide when another key shadows this one. */
88
+ transition: opacity var(--dur-shadow) var(--ease), filter var(--dur-shadow) var(--ease),
89
+ background var(--dur-fast) var(--ease);
90
+ }
91
+ /* Which row you are on, at a glance — 36 rows of the same weight is where a
92
+ mis-click on the wrong key comes from. */
93
+ .setting:hover { background: var(--surface-2); }
94
+ .setting:last-child { border-bottom: 0; }
95
+ .setting-name { display: flex; align-items: center; gap: var(--sp-2); font-family: var(--mono); font-size: 13px; }
96
+ .setting-desc { color: var(--text-dim); font-size: 12.5px; margin-top: 3px; }
97
+ .setting-control { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; min-width: 0; }
98
+ .setting-control > * { max-width: 100%; }
99
+
100
+ /* the overridden dot animates in when a value is committed */
101
+ .dot {
102
+ width: 6px; height: 6px; border-radius: 50%;
103
+ background: var(--accent);
104
+ flex: none;
105
+ animation: dot-in var(--dur) var(--ease);
106
+ }
107
+ .dot-warn { background: var(--warn); }
108
+ @keyframes dot-in {
109
+ from { transform: scale(0); opacity: 0; }
110
+ to { transform: none; opacity: 1; }
111
+ }
112
+
113
+ /* THE SHADOWING ANIMATION (plan §6.2). Flip opus5_only on and the fable5_*
114
+ rows desaturate, a lock slides in, and the reason is right there. The
115
+ animation teaches the precedence rule — that is the whole point. */
116
+ .setting.shadowed { opacity: .42; filter: saturate(.15); }
117
+ .lock {
118
+ display: inline-flex;
119
+ align-items: center;
120
+ gap: 5px;
121
+ font-size: 11px;
122
+ color: var(--warn);
123
+ background: var(--warn-wash);
124
+ border-radius: 100px;
125
+ padding: 1px 8px;
126
+ animation: lock-in var(--dur-shadow) var(--ease);
127
+ }
128
+ @keyframes lock-in {
129
+ from { opacity: 0; transform: translateX(-10px); }
130
+ to { opacity: 1; transform: none; }
131
+ }
132
+ .shadow-why { font-size: 11.5px; color: var(--warn); margin-top: 4px; }
133
+
134
+ /* WRAPPING is not cosmetic here: the control column is a fixed 260px, and a
135
+ subset control with nine choices (`extra_roles`, v0.50.0) overflowed it and
136
+ printed straight over the description text. A segmented control has to fold
137
+ inside its own column, never past it. */
138
+ .seg { display: inline-flex; flex-wrap: wrap; max-width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; }
139
+ .seg button {
140
+ border: 0;
141
+ background: var(--surface-2);
142
+ padding: 4px 11px;
143
+ font-size: 12px;
144
+ cursor: pointer;
145
+ color: var(--text-dim);
146
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
147
+ }
148
+ .seg button + button { border-left: 1px solid var(--line); }
149
+ .seg button:hover { background: var(--surface-3); color: var(--text); }
150
+ .seg button[aria-pressed="true"] { background: var(--accent); color: #fff; }
151
+
152
+ .stepper { display: inline-flex; align-items: center; gap: 6px; }
153
+ .stepper input {
154
+ width: 74px;
155
+ padding: 4px 8px;
156
+ text-align: center;
157
+ background: var(--surface-2);
158
+ border: 1px solid var(--line);
159
+ border-radius: var(--radius-sm);
160
+ font-family: var(--mono);
161
+ }
162
+ .text-input {
163
+ width: 100%;
164
+ padding: 4px 8px;
165
+ background: var(--surface-2);
166
+ border: 1px solid var(--line);
167
+ border-radius: var(--radius-sm);
168
+ font-family: var(--mono);
169
+ font-size: 12px;
170
+ }
171
+ .text-input.invalid { border-color: var(--bad); }
172
+ .input-err { font-size: 11.5px; color: var(--bad); }
173
+
174
+ /* A closed set gets a dropdown, not a text box (v0.44.0). The native control is
175
+ kept — it is the one widget every platform already knows how to open with a
176
+ keyboard, and a hand-rolled listbox on a write surface is a lot of new
177
+ behaviour for no new capability. Only the chrome is ours. */
178
+ .select-input {
179
+ min-width: 190px;
180
+ max-width: 100%;
181
+ padding: 4px 8px;
182
+ background: var(--surface-2);
183
+ border: 1px solid var(--line);
184
+ border-radius: var(--radius-sm);
185
+ color: var(--text);
186
+ font-family: var(--mono);
187
+ font-size: 12px;
188
+ cursor: pointer;
189
+ transition: border-color var(--dur-fast) var(--ease);
190
+ }
191
+ .select-input:hover { border-color: var(--accent-dim); }
192
+ .select-input:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
193
+ /* The out-of-set placeholder (an unset fixed_executor) reads as absent, not as
194
+ a value you could have chosen. */
195
+ .select-input option:disabled { color: var(--text-faint); }
196
+
197
+ .readonly-value {
198
+ font-family: var(--mono);
199
+ font-size: 11.5px;
200
+ color: var(--text-faint);
201
+ background: var(--surface-2);
202
+ border: 1px dashed var(--line);
203
+ border-radius: var(--radius-sm);
204
+ padding: 3px 8px;
205
+ max-width: 100%;
206
+ overflow-x: auto;
207
+ white-space: nowrap;
208
+ }
209
+
210
+ /* the score ladder — a diagram, not an editor */
211
+ .ladder { display: flex; flex-direction: column; gap: 4px; }
212
+ .rung {
213
+ display: grid;
214
+ grid-template-columns: 92px minmax(0, 1fr);
215
+ align-items: center;
216
+ gap: var(--sp-3);
217
+ padding: 5px var(--sp-3);
218
+ background: var(--surface-2);
219
+ border: 1px solid var(--line-soft);
220
+ border-radius: var(--radius-sm);
221
+ font-family: var(--mono);
222
+ font-size: 12px;
223
+ }
224
+ .rung-band { color: var(--text-faint); }
225
+ .rung-bar { height: 4px; border-radius: 2px; background: var(--accent); opacity: .55; }
226
+ .rung-agent { color: var(--text-dim); }
227
+ .ladder-note { font-size: 12px; color: var(--text-faint); margin-top: var(--sp-2); }
@@ -0,0 +1,87 @@
1
+ /* panels/stats.css — orc ui
2
+ The usage bars, the Usage|Cost tabs, the four-part token bar, the tables.
3
+
4
+ The <link> ORDER in app.html is the cascade order, and the numeric
5
+ prefix is that order. No @import: it would carry no session token and
6
+ 401. */
7
+
8
+ /* --- Stats --------------------------------------------------------------- */
9
+
10
+ .bars { display: flex; flex-direction: column; gap: var(--sp-2); }
11
+ .bar-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) 76px; align-items: center; gap: var(--sp-3); font-size: 13px; }
12
+ .bar-label { font-family: var(--mono); color: var(--text-dim); }
13
+ .bar-track { height: 8px; background: var(--surface-2); border-radius: 4px; overflow: hidden; }
14
+ .bar-fill {
15
+ height: 100%;
16
+ background: var(--accent);
17
+ border-radius: 4px;
18
+ width: 0;
19
+ transition: width var(--dur-slow) var(--ease);
20
+ }
21
+ .bar-value { text-align: right; color: var(--text-faint); font-size: 12px; }
22
+
23
+ /* --- tabs (Stats: Usage | Cost) */
24
+ .tabs { display: flex; gap: var(--sp-2); border-bottom: 1px solid var(--border); }
25
+ .tab {
26
+ background: none; border: none; border-bottom: 2px solid transparent;
27
+ color: var(--text-dim); font: inherit; font-size: 13px;
28
+ padding: var(--sp-2) var(--sp-3); cursor: pointer;
29
+ }
30
+ .tab:hover { color: var(--text); }
31
+ .tab-on { color: var(--text); border-bottom-color: var(--accent); }
32
+
33
+ /* --- the unit switch */
34
+ .seg-ctl { display: inline-flex; border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; }
35
+ .seg-btn {
36
+ background: none; border: none; color: var(--text-dim);
37
+ font: inherit; font-size: 12px; padding: 4px 10px; cursor: pointer;
38
+ }
39
+ .seg-btn + .seg-btn { border-left: 1px solid var(--border); }
40
+ .seg-on { background: var(--accent-wash); color: var(--accent); }
41
+
42
+ /* --- the four-part token bar. THE SEGMENTS EXIST SO CACHE-READ IS VISIBLY
43
+ SEPARATE; a single fill would re-hide exactly what it is here to expose. */
44
+ .bar-stack { display: flex; height: 100%; width: 0; transition: width .32s ease; }
45
+ .bar-seg { height: 100%; flex-grow: 0; flex-basis: 0; transition: flex-grow .32s ease; }
46
+ .seg-in { background: var(--accent); }
47
+ .seg-cw { background: var(--warn); }
48
+ .seg-cr { background: var(--border); }
49
+ .seg-out { background: var(--bad); }
50
+ .bar-none { font-size: 11.5px; color: var(--text-dim); padding-left: var(--sp-2); line-height: 8px; }
51
+ .bar-mark { color: var(--accent); font-family: var(--mono); }
52
+
53
+ .legend { display: flex; gap: var(--sp-4); flex-wrap: wrap; font-size: 11.5px; color: var(--text-dim); }
54
+ .legend-item { display: inline-flex; align-items: center; gap: 6px; }
55
+ .legend-dot { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
56
+
57
+ /* --- tables (wiki plan, cost bands) */
58
+ .tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; display: block; overflow-x: auto;
59
+ scrollbar-width: thin; scrollbar-color: var(--border) transparent; }
60
+ .tbl::-webkit-scrollbar { height: 8px; }
61
+ .tbl::-webkit-scrollbar-track { background: transparent; }
62
+ .tbl::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
63
+ .tbl th {
64
+ text-align: left; font-weight: 600; font-size: 11px; text-transform: uppercase;
65
+ letter-spacing: .06em; color: var(--text-dim); padding: var(--sp-2) var(--sp-3);
66
+ border-bottom: 1px solid var(--border); white-space: nowrap;
67
+ }
68
+ .tbl td { padding: var(--sp-2) var(--sp-3); border-bottom: 1px solid var(--border); vertical-align: middle; }
69
+ .tbl td.num { text-align: right; font-family: var(--mono); white-space: nowrap; }
70
+ /* A zero-use row and a thin-sample row KEEP THEIR SLOT and render muted. Hiding
71
+ either would make "measured and unused" look identical to "not there". */
72
+ .row-muted td { opacity: .55; }
73
+ .row-soft td { opacity: .62; }
74
+ .row-note td { border-bottom: none; padding-top: 0; color: var(--text-dim); font-size: 11.5px; }
75
+
76
+ .usage-rows { display: flex; flex-direction: column; gap: var(--sp-2); }
77
+ .usage-row { display: grid; grid-template-columns: minmax(0, 1fr) 120px 52px 90px; gap: var(--sp-3); align-items: center; font-size: 12.5px; }
78
+ .usage-row .mono { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
79
+
80
+ .form { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: var(--sp-2) var(--sp-3); align-items: center; }
81
+ .form label { font-size: 12.5px; color: var(--text-dim); }
82
+
83
+ @media (max-width: 720px) {
84
+ .usage-row { grid-template-columns: minmax(0, 1fr) 52px; }
85
+ .usage-row .bar-track, .usage-row .note { display: none; }
86
+ .form { grid-template-columns: minmax(0, 1fr); }
87
+ }
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /* fixtures/boundary.js — canned data for `orc ui --fixtures`.
3
+ Boundary cards with a REFUSE that carries its checklist, an ESCALATE with a
4
+ named person, and an EXECUTE.
5
+
6
+ THE RULE FOR EVERY FILE IN HERE: carry ONE OF EVERY STATE, including the
7
+ ugly ones. You cannot DESIGN a STALE chip on a fresh wiki, and a state
8
+ with no fixture is a state nobody has ever looked at. A per-state count
9
+ test asserts this, so a new state cannot ship without one.
10
+
11
+ Shapes MUST match what `bin/cli.js --json` really emits — a drifted
12
+ fixture is worse than no fixture. */
13
+
14
+ const { PROJECT } = require("./shell.js");
15
+
16
+ const boundary = {
17
+ ok: true,
18
+ dir: PROJECT + "/.claude/orc/boundary",
19
+ counts: { EXECUTE: 2, ESCALATE: 1, REFUSE: 1 },
20
+ stale: 1,
21
+ malformed: [],
22
+ line: "boundary: 2 execute · 1 escalate · 1 refuse (1 stale)",
23
+ cards: [
24
+ {
25
+ file: "src-payments.md",
26
+ path: PROJECT + "/.claude/orc/boundary/src-payments.md",
27
+ area: "src/payments",
28
+ verdict: "REFUSE",
29
+ checklist: [
30
+ "add a test runner to this package",
31
+ "cover the idempotency path",
32
+ "record the money invariant in PACT.md",
33
+ ],
34
+ escalate_to: null,
35
+ anchored_files: ["src/payments/ledger.ts", "src/payments/idempotency.ts"],
36
+ verified_commit: "8a62b4f1c9",
37
+ distance: 0,
38
+ stale: false,
39
+ malformed: [],
40
+ reasons: [
41
+ "self-verify: no — no test runner in this package",
42
+ "reversible: no — writes to a live ledger",
43
+ ],
44
+ },
45
+ {
46
+ file: "db-migrations.md",
47
+ path: PROJECT + "/.claude/orc/boundary/db-migrations.md",
48
+ area: "db/migrations",
49
+ verdict: "ESCALATE",
50
+ checklist: [],
51
+ escalate_to: "the data owner",
52
+ anchored_files: ["db/migrations"],
53
+ verified_commit: "c273793aa1",
54
+ distance: 0,
55
+ stale: false,
56
+ malformed: [],
57
+ reasons: ["reversible: no — a forward migration on live rows", "decision: yes — the rollout window is not ORC's call"],
58
+ },
59
+ {
60
+ file: "web-locales.md",
61
+ path: PROJECT + "/.claude/orc/boundary/web-locales.md",
62
+ area: "web/locales",
63
+ verdict: "EXECUTE",
64
+ checklist: [],
65
+ escalate_to: null,
66
+ anchored_files: ["web/locales/en.json"],
67
+ verified_commit: "783f6971aa",
68
+ distance: 0,
69
+ stale: false,
70
+ malformed: [],
71
+ reasons: ["self-verify: yes — `npm run i18n:check`", "reversible: yes — one git checkout"],
72
+ },
73
+ {
74
+ file: "src-notifications.md",
75
+ path: PROJECT + "/.claude/orc/boundary/src-notifications.md",
76
+ area: "src/notifications",
77
+ verdict: "EXECUTE",
78
+ checklist: [],
79
+ escalate_to: null,
80
+ anchored_files: ["src/notifications/dispatcher.ts"],
81
+ verified_commit: "9f2c41ab8d",
82
+ // STALE: the evidence moved. Not a wrong card — one whose four answers
83
+ // were computed against a commit that is 12 behind.
84
+ distance: 12,
85
+ stale: true,
86
+ malformed: [],
87
+ reasons: ["self-verify: yes — covered by test/notifications", "reversible: yes"],
88
+ },
89
+ ],
90
+ };
91
+
92
+ module.exports = { boundary };