@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,204 @@
1
+ ---
2
+ name: orc-handoff
3
+ description: >
4
+ The lane for people who do not read code. Use for "/orc-handoff", "I want to
5
+ change the text on the empty cart page", "can I edit this myself", "what can a
6
+ PM safely change here". Two modes. MAP finds the files a non-engineer can own —
7
+ screen text, content, settings with a validator, feature flags, docs — and grades
8
+ each one: green (a check will catch a mistake), amber (the check is manual), red
9
+ (looks like content, is not). DO changes one value: it shows you the file, the
10
+ check, and the undo command BEFORE it edits, then runs the check and tells you in
11
+ plain words. It never touches a red file. It never commits.
12
+ ---
13
+
14
+ # ORC-HANDOFF
15
+
16
+ **This whole folder is written in simple English on purpose.** Many people who use
17
+ this lane do not read code, and many do not read English first. Keep every file
18
+ here short, plain, and free of jargon. Same standing rule as `../orc-quick/`.
19
+
20
+ ## What this lane is for
21
+
22
+ You want to change something small and you should not have to ask an engineer.
23
+
24
+ - the words on a page
25
+ - a title, a label, a button
26
+ - a setting that has a safe list of values
27
+ - a feature switch that is on or off
28
+ - a document
29
+
30
+ You do not need to read code. You do not need a terminal. You need to know two
31
+ things before you change anything: **will something catch my mistake**, and **how
32
+ do I undo it**. This lane always tells you both, before it edits.
33
+
34
+ ## The idea that makes this safe
35
+
36
+ **The grade does not come from the file type. It comes from whether a cheap check
37
+ exists for that file.**
38
+
39
+ A settings file with a validator is **green**. The exact same file with no
40
+ validator is **amber**. That is why this is a real safety rule and not a feeling.
41
+
42
+ | Grade | What it means |
43
+ |---|---|
44
+ | 🟢 GREEN | Change it. A check runs after, and it will catch a mistake. |
45
+ | 🟡 AMBER | Change it. But the check is a person, not a program. Here is the check. |
46
+ | 🔴 RED | This looks like content. It is not. ORC will not touch it. |
47
+
48
+ **A red file is never edited.** Not by you through this lane, not by ORC. The lane
49
+ says why, says who to ask, and **offers** `/orc-quick` instead. It is an offer, not
50
+ a redirect — the same rule `/orc-quick` follows when a job is too big.
51
+
52
+ ## Rules this lane never breaks
53
+
54
+ - **The undo command is shown BEFORE the edit, not after.** After is too late.
55
+ - **It never stages and never commits.** It prints the git command for you.
56
+ - **It never re-grades a file to make a change possible.** If it is red now, it is
57
+ red for this request.
58
+ - **It only changes a value that already exists.** It never creates a new key. A
59
+ new key is a code change.
60
+
61
+ ---
62
+
63
+ ## Mode 1 — MAP: what can I own?
64
+
65
+ Find the files a non-engineer can safely own, and grade each one. Look for:
66
+
67
+ - screen text and translations
68
+ - content files (markdown, pages, posts)
69
+ - settings files that have a validator or a schema
70
+ - feature switches
71
+ - example or seed data
72
+ - documents
73
+ - design values (colours, spacing) when they live in their own file
74
+
75
+ For **each** file, record four things. All four, every time:
76
+
77
+ 1. **what it is**, in plain words ("the words users see on the empty cart page")
78
+ 2. **the grade**, and the reason for it
79
+ 3. **the exact check** — the command that proves the file is still fine
80
+ 4. **the exact undo** — the command that puts it back
81
+
82
+ The grade comes from step 3. **No check found → amber, or red if the file drives
83
+ behaviour rather than showing text.** Never green without a real check.
84
+
85
+ Write it to `orc-handoff/surfaces.md` at the top of the project. Shape and field
86
+ rules: `references/surfaces.md`. Then run `orc handoff surfaces` and show what it
87
+ says — the CLI is what everything else reads.
88
+
89
+ **A file with no check is not a failure of the map.** Say so plainly: "this one has
90
+ no automatic check, so it is amber, and here is what to look at by hand."
91
+
92
+ ## Mode 2 — DO: change one value
93
+
94
+ Five steps. Do not skip step 2.
95
+
96
+ ```
97
+ H1 find find the file · show the value now · show its grade
98
+ H2 confirm ONE message: this is the file, this is the check, this is the undo
99
+ H3 edit one value, through `orc handoff set`
100
+ H4 check run the file's own check · say what happened in plain words
101
+ H5 record add a numbered entry to orc-handoff/<slug>/handoff-log.md
102
+ ```
103
+
104
+ ### H1 — find
105
+
106
+ Search the mapped surfaces first. If the map does not exist yet, run MAP for just
107
+ the area the user named — never the whole project for one small change.
108
+
109
+ Show the value as it is now. If you cannot find it, say so and ask for more — a
110
+ guessed key is a wrong edit.
111
+
112
+ ### H2 — confirm (one message, always)
113
+
114
+ ```
115
+ File: web/locales/en.json
116
+ Now: "Your cart is empty"
117
+ New: "Nothing in here yet"
118
+ Grade: 🟢 green
119
+
120
+ After I change it I will run: npm run i18n:check
121
+ To undo it, run: git checkout -- web/locales/en.json
122
+
123
+ Change it? (yes / no)
124
+ ```
125
+
126
+ **This message is not optional, even when the change looks tiny.** It is the whole
127
+ consent step.
128
+
129
+ ### H3 — edit
130
+
131
+ Always through `orc handoff set <id> <key> <value>`. Never edit the file yourself.
132
+ One writer means one set of rules, and the browser panel uses the same one.
133
+
134
+ `handoff_write: false` makes this project **map only** — no writes at all. Say that
135
+ plainly and stop; do not work around it.
136
+
137
+ ### H4 — check
138
+
139
+ Green surfaces: the CLI runs the check and reports it.
140
+
141
+ - **passed** → say so in one line.
142
+ - **failed** → say what failed, show the undo command again, and **do not try to
143
+ fix it**. Fixing a failed check is code work.
144
+
145
+ Amber surfaces: the change is made, and the check is a **task for a person**. Never
146
+ report an amber change as verified. Say: "this file has no automatic check, so
147
+ nothing has confirmed your change yet. Please check: <the manual check>."
148
+
149
+ ### H5 — record
150
+
151
+ One numbered entry per change, in `orc-handoff/<slug>/handoff-log.md`. Shape:
152
+ `references/handoff-log.md`. One file per thread, named from the first slug, never
153
+ staged.
154
+
155
+ ---
156
+
157
+ ## Preflight (ONE time, silent)
158
+
159
+ 1. **Config.** Read `log_dir` and `handoff_write`. Nothing else.
160
+ 2. **Trace.** Write `log_dir/.current` = `run-handoff-<slug>-<DDMMYY>-<HHMMSS>.txt`
161
+ AND `touch the trace file` in the SAME step. Both, or neither.
162
+ 3. **Probe.** `orc handoff surfaces --json` (exit 1 = no map yet, which is normal
163
+ on a first run). Use `../_shared/detecting-artifacts.md`, never a raw `find`.
164
+
165
+ ## Where this shows up in `/orc`
166
+
167
+ At ship, if any changed file was a GREEN surface:
168
+
169
+ > 2 of these were changes a PM could have made alone — try `/orc-handoff` next
170
+ > time.
171
+
172
+ One sentence. That is the whole seam, and it is how anyone finds out this lane
173
+ exists.
174
+
175
+ ## Behavior trace (always on)
176
+
177
+ Follow `../orc/references/trace-protocol.md`. Lane name `handoff`.
178
+ **Single-dispatch lane: exactly ONE end-of-run packet** to
179
+ `orc-trace-writer-haiku-4-5`, after the last entry and BEFORE `.current` is
180
+ deleted. It carries `run_meta`, the events (mapped, confirmed, edited, checked) and
181
+ the confirmations as `decisions`. A run that ends with
182
+ `zero new trace lines is a protocol violation`.
183
+
184
+ Any reading it needs is an **ad-hoc dispatch by model + effort**, never a pinned
185
+ agent — **zero new agents ship for this lane**. Announce it in one line first.
186
+
187
+ ## How this lane fails — and the rule that stops it
188
+
189
+ | Failure | What stops it |
190
+ |---|---|
191
+ | A file is called safe because it is JSON | The grade comes from the CHECK, not the file type |
192
+ | Someone edits money code through a text change | Red is never edited. Ever |
193
+ | A change looks verified but nothing checked it | Amber returns a manual TASK, never a pass |
194
+ | The user cannot undo it | The undo command is shown BEFORE the edit |
195
+ | It commits something by surprise | It never stages and never commits |
196
+ | It re-grades a file to be helpful | The grade never moves inside one request |
197
+ | It creates a new setting | It only changes values that already exist |
198
+ | The words are too hard to read | This whole folder is simple English |
199
+
200
+ ## Rules this lane always keeps
201
+
202
+ Show the undo first · never touch a red file · never commit · never create a key ·
203
+ never call an amber change verified · write through `orc handoff set` only · keep
204
+ every word simple.
@@ -0,0 +1,67 @@
1
+ # Reference — the change log
2
+
3
+ Loaded at H5. The file is `orc-handoff/<slug>/handoff-log.md`, at the top of the
4
+ project.
5
+
6
+ ## The rules for the file
7
+
8
+ - **One `.md` per thread, ever.** The folder is named from the FIRST slug and never
9
+ gets a timestamp, so asking about the same thing again re-opens the same thread.
10
+ Same rule as `/orc-quick`'s context doc.
11
+ - **Never staged.** ORC does not add it to git. If the user wants it committed they
12
+ commit it.
13
+ - **Append only.** Entries are numbered and never renumbered.
14
+ - **Do not read the body back.** On re-open, read only the `orc-handoff:toc`
15
+ block — or the whole file when the user asks for it directly.
16
+
17
+ ## Shape
18
+
19
+ ```markdown
20
+ # Changes — cart copy
21
+
22
+ <!-- orc-handoff:toc
23
+ 1 2026-08-10 web/locales/en.json cart.empty.title green check passed
24
+ 2 2026-08-10 content/pricing.md (page body) amber manual check pending
25
+ -->
26
+
27
+ ## 1 · Empty cart title
28
+
29
+ - when: 10-08-2026 14:11
30
+ - file: web/locales/en.json
31
+ - key: cart.empty.title
32
+ - grade: green
33
+ - was: "Your cart is empty"
34
+ - now: "Nothing in here yet"
35
+ - check: npm run i18n:check → passed
36
+ - undo: git checkout -- web/locales/en.json
37
+ - committed: no
38
+
39
+ ## 2 · Pricing page wording
40
+
41
+ - when: 10-08-2026 14:26
42
+ - file: content/pricing.md
43
+ - grade: amber
44
+ - what changed: the second paragraph
45
+ - check: open /pricing and read the page → NOT DONE YET (a person must do this)
46
+ - undo: git checkout -- content/pricing.md
47
+ - committed: no
48
+ ```
49
+
50
+ ## The two fields people actually come back for
51
+
52
+ **`undo`** — because the reason someone re-opens this file is almost always "how do
53
+ I put it back". Write the exact command every time.
54
+
55
+ **`check`** — and it must say what really happened:
56
+
57
+ - `→ passed` only when a command ran and passed.
58
+ - `→ NOT DONE YET (a person must do this)` for every amber change.
59
+
60
+ **Never write "checked" for an amber change.** An amber change that reads as
61
+ verified is the one entry in this file that could mislead somebody badly.
62
+
63
+ ## The toc block
64
+
65
+ The block between `<!-- orc-handoff:toc` and `-->` is the only part re-read on
66
+ re-open. Keep it to one line per entry: number, date, file, key, grade, outcome.
67
+ It exists so a long thread never costs a full file read.
@@ -0,0 +1,88 @@
1
+ # Reference — the surface map
2
+
3
+ Loaded in MAP mode. The file is `orc-handoff/surfaces.md`, at the top of the
4
+ project. It is a normal file you can read and commit.
5
+
6
+ ## Shape
7
+
8
+ One block per file. The heading is the name of the block, so it must not change
9
+ once written — other things point at it by id.
10
+
11
+ ```markdown
12
+ # Files a non-developer can own
13
+
14
+ ## H-001 · web/locales/en.json · Screen text
15
+ - grade: green
16
+ - check: npm run i18n:check
17
+ - check_kind: command
18
+ - revert: git checkout -- web/locales/en.json
19
+ - keys: cart.empty.title, cart.empty.cta
20
+
21
+ ## H-002 · content/pricing.md · The pricing page
22
+ - grade: amber
23
+ - check: open /pricing in the app and read the page
24
+ - check_kind: manual
25
+ - revert: git checkout -- content/pricing.md
26
+ - upgrade: a link checker would make this green
27
+
28
+ ## H-003 · src/config/limits.ts · Looks like settings, is code
29
+ - grade: red
30
+ - reason: this file decides how much a customer is charged
31
+ - ask: a backend developer
32
+ ```
33
+
34
+ ## The fields
35
+
36
+ | Field | Required | What it holds |
37
+ |---|---|---|
38
+ | `grade` | yes | `green`, `amber` or `red` |
39
+ | `check` | green + amber | the exact command, or the exact manual step |
40
+ | `check_kind` | yes | `command` or `manual` |
41
+ | `revert` | green + amber | the exact command that puts the file back |
42
+ | `keys` | no | the keys inside the file a person may change |
43
+ | `reason` | red | why this is not content, in plain words |
44
+ | `ask` | red | who to ask instead |
45
+ | `upgrade` | no | what would move this file up a grade |
46
+
47
+ ## How to pick the grade
48
+
49
+ Ask one question: **if this person makes a mistake, what catches it?**
50
+
51
+ - A command catches it → **green**. Put the command in `check`.
52
+ - Only a person catches it → **amber**. Put the human step in `check`.
53
+ - Nothing catches it, or the file changes what the software DOES rather than what
54
+ it SAYS → **red**.
55
+
56
+ That is the whole rule. Do not grade by folder, by file extension, or by how the
57
+ file looks.
58
+
59
+ ## `upgrade` is worth filling in
60
+
61
+ An amber file with `upgrade: a schema check would make this green` turns a warning
62
+ into a small, clear piece of engineering work. Over time that is how a project
63
+ grows more green surfaces — which is the real outcome this lane is aiming at.
64
+
65
+ ## One thing to tell people about JSON files
66
+
67
+ When `orc handoff set` changes a value in a `.json` file, it re-writes the whole
68
+ file with normal 2-space (or the file's own) indentation. The values and their
69
+ order do not change, but if the file had unusual spacing, **the diff can be
70
+ bigger than the one line you changed.**
71
+
72
+ Say this in the confirmation step for a JSON surface. It is not a problem — the
73
+ check still runs and the undo command still works — but somebody looking at the
74
+ diff afterwards should not be surprised by it.
75
+
76
+ ## What never goes in the map
77
+
78
+ - Anything under `.claude/` — that is ORC's own state.
79
+ - Secrets, `.env`, keys, tokens. Not even as red.
80
+ - Generated files. Editing one is undone by the next build, which looks like the
81
+ edit was ignored.
82
+ - A file that only exists in one person's checkout.
83
+
84
+ ## Keep it honest
85
+
86
+ If a project has **no** green surfaces, say that. A map full of amber is a true
87
+ map. A map that calls things green so the lane looks useful is the one failure
88
+ mode that could actually hurt somebody.
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: orc-judge
3
+ description: >
4
+ Judgment gates for the ORC ultra lane. One judge skill, one agent
5
+ (orc-judge-opus-5-xhigh), three dispatch contexts: gate=analysis (after the
6
+ analyst), gate=plan (after the planner), gate=implementation (after verify —
7
+ the anti-miss-implementation fidelity + strict-quality gate). Returns a
8
+ structured verdict (APPROVE | REVISE | ESCALATE) with anchored,
9
+ consequence-cited findings; REVISE loops the author with a hard 2-loop cap
10
+ and a convergence rule. Dispatched only from /orc-ultra — no slash command
11
+ of its own, never in orc or orc-mini. The orchestrator dispatches the judge
12
+ subagent — it never judges itself.
13
+ ---
14
+
15
+ # ORC-JUDGE (ultra-lane judgment gates)
16
+
17
+ A model-based quality gate on top of ORC's deterministic gates. The judge
18
+ handles what determinism cannot: scope-interpretation correctness, plan
19
+ soundness, implementation fidelity, and — at the final gate — ultra-strict
20
+ code quality. Deterministic gates ALWAYS run first; the judge never re-checks
21
+ what a string-compare catches.
22
+
23
+ Ultra lane ONLY. No `/orc-judge` command; the orchestrator dispatches
24
+ `orc-judge-opus-5-xhigh` at the three ultra gates.
25
+
26
+ ## Hard rules
27
+
28
+ 1. **The orchestrator never judges — it spawns.** One agent, three contexts
29
+ (`gate=analysis|plan|implementation`).
30
+ 2. **Deterministic first.** A judge dispatch is only legal AFTER the gate's
31
+ deterministic checks passed (evidence spot-check + derivation lint /
32
+ coverage + graph checks / verify + traceability matrix + static analysis).
33
+ 3. **The judge is read-only** and blind to the author's internal reasoning or
34
+ self-assessment (anti-anchoring): it sees the artifact, its evidence, the
35
+ advisor brief + rubric, and the original request.
36
+ 4. **Judge gates ADD to user sign-offs, never replace them.** Gate approvals
37
+ never skip the analyst challenge round or the plan sign-off.
38
+ 5. **Gate scope is one-directional.** gate=plan takes the approved spec as
39
+ fixed ground truth; gate=implementation takes the approved plan as fixed —
40
+ no gate re-litigates an earlier approved gate.
41
+ 6. **The judge never fixes.** Authors fix: analyst (gate=analysis), planner
42
+ (gate=plan), a scored executor fix wave (gate=implementation).
43
+
44
+ ## Verdict handling (orchestrator side)
45
+
46
+ Validate the return against the agent's verdict contract, then:
47
+
48
+ - **Downgrade enforcement:** any blocking finding missing its verbatim
49
+ anchor or its class-appropriate justification (failure_consequence for
50
+ correctness/security; named category + concrete alternative for
51
+ smell/simplification/placement) → downgrade to advisory and tell the user.
52
+ EXCEPTION: a security finding with a concrete consequence is always
53
+ blocking — never downgraded.
54
+ - **APPROVE** → record the verdict artifact, continue the pipeline.
55
+ - **REVISE** → re-dispatch the author with the original slice + the blocking
56
+ findings verbatim. The author's return must echo `finding_id → resolution`
57
+ per finding; a missing echo is a malformed return (requeue). Then RE-JUDGE
58
+ under the convergence rule: block only on unresolved prior findings by id
59
+ or on lines the revision changed; new findings on untouched material are
60
+ advisory-only. **Hard cap: 2 revision loops per gate**, counted in the
61
+ checkpoint.
62
+ - **ESCALATE** (or a third failure) → present the ESCALATE menu:
63
+ accept-and-proceed (unresolved findings recorded in the Phase 7 summary) /
64
+ user fixes manually then re-judge (does not consume a loop) / grant one
65
+ extra loop / stop-and-checkpoint.
66
+ - Advisory findings NEVER loop — they ride forward attached to the next
67
+ phase's slices as notes.
68
+ - Persist every verdict as `run/{run-slug}/ultra/verdict-<gate>-<round>.md`
69
+ (mined by /orc-retro; survives resume). When logging, emit
70
+ `JUDGE <gate> <verdict>` and the judgment GATE line (pass|bounce|escalate).
71
+
72
+ ## The three gates
73
+
74
+ | Gate | After | Judges | REVISE target |
75
+ |------|-------|--------|---------------|
76
+ | analysis | analyst-return deterministic gates | scope interpretation, requirement coherence, rubric misses, stale-doc risk | analyst |
77
+ | plan | Phase 1 exit gate + blast-radius map | decomposition, declared-file plausibility, deps, right-sizing, blast-radius coverage | planner |
78
+ | implementation | Phase 6/6.5 + traceability matrix + static analysis | fidelity to the user's ask + ultra-strict quality (security, smells, simplification, placement, pattern invariants) | scored executor fix wave → re-verify → re-judge |
79
+
80
+ Return fields include `actual_model` + `actual_effort` (standard
81
+ claimed-vs-actual check) and `rubric_items_checked[]` +
82
+ `unconfirmed_assumptions_touched[]` — validate them like any worker return.
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: orc-learn
3
+ description: >
4
+ Per-feature onboarding docs for the LOCAL project. Use for "/orc-learn",
5
+ "help me learn feature X", "onboard me to this feature", or "orc-learn
6
+ refresh". Runs INDEPENDENTLY — no orchestrator, no run folder. Picks one
7
+ feature (wiki topics first), then generates learning-docs/<feature>/ with
8
+ learning.md (pedagogy: mental model, walkthrough, recipes, FAQ) and
9
+ knowledge.md (reference: file:line-anchored functions & flow, contracts,
10
+ fingerprints). Output is LOCAL and git-ignored — each dev regenerates their
11
+ own. Refresh lists every generated feature with a computed freshness flag
12
+ and regenerates only what the user picks. The skill dispatches the pinned
13
+ orc-learn-writer-opus-5-low agent — it never writes the docs itself.
14
+ ---
15
+
16
+ # ORC-LEARN (standalone)
17
+
18
+ Teach a developer ONE feature of the local repo well enough to safely extend
19
+ it — the human-onboarding lane. It is NOT the wiki: the wiki grounds the
20
+ *pipeline* (repo-wide, contract-level); orc-learn goes one level deeper for a
21
+ *person* — function-level, full-flow, pedagogical. Target is always
22
+ `<repo root>/learning-docs/<feature-slug>/` (git-ignored, local per dev).
23
+
24
+ **Dispatch, don't do.** Whatever model this chat runs on, the skill only picks
25
+ the topic/mode and spawns `orc-learn-writer-opus-5-low` (the pinned
26
+ engine) — the deepening scan + all writes run at Opus 5 low regardless of
27
+ the caller's tier. The skill's only self-writes are the behavior-trace
28
+ markers around the spawn. Interactivity is DELIBERATELY minimal but non-zero
29
+ (unlike orc-claude): exactly one question per mode — "which feature?" (INIT)
30
+ or "which to refresh?" (REFRESH). Never more.
31
+
32
+ **Grounding precedence** (constellation rule, unchanged):
33
+ `code > fresh wiki > stale wiki (hints) > model priors`. The writer re-verifies
34
+ every wiki claim it uses against the code; on conflict the code wins.
35
+
36
+ **Worked example** (orient only — never execute from it):
37
+ `examples/learn-run-mock.md`.
38
+
39
+ ## The two modes (auto-selected by argument)
40
+
41
+ 1. **INIT** (default: `/orc-learn`, optional `focus=<hint>`) — pick ONE
42
+ feature, generate `learning-docs/<slug>/learning.md` + `knowledge.md`,
43
+ derive `learning-docs/INDEX.md`.
44
+ 2. **REFRESH** (`/orc-learn refresh`) — list every generated feature with a
45
+ computed freshness flag; regenerate only the ones the user picks.
46
+ Protocol: `references/refresh.md`.
47
+
48
+ Not inside a git repo / no project root findable → say so and stop.
49
+
50
+ ## Mode A — INIT
51
+
52
+ Behavior-trace logging is permanent (always on). Resolve `log_dir`
53
+ (`../orc/config.md` default + `.claude/orc.config.yaml`) at start and follow
54
+ `../orc/references/trace-protocol.md`; the marker set is in "Behavior trace"
55
+ below. Weave the **Trace:** steps in as each event happens.
56
+
57
+ 1. **Topic pick (wiki-first).** Read `wiki/INDEX.md` +
58
+ `.claude/orc/wiki-meta.json` and compute the freshness tier
59
+ (`../orc-wiki/references/staleness.md` — computed on read, never stored).
60
+ **Trace:** `WIKI-CONSULT tier=<FRESH|AGING|STALE|none> :: topic-pick`
61
+ (emitted even when the wiki is absent, with `none`).
62
+ - Wiki FRESH/AGING → present its feature areas as a pick-list; the chosen
63
+ area's `covers` globs seed the writer's file set.
64
+ - No wiki / STALE / topic not covered → ask the user to point at the
65
+ feature (a directory or a `focus=` hint); the writer will do a
66
+ **targeted** scan of just those files — never repo-wide. A stale wiki
67
+ doc may still ride along as hints (precedence above).
68
+ - Ask which feature as ONE question (one feature per invoke). Derive
69
+ `feature_slug` (kebab-case) from the chosen topic/area.
70
+ 2. **Trace:** write `log_dir/.current` = `run-learn-<slug>-<DDMMYY>-<HHMMSS>.txt` and
71
+ `touch the trace file` of that name in the SAME step, BEFORE the spawn (a
72
+ pointer to a missing file reads as dangling and the hook rotates away).
73
+ 3. Spawn `orc-learn-writer-opus-5-low` with: `mode=init`, `repo_root`,
74
+ `feature_slug`, `topic_area`, `covers[]` (from wiki or user pointer),
75
+ `wiki_tier`, `focus_hint|null`, and the paths to
76
+ `references/deepen.md`, `references/template-learning.md`,
77
+ `references/template-knowledge.md`. **Trace:**
78
+ `DISPATCH orc-learn-writer :: init <slug> expect=opus-5/low` just
79
+ before the spawn (the hook adds `SPAWN`/`RETURN` on its own).
80
+ 4. On return, check `actual_model`/`actual_effort` against the pinned tier —
81
+ mismatch → prepend a tier-downgrade warning to the report. **Trace:**
82
+ `VERIFY writer actual=<model>/<effort> ✅ MATCH` (or
83
+ `⛔ DOWNGRADE expected=opus-5/low`).
84
+ 5. Relay the writer's report verbatim. If `learning-docs/` is not in
85
+ `.gitignore`, offer the line (`learning-docs/`) — append only on an
86
+ explicit yes; never edit silently. **Trace:** `FINISH :: init <slug>`,
87
+ then delete `log_dir/.current`. Stop. The skill NEVER writes the docs
88
+ itself — not even a "trivial" INDEX touch.
89
+
90
+ ## Mode B — REFRESH
91
+
92
+ 1. No `learning-docs/` (or no feature folders inside) → "nothing generated
93
+ yet; run `/orc-learn` first." Stop — no trace run needed.
94
+ 2. Read every `learning-docs/<feature>/knowledge.md` fingerprint header
95
+ (`source_commit` + per-file hashes) and compute FRESH/AGING/STALE per
96
+ feature — `references/refresh.md`. Freshness is computed on read, never
97
+ stored as a status.
98
+ 3. Present the FULL list, each with its computed flag; the user
99
+ multi-selects which to regenerate (one question, multi-select). Nothing
100
+ selected → stop, no writes.
101
+ 4. **Trace:** write `log_dir/.current` = `run-learn-<slug>-<DDMMYY>-<HHMMSS>.txt`. For each
102
+ selected feature, spawn the writer with `mode=refresh` and that feature's
103
+ slice (re-deepen just that feature; a FRESH/AGING wiki may again seed the
104
+ boundary — emit one `WIKI-CONSULT tier=<tier> :: refresh` when the wiki is
105
+ read). One `DISPATCH`/`VERIFY` pair per feature, same markers as INIT.
106
+ 5. The (last) writer re-derives `learning-docs/INDEX.md` from all current
107
+ feature headers. Relay the combined report. **Trace:**
108
+ `FINISH :: refresh <n> features`, then delete `log_dir/.current`.
109
+
110
+ ## Behavior trace (PERMANENT — minimal dispatch-lane protocol; always on)
111
+
112
+ orc-learn owns the trace for its run like every trace-owning lane, but it is
113
+ a dispatch-only lane: it emits ONLY markers it can truthfully witness — no
114
+ phase/score/finding/verdict markers (deepening and writing happen inside the
115
+ writer, which self-traces nothing and only returns `actual_model`/
116
+ `actual_effort`). The marker set, in order (actor `orc`, plus the hook's
117
+ `SPAWN`/`RETURN`):
118
+
119
+ 1. `WIKI-CONSULT tier=<tier> :: <topic-pick|refresh>` — at every wiki read
120
+ (orc-learn is a wiki-grounding lane; the consult is always traced, absent
121
+ wiki included).
122
+ 2. `log_dir/.current` = `run-learn-<slug>-<DDMMYY>-<HHMMSS>.txt` — before the first spawn.
123
+ 3. `DISPATCH orc-learn-writer :: <mode> <slug> expect=opus-5/low` — one
124
+ per spawn; REFRESH runs one per selected feature.
125
+ 4. `VERIFY writer actual=<model>/<effort> ✅ MATCH` or
126
+ `⛔ DOWNGRADE expected=opus-5/low` — from the returned
127
+ `actual_model`/`actual_effort` (this lane's honesty signal for
128
+ `/orc-retro`).
129
+ 5. `FINISH :: <init <slug>|refresh <n> features>`, then delete `.current`.
130
+
131
+ Narration is **dispatched, never remembered**: record each marker with its REAL
132
+ timestamp as its event happens, then — as a single-dispatch lane — dispatch the
133
+ trace writer ONCE with the whole event list plus `decisions` (the WHY: which
134
+ feature was picked and why, the user's answer verbatim) after the writer return
135
+ validates and BEFORE you delete `.current`. Stamps are the run's timeline, never
136
+ the write time, and a run that
137
+ ends with zero new trace lines is a protocol violation.
138
+
139
+ ## Boundaries
140
+
141
+ - **Writes ONLY** under `learning-docs/` (via the writer) and, on an explicit
142
+ yes, one `.gitignore` line. Never edits source code, never commits, never
143
+ pushes.
144
+ - **One question per mode, ever.** Which feature (INIT); which to refresh
145
+ (REFRESH). Everything else is decided or reported, never asked.
146
+ - `learning-docs/` is LOCAL — git-ignored, regenerated per dev, never a
147
+ committed shared artifact. A stale copy costs one regeneration, nothing
148
+ more.
149
+ - `INDEX.md` is DERIVED by the writer from the feature headers in the same
150
+ dispatch — never hand-maintained, never edited by the skill.
151
+ - The wiki is consumed read-only as a boundary source; orc-learn never
152
+ writes wiki files, never triggers a wiki scan, never treats "not in the
153
+ wiki" as a blocker (it falls back to a targeted scan of user-pointed
154
+ files).
155
+ - Reminder: to see usage limits, tell the user to run `/usage` (never invoke
156
+ it programmatically).
@@ -0,0 +1,61 @@
1
+ # Worked example — orc-learn runs (mock; orient only, never execute from this)
2
+
3
+ ## Run 1 — INIT with a fresh wiki
4
+
5
+ U: /orc-learn
6
+ C: Repo root found. Reads wiki/INDEX.md + the wiki manifest → tier FRESH.
7
+ Presents the wiki's feature areas; user picks "orders". Slug: `orders`.
8
+ Spawns orc-learn-writer-opus-5-low with mode=init, covers from the
9
+ orders doc's globs (the skill never writes the docs itself).
10
+ W: Reads the orders wiki doc for boundary + contracts, re-verifies against
11
+ code. Deepens: maps 14 functions (file:line), traces one real flow —
12
+ POST /orders → validate (routes/orders.ts:31) → price (pricing.ts:88) →
13
+ persist (repo/orders.ts:15) → emit event → 201. Harvests 3 invariants,
14
+ 4 why-this-way findings, 2 couplings.
15
+ W: Writes learning-docs/orders/knowledge.md (fingerprint header:
16
+ source_commit=HEAD, 9 hashed files; functions & flow; contracts; verify
17
+ commands from the wiki manifest's `commands`) and learning.md (mental
18
+ model, walkthrough of the SAME flow, 3 change recipes, gotchas, FAQ ×6).
19
+ Derives learning-docs/INDEX.md. Returns functions_mapped=14,
20
+ flow_traced=true, faq_count=6, actual_model=claude-opus-5,
21
+ actual_effort=low.
22
+ C: Relays the report. `learning-docs/` not in .gitignore → offers the line;
23
+ user accepts → appended.
24
+
25
+ ## Run 2 — INIT, no wiki
26
+
27
+ U: /orc-learn focus=src/billing
28
+ C: No wiki/ → tier none (traced all the same). Asks only to confirm the
29
+ feature ("billing", from the focus pointer). Writer does a TARGETED scan
30
+ of src/billing/** only — never repo-wide — then deepens and writes the
31
+ pair as above.
32
+
33
+ ## Run 3 — REFRESH, multi-select
34
+
35
+ U: /orc-learn refresh
36
+ C: Reads each learning-docs/*/knowledge.md header; computes tiers on read:
37
+ orders STALE (drift hit pricing.ts), billing FRESH. Shows BOTH with
38
+ flags; user picks orders only. One writer dispatch regenerates the orders
39
+ pair (new source_commit, recomputed hashes, changelog line), re-derives
40
+ INDEX.md. billing: byte-untouched.
41
+
42
+ ## Run 4 — behavior trace (permanent, always on)
43
+
44
+ The skill writes the run pointer (`run-learn-<slug>-<DDMMYY>-<HHMMSS>.txt` into
45
+ `log_dir`) before the spawn, records these events as they happen, and — as a
46
+ single-dispatch lane — dispatches the trace writer ONCE at run end to append
47
+ them (`SPAWN`/`RETURN` come from the `orc-trace.js` hook as they occur):
48
+
49
+ ```
50
+ [170726 10:02:01.050] writer WIKI-CONSULT tier=FRESH :: topic-pick
51
+ [170726 10:02:44.310] writer DISPATCH orc-learn-writer :: init orders expect=opus-5/low
52
+ [170726 10:02:44.420] hook SPAWN orc-learn-writer-opus-5-low
53
+ [170726 10:06:12.900] hook RETURN
54
+ [170726 10:06:13.010] writer VERIFY writer actual=claude-opus-5/low ✅ MATCH
55
+ [170726 10:06:13.120] writer FINISH :: init orders
56
+ ```
57
+
58
+ Then the writer packet returns and the run pointer is deleted (in that order).
59
+ REFRESH traces one DISPATCH/VERIFY pair per
60
+ selected feature, ending `FINISH :: refresh <n> features`. No phase/score/
61
+ finding/verdict markers — this lane runs none of those phases.