@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,305 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+
4
+ /**
5
+ * ORC statusline — a Claude Code statusLine command.
6
+ *
7
+ * The statusline is the ONLY place Claude Code exposes the live model id
8
+ * (`model.id`) together with the reasoning effort (`effort.level`). It is
9
+ * display-only — it cannot block — so this is the "model warn" half of the
10
+ * "run ORC on Opus 4.8 high" rule. When the session is NOT Opus 4.8 at high
11
+ * effort, it renders a loud warning so you never launch /orc on the wrong tier.
12
+ *
13
+ * The deterministic hard-stop for effort lives in orc-effort-guard.js.
14
+ *
15
+ * Wiring (installed by `orc init` ONLY if no statusLine already exists):
16
+ * settings.statusLine { type:"command", command:'node "<.claude>/hooks/orc-statusline.js"' }
17
+ *
18
+ * On Claude Code v2.1.80+ it also renders the official subscription-usage
19
+ * segment `5h N% (reset) ↔ wk N%`, read straight from the payload's
20
+ * `rate_limits.{five_hour,seven_day}` (Anthropic API headers, not estimated).
21
+ * A window ≥90% folds into the DEGRADE verdict; fail-silent when absent.
22
+ *
23
+ * Three-tier verdict (the "ORC-ready" acceptance matrix):
24
+ * ✅ ORC-ready Opus 4.8 high (the baseline)
25
+ * 🚀 ORC-boosted Opus 4.8 xhigh/max, or Opus 5 / Fable 5 medium…max
26
+ * ⛔ ORC WILL DEGRADE everything below (wrong model, sub-baseline effort, quota)
27
+ *
28
+ * This is the ONLY place Claude Code exposes the live model id, so it also
29
+ * writes a fail-silent session-model bridge (.claude/orc/session-model.json)
30
+ * that the PreToolUse effort guard reads — the guard can't see the model id
31
+ * on its own, so the bridge is how the Opus 5 / Fable 5 medium-effort allowance
32
+ * reaches it.
33
+ *
34
+ * Also appends a "newer orc version available" hint from the 24h update cache
35
+ * (cache-only here — never a network call in the statusline hot path; the
36
+ * PreToolUse guard refreshes the cache when /orc is invoked).
37
+ */
38
+
39
+ // Opus 4.8 / Opus 5 / Fable 5 are matched by tolerant regexes below (accept
40
+ // dated/suffixed ids and the display name), not strict strings. Effort ranks give
41
+ // the acceptance-matrix tiers (0 = unknown, never treated as a positive downgrade).
42
+ const EFFORT_RANK = { low: 1, medium: 2, high: 3, xhigh: 4, max: 5 };
43
+
44
+ // Shared update-check helper (sibling file). Degrade gracefully if absent.
45
+ let updater = null;
46
+ try {
47
+ updater = require("./orc-update-lib.js");
48
+ } catch (_) {
49
+ updater = null;
50
+ }
51
+
52
+ let raw = "";
53
+ process.stdin.on("data", (c) => (raw += c));
54
+ process.stdin.on("end", () => {
55
+ let d = {};
56
+ try {
57
+ d = JSON.parse(raw || "{}");
58
+ } catch (_) {
59
+ d = {};
60
+ }
61
+
62
+ const model = (d.model && d.model.id) || "";
63
+ const display = (d.model && d.model.display_name) || model || "unknown";
64
+ const effort = String((d.effort && d.effort.level) || "").toLowerCase();
65
+ const pct =
66
+ d.context_window && typeof d.context_window.used_percentage === "number"
67
+ ? `${d.context_window.used_percentage}% ctx`
68
+ : "";
69
+
70
+ // ── Session-model bridge (fail-silent) ─────────────────────────────────────
71
+ // The PreToolUse effort guard cannot see the model id; it can only read
72
+ // effort. Persist {model_id, effort, written_at} here so the guard can grant
73
+ // the Opus 5 / Fable 5 medium-effort allowance. The statusline re-renders constantly
74
+ // while a session is active, so written_at stays fresh; the guard treats a
75
+ // stale file (older than its freshness window) as absent and never blocks on
76
+ // it. Any error (no dir, read-only fs) is swallowed — this is a nicety, not a
77
+ // guarantee, and must never break the statusline render.
78
+ try {
79
+ if (model || effort) {
80
+ const fs = require("fs");
81
+ const path = require("path");
82
+ const projectDir =
83
+ (d.workspace && d.workspace.project_dir) || d.cwd || process.cwd();
84
+ const orcDir = path.join(projectDir, ".claude", "orc");
85
+ fs.mkdirSync(orcDir, { recursive: true });
86
+ fs.writeFileSync(
87
+ path.join(orcDir, "session-model.json"),
88
+ JSON.stringify({ model_id: model, effort, written_at: Date.now() }) + "\n"
89
+ );
90
+ }
91
+ } catch (_) {}
92
+
93
+ // ── Subscription usage (Claude Code v2.1.80+) ──────────────────────────────
94
+ // Official 5-hour + 7-day usage, surfaced by Claude Code straight from
95
+ // Anthropic's API headers into this payload's `rate_limits`. Display-only,
96
+ // fail-silent: an absent block (older Claude Code / no headers) → no segment,
97
+ // never `undefined`. A window at/above USAGE_CRIT contributes to the DEGRADE
98
+ // verdict — running low on quota is a real mid-run degradation risk.
99
+ const USAGE_WARN = 75;
100
+ const USAGE_CRIT = 90;
101
+ const fmtReset = (v) => {
102
+ // resets_at may be an ISO string or an epoch (seconds or ms). "" on anything odd.
103
+ let t = NaN;
104
+ if (typeof v === "number") t = v < 1e12 ? v * 1000 : v;
105
+ else if (typeof v === "string") {
106
+ const n = Number(v);
107
+ t = Number.isFinite(n) ? (n < 1e12 ? n * 1000 : n) : Date.parse(v);
108
+ }
109
+ if (!Number.isFinite(t)) return "";
110
+ const ms = t - Date.now();
111
+ if (ms <= 0) return "";
112
+ const mins = Math.round(ms / 60000);
113
+ if (mins < 60) return `${mins}m`;
114
+ const h = Math.floor(mins / 60);
115
+ const m = mins % 60;
116
+ return m ? `${h}h${m}m` : `${h}h`;
117
+ };
118
+ let rlSeg = "";
119
+ const usageBad = [];
120
+ try {
121
+ const rl = d.rate_limits || {};
122
+ const win = (obj, label) => {
123
+ if (!obj || typeof obj.used_percentage !== "number") return "";
124
+ const p = Math.round(obj.used_percentage);
125
+ const reset = fmtReset(obj.resets_at);
126
+ const mark = p >= USAGE_CRIT ? "⛔" : p >= USAGE_WARN ? "⚠" : "";
127
+ if (p >= USAGE_CRIT) usageBad.push(`${label}≥${USAGE_CRIT}%`);
128
+ // Reset shown for the short (5h) window always; weekly only when elevated.
129
+ const showReset = reset && (label === "5h" || p >= USAGE_WARN);
130
+ return `${mark}${label} ${p}%${showReset ? ` (${reset})` : ""}`;
131
+ };
132
+ const fh = win(rl.five_hour, "5h");
133
+ const sd = win(rl.seven_day, "wk");
134
+ if (fh && sd) rlSeg = `${fh} ↔ ${sd}`;
135
+ else rlSeg = fh || sd || "";
136
+ } catch (_) {
137
+ rlSeg = "";
138
+ }
139
+
140
+ // Tolerant tier detection. A strict `model === "claude-opus-4-8"` false-fired
141
+ // whenever Claude Code reported a dated/suffixed id (e.g. claude-opus-4-8-
142
+ // YYYYMMDD) or only a display name — even on the correct tier. Match Opus 4.8
143
+ // and Fable 5 by normalized id OR display name, accepting any variant; the
144
+ // trailing \b keeps 4.7 / 4.85 / Sonnet etc. correctly warning.
145
+ const hay = `${model} ${display}`.toLowerCase();
146
+ const isOpus48 = /opus[\s._-]?4[\s._-]?8\b/.test(hay);
147
+ const isFable5 = /fable[\s._-]?5\b/.test(hay);
148
+ // Opus 5 (v0.34.0) — strictly above the baseline, so it boosts from medium up,
149
+ // exactly like Fable 5. The `\b` keeps opus 4.8 / 4.7 out of this branch.
150
+ const isOpus5 = /opus[\s._-]?5\b/.test(hay);
151
+ const modelKnown = model !== "" || (display !== "" && display !== "unknown");
152
+ // Effort rank; 0 = unknown. A missing/empty effort field is NOT proof of a
153
+ // downgrade — the PreToolUse guard already hard-blocks a real low-effort /orc
154
+ // — so an unknown effort never forces DEGRADE on effort grounds here.
155
+ const er = EFFORT_RANK[effort] || 0;
156
+
157
+ const tier = `${display}${effort ? "/" + effort : ""}`;
158
+
159
+ // Verdict per the acceptance matrix. Only a POSITIVELY-known bad tier degrades.
160
+ let verdict = "ready";
161
+ const reasons = [];
162
+ if (isOpus48) {
163
+ if (er >= 4) verdict = "boosted"; // xhigh / max
164
+ else if (er === 3 || er === 0) verdict = "ready"; // high (or unknown → lenient)
165
+ else {
166
+ verdict = "degrade"; // opus 4.8 below high
167
+ reasons.push("effort≠high");
168
+ }
169
+ } else if (isOpus5 || isFable5) {
170
+ const label = isOpus5 ? "Opus-5" : "Fable-5";
171
+ if (er >= 2 || er === 0) verdict = "boosted"; // medium…max (or unknown → lenient)
172
+ else {
173
+ verdict = "degrade"; // opus 5 / fable 5 below medium
174
+ reasons.push(`${label} effort<medium`);
175
+ }
176
+ } else if (modelKnown) {
177
+ verdict = "degrade";
178
+ reasons.push("model≠Opus5/Opus4.8/Fable5");
179
+ } // else model unknown → stay lenient (the guard enforces effort)
180
+
181
+ // A quota window at/above the crit threshold folds into DEGRADE regardless.
182
+ if (usageBad.length) {
183
+ verdict = "degrade";
184
+ for (const u of usageBad) reasons.push(u);
185
+ }
186
+
187
+ let line;
188
+ if (verdict === "ready") {
189
+ line = `✅ ORC-ready ${tier}${pct ? " · " + pct : ""}`;
190
+ } else if (verdict === "boosted") {
191
+ line = `🚀 ORC-boosted ${tier}${pct ? " · " + pct : ""}`;
192
+ } else {
193
+ line = `⛔ ORC WILL DEGRADE (${reasons.join(", ")}) — now: ${tier}${pct ? " · " + pct : ""}`;
194
+ }
195
+
196
+ // Subscription-usage segment (rendered after ctx, before wiki). Empty on
197
+ // older Claude Code that doesn't surface `rate_limits`.
198
+ if (rlSeg) line += " · " + rlSeg;
199
+
200
+ // Wiki freshness tier (computed on read from wiki-meta.json — zero model
201
+ // tokens; the manifest is written only by `orc wiki sync`). Fail-silent: no
202
+ // wiki / no git / any error → no segment. Thresholds mirror the config
203
+ // defaults (wiki_fresh_max 10 / wiki_aging_max 30); the hook can't read the
204
+ // resolved config, so a user override shifts skill behavior, not this label.
205
+ try {
206
+ const fs = require("fs");
207
+ const path = require("path");
208
+ const { execSync } = require("child_process");
209
+ const projectDir =
210
+ (d.workspace && d.workspace.project_dir) || d.cwd || process.cwd();
211
+ const metaPath = path.join(projectDir, ".claude", "orc", "wiki-meta.json");
212
+ if (!fs.existsSync(metaPath)) {
213
+ // Docs but no manifest = UNREGISTERED: a real wiki nothing has indexed
214
+ // (usually a scan stopped at a 5-area pause). It is otherwise invisible —
215
+ // consumers and `orc crosslink` read the manifest — so surface it here,
216
+ // with the free fix. Never say "no wiki": these docs are already paid for.
217
+ const wikiDir = path.join(projectDir, "wiki");
218
+ const docs =
219
+ fs.existsSync(wikiDir) &&
220
+ fs.readdirSync(wikiDir).some((f) => f.startsWith("orc-") && f.endsWith(".md"));
221
+ if (docs) line += " · wiki: UNREGISTERED (run `orc wiki sync`)";
222
+ } else {
223
+ const meta = JSON.parse(fs.readFileSync(metaPath, "utf8"));
224
+ if (meta && meta.scan_commit) {
225
+ const distance = parseInt(
226
+ execSync(`git rev-list --count ${meta.scan_commit}..HEAD`, {
227
+ cwd: projectDir,
228
+ timeout: 3000,
229
+ stdio: ["ignore", "pipe", "ignore"],
230
+ })
231
+ .toString()
232
+ .trim(),
233
+ 10
234
+ );
235
+ if (Number.isFinite(distance)) {
236
+ if (distance >= 10 && distance <= 30)
237
+ line += ` · wiki: AGING (${distance}c)`;
238
+ else if (distance > 30) line += ` · wiki: STALE (${distance}c)`;
239
+ else line += " · wiki: fresh";
240
+ }
241
+ }
242
+ }
243
+ } catch (_) {}
244
+
245
+ // orc-diy gate segment (only when a flow exists). Recomputes the same
246
+ // staleness checks as `orc diy status` from flow.lock.json — written only
247
+ // by the `orc diy` CLI. Fail-silent: any error → no segment.
248
+ try {
249
+ const fs = require("fs");
250
+ const path = require("path");
251
+ const crypto = require("crypto");
252
+ const projectDir =
253
+ (d.workspace && d.workspace.project_dir) || d.cwd || process.cwd();
254
+ const lockPath = path.join(projectDir, ".claude", "orc", "diy", "flow.lock.json");
255
+ if (fs.existsSync(lockPath)) {
256
+ const lock = JSON.parse(
257
+ fs.readFileSync(lockPath, "utf8").replace(/^\uFEFF/, "")
258
+ );
259
+ const sha = (p) =>
260
+ crypto.createHash("sha256").update(fs.readFileSync(p, "utf8")).digest("hex");
261
+ const cfgPath = path.join(projectDir, ".claude", "orc-diy.config.yaml");
262
+ const compiledPath = path.join(projectDir, ".claude", "orc", "diy", "FLOW-COMPILED.md");
263
+ let installedV = null;
264
+ try {
265
+ installedV = JSON.parse(
266
+ fs.readFileSync(path.join(__dirname, "orc-version.json"), "utf8")
267
+ ).version;
268
+ } catch (_) {}
269
+ const ready =
270
+ lock.compiled_hash &&
271
+ fs.existsSync(cfgPath) &&
272
+ lock.config_hash === sha(cfgPath) &&
273
+ fs.existsSync(compiledPath) &&
274
+ lock.compiled_hash === sha(compiledPath) &&
275
+ (!installedV || lock.orc_version === installedV);
276
+ let seg = `diy:${lock.flow_name || "flow"} ${ready ? "READY" : "STALE→recompile"}`;
277
+ // Model half of the compiled session_tier — warn-only (hooks can't block on
278
+ // model). Keyed by the slug's MODEL part, so the full tier grid (sonnet-4-6,
279
+ // opus-4-7, opus-4-8, fable-5 at any effort) is covered without enumerating
280
+ // every effort slug.
281
+ if (ready && modelKnown && lock.session_tier) {
282
+ const modelPart = String(lock.session_tier).replace(/-(med|high|xhigh|max)$/, "");
283
+ const want = {
284
+ "sonnet-4-6": /sonnet[\s._-]?4[\s._-]?6\b/,
285
+ "opus-4-7": /opus[\s._-]?4[\s._-]?7\b/,
286
+ "opus-4-8": /opus[\s._-]?4[\s._-]?8\b/,
287
+ "opus-5": /opus[\s._-]?5\b/,
288
+ "fable-5": /fable[\s._-]?5\b/,
289
+ }[modelPart];
290
+ if (want && !want.test(hay)) seg += ` ⛔model≠${lock.session_tier}`;
291
+ }
292
+ line += " · " + seg;
293
+ }
294
+ } catch (_) {}
295
+
296
+ // Append an update hint from the cache (instant, no network here).
297
+ if (updater) {
298
+ try {
299
+ const nudge = updater.readCachedNudge(updater.installedVersion(__dirname));
300
+ if (nudge) line += " · " + nudge;
301
+ } catch (_) {}
302
+ }
303
+
304
+ process.stdout.write(line);
305
+ });