@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.
- package/CHANGELOG.md +2017 -0
- package/README-id.md +521 -0
- package/README.md +485 -0
- package/bin/build-agents.js +86 -0
- package/bin/cli.js +29050 -0
- package/bin/mockrun-catalog.js +267 -0
- package/bin/onboarding-content.js +172 -0
- package/bin/pricing.json +200 -0
- package/bin/providers.json +437 -0
- package/bin/ui.js +95 -0
- package/bin/verify-contracts.js +3277 -0
- package/bin/verify-package.js +498 -0
- package/bin/webui/api.js +1163 -0
- package/bin/webui/app.html +198 -0
- package/bin/webui/css/00-tokens.css +92 -0
- package/bin/webui/css/01-base.css +42 -0
- package/bin/webui/css/02-shell.css +103 -0
- package/bin/webui/css/03-components.css +462 -0
- package/bin/webui/css/04-motion.css +91 -0
- package/bin/webui/css/05-tour.css +100 -0
- package/bin/webui/css/06-responsive.css +108 -0
- package/bin/webui/css/panels/boundary.css +26 -0
- package/bin/webui/css/panels/challenge.css +151 -0
- package/bin/webui/css/panels/crosslink.css +194 -0
- package/bin/webui/css/panels/docs.css +254 -0
- package/bin/webui/css/panels/experiment.css +23 -0
- package/bin/webui/css/panels/extra.css +536 -0
- package/bin/webui/css/panels/flow.css +177 -0
- package/bin/webui/css/panels/handoff.css +67 -0
- package/bin/webui/css/panels/knowledge.css +86 -0
- package/bin/webui/css/panels/learn.css +154 -0
- package/bin/webui/css/panels/maintenance.css +55 -0
- package/bin/webui/css/panels/mockrun.css +268 -0
- package/bin/webui/css/panels/overview.css +100 -0
- package/bin/webui/css/panels/pact.css +43 -0
- package/bin/webui/css/panels/runs.css +105 -0
- package/bin/webui/css/panels/settings.css +227 -0
- package/bin/webui/css/panels/stats.css +87 -0
- package/bin/webui/fixtures/boundary.js +92 -0
- package/bin/webui/fixtures/challenge.js +825 -0
- package/bin/webui/fixtures/crosslink.js +31 -0
- package/bin/webui/fixtures/docs.js +982 -0
- package/bin/webui/fixtures/extra.js +1934 -0
- package/bin/webui/fixtures/flow.js +81 -0
- package/bin/webui/fixtures/handoff.js +35 -0
- package/bin/webui/fixtures/index.js +486 -0
- package/bin/webui/fixtures/knowledge.js +291 -0
- package/bin/webui/fixtures/maintenance.js +42 -0
- package/bin/webui/fixtures/mockrun.js +36 -0
- package/bin/webui/fixtures/pact.js +111 -0
- package/bin/webui/fixtures/runs.js +109 -0
- package/bin/webui/fixtures/settings.js +78 -0
- package/bin/webui/fixtures/shell.js +48 -0
- package/bin/webui/fixtures/stats.js +104 -0
- package/bin/webui/i18n/TERMS.md +134 -0
- package/bin/webui/i18n/en/banner.json +29 -0
- package/bin/webui/i18n/en/boundary.json +20 -0
- package/bin/webui/i18n/en/challenge.json +106 -0
- package/bin/webui/i18n/en/common.json +69 -0
- package/bin/webui/i18n/en/crosslink.json +69 -0
- package/bin/webui/i18n/en/docs.json +175 -0
- package/bin/webui/i18n/en/experiment.json +17 -0
- package/bin/webui/i18n/en/extra.json +313 -0
- package/bin/webui/i18n/en/flow.json +30 -0
- package/bin/webui/i18n/en/handoff.json +37 -0
- package/bin/webui/i18n/en/knowledge.json +141 -0
- package/bin/webui/i18n/en/learn.json +16 -0
- package/bin/webui/i18n/en/maintenance.json +52 -0
- package/bin/webui/i18n/en/mockrun.json +19 -0
- package/bin/webui/i18n/en/nav.json +19 -0
- package/bin/webui/i18n/en/overview.json +89 -0
- package/bin/webui/i18n/en/pact.json +36 -0
- package/bin/webui/i18n/en/runs.json +51 -0
- package/bin/webui/i18n/en/settings.json +49 -0
- package/bin/webui/i18n/en/stats.json +69 -0
- package/bin/webui/i18n/en/tour.json +33 -0
- package/bin/webui/i18n/id/banner.json +29 -0
- package/bin/webui/i18n/id/boundary.json +20 -0
- package/bin/webui/i18n/id/challenge.json +106 -0
- package/bin/webui/i18n/id/common.json +70 -0
- package/bin/webui/i18n/id/crosslink.json +69 -0
- package/bin/webui/i18n/id/docs.json +175 -0
- package/bin/webui/i18n/id/experiment.json +17 -0
- package/bin/webui/i18n/id/extra.json +313 -0
- package/bin/webui/i18n/id/flow.json +30 -0
- package/bin/webui/i18n/id/handoff.json +37 -0
- package/bin/webui/i18n/id/knowledge.json +141 -0
- package/bin/webui/i18n/id/learn.json +16 -0
- package/bin/webui/i18n/id/maintenance.json +52 -0
- package/bin/webui/i18n/id/mockrun.json +19 -0
- package/bin/webui/i18n/id/nav.json +19 -0
- package/bin/webui/i18n/id/overview.json +89 -0
- package/bin/webui/i18n/id/pact.json +36 -0
- package/bin/webui/i18n/id/runs.json +51 -0
- package/bin/webui/i18n/id/settings.json +49 -0
- package/bin/webui/i18n/id/stats.json +69 -0
- package/bin/webui/i18n/id/tour.json +33 -0
- package/bin/webui/js/00-core.js +115 -0
- package/bin/webui/js/01-i18n.js +149 -0
- package/bin/webui/js/02-ui.js +211 -0
- package/bin/webui/js/03-md.js +286 -0
- package/bin/webui/js/04-router.js +51 -0
- package/bin/webui/js/05-banners.js +172 -0
- package/bin/webui/js/06-edit.js +183 -0
- package/bin/webui/js/90-tour.js +488 -0
- package/bin/webui/js/91-shortcuts.js +126 -0
- package/bin/webui/js/99-boot.js +118 -0
- package/bin/webui/js/panels/boundary.js +104 -0
- package/bin/webui/js/panels/challenge.js +781 -0
- package/bin/webui/js/panels/crosslink.js +654 -0
- package/bin/webui/js/panels/docs.js +1338 -0
- package/bin/webui/js/panels/experiment.js +98 -0
- package/bin/webui/js/panels/extra.js +3011 -0
- package/bin/webui/js/panels/flow.js +297 -0
- package/bin/webui/js/panels/handoff.js +169 -0
- package/bin/webui/js/panels/knowledge.js +890 -0
- package/bin/webui/js/panels/learn.js +220 -0
- package/bin/webui/js/panels/maintenance.js +235 -0
- package/bin/webui/js/panels/mockrun.js +227 -0
- package/bin/webui/js/panels/overview.js +447 -0
- package/bin/webui/js/panels/pact.js +189 -0
- package/bin/webui/js/panels/runs.js +416 -0
- package/bin/webui/js/panels/settings.js +573 -0
- package/bin/webui/js/panels/stats.js +378 -0
- package/bin/webui/serve.js +557 -0
- package/mock-run/INDEX.md +106 -0
- package/mock-run/a-normal-day.md +587 -0
- package/mock-run/context-combiner.md +100 -0
- package/mock-run/extra-recovery.md +330 -0
- package/mock-run/extra-slots.md +177 -0
- package/mock-run/media/README.md +43 -0
- package/mock-run/orc-aftermath.md +392 -0
- package/mock-run/orc-boundary.md +356 -0
- package/mock-run/orc-brainstorm.md +177 -0
- package/mock-run/orc-budget.md +534 -0
- package/mock-run/orc-challenge-council.md +262 -0
- package/mock-run/orc-challenge.md +416 -0
- package/mock-run/orc-cli.md +200 -0
- package/mock-run/orc-diy.md +129 -0
- package/mock-run/orc-doc.md +448 -0
- package/mock-run/orc-explain.md +86 -0
- package/mock-run/orc-export.md +423 -0
- package/mock-run/orc-extra.md +392 -0
- package/mock-run/orc-fast.md +106 -0
- package/mock-run/orc-grill.md +151 -0
- package/mock-run/orc-handoff.md +480 -0
- package/mock-run/orc-pact.md +421 -0
- package/mock-run/orc-pattern.md +112 -0
- package/mock-run/orc-plan.md +108 -0
- package/mock-run/orc-pr-setup.md +126 -0
- package/mock-run/orc-quick.md +113 -0
- package/mock-run/orc-route.md +93 -0
- package/mock-run/orc-ui.md +125 -0
- package/mock-run/orc-ultra.md +103 -0
- package/mock-run/orc.md +157 -0
- package/mock-run/the-example-project.md +55 -0
- package/package.json +39 -0
- package/templates/agents/MODEL-MAPPING.md +168 -0
- package/templates/agents/orc-advisor-fable-5.md +50 -0
- package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -0
- package/templates/agents/orc-analyst-fable-5.md +115 -0
- package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -0
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -0
- package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -0
- package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -0
- package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -0
- package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -0
- package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -0
- package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -0
- package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -0
- package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -0
- package/templates/agents/orc-claude-writer-opus-4-8-high.md +53 -0
- package/templates/agents/orc-claude-writer-opus-5-med.md +55 -0
- package/templates/agents/orc-context-combiner-opus-5-high.md +88 -0
- package/templates/agents/orc-doc-checker-opus-5-low.md +108 -0
- package/templates/agents/orc-doc-writer-opus-5-med.md +134 -0
- package/templates/agents/orc-executor-haiku-4-5.md +113 -0
- package/templates/agents/orc-executor-opus-4-7-high.md +114 -0
- package/templates/agents/orc-executor-opus-4-7-med.md +114 -0
- package/templates/agents/orc-executor-opus-4-8-high.md +114 -0
- package/templates/agents/orc-executor-opus-5-high.md +114 -0
- package/templates/agents/orc-executor-opus-5-low.md +114 -0
- package/templates/agents/orc-executor-opus-5-med.md +114 -0
- package/templates/agents/orc-executor-sonnet-4-6-high.md +114 -0
- package/templates/agents/orc-executor-sonnet-4-6-med.md +114 -0
- package/templates/agents/orc-executor-sonnet-5-high.md +114 -0
- package/templates/agents/orc-judge-fable-5.md +79 -0
- package/templates/agents/orc-judge-opus-5-xhigh.md +85 -0
- package/templates/agents/orc-learn-writer-opus-5-low.md +73 -0
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -0
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +63 -0
- package/templates/agents/orc-planner-fable-5.md +152 -0
- package/templates/agents/orc-planner-mini-opus-5-med.md +69 -0
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +67 -0
- package/templates/agents/orc-planner-opus-5-med.md +160 -0
- package/templates/agents/orc-retro-opus-5-med.md +73 -0
- package/templates/agents/orc-retro-sonnet-5-high.md +72 -0
- package/templates/agents/orc-reviewer-fable-5.md +57 -0
- package/templates/agents/orc-reviewer-opus-5-med.md +60 -0
- package/templates/agents/orc-scout-opus-5-low.md +40 -0
- package/templates/agents/orc-scout-sonnet-4-6-high.md +39 -0
- package/templates/agents/orc-system-analyst-opus-5-high.md +120 -0
- package/templates/agents/orc-test-author-opus-5-med.md +71 -0
- package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -0
- package/templates/agents/orc-verifier-opus-5-med.md +69 -0
- package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +79 -0
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -0
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +106 -0
- package/templates/commands/orc-aftermath.md +49 -0
- package/templates/commands/orc-analyze.md +21 -0
- package/templates/commands/orc-boundary.md +46 -0
- package/templates/commands/orc-brainstorm.md +51 -0
- package/templates/commands/orc-budget.md +54 -0
- package/templates/commands/orc-challenge.md +58 -0
- package/templates/commands/orc-claude.md +14 -0
- package/templates/commands/orc-diy.md +13 -0
- package/templates/commands/orc-doc.md +128 -0
- package/templates/commands/orc-explain.md +20 -0
- package/templates/commands/orc-export.md +46 -0
- package/templates/commands/orc-fast.md +15 -0
- package/templates/commands/orc-grill.md +40 -0
- package/templates/commands/orc-handoff.md +52 -0
- package/templates/commands/orc-learn.md +17 -0
- package/templates/commands/orc-mini.md +12 -0
- package/templates/commands/orc-pact.md +44 -0
- package/templates/commands/orc-pattern.md +15 -0
- package/templates/commands/orc-plan.md +22 -0
- package/templates/commands/orc-poly.md +21 -0
- package/templates/commands/orc-pr-driver.md +30 -0
- package/templates/commands/orc-pr-setup.md +31 -0
- package/templates/commands/orc-quick.md +33 -0
- package/templates/commands/orc-retro.md +17 -0
- package/templates/commands/orc-route.md +41 -0
- package/templates/commands/orc-ultra.md +17 -0
- package/templates/commands/orc-verify.md +11 -0
- package/templates/commands/orc-wiki.md +42 -0
- package/templates/commands/orc.md +16 -0
- package/templates/hooks/orc-effort-guard.js +178 -0
- package/templates/hooks/orc-statusline.js +305 -0
- package/templates/hooks/orc-trace.js +471 -0
- package/templates/hooks/orc-update-lib.js +125 -0
- package/templates/skills/_shared/README.md +50 -0
- package/templates/skills/_shared/detecting-artifacts.md +90 -0
- package/templates/skills/_shared/drift-recovery.md +98 -0
- package/templates/skills/_shared/extra-dispatch.md +1051 -0
- package/templates/skills/_shared/fable5-override.md +56 -0
- package/templates/skills/_shared/fallback-handoff.md +42 -0
- package/templates/skills/_shared/gh-stack-commands.md +65 -0
- package/templates/skills/_shared/gotchas.md +177 -0
- package/templates/skills/_shared/interview.md +144 -0
- package/templates/skills/_shared/lane-suspend.md +82 -0
- package/templates/skills/_shared/opus5-only.md +131 -0
- package/templates/skills/_shared/pr-templates.md +106 -0
- package/templates/skills/_shared/read-ladder.md +54 -0
- package/templates/skills/_shared/return-validation.md +145 -0
- package/templates/skills/_shared/smoke-gate.md +28 -0
- package/templates/skills/_shared/stack-plan.md +135 -0
- package/templates/skills/_shared/untrusted-input.md +63 -0
- package/templates/skills/context-combiner/SKILL.md +187 -0
- package/templates/skills/context-combiner/schemas/combined-report.md +78 -0
- package/templates/skills/context-combiner/schemas/combined-requirement-spec.md +87 -0
- package/templates/skills/orc/README.md +150 -0
- package/templates/skills/orc/SKILL.md +526 -0
- package/templates/skills/orc/config.md +389 -0
- package/templates/skills/orc/examples/full-run-mock.md +73 -0
- package/templates/skills/orc/references/analyst-gates.md +124 -0
- package/templates/skills/orc/references/effort-and-mode.md +224 -0
- package/templates/skills/orc/references/house-rules.md +20 -0
- package/templates/skills/orc/references/intake.md +120 -0
- package/templates/skills/orc/references/log-protocol.md +39 -0
- package/templates/skills/orc/references/pattern-gate.md +89 -0
- package/templates/skills/orc/references/plan-handoff.md +84 -0
- package/templates/skills/orc/references/preflight-report.md +220 -0
- package/templates/skills/orc/references/security-checklist.md +39 -0
- package/templates/skills/orc/references/stop-and-resume.md +160 -0
- package/templates/skills/orc/references/trace-protocol.md +314 -0
- package/templates/skills/orc/references/ultra-mode.md +123 -0
- package/templates/skills/orc/references/wave-grouping.md +121 -0
- package/templates/skills/orc/references/wiki-consult.md +177 -0
- package/templates/skills/orc/schemas/checkpoint.md +122 -0
- package/templates/skills/orc/schemas/intent-spec.md +42 -0
- package/templates/skills/orc/schemas/planning-output.md +279 -0
- package/templates/skills/orc/subskills/orc-checkpoint/SKILL.md +55 -0
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +72 -0
- package/templates/skills/orc/subskills/orc-execution/core.md +151 -0
- package/templates/skills/orc/subskills/orc-execution/subagent.md +13 -0
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +264 -0
- package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -0
- package/templates/skills/orc/subskills/orc-pr/SKILL.md +51 -0
- package/templates/skills/orc/subskills/orc-pr/pr.md +22 -0
- package/templates/skills/orc/subskills/orc-pr/stack-gate.md +108 -0
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -0
- package/templates/skills/orc/subskills/orc-review-verify/core.md +135 -0
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -0
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -0
- package/templates/skills/orc/subskills/orc-testgen/core.md +59 -0
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -0
- package/templates/skills/orc-advisor/SKILL.md +60 -0
- package/templates/skills/orc-aftermath/SKILL.md +136 -0
- package/templates/skills/orc-aftermath/references/report.md +95 -0
- package/templates/skills/orc-analyze/SKILL.md +220 -0
- package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -0
- package/templates/skills/orc-analyze/references/branching.md +51 -0
- package/templates/skills/orc-analyze/references/deep-mode.md +27 -0
- package/templates/skills/orc-analyze/references/thin-input.md +77 -0
- package/templates/skills/orc-analyze/schemas/report-audit.md +83 -0
- package/templates/skills/orc-analyze/schemas/report-prose.md +63 -0
- package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -0
- package/templates/skills/orc-analyze/schemas/requirement-spec.md +77 -0
- package/templates/skills/orc-analyze-mini/SKILL.md +112 -0
- package/templates/skills/orc-analyze-mini/examples/quick-analysis-mock.md +31 -0
- package/templates/skills/orc-boundary/SKILL.md +208 -0
- package/templates/skills/orc-boundary/references/card.md +78 -0
- package/templates/skills/orc-boundary/references/gate.md +113 -0
- package/templates/skills/orc-brainstorm/SKILL.md +339 -0
- package/templates/skills/orc-brainstorm/references/brainstorm-doc.md +133 -0
- package/templates/skills/orc-brainstorm/references/lenses.md +152 -0
- package/templates/skills/orc-budget/SKILL.md +225 -0
- package/templates/skills/orc-budget/references/corpus.md +87 -0
- package/templates/skills/orc-challenge/README.md +142 -0
- package/templates/skills/orc-challenge/SKILL.md +255 -0
- package/templates/skills/orc-challenge/examples/code-module.md +110 -0
- package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -0
- package/templates/skills/orc-challenge/examples/tsd-two-iterations.md +213 -0
- package/templates/skills/orc-challenge/references/conservation.md +107 -0
- package/templates/skills/orc-challenge/references/council.md +315 -0
- package/templates/skills/orc-challenge/references/cycle-state.md +185 -0
- package/templates/skills/orc-challenge/references/dimensions.md +121 -0
- package/templates/skills/orc-challenge/references/fix-brief.md +130 -0
- package/templates/skills/orc-challenge/references/intake.md +171 -0
- package/templates/skills/orc-challenge/references/kinds.md +44 -0
- package/templates/skills/orc-challenge/references/plain-english.md +98 -0
- package/templates/skills/orc-challenge/references/rubric.md +109 -0
- package/templates/skills/orc-challenge/references/sealed-slice.md +97 -0
- package/templates/skills/orc-challenge/references/verdict-doc.md +154 -0
- package/templates/skills/orc-claude/SKILL.md +199 -0
- package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -0
- package/templates/skills/orc-claude/references/refresh.md +76 -0
- package/templates/skills/orc-claude/references/template.md +109 -0
- package/templates/skills/orc-diy/README.md +142 -0
- package/templates/skills/orc-diy/SKILL.md +70 -0
- package/templates/skills/orc-diy/references/blocks/analyze.md +24 -0
- package/templates/skills/orc-diy/references/blocks/execution.md +42 -0
- package/templates/skills/orc-diy/references/blocks/extra.md +55 -0
- package/templates/skills/orc-diy/references/blocks/header.md +55 -0
- package/templates/skills/orc-diy/references/blocks/mock-example.md +22 -0
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -0
- package/templates/skills/orc-diy/references/blocks/planning.md +34 -0
- package/templates/skills/orc-diy/references/blocks/review.md +18 -0
- package/templates/skills/orc-diy/references/blocks/scoring.md +16 -0
- package/templates/skills/orc-diy/references/blocks/security.md +25 -0
- package/templates/skills/orc-diy/references/blocks/ship.md +25 -0
- package/templates/skills/orc-diy/references/blocks/summary.md +18 -0
- package/templates/skills/orc-diy/references/blocks/testgen.md +17 -0
- package/templates/skills/orc-diy/references/blocks/trace.md +28 -0
- package/templates/skills/orc-diy/references/blocks/verify.md +25 -0
- package/templates/skills/orc-diy/references/blocks/wiki.md +26 -0
- package/templates/skills/orc-diy/references/compile.md +59 -0
- package/templates/skills/orc-diy/references/flow-schema.md +100 -0
- package/templates/skills/orc-diy/references/locked-blocks.md +37 -0
- package/templates/skills/orc-doc/README.md +229 -0
- package/templates/skills/orc-doc/SKILL.md +444 -0
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -0
- package/templates/skills/orc-doc/references/chunking.md +527 -0
- package/templates/skills/orc-doc/references/gates.md +311 -0
- package/templates/skills/orc-doc/references/generation-rules.md +122 -0
- package/templates/skills/orc-doc/references/house-rules.md +170 -0
- package/templates/skills/orc-doc/references/import-targets.md +40 -0
- package/templates/skills/orc-doc/references/plain-language.md +66 -0
- package/templates/skills/orc-doc/references/portable-markdown.md +74 -0
- package/templates/skills/orc-doc/references/resume-protocol.md +228 -0
- package/templates/skills/orc-doc/references/templates/collaboration.md +118 -0
- package/templates/skills/orc-doc/references/templates/prd.md +133 -0
- package/templates/skills/orc-doc/references/templates/report.md +102 -0
- package/templates/skills/orc-doc/references/templates/tsd.md +122 -0
- package/templates/skills/orc-doc/references/templates/workflow.md +112 -0
- package/templates/skills/orc-explain/SKILL.md +57 -0
- package/templates/skills/orc-export/SKILL.md +154 -0
- package/templates/skills/orc-fast/SKILL.md +188 -0
- package/templates/skills/orc-grill/SKILL.md +207 -0
- package/templates/skills/orc-grill/references/grill-doc.md +105 -0
- package/templates/skills/orc-handoff/SKILL.md +204 -0
- package/templates/skills/orc-handoff/references/handoff-log.md +67 -0
- package/templates/skills/orc-handoff/references/surfaces.md +88 -0
- package/templates/skills/orc-judge/SKILL.md +82 -0
- package/templates/skills/orc-learn/SKILL.md +156 -0
- package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -0
- package/templates/skills/orc-learn/references/deepen.md +70 -0
- package/templates/skills/orc-learn/references/refresh.md +65 -0
- package/templates/skills/orc-learn/references/template-knowledge.md +83 -0
- package/templates/skills/orc-learn/references/template-learning.md +67 -0
- package/templates/skills/orc-mini/SKILL.md +226 -0
- package/templates/skills/orc-mini/examples/mini-run-mock.md +50 -0
- package/templates/skills/orc-pact/SKILL.md +218 -0
- package/templates/skills/orc-pact/references/gate.md +70 -0
- package/templates/skills/orc-pact/references/ledger.md +99 -0
- package/templates/skills/orc-pattern/SKILL.md +124 -0
- package/templates/skills/orc-pattern/references/INDEX.md +73 -0
- package/templates/skills/orc-pattern/references/be-django.md +80 -0
- package/templates/skills/orc-pattern/references/be-express.md +82 -0
- package/templates/skills/orc-pattern/references/be-fastapi.md +107 -0
- package/templates/skills/orc-pattern/references/be-go.md +96 -0
- package/templates/skills/orc-pattern/references/be-nestjs.md +86 -0
- package/templates/skills/orc-pattern/references/be-postgres.md +98 -0
- package/templates/skills/orc-pattern/references/fe-a11y.md +36 -0
- package/templates/skills/orc-pattern/references/fe-angular.md +87 -0
- package/templates/skills/orc-pattern/references/fe-nextjs.md +65 -0
- package/templates/skills/orc-pattern/references/fe-perf.md +39 -0
- package/templates/skills/orc-pattern/references/fe-react.md +83 -0
- package/templates/skills/orc-pattern/references/fe-vue.md +75 -0
- package/templates/skills/orc-pattern/schemas/pattern-doc.md +62 -0
- package/templates/skills/orc-poly/SKILL.md +216 -0
- package/templates/skills/orc-poly/examples/poly-run-mock.md +51 -0
- package/templates/skills/orc-poly/references/gather.md +70 -0
- package/templates/skills/orc-poly/references/poly-spec.md +84 -0
- package/templates/skills/orc-pr-driver/README.md +349 -0
- package/templates/skills/orc-pr-driver/SKILL.md +167 -0
- package/templates/skills/orc-pr-driver/references/conflict-playbook.md +78 -0
- package/templates/skills/orc-pr-driver/references/green-gate.md +105 -0
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +99 -0
- package/templates/skills/orc-pr-setup/README.md +436 -0
- package/templates/skills/orc-pr-setup/SKILL.md +184 -0
- package/templates/skills/orc-pr-setup/references/certainty-gate.md +66 -0
- package/templates/skills/orc-pr-setup/references/layer-taxonomy.md +67 -0
- package/templates/skills/orc-quick/README.md +423 -0
- package/templates/skills/orc-quick/SKILL.md +306 -0
- package/templates/skills/orc-quick/references/context-doc.md +114 -0
- package/templates/skills/orc-quick/references/dispatch-gate.md +163 -0
- package/templates/skills/orc-quick/references/gh-mode.md +127 -0
- package/templates/skills/orc-retro/SKILL.md +222 -0
- package/templates/skills/orc-retro/examples/retro-mock.md +171 -0
- package/templates/skills/orc-route/SKILL.md +165 -0
- package/templates/skills/orc-verify/SKILL.md +86 -0
- package/templates/skills/orc-verify/examples/verify-mock.md +33 -0
- package/templates/skills/orc-wiki/README.md +325 -0
- package/templates/skills/orc-wiki/SKILL.md +322 -0
- package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -0
- package/templates/skills/orc-wiki/references/claude-md-injection.md +61 -0
- package/templates/skills/orc-wiki/references/crosslink-compile.md +39 -0
- package/templates/skills/orc-wiki/references/crosslink-kinds.md +57 -0
- package/templates/skills/orc-wiki/references/crosslink.md +284 -0
- package/templates/skills/orc-wiki/references/extra.md +79 -0
- package/templates/skills/orc-wiki/references/integrity-check.md +86 -0
- package/templates/skills/orc-wiki/references/orientation.md +51 -0
- package/templates/skills/orc-wiki/references/partial-refresh.md +203 -0
- package/templates/skills/orc-wiki/references/pattern-prewarm.md +19 -0
- package/templates/skills/orc-wiki/references/staleness.md +288 -0
- package/templates/skills/orc-wiki/schemas/crosslink-tag.md +166 -0
- package/templates/skills/orc-wiki/schemas/wiki-doc.md +120 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* mockrun-catalog.js — the catalogue of MOCKED RUNS that ship with ORC.
|
|
4
|
+
*
|
|
5
|
+
* A mocked run is a written walkthrough of ONE lane: what you type, what ORC
|
|
6
|
+
* prints back, what lands on disk. Nothing was executed to produce them — they
|
|
7
|
+
* are documentation — and that is exactly why they exist: a new user needs to
|
|
8
|
+
* know what a lane LOOKS like before paying tokens to find out.
|
|
9
|
+
*
|
|
10
|
+
* Two sources, one catalogue:
|
|
11
|
+
* · `mock-run/*.md` the reader-facing walkthroughs
|
|
12
|
+
* · `templates/skills/<skill>/examples/*` the dense annotated examples that
|
|
13
|
+
* already shipped with each skill
|
|
14
|
+
*
|
|
15
|
+
* DERIVED, never hand-listed. A new file in either place appears by itself:
|
|
16
|
+
* the title comes from the file's own `# ` heading, the lane from whether
|
|
17
|
+
* `templates/commands/<name>.md` exists, and the one-line summary from the
|
|
18
|
+
* `> ` blockquote the walkthroughs open with. The only hand-written table here
|
|
19
|
+
* is the READING ORDER (`GROUPS` + `GROUP_OF`) — an order is editorial and
|
|
20
|
+
* cannot be derived from a filename. A file nobody placed still shows up, in
|
|
21
|
+
* the `other` group, because a mocked run that exists and is invisible is the
|
|
22
|
+
* failure mode this module is meant to make impossible.
|
|
23
|
+
*
|
|
24
|
+
* This is package content, not project state: it is the same on every machine
|
|
25
|
+
* and needs no `.claude/`. `orc mock-run` reads it, and `orc ui` serves it the
|
|
26
|
+
* same way it serves the onboarding walkthrough — straight from the module,
|
|
27
|
+
* because spawning a subprocess to read files that ship in this package would
|
|
28
|
+
* be ceremony with a cost. It is NOT `orc mock`, which lists the runnable
|
|
29
|
+
* `mock-examples/<slug>/` folders a green verify left in YOUR project.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
const fs = require("fs");
|
|
33
|
+
const path = require("path");
|
|
34
|
+
|
|
35
|
+
const ROOT = path.join(__dirname, "..");
|
|
36
|
+
const WALKTHROUGH_DIR = path.join(ROOT, "mock-run");
|
|
37
|
+
const SKILLS_DIR = path.join(ROOT, "templates", "skills");
|
|
38
|
+
const COMMANDS_DIR = path.join(ROOT, "templates", "commands");
|
|
39
|
+
|
|
40
|
+
// The reading order. Group titles are DATA (the panel prints them as written
|
|
41
|
+
// and never translates them, exactly like a config key or a doctor message).
|
|
42
|
+
const GROUPS = [
|
|
43
|
+
{ id: "start", title: "Start here" },
|
|
44
|
+
{ id: "build", title: "Build a change" },
|
|
45
|
+
{ id: "decide", title: "Decide what to build" },
|
|
46
|
+
{ id: "knowledge", title: "Teach ORC your project" },
|
|
47
|
+
{ id: "check", title: "Check what happened" },
|
|
48
|
+
{ id: "ship", title: "Ship and hand over" },
|
|
49
|
+
{ id: "tools", title: "Panel and terminal" },
|
|
50
|
+
{ id: "other", title: "More" },
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
// slug (or lane name) → group. Anything absent lands in `other`.
|
|
54
|
+
const GROUP_OF = {
|
|
55
|
+
"the-example-project": "start",
|
|
56
|
+
"a-normal-day": "start",
|
|
57
|
+
|
|
58
|
+
orc: "build",
|
|
59
|
+
"orc-ultra": "build",
|
|
60
|
+
"orc-mini": "build",
|
|
61
|
+
"orc-fast": "build",
|
|
62
|
+
"orc-quick": "build",
|
|
63
|
+
"orc-diy": "build",
|
|
64
|
+
|
|
65
|
+
// v0.48.0. It sits with the deciding lanes rather than the knowledge ones: a
|
|
66
|
+
// /orc-doc document is derived from what you DECIDED, not from the code —
|
|
67
|
+
// which is exactly what separates it from /orc-wiki and /orc-learn.
|
|
68
|
+
"orc-doc": "decide",
|
|
69
|
+
|
|
70
|
+
"orc-brainstorm": "decide",
|
|
71
|
+
"orc-grill": "decide",
|
|
72
|
+
"orc-plan": "decide",
|
|
73
|
+
"orc-route": "decide",
|
|
74
|
+
"orc-explain": "decide",
|
|
75
|
+
"orc-analyze": "decide",
|
|
76
|
+
"orc-analyze-mini": "decide",
|
|
77
|
+
"context-combiner": "decide",
|
|
78
|
+
"orc-poly": "decide",
|
|
79
|
+
|
|
80
|
+
// v0.50.0. It sits with the TOOLS rather than the build lanes: `orc extra` is
|
|
81
|
+
// not a lane you invoke — it is a setting that changes where the lanes you
|
|
82
|
+
// already run send their work.
|
|
83
|
+
"orc-extra": "tools",
|
|
84
|
+
// v0.54.0. It sits beside `orc-extra` for the same reason: recovering a
|
|
85
|
+
// half-finished foreign dispatch is a thing you do at the terminal and in the
|
|
86
|
+
// panel, not a lane you invoke.
|
|
87
|
+
"extra-recovery": "tools",
|
|
88
|
+
// v0.55.0. Same shelf again: the four lanes that pin an agent instead of
|
|
89
|
+
// scoring a task are a routing decision, and routing is where `orc-extra`
|
|
90
|
+
// already lives.
|
|
91
|
+
"extra-slots": "tools",
|
|
92
|
+
|
|
93
|
+
"orc-wiki": "knowledge",
|
|
94
|
+
"orc-pattern": "knowledge",
|
|
95
|
+
"orc-learn": "knowledge",
|
|
96
|
+
"orc-claude": "knowledge",
|
|
97
|
+
"orc-export": "knowledge",
|
|
98
|
+
|
|
99
|
+
"orc-verify": "check",
|
|
100
|
+
"orc-challenge": "check",
|
|
101
|
+
// v0.49.1. It sits beside the lane it belongs to, and it is a SEPARATE
|
|
102
|
+
// walkthrough because the council is a decision the reader takes before the
|
|
103
|
+
// first review runs — not a detail of one.
|
|
104
|
+
"orc-challenge-council": "check",
|
|
105
|
+
"orc-pact": "check",
|
|
106
|
+
"orc-boundary": "check",
|
|
107
|
+
"orc-aftermath": "check",
|
|
108
|
+
"orc-budget": "check",
|
|
109
|
+
"orc-retro": "check",
|
|
110
|
+
|
|
111
|
+
"orc-pr-setup": "ship",
|
|
112
|
+
"orc-pr-driver": "ship",
|
|
113
|
+
"orc-handoff": "ship",
|
|
114
|
+
|
|
115
|
+
"orc-ui": "tools",
|
|
116
|
+
"orc-cli": "tools",
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
// A few docs lead their group because they are prerequisites for reading the
|
|
120
|
+
// rest, which alphabetical order cannot know. Everything else sorts by title.
|
|
121
|
+
const PINNED_FIRST = ["the-example-project", "orc", "orc-brainstorm", "orc-wiki-example", "orc-verify-example"];
|
|
122
|
+
|
|
123
|
+
// Files in mock-run/ that are not themselves a mocked run.
|
|
124
|
+
const NOT_A_DOC = new Set(["INDEX.md", "README.md"]);
|
|
125
|
+
|
|
126
|
+
function readSafe(p) {
|
|
127
|
+
try {
|
|
128
|
+
return fs.readFileSync(p, "utf8");
|
|
129
|
+
} catch (_) {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function listSafe(dir) {
|
|
135
|
+
try {
|
|
136
|
+
return fs.readdirSync(dir, { withFileTypes: true });
|
|
137
|
+
} catch (_) {
|
|
138
|
+
return [];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// `# Mock run — \`/orc-pact\`` → `Mock run — /orc-pact`. Backticks are markup
|
|
143
|
+
// for a reader, not part of the title.
|
|
144
|
+
function titleOf(md, fallback) {
|
|
145
|
+
const m = String(md || "").match(/^#\s+(.+?)\s*$/m);
|
|
146
|
+
return m ? m[1].replace(/`/g, "").trim() : fallback;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// The walkthroughs open with a `> one line` blockquote under the title. The
|
|
150
|
+
// older annotated examples do not, so the first real line stands in.
|
|
151
|
+
function summaryOf(md) {
|
|
152
|
+
const lines = String(md || "").split(/\r?\n/);
|
|
153
|
+
let seenTitle = false;
|
|
154
|
+
for (const raw of lines) {
|
|
155
|
+
const line = raw.trim();
|
|
156
|
+
if (!line) continue;
|
|
157
|
+
if (line.startsWith("# ")) {
|
|
158
|
+
seenTitle = true;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
if (!seenTitle) continue;
|
|
162
|
+
if (line.startsWith(">")) return clip(line.replace(/^>\s?/, ""));
|
|
163
|
+
if (line.startsWith("#") || line.startsWith("---")) continue;
|
|
164
|
+
return clip(line);
|
|
165
|
+
}
|
|
166
|
+
return "";
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// A summary is read as one line of prose, so the markup that made it readable
|
|
170
|
+
// in the file (`**bold**`, `` `code` ``) is noise here.
|
|
171
|
+
function clip(s, max = 200) {
|
|
172
|
+
const t = String(s).replace(/\*\*/g, "").replace(/`/g, "").trim();
|
|
173
|
+
return t.length > max ? t.slice(0, max - 1).trimEnd() + "…" : t;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// A name is a lane only when the payload really ships that slash command. This
|
|
177
|
+
// is what keeps `/orc-pact` a link and `a-normal-day` plain text, with no list
|
|
178
|
+
// to maintain in two places.
|
|
179
|
+
function laneOf(name) {
|
|
180
|
+
return fs.existsSync(path.join(COMMANDS_DIR, name + ".md")) ? "/" + name : null;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
function entry(slug, file, kind, name, md) {
|
|
184
|
+
const stat = (() => {
|
|
185
|
+
try {
|
|
186
|
+
return fs.statSync(file);
|
|
187
|
+
} catch (_) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
})();
|
|
191
|
+
const body = md === null ? "" : md;
|
|
192
|
+
return {
|
|
193
|
+
slug,
|
|
194
|
+
title: titleOf(body, slug),
|
|
195
|
+
lane: laneOf(name),
|
|
196
|
+
kind, // "walkthrough" = written for a reader · "annotated" = the dense one
|
|
197
|
+
group: GROUP_OF[name] || GROUP_OF[slug] || "other",
|
|
198
|
+
summary: summaryOf(body),
|
|
199
|
+
path: path.relative(ROOT, file).split(path.sep).join("/"),
|
|
200
|
+
bytes: stat ? stat.size : body.length,
|
|
201
|
+
lines: body ? body.split(/\r?\n/).length : 0,
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Every mocked run that ships in this package, in reading order.
|
|
206
|
+
function list() {
|
|
207
|
+
const out = [];
|
|
208
|
+
|
|
209
|
+
for (const e of listSafe(WALKTHROUGH_DIR)) {
|
|
210
|
+
if (!e.isFile() || !e.name.endsWith(".md") || NOT_A_DOC.has(e.name)) continue;
|
|
211
|
+
const name = e.name.replace(/\.md$/, "");
|
|
212
|
+
const file = path.join(WALKTHROUGH_DIR, e.name);
|
|
213
|
+
out.push(entry(name, file, "walkthrough", name, readSafe(file)));
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
for (const s of listSafe(SKILLS_DIR)) {
|
|
217
|
+
if (!s.isDirectory()) continue;
|
|
218
|
+
const exDir = path.join(SKILLS_DIR, s.name, "examples");
|
|
219
|
+
for (const f of listSafe(exDir)) {
|
|
220
|
+
if (!f.isFile() || !f.name.endsWith(".md")) continue;
|
|
221
|
+
const file = path.join(exDir, f.name);
|
|
222
|
+
// One example per skill is the shipped shape; a second one keeps its own
|
|
223
|
+
// file name so neither can hide the other.
|
|
224
|
+
const base = f.name.replace(/\.md$/, "");
|
|
225
|
+
const slug = `${s.name}-example`;
|
|
226
|
+
const taken = out.some((d) => d.slug === slug);
|
|
227
|
+
out.push(entry(taken ? `${s.name}-${base}` : slug, file, "annotated", s.name, readSafe(file)));
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
const rank = new Map(GROUPS.map((g, i) => [g.id, i]));
|
|
232
|
+
out.sort((a, b) => {
|
|
233
|
+
const g = (rank.get(a.group) ?? 99) - (rank.get(b.group) ?? 99);
|
|
234
|
+
if (g) return g;
|
|
235
|
+
// Inside a group: pinned docs first, then the reader-facing walkthrough
|
|
236
|
+
// before the dense annotated example, then by title.
|
|
237
|
+
const p = (d) => {
|
|
238
|
+
const i = PINNED_FIRST.indexOf(d.slug);
|
|
239
|
+
return i === -1 ? PINNED_FIRST.length : i;
|
|
240
|
+
};
|
|
241
|
+
const pin = p(a) - p(b);
|
|
242
|
+
if (pin) return pin;
|
|
243
|
+
if (a.kind !== b.kind) return a.kind === "walkthrough" ? -1 : 1;
|
|
244
|
+
return a.title.localeCompare(b.title);
|
|
245
|
+
});
|
|
246
|
+
return out;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// The catalogue, grouped, with the counts a header can print without counting.
|
|
250
|
+
function catalogue() {
|
|
251
|
+
const docs = list();
|
|
252
|
+
const groups = GROUPS.map((g) => ({
|
|
253
|
+
...g,
|
|
254
|
+
docs: docs.filter((d) => d.group === g.id),
|
|
255
|
+
})).filter((g) => g.docs.length);
|
|
256
|
+
return { root: path.relative(ROOT, WALKTHROUGH_DIR) || "mock-run", total: docs.length, groups, docs };
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// One doc, with its body. Returns null when the slug is unknown — the caller
|
|
260
|
+
// decides what a miss means (exit 1 in the CLI, a 404 in the panel).
|
|
261
|
+
function get(slug) {
|
|
262
|
+
const hit = list().find((d) => d.slug === slug);
|
|
263
|
+
if (!hit) return null;
|
|
264
|
+
return { ...hit, body: readSafe(path.join(ROOT, hit.path)) || "" };
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
module.exports = { GROUPS, catalogue, list, get };
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* onboarding-content.js — the single source for `orc onboarding`. One ordered
|
|
4
|
+
* list of sections; the CLI renders a menu (TTY) or prints them all (piped).
|
|
5
|
+
* Keeping the content here (not inline in cli.js) means the help/init pointers
|
|
6
|
+
* to `orc onboarding` can't drift from the walkthrough itself.
|
|
7
|
+
*
|
|
8
|
+
* Each section: { id, title, lines: string[] } — `lines` is plain text; the CLI
|
|
9
|
+
* adds the styled header. `{cmd}` is styled by the renderer.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
const SECTIONS = [
|
|
13
|
+
{
|
|
14
|
+
id: "overview",
|
|
15
|
+
title: "① What ORC is",
|
|
16
|
+
lines: [
|
|
17
|
+
"ORC is a CONSTELLATION of Claude Code skills, slash commands, and",
|
|
18
|
+
"model-pinned subagents — NOT a runtime. The `orc` CLI only installs those",
|
|
19
|
+
"files into your project's .claude/ directory; Claude Code reads and follows",
|
|
20
|
+
"them to run a build pipeline:",
|
|
21
|
+
"",
|
|
22
|
+
" intake → analyze → plan → score → parallel subagents → review → verify → ship",
|
|
23
|
+
"",
|
|
24
|
+
"Every unit of work is done by a spawned subagent whose model is scored to the",
|
|
25
|
+
"task. The main session orchestrates; it never implements.",
|
|
26
|
+
],
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: "install",
|
|
30
|
+
title: "② Install & init",
|
|
31
|
+
lines: [
|
|
32
|
+
" orc init install into ./.claude (this project)",
|
|
33
|
+
" orc init --global install into ~/.claude (all projects)",
|
|
34
|
+
" orc where show exactly where files land",
|
|
35
|
+
"",
|
|
36
|
+
"init merges two guards into .claude/settings.json (non-destructively):",
|
|
37
|
+
" • a PreToolUse effort hard-block (keeps /orc on a capable tier)",
|
|
38
|
+
" • a statusline model warning (❌ ORC WILL DEGRADE on the wrong tier)",
|
|
39
|
+
"Run your MAIN session on Opus 4.8 high (or Opus 5 / Fable 5 at medium+) —",
|
|
40
|
+
"subagents can't exceed it; the top [90,100] band needs an Opus 5 session.",
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: "first-run",
|
|
45
|
+
title: "③ Your first run",
|
|
46
|
+
lines: [
|
|
47
|
+
" /orc <request> full pipeline: analyze · plan · score · review · verify · ship",
|
|
48
|
+
" /orc-mini <request> fast lane: one Sonnet 5 subagent, no review/verify",
|
|
49
|
+
" /orc-fast <request> fastest: needs a fresh wiki + cached pattern (else falls to mini)",
|
|
50
|
+
" /orc-quick <request> fewest steps: look · ask once · do. Works for a fix, a",
|
|
51
|
+
" quick question, a defect hunt, or PR review comments.",
|
|
52
|
+
" ALWAYS asks which agent to dispatch; saves every request",
|
|
53
|
+
" to orc-quick/<slug>/quick-context.md. No config overrides it.",
|
|
54
|
+
"",
|
|
55
|
+
"Session-tier acceptance (the statusline verdict):",
|
|
56
|
+
" ✔ ORC-ready Opus 4.8 high (the baseline)",
|
|
57
|
+
" 🚀 ORC-boosted Opus 4.8 xhigh/max, or Opus 5 / Fable 5 medium…max",
|
|
58
|
+
" ✖ WILL DEGRADE anything below (wrong model or sub-baseline effort)",
|
|
59
|
+
"",
|
|
60
|
+
"Which one do I type? Start from what you HAVE, not from the lane names:",
|
|
61
|
+
" a quick question, or a small fix → /orc-quick",
|
|
62
|
+
" one clear change you can describe → /orc-mini",
|
|
63
|
+
" a big or risky change → /orc",
|
|
64
|
+
" you have no idea what the options are → /orc-brainstorm (it proposes)",
|
|
65
|
+
" one idea, but it is still vague → /orc-grill (a conversation)",
|
|
66
|
+
" a document to turn into requirements → /orc-analyze",
|
|
67
|
+
" a plan already in hand → /orc-route (which lane builds it)",
|
|
68
|
+
" something ORC said that did not land → /orc-explain",
|
|
69
|
+
"",
|
|
70
|
+
"Settings: `orc config recommend` reads this repo and suggests one profile;",
|
|
71
|
+
"`orc config profile <name>` applies it. Paused mid-run? `orc resume`.",
|
|
72
|
+
],
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "lanes",
|
|
76
|
+
title: "④ Lanes cheat-sheet (28 commands)",
|
|
77
|
+
lines: [
|
|
78
|
+
" /orc full orchestrated pipeline",
|
|
79
|
+
" /orc-quick ask for almost anything — 3 steps, always asks which agent",
|
|
80
|
+
" /orc-brainstorm no idea yet? it generates the options, you pick",
|
|
81
|
+
" /orc-grill sharpen a vague idea by conversation (no scan, no build)",
|
|
82
|
+
" /orc-route you have a PLAN — which lane should build it? (refuses prose)",
|
|
83
|
+
" /orc-explain say the last ORC message again, with the background it assumed",
|
|
84
|
+
" /orc-mini lightweight single-subagent build",
|
|
85
|
+
" /orc-fast knowledge-gated single-executor build (wiki + pattern)",
|
|
86
|
+
" /orc-ultra max rigor: + advisor + 3 judgment gates",
|
|
87
|
+
" /orc-diy your own composed flow (configure via `orc diy`)",
|
|
88
|
+
" /orc-analyze turn a doc/requirement into a code-grounded spec",
|
|
89
|
+
" /orc-plan turn a spec/request into a grounded task plan",
|
|
90
|
+
" /orc-poly cross-repo PLANNER (host + peers; never builds)",
|
|
91
|
+
" /orc-pr-setup stacked-PR planner — where the PR cut lines go (plans only)",
|
|
92
|
+
" /orc-pr-driver stacked-PR driver — layer branches, per-layer green gate, submit",
|
|
93
|
+
" /orc-verify verify the git-modified changes (read-only)",
|
|
94
|
+
" /orc-challenge grade a FINISHED artifact, then stop — you fix it elsewhere",
|
|
95
|
+
" /orc-pact the promises this project makes, and which are in doubt",
|
|
96
|
+
" /orc-boundary what ORC should NOT try here, and what would change that",
|
|
97
|
+
" /orc-handoff what a non-developer can safely change, with the undo first",
|
|
98
|
+
" /orc-budget what a PLAN will cost, in the unit you are billed in",
|
|
99
|
+
" /orc-aftermath did what we shipped hold up (read-only, no telemetry)",
|
|
100
|
+
" /orc-export compile the context into a portable AGENTS.md",
|
|
101
|
+
" /orc-wiki build/maintain the project knowledge base",
|
|
102
|
+
" /orc-pattern learn & cache your code conventions per language",
|
|
103
|
+
" /orc-claude build/refresh this repo's CLAUDE.md",
|
|
104
|
+
" /orc-learn per-feature onboarding docs (local, git-ignored)",
|
|
105
|
+
" /orc-retro mine behavior traces → calibration report",
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
id: "config",
|
|
110
|
+
title: "⑤ Config (`orc config`)",
|
|
111
|
+
lines: [
|
|
112
|
+
"Config is a CLI concern (zero model tokens). Edit via the interactive menu",
|
|
113
|
+
"or `orc config set <key> <value>`; overrides live in .claude/orc.config.yaml",
|
|
114
|
+
"and survive every update/upgrade.",
|
|
115
|
+
"",
|
|
116
|
+
"Groups:",
|
|
117
|
+
" Common waves, pauses, scoring granularity, analysis depth, tests,",
|
|
118
|
+
" pattern gate, security pass, stacked PRs (stacked_pr + thresholds)",
|
|
119
|
+
" Fable 5 fable5_enabled / fable5_effort / fable5_roles — HARD-GATED role",
|
|
120
|
+
" override: route analyze/plan/advisor/judge/review to Fable 5 agents",
|
|
121
|
+
" (nothing happens unless fable5_enabled: true AND roles are selected)",
|
|
122
|
+
" Advanced dirs, crosslink day-tiers, orchestrator model, log dir",
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: "knowledge",
|
|
127
|
+
title: "⑥ Knowledge systems (paid vs free)",
|
|
128
|
+
lines: [
|
|
129
|
+
" wiki (/orc-wiki) PAID scan → persistent knowledge base. Registration",
|
|
130
|
+
" (`orc wiki sync`) is FREE and derived from the docs.",
|
|
131
|
+
" pattern (/orc-pattern) PAID scan → cached per-language conventions executors",
|
|
132
|
+
" match. Probe existence free: `orc pattern status <lang>`.",
|
|
133
|
+
" crosslink (`orc crosslink`) FREE graph config → advisory cross-repo wiki hints;",
|
|
134
|
+
" never blocks, reads foreign WIKI only (never source).",
|
|
135
|
+
"",
|
|
136
|
+
"Precedence everywhere: code > fresh wiki > stale wiki (hints) > model priors.",
|
|
137
|
+
],
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: "upgrade",
|
|
141
|
+
title: "⑦ Upgrade & after-upgrade",
|
|
142
|
+
lines: [
|
|
143
|
+
" orc upgrade fetch the latest package (network), THEN apply it. Tries the",
|
|
144
|
+
" last source that worked, then the tarball, then the github: spec.",
|
|
145
|
+
" orc update re-copy the already-installed templates (offline).",
|
|
146
|
+
" orc doctor read-only health report (version skew, orphans, settings wiring).",
|
|
147
|
+
" orc doctor --fix = update + prune + settings re-merge.",
|
|
148
|
+
"",
|
|
149
|
+
"PRUNE removes files ORC used to ship but no longer does — only ones a previous",
|
|
150
|
+
"install manifest proves ORC owned. Your files, patterns, wiki, configs are never",
|
|
151
|
+
"touched. Your .claude/orc.config.yaml overrides always survive.",
|
|
152
|
+
],
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: "troubleshooting",
|
|
156
|
+
title: "⑧ Troubleshooting",
|
|
157
|
+
lines: [
|
|
158
|
+
" \"/orc blocked — required effort not met\"",
|
|
159
|
+
" → switch to high effort (or Opus 5 / Fable 5 at medium+). xhigh/max also pass.",
|
|
160
|
+
" statusline says \"WILL DEGRADE\"",
|
|
161
|
+
" → wrong model/effort, or a usage window ≥90%. Move to Opus 4.8 high or Opus 5.",
|
|
162
|
+
" \"wiki: UNREGISTERED\"",
|
|
163
|
+
" → docs exist but no manifest. Run `orc wiki sync` (instant, no re-scan).",
|
|
164
|
+
" /orc-diy \"blocked — no compiled flow\"",
|
|
165
|
+
" → run `orc diy init`, shape it, then `orc diy compile`.",
|
|
166
|
+
" an agent ran on the wrong model",
|
|
167
|
+
" → the main session's tier caps subagents; run it on Opus 4.8 (or Fable 5).",
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
];
|
|
171
|
+
|
|
172
|
+
module.exports = { SECTIONS };
|
package/bin/pricing.json
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_readme": [
|
|
3
|
+
"Dated price table for `orc budget`. Point `orc config set budget_price_table <path>`",
|
|
4
|
+
"at your own copy to override it. Rates are USD per MILLION tokens.",
|
|
5
|
+
"",
|
|
6
|
+
"Four rates per model, never one: cache reads are usually the LARGEST token",
|
|
7
|
+
"count in a run and the CHEAPEST per token, so a blended number hides",
|
|
8
|
+
"whichever component is about to bite you. cache_write/cache_read are the",
|
|
9
|
+
"multipliers this vendor publishes against `input` (1.25x / 0.1x) written out",
|
|
10
|
+
"as absolute rates so nothing has to remember the ratio.",
|
|
11
|
+
"",
|
|
12
|
+
"`as_of` is load-bearing: a table older than 90 days makes every dollar",
|
|
13
|
+
"figure print a staleness warning. Bump the date only when you have checked",
|
|
14
|
+
"the published rates.",
|
|
15
|
+
"",
|
|
16
|
+
"`providers` (v0.50.0) is the same four-rate shape for a NON-CLAUDE endpoint",
|
|
17
|
+
"reached through `orc extra`. Every `models` map SHIPS EMPTY, on purpose, and",
|
|
18
|
+
"that is not an oversight: between this package's cutoff and any release the",
|
|
19
|
+
"lineup moves (DeepSeek V3.2 -> V4, Kimi K2 -> K2.7, GLM 4.6 -> 5.2), several",
|
|
20
|
+
"of these vendors price by PEAK/OFF-PEAK window or by tier, one is",
|
|
21
|
+
"subscription-only, and one is a passthrough with a surcharge. A shipped",
|
|
22
|
+
"figure that is wrong by 2x is worse than no figure, because a wrong figure",
|
|
23
|
+
"gets believed. So ORC ships the MECHANISM and no dollar figure without a",
|
|
24
|
+
"rate you put there yourself.",
|
|
25
|
+
"",
|
|
26
|
+
"Fill one in with `orc extra rates` — it lists every provider/model pair your",
|
|
27
|
+
"own traces have actually used, prints the JSON to paste, and says which ones",
|
|
28
|
+
"it has no rate for. A pair with no rate reports `usd: null` forever, never a",
|
|
29
|
+
"guess and never a family fallback."
|
|
30
|
+
],
|
|
31
|
+
"as_of": "2026-08-01",
|
|
32
|
+
"currency": "USD",
|
|
33
|
+
"unit": "per_million_tokens",
|
|
34
|
+
"server_tools": {
|
|
35
|
+
"web_search_requests": 0.01,
|
|
36
|
+
"web_fetch_requests": 0.0
|
|
37
|
+
},
|
|
38
|
+
"models": {
|
|
39
|
+
"claude-opus-5": {
|
|
40
|
+
"input": 15,
|
|
41
|
+
"cache_write": 18.75,
|
|
42
|
+
"cache_read": 1.5,
|
|
43
|
+
"output": 75
|
|
44
|
+
},
|
|
45
|
+
"claude-opus-4-8": {
|
|
46
|
+
"input": 15,
|
|
47
|
+
"cache_write": 18.75,
|
|
48
|
+
"cache_read": 1.5,
|
|
49
|
+
"output": 75
|
|
50
|
+
},
|
|
51
|
+
"claude-opus-4-7": {
|
|
52
|
+
"input": 15,
|
|
53
|
+
"cache_write": 18.75,
|
|
54
|
+
"cache_read": 1.5,
|
|
55
|
+
"output": 75
|
|
56
|
+
},
|
|
57
|
+
"claude-fable-5": {
|
|
58
|
+
"input": 15,
|
|
59
|
+
"cache_write": 18.75,
|
|
60
|
+
"cache_read": 1.5,
|
|
61
|
+
"output": 75
|
|
62
|
+
},
|
|
63
|
+
"claude-sonnet-5": {
|
|
64
|
+
"input": 3,
|
|
65
|
+
"cache_write": 3.75,
|
|
66
|
+
"cache_read": 0.3,
|
|
67
|
+
"output": 15
|
|
68
|
+
},
|
|
69
|
+
"claude-sonnet-4-6": {
|
|
70
|
+
"input": 3,
|
|
71
|
+
"cache_write": 3.75,
|
|
72
|
+
"cache_read": 0.3,
|
|
73
|
+
"output": 15
|
|
74
|
+
},
|
|
75
|
+
"claude-haiku-4-5": {
|
|
76
|
+
"input": 1,
|
|
77
|
+
"cache_write": 1.25,
|
|
78
|
+
"cache_read": 0.1,
|
|
79
|
+
"output": 5
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"families": {
|
|
83
|
+
"opus": {
|
|
84
|
+
"input": 15,
|
|
85
|
+
"cache_write": 18.75,
|
|
86
|
+
"cache_read": 1.5,
|
|
87
|
+
"output": 75
|
|
88
|
+
},
|
|
89
|
+
"fable": {
|
|
90
|
+
"input": 15,
|
|
91
|
+
"cache_write": 18.75,
|
|
92
|
+
"cache_read": 1.5,
|
|
93
|
+
"output": 75
|
|
94
|
+
},
|
|
95
|
+
"sonnet": {
|
|
96
|
+
"input": 3,
|
|
97
|
+
"cache_write": 3.75,
|
|
98
|
+
"cache_read": 0.3,
|
|
99
|
+
"output": 15
|
|
100
|
+
},
|
|
101
|
+
"haiku": {
|
|
102
|
+
"input": 1,
|
|
103
|
+
"cache_write": 1.25,
|
|
104
|
+
"cache_read": 0.1,
|
|
105
|
+
"output": 5
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"_plans_readme": [
|
|
109
|
+
"Quota view. A Pro/Max user does not pay per token — they burn a 5-hour",
|
|
110
|
+
"session window and a weekly ceiling. These are WEIGHTED-token capacities",
|
|
111
|
+
"(cache reads counted at their 0.1x weight), because that is the unit the",
|
|
112
|
+
"forecast can actually produce. They are approximations of a published",
|
|
113
|
+
"allowance, not a metered balance: the percentages are a magnitude, and the",
|
|
114
|
+
"renderer says so."
|
|
115
|
+
],
|
|
116
|
+
"plans": {
|
|
117
|
+
"pro": {
|
|
118
|
+
"label": "Pro",
|
|
119
|
+
"window_weighted_tokens": 900000,
|
|
120
|
+
"weekly_weighted_tokens": 9000000
|
|
121
|
+
},
|
|
122
|
+
"max5": {
|
|
123
|
+
"label": "Max 5x",
|
|
124
|
+
"window_weighted_tokens": 4500000,
|
|
125
|
+
"weekly_weighted_tokens": 45000000
|
|
126
|
+
},
|
|
127
|
+
"max20": {
|
|
128
|
+
"label": "Max 20x",
|
|
129
|
+
"window_weighted_tokens": 18000000,
|
|
130
|
+
"weekly_weighted_tokens": 180000000
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"context_windows": {
|
|
134
|
+
"claude-opus-5": 200000,
|
|
135
|
+
"claude-opus-4-8": 200000,
|
|
136
|
+
"claude-opus-4-7": 200000,
|
|
137
|
+
"claude-fable-5": 200000,
|
|
138
|
+
"claude-sonnet-5": 200000,
|
|
139
|
+
"claude-sonnet-4-6": 200000,
|
|
140
|
+
"claude-haiku-4-5": 200000
|
|
141
|
+
},
|
|
142
|
+
"providers": {
|
|
143
|
+
"_note": "Rates are USD per MILLION tokens, four per model, never one. `models` maps a provider's own model id EXACTLY as the endpoint reports it.",
|
|
144
|
+
"deepseek": {
|
|
145
|
+
"label": "DeepSeek",
|
|
146
|
+
"caveat": "Prices differ by PEAK and OFF-PEAK window, so one number cannot be right for both. Record the window you actually run in.",
|
|
147
|
+
"models": {}
|
|
148
|
+
},
|
|
149
|
+
"zai": {
|
|
150
|
+
"label": "Z.ai / GLM",
|
|
151
|
+
"caveat": "The current flagship is sold inside a Coding Plan subscription rather than per token, which a per-token table cannot express. Leave it empty and read your invoice.",
|
|
152
|
+
"models": {}
|
|
153
|
+
},
|
|
154
|
+
"moonshot": {
|
|
155
|
+
"label": "Moonshot / Kimi",
|
|
156
|
+
"caveat": null,
|
|
157
|
+
"models": {}
|
|
158
|
+
},
|
|
159
|
+
"minimax": {
|
|
160
|
+
"label": "MiniMax",
|
|
161
|
+
"caveat": null,
|
|
162
|
+
"models": {}
|
|
163
|
+
},
|
|
164
|
+
"qwen": {
|
|
165
|
+
"label": "Alibaba / Qwen",
|
|
166
|
+
"caveat": "Tiered by request size, so a single rate is an average rather than a price.",
|
|
167
|
+
"models": {}
|
|
168
|
+
},
|
|
169
|
+
"mimo": {
|
|
170
|
+
"label": "Xiaomi / MiMo",
|
|
171
|
+
"caveat": null,
|
|
172
|
+
"models": {}
|
|
173
|
+
},
|
|
174
|
+
"stepfun": {
|
|
175
|
+
"label": "StepFun",
|
|
176
|
+
"caveat": null,
|
|
177
|
+
"models": {}
|
|
178
|
+
},
|
|
179
|
+
"siliconflow": {
|
|
180
|
+
"label": "SiliconFlow",
|
|
181
|
+
"caveat": null,
|
|
182
|
+
"models": {}
|
|
183
|
+
},
|
|
184
|
+
"openrouter": {
|
|
185
|
+
"label": "OpenRouter",
|
|
186
|
+
"caveat": "A PASSTHROUGH: the rate is the upstream provider's, plus a surcharge on credit purchase. It also reroutes between providers by default while preserving the model id, so the model id alone does not identify who you paid.",
|
|
187
|
+
"models": {}
|
|
188
|
+
},
|
|
189
|
+
"ollama": {
|
|
190
|
+
"label": "Ollama (local)",
|
|
191
|
+
"caveat": "Local inference has no per-token price. Zero here would be true of the API bill and false of the electricity and the hardware, so it is left empty rather than asserted as free.",
|
|
192
|
+
"models": {}
|
|
193
|
+
},
|
|
194
|
+
"custom": {
|
|
195
|
+
"label": "Custom endpoint",
|
|
196
|
+
"caveat": null,
|
|
197
|
+
"models": {}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|