@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,77 @@
1
+ # Reference — Thin input and the `/orc-grill` reverse trigger
2
+
3
+ Load at Phase A″ when the analyzable gate fails, or at Phase F when a returned
4
+ report is mostly tagged. Both are the SAME signal — the input was never sharp
5
+ enough to check against code — arriving at two different moments.
6
+
7
+ ## Why a scan is the wrong instrument here
8
+
9
+ `/orc-analyze` answers *"does the repo really do that?"*. It cannot answer
10
+ *"what do I actually want?"*. Pointed at a fuzzy intent it still produces
11
+ questions — but it produces them after paying for a scan (deep mode adds scouts
12
+ at `max_scouts` in parallel), and it produces them as twenty tags in one batch
13
+ rather than as a conversation with a frontier.
14
+
15
+ The planner already refuses this shape rather than absorbing it
16
+ (`../../orc/subskills/orc-planner/SKILL.md`: *plannable ⇔ an observable outcome
17
+ AND an identifiable area*). This is the analyst's mirror of that rule.
18
+
19
+ ## Branch 1 — the gate fails up front (Phase A″)
20
+
21
+ Print exactly this, then wait:
22
+
23
+ ```
24
+ This is too thin to check against the code — I would spend the scan asking you
25
+ questions instead of reading files.
26
+
27
+ → Switch to /orc-grill first (a conversation, no scan, no scout tokens).
28
+ When it is sharp, it comes straight back here and I analyze it.
29
+ [switch / analyze anyway]
30
+ ```
31
+
32
+ - **`switch`** → run `../../orc-grill/SKILL.md`. Its exit 2 **auto-consumes back
33
+ into THIS invocation**: the written `orc-grill/<slug>/grill-context.md` becomes
34
+ the analyze input and Phase A restarts with it. The user retypes nothing and
35
+ re-explains nothing. Say so in one line when handing over, so the round trip is
36
+ visible rather than feeling like a lane change.
37
+ - **`analyze anyway`** → proceed exactly as today. The user's override stands and
38
+ is not re-litigated later in the run; record it in the report's decisions so a
39
+ later reader knows the tags were expected.
40
+
41
+ **It is an OFFER.** Never switch lanes without the answer, and never refuse to
42
+ analyze — this gate changes what is RECOMMENDED, never what is permitted.
43
+
44
+ ## Branch 2 — the same signal arriving late (after the analyst returns)
45
+
46
+ A report can pass the up-front gate and still come back mostly unanchored. That
47
+ is this gate firing after the fact, and it deserves the same offer rather than a
48
+ twenty-question relay.
49
+
50
+ **Use numbers already in hand — add no probe.** `references/analyst-gates.md`
51
+ already recomputes coverage on return; compare the count of rows tagged
52
+ `ASSUMPTION`/`UNVERIFIED` against the total requirement rows. When the tagged
53
+ rows are the majority, offer:
54
+
55
+ ```
56
+ The analysis came back mostly unverified — <k> of <n> requirements could not be
57
+ anchored to code. That is usually the intent still being open, not the repo
58
+ being unreadable.
59
+
60
+ → /orc-grill to settle the intent (minutes, no scan), then re-analyze
61
+ the sharpened version — cheaper than answering <k> questions here.
62
+ [grill / answer the questions here]
63
+ ```
64
+
65
+ `answer the questions here` runs the ordinary Phase D challenge relay. Nothing is
66
+ withheld either way.
67
+
68
+ ## What this gate never does
69
+
70
+ - Never blocks. Both branches proceed on the user's word.
71
+ - Never re-scores an already-approved analysis, and never fires twice in one run
72
+ for the same input — if the user chose "analyze anyway", branch 2 is skipped.
73
+ - Never invents its own idea of thin. The definition is the spine's sentence,
74
+ stated once and registered as a contract token:
75
+ **analyzable ⇔ the input names (a) a subject the repo could plausibly contain
76
+ — a feature, a flow, a file, or a document — AND (b) at least one thing that
77
+ should be true when the work is done.** Nothing here may widen it.
@@ -0,0 +1,83 @@
1
+ # Template — Analyst Report (AUDIT mode)
2
+
3
+ Human-readable source of truth. You review and confirm this; the machine spec
4
+ is derived from it. Written to analyst_report/{analysis-name}/report.md.
5
+
6
+ ```markdown
7
+ # Analysis Report — {analysis-name}
8
+ mode: audit
9
+ depth: standard | deep
10
+ source_doc: <path or "pasted">
11
+ scope: <X — the requested scope only>
12
+ analyzed_at: DDMMYY HH:MM:SS
13
+ model: opus-5-high # the RESOLVED model of the agent that produced this
14
+ # (mini writes sonnet-5-high) — never copied from here
15
+ grounding: repo-read | repo-read+scouts # scouts only in deep mode
16
+
17
+ ## In-scope rows (X only)
18
+
19
+ Each row = one audit line that belongs to scope X, reconciled against code. Every
20
+ "Code reality" cell carries quote-anchored file:line evidence
21
+ (`file:line — "verbatim snippet"`, never paraphrased; a ref with no quote
22
+ auto-downgrades to UNVERIFIED), OR the row is tagged ASSUMPTION/UNVERIFIED (and
23
+ appears below as an open question). A row whose code reality is a claim of
24
+ ABSENCE ("no retry exists") instead carries `searched:` — the concrete
25
+ globs/greps run. In deep mode EVERY row is verified, not just the load-bearing
26
+ ones.
27
+
28
+ | # | Claim (result + notes) | Code reality | Evidence (file:line + quote / searched:) | Files/modules | Status | Resolution |
29
+ |---|------------------------|--------------|------------------------------------------|---------------|--------|------------|
30
+ | 1 | PASS — "UUID validated" | present | auth/uuid.x:8 — "validateUuid(id)" | auth/uuid.x | verified | — |
31
+ | 2 | PASS — notes: "consider adding retry" | no retry | searched: `retry`, `backoff` in svc/ — no hits | svc/x | diverged | user: retry OUT of scope |
32
+ | 3 | FAIL — "missing UUID check" | field renamed to ref_id | models/user.x:20 — "ref_id:" | models/x | diverged | user: update premise; check ref_id |
33
+
34
+ Status: verified | diverged | resolved
35
+ - verified: claim matches code (with evidence), nothing to challenge.
36
+ - diverged: claim vs code mismatch → was challenged.
37
+ - resolved: a diverged row the user decided on (Resolution column holds the call).
38
+
39
+ ## Assumptions & Open Questions
40
+ - UNVERIFIED (resolved): row 7 cited a "legacy flag" not found in code — user
41
+ confirmed it was removed; row dropped.
42
+
43
+ ## Additional context (do not build)
44
+ Anchored, non-actionable context pulled from an ADJACENT scope because an in-scope
45
+ row depends on it. Read for understanding; never a task. Each item names the
46
+ in-scope row it serves + why. Omit this whole section if none survived.
47
+ | Anchor (in-scope #) | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
48
+ |---------------------|-----------|------------|-----------------------|----------------------|
49
+ | Row 3 (ref_id check) | models (Y) | consumes-output | ref_id is set by the user loader before validation | models/user.x:20 |
50
+
51
+ ## Alternatives & risks (DEEP mode only — omit in standard)
52
+ - Row 3 fix: add ref_id check in the model (recommended) vs at the API edge —
53
+ edge version duplicates validation across 3 handlers.
54
+
55
+ ## Challenges raised & answers
56
+ - Row 2: notes suggested retry — user confirmed OUT of scope X.
57
+ - Row 3: audit says missing UUID check, code renamed field to ref_id — user
58
+ confirmed implement the check against ref_id.
59
+
60
+ ## Row numbering — `R#` is the SPEC's namespace, never the report's
61
+ Refer to report rows as **"row N"** only. Labelling a report row `R1` collides
62
+ with the spec's own `R#` ids, and the derivation lint compares the two id sets:
63
+ report-`R1` (a build item) vs spec-`R1` (audit row 1) either false-passes or
64
+ false-bounces. A row that legitimately duplicates another's `files[]` (e.g. a
65
+ doc's closing `Recommendation:` line) carries `yields_build_work: false` in the
66
+ spec rather than a prose qualifier.
67
+
68
+ ## Excluded scopes (recognized, not detailed)
69
+ - Recognized Y, Z in the source doc; excluded from this report per scope = X.
70
+
71
+ ## Handoff readiness (checklist — all five or handoff_ready is false)
72
+ The first three are checkable IN this report. The last two can only become true
73
+ AFTER this report is confirmed and frozen, so on a correct run they stay
74
+ unticked here and are satisfied in the spec — a reader of report.md alone must
75
+ not read that as a failed checklist.
76
+ - [ ] all BLOCKING challenges resolved (every diverged row decided)
77
+ - [ ] zero open UNVERIFIED on any in-scope row
78
+ - [ ] every row has status + evidence-or-resolution
79
+ - [ ] spec derived AFTER the user confirmed this report (satisfied
80
+ post-confirmation — see the spec)
81
+ - [ ] scope_closed: true written into the spec (satisfied post-confirmation —
82
+ see the spec)
83
+ ```
@@ -0,0 +1,63 @@
1
+ # Template — Analyst Report (PROSE mode)
2
+
3
+ Human-readable source of truth. Written to analyst_report/{analysis-name}/report.md.
4
+
5
+ ```markdown
6
+ # Analysis Report — {analysis-name}
7
+ mode: prose
8
+ depth: standard | deep
9
+ source_doc: <path or "pasted">
10
+ scope: <X — the requested scope only>
11
+ analyzed_at: DDMMYY HH:MM:SS
12
+ model: opus-5-high # the RESOLVED model of the agent that produced this
13
+ # (mini writes sonnet-5-high) — never copied from here
14
+ grounding: repo-read | repo-read+scouts # scouts only in deep mode
15
+
16
+ ## In-scope requirements (X only)
17
+
18
+ Every "Code reality" cell carries quote-anchored file:line evidence
19
+ (`file:line — "verbatim snippet"`, never paraphrased; a ref with no quote
20
+ auto-downgrades to UNVERIFIED), OR the row is tagged ASSUMPTION/UNVERIFIED (and
21
+ appears below as an open question). Absence claims (status missing) instead
22
+ carry `searched:` — the concrete globs/greps run.
23
+
24
+ | # | Requirement (from doc) | Code reality | Evidence (file:line + quote / searched:) | Files/modules | Status | Resolution |
25
+ |---|------------------------|--------------|------------------------------------------|---------------|--------|------------|
26
+ | 1 | "notifications must paginate" | list is unbounded | searched: `paginate`, `cursor`, `limit` in api/notifications — no hits | api/notifications/x | missing | implement pagination |
27
+ | 2 | "respect existing auth" | auth middleware present | auth/mw.x:10 — "app.use(requireAuth)" | auth/mw.x | exists | reuse, no change |
28
+
29
+ Status: exists | missing | conflict | resolved
30
+
31
+ ## Assumptions & Open Questions
32
+ Anything not grounded to code, plus every ambiguity — each was raised as a
33
+ recommended-option challenge and resolved (or is still open).
34
+ - ASSUMPTION (resolved): "paginate" = cursor-based (recommended) — user confirmed.
35
+ - UNVERIFIED (open): whether a rate-limit already exists — evidence not found.
36
+
37
+ ## Additional context (do not build)
38
+ Anchored, non-actionable context pulled from an ADJACENT scope because an in-scope
39
+ requirement depends on it. Read for understanding; never a task. Each item names
40
+ the in-scope requirement it serves + why. Omit this whole section if none survived.
41
+ | Anchor (in-scope #) | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
42
+ |---------------------|-----------|------------|-----------------------|----------------------|
43
+ | Req 1 (pagination) | listing (Y) | guards-invariant | shared list serializer caps a page at 100 | api/serializers/list.x:31 |
44
+
45
+ ## Alternatives & risks (DEEP mode only — omit in standard)
46
+ - Approach A (recommended): reuse existing cursor helper — low blast radius, 3 files.
47
+ - Approach B: new offset paginator — simpler read, breaks existing cursor clients.
48
+ - Risk: pagination touches the shared list serializer (dependents: 4 call sites).
49
+
50
+ ## Challenges raised & answers
51
+ - Req 3 appeared to require an admin panel (belongs to scope Z) — user confirmed
52
+ OUT of scope X.
53
+
54
+ ## Excluded scopes (recognized, not detailed)
55
+ - Recognized Y, Z; excluded per scope = X.
56
+
57
+ ## Handoff readiness (checklist — all five or handoff_ready is false)
58
+ - [ ] all BLOCKING challenges resolved
59
+ - [ ] zero open UNVERIFIED on any in-scope requirement
60
+ - [ ] every requirement has status + evidence-or-resolution
61
+ - [ ] spec derived AFTER the user confirmed this report
62
+ - [ ] scope_closed: true written into the spec
63
+ ```
@@ -0,0 +1,78 @@
1
+ # Template — Analyst Report (REQUIREMENT mode — no document)
2
+
3
+ Used when there is NO source document: the user's plain-language request IS the
4
+ requirement, reconciled against the existing code. Human-readable source of
5
+ truth. Written to `<analyzer_dir>/{analysis-name}/report.md` (config
6
+ `analyzer_dir` — the internal artifact dir); it is COPIED to
7
+ `<report_out_dir>/{analysis-name}/report.md` only on the report-only /
8
+ stop-here branch. The old "written to analyst_report/…" wording described the
9
+ copy target as if it were the write target.
10
+
11
+ ```markdown
12
+ # Analysis Report — {analysis-name}
13
+ mode: requirement
14
+ depth: standard | deep
15
+ source: "pasted request" # the user's own words, verbatim
16
+ scope: <X — the requested scope only>
17
+ analyzed_at: DDMMYY HH:MM:SS
18
+ model: opus-5-high # the RESOLVED model of the agent that produced this
19
+ # (mini writes sonnet-5-high) — never copied from here
20
+ grounding: repo-read | repo-read+scouts # scouts only in deep mode
21
+
22
+ ## Restated requirement (analyst's words)
23
+ One or two sentences restating the request — restating is what surfaces
24
+ misreadings. If the restatement rests on any assumption, tag it and ask.
25
+
26
+ ## In-scope requirement parts (X only)
27
+
28
+ Each part of the request, reconciled against code. Every "Code reality" cell
29
+ carries quote-anchored file:line evidence (`file:line — "verbatim snippet"`,
30
+ never paraphrased; a ref with no quote auto-downgrades to UNVERIFIED), OR the
31
+ part is tagged ASSUMPTION/UNVERIFIED (and appears below as an open question).
32
+ Absence claims (status missing/buildable) instead carry `searched:` — the
33
+ concrete globs/greps run. In deep mode EVERY part is verified.
34
+
35
+ | # | Requirement part (from request) | Code reality | Evidence (file:line + quote / searched:) | Files/modules | Status | Resolution |
36
+ |---|---------------------------------|--------------|------------------------------------------|---------------|--------|------------|
37
+ | 1 | "add CSV export to reports" | reports render HTML only | searched: `export*`, `csv`, `download` — no hits | web/reports/x | missing | new export path |
38
+ | 2 | "reuse current auth" | auth guard on report routes | web/reports/routes.x:12 — "requireAuth(" | web/reports/x | exists | reuse, no change |
39
+
40
+ Status: buildable | exists | conflict | resolved
41
+ - buildable: not present, but consistent with the code — safe to build.
42
+ - exists: already implemented — flag so the planner doesn't duplicate.
43
+ - conflict: request contradicts existing behavior → challenged.
44
+ - resolved: a challenged part the user decided on.
45
+
46
+ ## Assumptions & Open Questions
47
+ Every ambiguity in the request + anything not grounded to code. Each raised as a
48
+ recommended-option challenge and resolved (or still open).
49
+ - ASSUMPTION (resolved): "export" = download file (recommended) vs email — user
50
+ confirmed download.
51
+ - UNVERIFIED (open): whether a reports permission gate exists — evidence not found.
52
+
53
+ ## Additional context (do not build)
54
+ Anchored, non-actionable context pulled from an ADJACENT scope because an in-scope
55
+ request part depends on it. Read for understanding; never a task. Each item names
56
+ the in-scope part it serves + why. Omit this whole section if none survived.
57
+ | Anchor (in-scope #) | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
58
+ |---------------------|-----------|------------|-----------------------|----------------------|
59
+ | Part 1 (CSV export) | reporting (Y) | consumes-output | report query already paginates; export must page too | web/reports/query.x:44 |
60
+
61
+ ## Alternatives & risks (DEEP mode only — omit in standard)
62
+ - Approach A (recommended): stream CSV from the existing query — low blast radius.
63
+ - Approach B: precompute + cache — faster reads, adds a cache dependency.
64
+ - Risk: export reuses the report query (dependents: 2 schedulers).
65
+
66
+ ## Challenges raised & answers
67
+ - Part 3 ("admin-only export") looked like scope Z (admin) — user confirmed OUT.
68
+
69
+ ## Excluded scopes (recognized, not detailed)
70
+ - Recognized Y, Z implied by the request; excluded per scope = X.
71
+
72
+ ## Handoff readiness (checklist — all five or handoff_ready is false)
73
+ - [ ] all BLOCKING challenges resolved
74
+ - [ ] zero open UNVERIFIED on any in-scope part
75
+ - [ ] every part has status + evidence-or-resolution
76
+ - [ ] spec derived AFTER the user confirmed this report
77
+ - [ ] scope_closed: true written into the spec
78
+ ```
@@ -0,0 +1,77 @@
1
+ # Schema — Requirement Spec (DERIVED from the confirmed report)
2
+
3
+ Machine-oriented projection of report.md. The planner consumes THIS; the human
4
+ report travels alongside as the audit trail. Generated as the last Analyst step,
5
+ so it cannot drift from what the user approved. Written to
6
+ orc/analyzer/{analysis-name}/requirement-spec.md.
7
+
8
+ ```yaml
9
+ analysis_name: string
10
+ mode: audit | prose | requirement
11
+ depth: standard | deep
12
+ source_doc: string | null # null in requirement mode (no doc)
13
+ scope: string # X only
14
+ grounding: repo-read | repo-read+scouts | from-system-analyst
15
+ derived_from: report.md
16
+ created_at: timestamp
17
+ git_head: string | null # `git rev-parse HEAD` at analysis time (null if not a repo)
18
+ dirty: bool # uncommitted changes present at analysis time
19
+ # Staleness valve: at plan time, git_head ≠ current HEAD → the orchestrator
20
+ # re-runs the evidence spot-check (paths + quotes) before dispatching the
21
+ # planner; misses → offer re-analyze vs proceed-with-flagged. Same-session
22
+ # chains (HEAD matches) skip this — zero cost on the happy path.
23
+
24
+ requirements: # in-scope only; Y/Z absent by construction
25
+ - id: R1
26
+ statement: string # the requirement / audit-row / request-part, resolved
27
+ code_reality: string # what the code currently shows
28
+ evidence: [string] # quote-anchored refs backing code_reality:
29
+ # 'file:line — "verbatim snippet"' (≤1 line, quoted
30
+ # not paraphrased). A ref with no quote auto-downgrades
31
+ # to UNVERIFIED. Empty only if the item was an
32
+ # ASSUMPTION resolved by the user.
33
+ # status missing|buildable (claims of ABSENCE)
34
+ # instead carry 'searched: <the concrete
35
+ # globs/greps run>' — an absence claim with no
36
+ # searched: note is UNVERIFIED.
37
+ files: [string] # specific files/modules — grounds declared_files
38
+ status: exists | missing | conflict | verified | buildable | resolved
39
+ resolution: string|null # the user's decision if it was challenged
40
+
41
+ assumptions_resolved: # every ASSUMPTION/UNVERIFIED tag the user decided
42
+ - item: string
43
+ decision: string
44
+
45
+ alternatives: # deep mode only; [] in standard
46
+ - for: R# # which requirement this concerns
47
+ recommended: string
48
+ options: [string]
49
+ risk: string
50
+
51
+ context: # anchored, NON-ACTIONABLE adjacent-scope context; [] if none
52
+ - anchor: R# # the in-scope requirement this serves (REQUIRED — no anchor, no entry)
53
+ from_scope: string # the adjacent scope Y/Z it was pulled from
54
+ dependency: string # consumes-output | guards-invariant | shares-file | doc-references
55
+ note: string # the touchpoint (field/function/invariant) the build must respect
56
+ evidence: [string] # file:line — touchpoint-bounded, never all of the adjacent scope
57
+ # Read-for-understanding ONLY. The planner/executor honor these invariants but
58
+ # NEVER turn a context item into a task or a declared_files entry. Every item is
59
+ # anchored to an in-scope requirement or it was dropped (Phase E anchor-validation).
60
+
61
+ # Everything here is confirmed. The planner does NOT re-question scope/accuracy;
62
+ # it only turns these into tasks (breakdown/approach).
63
+ scope_closed: true
64
+ ```
65
+
66
+ The `files` arrays are the planner's grounding when chained from SA — it trusts
67
+ these and does not re-read the repo. The `evidence` refs let the planner (and a
68
+ later reviewer) spot-check any claim without re-deriving it.
69
+
70
+ ## Validity (the orchestrator refuses an invalid spec)
71
+
72
+ A spec is take-into-build valid only when: `scope_closed: true`, zero open
73
+ `UNVERIFIED` on any in-scope requirement, and every requirement carries status +
74
+ evidence-or-resolution. The orchestrator also lints DERIVATION on analyst
75
+ return: the R# id set, per-R# status, and context-anchor set must match
76
+ report.md exactly — a mismatch (or a context `anchor` that isn't an in-scope
77
+ R#) bounces the spec back to the analyst (one retry, then escalate).
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: orc-analyze-mini
3
+ description: >
4
+ Fast-lane System Analyst for ORC-MINI (Sonnet 5, high effort). Turns a
5
+ requirement — a document (PDF by path or pasted) OR a plain-language request —
6
+ into a scope-bounded, code-grounded requirement report + derived spec: bounds
7
+ the deliverable to exactly the asked scope (other scopes never become tasks),
8
+ maps each requirement to real files with quote-anchored file:line evidence —
9
+ or marks it an ASSUMPTION and turns it into a question — and challenges the
10
+ user with recommended options. Use for "/orc-analyze-mini", "quickly analyze
11
+ this doc", "fast doc analysis", "quick requirement check", "fast requirement
12
+ analysis", or when orc-mini meets a document or an ambiguous requirement.
13
+ Distinct from /orc-analyze: ALWAYS single-pass — NO deep mode, NO scouts —
14
+ trading depth for speed and tokens; switch to /orc-analyze (deep) when you
15
+ need a wider code sweep, verify-every-claim, or alternatives with trade-offs.
16
+ The orchestrator dispatches this to a subagent — it never analyzes itself.
17
+ ---
18
+
19
+ # ORC-ANALYZE-MINI
20
+
21
+ The fast variant of the System Analyst, dispatched by orc-mini as a Sonnet 5
22
+ high subagent. Produces the SAME artifacts and follows the SAME output contract
23
+ as the full analyst (`../orc-analyze/`) — read its schemas
24
+ (report-audit.md, report-prose.md, report-requirement.md, requirement-spec.md)
25
+ for the formats; this skill does not duplicate them.
26
+
27
+ **Worked example** (orient only — never execute from it): `examples/quick-analysis-mock.md`.
28
+
29
+ ## What's trimmed vs the full analyst
30
+
31
+ - **Shallower code grounding — but the FLOOR is the same.** The mini analyst
32
+ MUST still verify (a) every row that emits a `files[]` entry and (b) every
33
+ `status: exists|conflict` claim; it may skip exhaustively tracing peripheral
34
+ references. Trimmed depth never means a lower floor.
35
+ - **Fewer challenge rounds via triage, not omission.** Blocking issues (scope
36
+ changes, code-vs-doc conflicts, anything changing `files[]` or a status) are
37
+ asked one at a time; everything else is DEMOTED to the single batched
38
+ advisory round — recorded in the report with its recommended default, never
39
+ silently dropped.
40
+ - **No deep mode, no scouts.** Always single-pass.
41
+ - **Concrete escalation thresholds** (recommend the full `/orc-analyze`, Opus
42
+ 4.8 high, and let the user choose — the boundary is not self-assessed vibes):
43
+ source doc > ~10 pages, OR > 12 in-scope requirements, OR > 3 conflict rows,
44
+ OR audit mode with > 5 stale-premise rows.
45
+ - **Model:** Sonnet 5, high effort.
46
+
47
+ ## What's identical
48
+
49
+ - **Doc-optional intake:** auto-detect + confirm mode — prose / audit
50
+ (documents) or **requirement** (NO doc; the user's request is the source of
51
+ truth, reconciled against code).
52
+ - **Evidence-or-mark, quote-anchored:** every code claim / interpretation is
53
+ grounded with `file:line — "verbatim snippet"` (a ref with no quote
54
+ auto-downgrades to `UNVERIFIED`), OR tagged `ASSUMPTION`/`UNVERIFIED` and
55
+ turned into a question — never a silent guess. **Absence claims**
56
+ (missing/buildable) carry `searched:` — the concrete globs/greps run.
57
+ - **The read ladder:** locate → outline → range → full, escalating only as far as
58
+ the question needs (`../_shared/read-ladder.md`). Trimmed depth is not a lower
59
+ evidence floor — it is fewer wasted full reads reaching the same anchors.
60
+ - **Recommended-option challenges:** each challenge is a 2–3 option set with one
61
+ flagged recommended option + reason (blocking one at a time, advisory batched).
62
+ - Two perimeters: the deliverable stays scope X (Y/Z never become tasks), but
63
+ anchored, non-actionable adjacent context is gathered when an in-scope item
64
+ depends on it — touchpoint-bounded, self-read (no scouts), each item anchored to
65
+ the requirement it serves + labeled "do not build". Same **Additional context
66
+ (do not build)** section in report + spec. Unanchored context is dropped.
67
+ - Two artifacts, spec derived from the confirmed report, same folder
68
+ `orc/analyzer/{analysis-name}/` (internal; copied out only on report-only),
69
+ including the Evidence column and Assumptions & Open Questions section. The
70
+ spec is stamped with `git_head` + `dirty` for plan-time staleness detection.
71
+ - Same branch: report-only, or take into build (hand both files to orc-mini,
72
+ which continues with the mini planner) — orc-mini runs the same evidence
73
+ spot-check + derivation lint gates as the full lane before building.
74
+
75
+ ## Behavior trace (PERMANENT — every ORC entry point traces; always on)
76
+
77
+ Same rule as the full analyst: standalone `/orc-analyze-mini` resolves
78
+ `log_dir` at start and follows
79
+ `../orc/references/trace-protocol.md` — write `log_dir/.current` =
80
+ `run-analyze-<slug>-<DDMMYY>-<HHMMSS>.txt` and `touch the trace file` of that
81
+ name in the SAME step, before the first dispatch; collect
82
+ `PHASE`/`DISPATCH`/`VERIFY`/`GATE`/`FINISH` events with their REAL timestamps
83
+ plus `decisions` (the WHY) and dispatch the trace writer ONCE at run end (the
84
+ single-dispatch-lane packet), then delete `.current` (the hook bootstraps
85
+ `.current` + the skeleton on the first dispatch regardless). Inside an orc-mini
86
+ run, the mini orchestrator's trace already covers this — never open a second one.
87
+
88
+ ## Workflow checkpoint (gate before deriving the spec)
89
+
90
+ Confirm the report with the user — scope bounded, blocking challenges resolved —
91
+ BEFORE deriving requirement-spec.md. The spec is derived from the CONFIRMED report,
92
+ never from an unconfirmed draft.
93
+
94
+ ## Return contract (inlined — do not reconstruct from the full analyst)
95
+
96
+ Write `report.md` (mode template) + derived `requirement-spec.md` into
97
+ `orc/analyzer/{name}/`, including the Evidence column, the Assumptions & Open
98
+ Questions section, and the **Additional context (do not build)** section when any
99
+ survived. Return exactly:
100
+
101
+ - `report_path`, `spec_path` — the two artifacts.
102
+ - `mode` — prose | audit | requirement.
103
+ - `scope` — the confirmed scope-X one-liner.
104
+ - `handoff_ready` — a CHECKLIST, not a feeling: true only when all blocking
105
+ challenges are resolved, zero open `UNVERIFIED` on in-scope items, every
106
+ requirement has status + evidence-or-resolution, the spec was derived after
107
+ the user confirmed the report, and `scope_closed: true` is written.
108
+ - `actual_model` — quoted verbatim from your system prompt's "The exact model ID
109
+ is …" line (`unknown` if absent, never guessed).
110
+ - `actual_effort` — `$CLAUDE_EFFORT`.
111
+
112
+ Never build or spawn.
@@ -0,0 +1,31 @@
1
+ # Example — Annotated Fast-Lane Analysis (dry run)
2
+
3
+ A: = mini analyst (Sonnet 5, high) · U: = user. Nothing real. Same artifacts and
4
+ contract as /orc-analyze, ALWAYS single-pass — NO deep mode, NO scouts. The
5
+ orchestrator dispatches this — it never analyzes itself.
6
+
7
+ U: /orc-analyze-mini add a "resend invite" action — no doc, just this request
8
+
9
+ ## Mode + scope (doc-optional)
10
+ A: No document → REQUIREMENT mode (your request is the source of truth, reconciled
11
+ against code). Scope X = resend-invite. Nothing else in play.
12
+
13
+ ## Ground the CLEAR links + HIGH-SIGNAL divergences (evidence-or-mark)
14
+ A: Maps to invites/service.py (create path at :40) + invites/routes.py (:12).
15
+ The obvious reuse: resend = re-issue the existing token, not mint a new invite.
16
+ ⚠ ASSUMPTION: resend should NOT reset the 72h expiry → turning into a question
17
+ (couldn't confirm from code alone). Shallower grounding: I confirm the obvious
18
+ file map, not every downstream reference.
19
+
20
+ ## Challenge (recommended options, one at a time)
21
+ A: On expiry: (a) keep original expiry — RECOMMENDED (least surprise; matches how
22
+ create issues once). (b) refresh to a new 72h window on resend.
23
+ U: (a)
24
+
25
+ ## Artifacts + branch (+ escalation door)
26
+ A: Writes orc/analyzer/resend-invite/report.md + requirement-spec.md
27
+ (Evidence column + Assumptions & Open Questions). handoff_ready: true.
28
+ A: This stayed simple, so single-pass was enough. If it had needed a wider sweep or
29
+ verify-every-claim, I'd have flagged that it may warrant /orc-analyze (deep).
30
+ Take into build?
31
+ U: take into build → hands the spec to orc-mini, which continues with the mini planner.