@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,177 @@
1
+ /* panels/flow.css — orc ui
2
+ The compiled DIY pipeline stepper, presets, and the staged-edit bar.
3
+
4
+ The <link> ORDER in app.html is the cascade order, and the numeric
5
+ prefix is that order. No @import: it would carry no session token and
6
+ 401. */
7
+
8
+ /* --- Flow stepper -------------------------------------------------------- */
9
+
10
+ /* The compiled DIY pipeline, left to right. The sweep LOOPS (v0.44.0): a single
11
+ pulse travels the rail every --sweep, and the rail is at rest for the ~88% of
12
+ the cycle in between. The stagger is per-element via --d, so the pulse moves
13
+ in stitch order instead of the whole rail blinking at once.
14
+
15
+ It runs forever because the rail is the one thing on this panel that says
16
+ "these phases happen in this order", and a one-shot said it before the card
17
+ had finished arriving. The long idle stretch is what keeps a permanent
18
+ animation from behaving like a permanent distraction.
19
+
20
+ The ENTRANCE and the PULSE are separate animations on purpose: one animates
21
+ geometry (once, `backwards`, so hover keeps its transform afterwards), the
22
+ other animates colour (forever). Merging them is how the old rule ended up
23
+ with a filled `transform: none` sitting on top of the hover lift. */
24
+ .stepper { display: flex; align-items: stretch; gap: 0; padding: var(--sp-2) 2px var(--sp-3); min-width: min-content; --sweep: 4200ms; }
25
+ .step {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: 3px;
29
+ align-items: flex-start;
30
+ padding: var(--sp-2) var(--sp-3);
31
+ min-width: 84px;
32
+ border: 1px solid var(--line);
33
+ border-radius: var(--radius-sm);
34
+ background: var(--surface-2);
35
+ font: inherit;
36
+ text-align: left;
37
+ white-space: nowrap;
38
+ animation: step-in var(--dur-slow) var(--ease) var(--d, 0ms) backwards;
39
+ transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease),
40
+ transform var(--dur-fast) var(--ease);
41
+ /* The pulse lives on an overlay, not on the step itself. A running animation
42
+ wins over a transition for the SAME property, so pulsing `.step`'s own
43
+ border-color and background forever would have silently killed the hover
44
+ state on every step — a permanent animation must not cost an interaction.
45
+ `isolation: isolate` scopes the overlay's negative z-index to this box, so
46
+ it paints above the step's background and below its text. */
47
+ position: relative;
48
+ isolation: isolate;
49
+ }
50
+ .step::before {
51
+ content: "";
52
+ position: absolute;
53
+ inset: -1px;
54
+ z-index: -1;
55
+ border: 1px solid transparent;
56
+ border-radius: var(--radius-sm);
57
+ pointer-events: none;
58
+ animation: step-pulse var(--sweep) linear var(--d, 0ms) infinite;
59
+ }
60
+ button.step { cursor: pointer; }
61
+ button.step:hover { border-color: var(--accent-dim); background: var(--surface-3); transform: translateY(-2px); }
62
+ button.step:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
63
+ .step-name { font-family: var(--mono); font-size: 13px; color: var(--text); }
64
+ .step-note { font-size: 11px; color: var(--text-faint); max-width: 132px; overflow: hidden; text-overflow: ellipsis; }
65
+
66
+ /* An OFF phase keeps its slot and turns RED. It is not a dimmed absence — it is
67
+ a phase this flow deliberately does not run, and that is worth seeing. */
68
+ .step-off { border-color: var(--bad); background: var(--bad-wash); }
69
+ .step-off::before { animation-name: step-pulse-off; }
70
+ .step-off .step-name { color: var(--bad); text-decoration: line-through; text-decoration-color: rgba(240, 83, 63, .55); }
71
+ .step-off .step-note { color: var(--bad); }
72
+ button.step-off:hover { border-color: var(--bad); background: rgba(240, 83, 63, .2); }
73
+
74
+ /* Geometry only — colour belongs to the pulse. */
75
+ @keyframes step-in {
76
+ from { opacity: 0; transform: translateX(-10px); }
77
+ to { opacity: 1; transform: none; }
78
+ }
79
+ /* Lit for ~4% of the cycle, fully transparent for the rest of it — the overlay
80
+ only ever ADDS colour, so at rest the step is exactly its own styling and
81
+ hover works normally. An OFF phase pulses in its own red, so the loop never
82
+ quietly recolours it back to "running". */
83
+ @keyframes step-pulse {
84
+ 0%, 12%, 100% { border-color: transparent; background: transparent; box-shadow: none; }
85
+ 4% { border-color: var(--accent); background: var(--accent-wash); box-shadow: 0 0 0 3px var(--accent-wash); }
86
+ }
87
+ @keyframes step-pulse-off {
88
+ 0%, 12%, 100% { border-color: transparent; background: transparent; box-shadow: none; }
89
+ 4% { border-color: var(--bad); background: rgba(240, 83, 63, .22); box-shadow: 0 0 0 3px var(--bad-wash); }
90
+ }
91
+
92
+ /* The connector. The base hairline is always there; the accent segment travels
93
+ across it once per cycle, left to right, then fades — that IS the "in this
94
+ order", and it is what carries the pulse from one phase to the next. */
95
+ .step-link { position: relative; align-self: center; width: 22px; height: 2px; background: var(--line); flex: none; }
96
+ .step-flow {
97
+ position: absolute;
98
+ inset: 0;
99
+ background: var(--accent);
100
+ transform-origin: left center;
101
+ transform: scaleX(0);
102
+ animation: step-flow var(--sweep) linear var(--d, 0ms) infinite;
103
+ }
104
+ @keyframes step-flow {
105
+ 0% { transform: scaleX(0); opacity: 1; }
106
+ 4% { transform: scaleX(1); opacity: 1; }
107
+ 9% { transform: scaleX(1); opacity: 0; }
108
+ 9.01%, 100% { transform: scaleX(0); opacity: 0; }
109
+ }
110
+
111
+ /* A shipped starting shape for the flow. Same two-column row as `.action` on
112
+ Maintenance — it is the same kind of thing: a named CLI invocation with its
113
+ command visible before you press it. */
114
+ .preset-row {
115
+ display: grid;
116
+ grid-template-columns: minmax(0, 1fr) auto;
117
+ gap: var(--sp-4);
118
+ align-items: center;
119
+ padding: var(--sp-3);
120
+ border: 1px solid var(--line-soft);
121
+ border-radius: var(--radius-sm);
122
+ background: var(--surface-2);
123
+ transition: border-color var(--dur-fast) var(--ease);
124
+ }
125
+ .preset-row:hover { border-color: var(--accent-dim); }
126
+ .preset-head { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; }
127
+ /* The shape you are already on. It keeps its row (removing it would make "you
128
+ are on lean" and "lean does not exist" look the same) and loses its button. */
129
+ .preset-active { border-color: var(--ok); background: var(--ok-wash); }
130
+ .preset-active:hover { border-color: var(--ok); }
131
+
132
+ /* --- Staged edits -------------------------------------------------------- */
133
+
134
+ /* A row with an unwritten change. The marker is on the LEFT edge and the label
135
+ is beside the key, because the control itself already shows the new value —
136
+ what is missing without this is "and it has not been written yet". */
137
+ .setting.staged {
138
+ border-left: 2px solid var(--accent);
139
+ padding-left: calc(var(--sp-3) - 2px);
140
+ background: var(--accent-wash);
141
+ }
142
+
143
+ .edit-bar {
144
+ display: flex;
145
+ align-items: center;
146
+ gap: var(--sp-4);
147
+ flex-wrap: wrap;
148
+ padding: var(--sp-3) var(--sp-4);
149
+ border: 1px solid var(--line);
150
+ border-radius: var(--radius);
151
+ background: var(--surface-2);
152
+ transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
153
+ }
154
+ /* It follows you ONLY while there is something to lose. A permanently sticky
155
+ bar is a permanently smaller viewport; a bar you have to scroll to find is an
156
+ Apply that gets forgotten. Dirty is the one state where both matter. */
157
+ .edit-bar-dirty {
158
+ position: sticky;
159
+ bottom: var(--sp-4);
160
+ z-index: 6;
161
+ border-color: var(--accent-dim);
162
+ background: var(--surface-3);
163
+ box-shadow: var(--shadow);
164
+ }
165
+ .edit-summary { flex: 1 1 260px; min-width: 0; }
166
+ .edit-actions { display: flex; gap: var(--sp-2); flex: none; margin-left: auto; }
167
+ .edit-list { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
168
+ .edit-chip {
169
+ font-family: var(--mono);
170
+ font-size: 11px;
171
+ color: var(--text-dim);
172
+ background: var(--surface);
173
+ border: 1px solid var(--line);
174
+ border-radius: 100px;
175
+ padding: 1px 9px;
176
+ }
177
+ .edit-key { color: var(--accent); }
@@ -0,0 +1,67 @@
1
+ /* panels/handoff.css — orc ui
2
+ The undo box (shown BEFORE a write) and .lane-cmd — the visual form of
3
+ "a PAID action is a copy-able command, never a button".
4
+
5
+ The <link> ORDER in app.html is the cascade order, and the numeric
6
+ prefix is that order. No @import: it would carry no session token and
7
+ 401. */
8
+
9
+ .lane-cmd {
10
+ border: 1px dashed var(--border);
11
+ border-radius: var(--radius-sm);
12
+ padding: var(--sp-3);
13
+ }
14
+ .lane-cmd-head {
15
+ font-size: 11.5px;
16
+ text-transform: uppercase;
17
+ letter-spacing: .07em;
18
+ color: var(--text-dim);
19
+ margin-bottom: var(--sp-2);
20
+ }
21
+ .cmd {
22
+ font-family: var(--mono);
23
+ font-size: 12.5px;
24
+ background: var(--surface-2);
25
+ border-radius: var(--radius-sm);
26
+ padding: var(--sp-2) var(--sp-3);
27
+ margin: 0;
28
+ overflow-x: auto;
29
+ white-space: pre;
30
+ /* Transparent track, both syntaxes - neither falls back to the other. */
31
+ scrollbar-width: thin;
32
+ scrollbar-color: var(--border) transparent;
33
+ }
34
+ .cmd::-webkit-scrollbar { height: 8px; }
35
+ .cmd::-webkit-scrollbar-track { background: transparent; }
36
+ .cmd::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
37
+
38
+ /* The undo command, before the write. Framed in the warning colour because the
39
+ moment it matters is a moment somebody is worried. */
40
+ .undo-box {
41
+ border: 1px solid var(--warn);
42
+ border-radius: var(--radius-sm);
43
+ padding: var(--sp-3);
44
+ background: var(--warn-wash);
45
+ }
46
+ .undo-head { font-size: 12px; color: var(--warn); margin-bottom: var(--sp-2); font-weight: 600; }
47
+
48
+ .free-box {
49
+ border: 1px solid var(--ok);
50
+ background: var(--ok-wash);
51
+ border-radius: var(--radius-sm);
52
+ padding: var(--sp-3);
53
+ }
54
+ .free-head { font-size: 12px; color: var(--ok); font-weight: 600; margin-bottom: var(--sp-2); }
55
+ .free-row { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; font-size: 12.5px; }
56
+ .free-row + .free-row { margin-top: var(--sp-2); }
57
+
58
+ .after-box {
59
+ border-left: 2px solid var(--warn);
60
+ padding-left: var(--sp-3);
61
+ }
62
+ .after-head {
63
+ font-size: 11.5px; text-transform: uppercase; letter-spacing: .07em;
64
+ color: var(--text-dim); margin-bottom: var(--sp-2);
65
+ }
66
+ .after-row { display: flex; align-items: center; gap: var(--sp-2); flex-wrap: wrap; font-size: 12.5px; }
67
+ .after-row + .after-row { margin-top: var(--sp-2); }
@@ -0,0 +1,86 @@
1
+ /* panels/knowledge.css — the Knowledge panel (v0.49.1).
2
+
3
+ Five tabs' worth of surface. Loaded by app.html in the order its <link> sits
4
+ in that manifest, and for CSS the load order IS the cascade order — which is
5
+ why 06-responsive and 04-motion come after every panel sheet.
6
+
7
+ NO COLOUR TOKEN IS DEFINED HERE. Every one of them is declared once, on bare
8
+ :root, in 00-tokens.css. */
9
+
10
+ /* --- the header strip (v0.49.1) ------------------------------------------ */
11
+ /* Above the tabs, on every one of them: what ORC knows about this repo, in one
12
+ line. A `—` means the CLI could not compute it, and that is an ANSWER. */
13
+ .kn-strip {
14
+ display: flex;
15
+ flex-wrap: wrap;
16
+ gap: var(--sp-4);
17
+ padding: var(--sp-3);
18
+ border: 1px solid var(--line-soft);
19
+ border-radius: var(--radius-sm);
20
+ margin-bottom: var(--sp-3);
21
+ }
22
+ .kn-strip-item { display: grid; gap: 2px; }
23
+ .kn-strip-value { font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
24
+ .kn-strip-label { font-size: 11px; color: var(--text-faint); text-transform: uppercase; letter-spacing: .04em; }
25
+
26
+ /* --- the per-doc tier bar + the coverage bar ------------------------------ */
27
+ .kn-tierbar {
28
+ display: flex;
29
+ height: 8px;
30
+ min-width: 120px;
31
+ flex: 1;
32
+ border-radius: 4px;
33
+ overflow: hidden;
34
+ background: var(--line-soft);
35
+ }
36
+ .kn-tierbar-seg { width: var(--w); }
37
+ .kn-tier-ok { background: var(--ok); }
38
+ .kn-tier-warn { background: var(--warn); }
39
+ .kn-tier-bad { background: var(--bad); }
40
+ .kn-tier-idle { background: var(--idle); }
41
+
42
+ .kn-coverage { display: flex; align-items: baseline; gap: var(--sp-3); margin-bottom: var(--sp-2); }
43
+ .kn-coverage-num { font-size: 34px; font-weight: 600; font-variant-numeric: tabular-nums; }
44
+
45
+ /* --- rows that expand IN PLACE ------------------------------------------- */
46
+ /* One at a time, detail fetched on first open, and NO detail box below the
47
+ table — the Runs-row rule. */
48
+ .kn-doc-row { cursor: pointer; }
49
+ .kn-doc-row:hover td { background: var(--surface-2); }
50
+ .kn-doc-row.open td { background: var(--surface-2); }
51
+ .kn-doc-detail > td { background: var(--surface-2); padding: var(--sp-3); }
52
+
53
+ /* --- revealed prose ------------------------------------------------------- */
54
+ /* Rendered as DOM by renderMd, never as HTML. It scrolls INSIDE itself; the page
55
+ body never scrolls horizontally. */
56
+ .kn-body {
57
+ margin-top: var(--sp-2);
58
+ max-height: 420px;
59
+ overflow: auto;
60
+ padding: var(--sp-3);
61
+ border: 1px solid var(--line-soft);
62
+ border-radius: var(--radius-sm);
63
+ scrollbar-width: thin;
64
+ scrollbar-color: var(--line) transparent;
65
+ }
66
+ .kn-body::-webkit-scrollbar { width: 8px; height: 8px; }
67
+ .kn-body::-webkit-scrollbar-track { background: transparent; }
68
+ .kn-body::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
69
+
70
+ /* --- patterns ------------------------------------------------------------- */
71
+ .kn-pattern {
72
+ border: 1px solid var(--line-soft);
73
+ border-radius: var(--radius-sm);
74
+ padding: var(--sp-3);
75
+ margin-top: var(--sp-2);
76
+ display: grid;
77
+ gap: var(--sp-2);
78
+ }
79
+ /* The most decision-shaped thing in a pattern file, and until now invisible
80
+ outside it. */
81
+ .kn-conflicts { border-left: 3px solid var(--warn); padding-left: var(--sp-3); display: grid; gap: 4px; }
82
+ .kn-conflicts-head { font-weight: 600; font-size: 13px; }
83
+
84
+ /* --- preview-then-apply --------------------------------------------------- */
85
+ .kn-prune { margin-top: var(--sp-3); display: grid; gap: var(--sp-2); }
86
+ .kn-prune-head { font-weight: 600; font-size: 13px; }
@@ -0,0 +1,154 @@
1
+ /* panels/learn.css — orc ui
2
+ The contents rail plus one section.
3
+
4
+ The <link> ORDER in app.html is the cascade order, and the numeric
5
+ prefix is that order. No @import: it would carry no session token and
6
+ 401. */
7
+
8
+ /* --- Learn --------------------------------------------------------------- */
9
+ /* A contents rail plus ONE section, rather than every section stacked open.
10
+ The walkthrough is ordered and you are at a position in it — the layout says
11
+ so, which is what the wall of eight boxes could not. */
12
+
13
+ .learn {
14
+ display: grid;
15
+ grid-template-columns: 244px minmax(0, 1fr);
16
+ gap: var(--sp-4);
17
+ align-items: start;
18
+ }
19
+
20
+ .learn-side {
21
+ position: sticky;
22
+ top: var(--sp-3);
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: var(--sp-2);
26
+ padding: var(--sp-3);
27
+ background: var(--surface);
28
+ border: 1px solid var(--line);
29
+ border-radius: var(--radius);
30
+ max-height: calc(100vh - var(--sp-6));
31
+ }
32
+ .learn-side-head {
33
+ font-size: 11px;
34
+ text-transform: uppercase;
35
+ letter-spacing: .07em;
36
+ color: var(--text-faint);
37
+ padding: 0 var(--sp-2);
38
+ }
39
+ .learn-side .text-input { font-family: var(--font); font-size: 12.5px; padding: 5px 9px; }
40
+ .learn-nav { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; min-height: 0; }
41
+ .learn-nav-item {
42
+ display: grid;
43
+ grid-template-columns: 20px minmax(0, 1fr);
44
+ align-items: center;
45
+ gap: var(--sp-2);
46
+ padding: 6px var(--sp-2);
47
+ border: 0;
48
+ border-radius: var(--radius-sm);
49
+ background: transparent;
50
+ color: var(--text-dim);
51
+ text-align: left;
52
+ font: inherit;
53
+ font-size: 12.5px;
54
+ cursor: pointer;
55
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
56
+ }
57
+ .learn-nav-item:hover { background: var(--surface-2); color: var(--text); }
58
+ .learn-nav-item[aria-current="true"] {
59
+ background: var(--accent-wash);
60
+ color: var(--text);
61
+ box-shadow: inset 2px 0 0 var(--accent);
62
+ }
63
+ .learn-num {
64
+ display: grid;
65
+ place-items: center;
66
+ width: 18px;
67
+ height: 18px;
68
+ border-radius: 50%;
69
+ border: 1px solid var(--line);
70
+ font-family: var(--mono);
71
+ font-size: 10px;
72
+ color: var(--text-faint);
73
+ transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease),
74
+ border-color var(--dur-fast) var(--ease);
75
+ }
76
+ .learn-nav-item[aria-current="true"] .learn-num { background: var(--accent); border-color: var(--accent); color: #fff; }
77
+ /* Sections already behind you read as done, so the rail doubles as progress. */
78
+ .learn-seen .learn-num { border-color: var(--ok); color: var(--ok); }
79
+ .learn-nav-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
80
+ .learn-result { font-size: 11.5px; color: var(--text-faint); padding: 0 var(--sp-2); }
81
+
82
+ .learn-pane {
83
+ background: var(--surface);
84
+ border: 1px solid var(--line);
85
+ border-radius: var(--radius);
86
+ padding: 0 var(--sp-5) var(--sp-4);
87
+ overflow: hidden;
88
+ min-width: 0;
89
+ }
90
+ .learn-progress { height: 3px; background: var(--surface-3); margin: 0 calc(var(--sp-5) * -1); }
91
+ .learn-progress-fill {
92
+ height: 100%;
93
+ width: 0;
94
+ background: var(--accent);
95
+ transition: width var(--dur-slow) var(--ease);
96
+ }
97
+ .learn-meta {
98
+ font-size: 11px;
99
+ text-transform: uppercase;
100
+ letter-spacing: .07em;
101
+ color: var(--text-faint);
102
+ margin-top: var(--sp-4);
103
+ font-variant-numeric: tabular-nums;
104
+ }
105
+ .learn-title { font-size: 19px; font-weight: 600; letter-spacing: -.01em; margin-top: 4px; }
106
+
107
+ .learn-article { margin-top: var(--sp-4); animation: learn-in var(--dur) var(--ease); }
108
+ @keyframes learn-in {
109
+ from { opacity: 0; transform: translateY(8px); }
110
+ to { opacity: 1; transform: none; }
111
+ }
112
+ .learn-para { font-size: 13.5px; line-height: 1.7; color: var(--text-dim); }
113
+ .learn-para + .learn-para { margin-top: var(--sp-3); }
114
+ .learn-bullet {
115
+ font-size: 13px;
116
+ line-height: 1.6;
117
+ color: var(--text-dim);
118
+ padding-left: var(--sp-4);
119
+ position: relative;
120
+ margin-top: var(--sp-2);
121
+ }
122
+ .learn-bullet::before { content: "•"; position: absolute; left: var(--sp-2); color: var(--accent); }
123
+ /* A pipeline line is a diagram, not a sentence. */
124
+ .learn-flowline {
125
+ font-family: var(--mono);
126
+ font-size: 12.5px;
127
+ color: var(--text);
128
+ background: var(--surface-2);
129
+ border: 1px solid var(--line-soft);
130
+ border-radius: var(--radius-sm);
131
+ padding: var(--sp-3);
132
+ margin-top: var(--sp-3);
133
+ overflow-x: auto;
134
+ white-space: pre;
135
+ }
136
+ /* An indented command line becomes a click-to-copy chip. */
137
+ .learn-cmd-row { display: flex; align-items: baseline; gap: var(--sp-3); margin-top: 6px; flex-wrap: wrap; }
138
+ .learn-cmd {
139
+ font-family: var(--mono);
140
+ font-size: 12.5px;
141
+ color: var(--accent);
142
+ background: var(--accent-wash);
143
+ border: 1px solid transparent;
144
+ border-radius: var(--radius-sm);
145
+ padding: 2px 9px;
146
+ cursor: pointer;
147
+ transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
148
+ }
149
+ .learn-cmd:hover { border-color: var(--accent); background: var(--surface-3); }
150
+ .learn-cmd-what { font-size: 12.5px; color: var(--text-dim); }
151
+ .learn-hint { margin-top: var(--sp-4); }
152
+
153
+ .learn-foot { display: flex; gap: var(--sp-2); align-items: center; margin-top: var(--sp-5); flex-wrap: wrap; }
154
+ .learn-foot .btn:last-child { margin-left: auto; }
@@ -0,0 +1,55 @@
1
+ /* panels/maintenance.css — orc ui
2
+ The preview/apply job surface.
3
+
4
+ The <link> ORDER in app.html is the cascade order, and the numeric
5
+ prefix is that order. No @import: it would carry no session token and
6
+ 401. */
7
+
8
+ /* --- Maintenance --------------------------------------------------------- */
9
+
10
+ .action {
11
+ display: grid;
12
+ grid-template-columns: minmax(0, 1fr) auto;
13
+ gap: var(--sp-4);
14
+ align-items: center;
15
+ padding: var(--sp-4);
16
+ background: var(--surface);
17
+ border: 1px solid var(--line);
18
+ border-radius: var(--radius);
19
+ }
20
+ .action-cmd {
21
+ font-family: var(--mono);
22
+ font-size: 12px;
23
+ color: var(--accent);
24
+ background: var(--accent-wash);
25
+ border-radius: var(--radius-sm);
26
+ padding: 2px 8px;
27
+ display: inline-block;
28
+ margin-top: 6px;
29
+ }
30
+ .file-list {
31
+ max-height: 240px;
32
+ overflow-y: auto;
33
+ background: var(--surface-2);
34
+ border: 1px solid var(--line-soft);
35
+ border-radius: var(--radius-sm);
36
+ padding: var(--sp-3);
37
+ font-family: var(--mono);
38
+ font-size: 12px;
39
+ color: var(--text-dim);
40
+ }
41
+ .file-list div { padding: 1px 0; }
42
+
43
+ .job-output {
44
+ max-height: 320px;
45
+ overflow-y: auto;
46
+ background: #000;
47
+ color: #d7dae0;
48
+ border-radius: var(--radius-sm);
49
+ padding: var(--sp-3);
50
+ font-family: var(--mono);
51
+ font-size: 12px;
52
+ white-space: pre-wrap;
53
+ word-break: break-word;
54
+ }
55
+ :root[data-theme="light"] .job-output { background: #12151a; }