@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,225 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orc-budget
|
|
3
|
+
description: >
|
|
4
|
+
What a run will cost, in the unit YOU are billed in. Use for "/orc-budget",
|
|
5
|
+
"what will this plan cost", "which lane is cheaper here", "how much did that run
|
|
6
|
+
burn", "will this hit my limit". Given a PLAN — not a sentence — it forecasts a
|
|
7
|
+
token vector (fresh input, cache write, cache read, output kept separate) per
|
|
8
|
+
scoring band, then renders it four ways: tokens, dollars from a dated price
|
|
9
|
+
table, percent of your 5-hour session window, and context-window risk per task.
|
|
10
|
+
Every number is a range with a sample count, joined from Claude Code's own usage
|
|
11
|
+
transcripts and ORC's traces. It never blocks a run and never invents a figure.
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ORC-BUDGET
|
|
15
|
+
|
|
16
|
+
The lane that **measures** — forwards.
|
|
17
|
+
|
|
18
|
+
Account-level burn tracking is solved: `/usage`, cc-budget, eight commercial
|
|
19
|
+
dashboards. What none of them can answer is the only question that changes a
|
|
20
|
+
decision: **given THIS plan — 14 tasks, 4 waves, top score 78 — what will it burn,
|
|
21
|
+
and what does each lane burn instead?**
|
|
22
|
+
|
|
23
|
+
**The one-sentence contract: a forecast is a RANGE WITH A SAMPLE COUNT, never one
|
|
24
|
+
number, and never a figure ORC did not measure.**
|
|
25
|
+
|
|
26
|
+
## Tokens are the unit of truth. Everything else is derived.
|
|
27
|
+
|
|
28
|
+
The core object is a **token vector**, never a scalar. Four kinds, because they
|
|
29
|
+
price and behave completely differently:
|
|
30
|
+
|
|
31
|
+
| Kind | Typical share | Relative price | Why it must stay separate |
|
|
32
|
+
|---|---|---|---|
|
|
33
|
+
| `input` | small | 1× | fresh, uncached prompt |
|
|
34
|
+
| `cache_write` | medium | ~1.25× | writing the cache — a real cost |
|
|
35
|
+
| `cache_read` | **usually the largest** | ~0.1× | nearly free, and it dominates the raw count |
|
|
36
|
+
| `output` | small | ~5× | the most expensive tokens in the run |
|
|
37
|
+
|
|
38
|
+
A forecast of "407k tokens" hides that ~80% of it is cache reads costing a tenth
|
|
39
|
+
of list. A forecast of "$7.02" hides that a Max user does not pay it. **So the CLI
|
|
40
|
+
computes the vector once and renders it four ways.** Never a blended token count as
|
|
41
|
+
the headline; `cache_read` is always separable.
|
|
42
|
+
|
|
43
|
+
Plus one non-token line, because it bills separately and is in the data:
|
|
44
|
+
`server_tool_use` → web search and web fetch requests.
|
|
45
|
+
|
|
46
|
+
## Four views of the same vector (`budget_units`, default `auto`)
|
|
47
|
+
|
|
48
|
+
| View | Unit | Who it is for |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| **tokens** | in / cache-write / cache-read / out, per band | everyone — always shown |
|
|
51
|
+
| **usd** | dollars from a dated table | API-billed, enterprise |
|
|
52
|
+
| **quota** | % of the 5-hour window, % of the weekly limit | **Pro / Max — most users** |
|
|
53
|
+
| **context** | peak prompt per dispatch vs its window | shown when a task is at risk |
|
|
54
|
+
|
|
55
|
+
**A dollar figure is the wrong headline for most Claude Code users.** On Pro or Max
|
|
56
|
+
you do not pay per token — you burn a 5-hour session window and a weekly ceiling.
|
|
57
|
+
"$7.02" means nothing to that user; "18% of your 5-hour window" means everything.
|
|
58
|
+
`budget_units: auto` picks from `budget_plan`; `--as tokens|usd|quota|context|all`
|
|
59
|
+
overrides.
|
|
60
|
+
|
|
61
|
+
## Context pressure — a forecast output nobody else has
|
|
62
|
+
|
|
63
|
+
A run does not only cost money. It can hit **compaction**, which silently degrades
|
|
64
|
+
quality and is invisible in every spend tool. ORC can forecast it because ORC
|
|
65
|
+
composes the slice, and the corpus records the **peak prompt** of every past
|
|
66
|
+
dispatch. A task forecast above 90% of its model's window is reported before the
|
|
67
|
+
wave, not after the damage — with three options: split the task, drop a doc nobody
|
|
68
|
+
uses from the slice (`orc wiki usage`), or raise the band so a larger-window model
|
|
69
|
+
takes it.
|
|
70
|
+
|
|
71
|
+
## Where the numbers come from — and the join is the moat
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
transcript → isSidechain block, model, effort, 4 token counts, peak, timestamp
|
|
75
|
+
ORC trace → DISPATCH line: task, score, band, expect=<model>/<effort>,
|
|
76
|
+
the wiki: continuation, RETURN with actual_model
|
|
77
|
+
join key → the run's time window + sidechain grouping + model match
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Claude Code writes a JSONL transcript per session under
|
|
81
|
+
`~/.claude/projects/<slug>/`. That gives the **cost**. ORC's own traces give the
|
|
82
|
+
**meaning** — which task, which band, which model was expected, whether it was
|
|
83
|
+
requeued. **Neither is enough alone, and nobody else has the right-hand column.**
|
|
84
|
+
Details and honesty rules: `references/corpus.md`.
|
|
85
|
+
|
|
86
|
+
## Honesty rules — all six, always
|
|
87
|
+
|
|
88
|
+
1. **No transcripts?** Forecast in **tokens only** from ORC trace metadata and
|
|
89
|
+
print *"dollars and quota unavailable: no local usage data"*. Never invent a
|
|
90
|
+
price.
|
|
91
|
+
2. **`unattributed` is ALWAYS printed**, including when zero. A sidechain block that
|
|
92
|
+
could not be joined to a task counts into it and is never silently dropped.
|
|
93
|
+
3. **Cache reads get their own p50/p90**, not a share of a blended number. They are
|
|
94
|
+
the most variable component.
|
|
95
|
+
4. **No dollar figure without a dated price table** (`budget_price_table`; default
|
|
96
|
+
the shipped one). Older than 90 days → a staleness warning beside every figure.
|
|
97
|
+
**No quota figure without a known plan** — `budget_plan` is asked ONCE and
|
|
98
|
+
stored, because a wrong guess rendered as a percentage is worse than no
|
|
99
|
+
percentage.
|
|
100
|
+
5. **A band below `budget_min_samples` (default 5) is printed as low-confidence.**
|
|
101
|
+
The top of the range is soft and the output says so.
|
|
102
|
+
|
|
103
|
+
6. **A foreign dispatch is priced from its OWN dated table, or not at all**
|
|
104
|
+
(v0.50.0). A task can execute on a non-Claude worker
|
|
105
|
+
(`_shared/extra-dispatch.md`); its four token kinds arrive the same way and
|
|
106
|
+
are never blended, but an Anthropic rate applied to somebody else's bill is
|
|
107
|
+
fiction — so `bin/pricing.json`'s `providers` block is the only source, and
|
|
108
|
+
**every `models` map in it ships EMPTY on purpose**. Several of these vendors
|
|
109
|
+
price by peak window or by tier, one sells a subscription rather than tokens,
|
|
110
|
+
and one is a passthrough with a surcharge; a shipped figure wrong by 2x is
|
|
111
|
+
worse than none, because a wrong figure gets believed. `orc extra rates`
|
|
112
|
+
lists the pairs your traces actually used and prints the JSON to paste.
|
|
113
|
+
Until then: **`usd` reads as an em dash, never zero and never an estimate.**
|
|
114
|
+
|
|
115
|
+
Two further foreign-only distinctions, and collapsing either is a wrong
|
|
116
|
+
number rather than a rounder one:
|
|
117
|
+
|
|
118
|
+
- **`usage: null` is not `{0,0,0,0}`.** Engine `cli` frequently reports no
|
|
119
|
+
token counts. Null means *unknown*; four zeros would mean *free*. Carry the
|
|
120
|
+
denominator (how many dispatches the vector came from) into every total.
|
|
121
|
+
- **`cache_write: 0` on engine `api` IS a measurement.** An
|
|
122
|
+
OpenAI-compatible endpoint caches implicitly and has no write charge to
|
|
123
|
+
report. That zero is true and must not be smoothed into an average.
|
|
124
|
+
|
|
125
|
+
`orc extra stats --json` computes all of this per profile per band. Render
|
|
126
|
+
it; do not recompute it.
|
|
127
|
+
|
|
128
|
+
## It refuses a sentence
|
|
129
|
+
|
|
130
|
+
`orc budget forecast` takes a **plan file**. Forecasting from a request in words is
|
|
131
|
+
guessing, and a guess that looks computed is worse than no answer — the same reason
|
|
132
|
+
`/orc-route` is plan-only. No `- id:` task blocks → exit 3 with the reason and a
|
|
133
|
+
pointer to `/orc-plan`.
|
|
134
|
+
|
|
135
|
+
**With no history at all:**
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
BUDGET · no forecast
|
|
139
|
+
0 joinable dispatches in .claude/orc/logs/ and no usable transcripts.
|
|
140
|
+
I will not invent numbers. Run /orc or /orc-mini once, then ask again.
|
|
141
|
+
A floor from the public price table only: orc budget forecast --naive
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Phases
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
U0 preflight (silent) orc budget rates --json (lazily calibrates on a miss)
|
|
150
|
+
U1 input a plan file · a run slug · "just the rates"
|
|
151
|
+
U2 forecast / actual the CLI computes; this lane RENDERS and explains
|
|
152
|
+
U3 decide ONE question: which lane · split a task · proceed
|
|
153
|
+
U4 record one end-of-run trace packet
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**U2 does no arithmetic.** `orc budget forecast|actual|rates` are the only engine —
|
|
157
|
+
this skill never re-derives a band, a price, a percentile or a total. Same rule as
|
|
158
|
+
the wiki tier and the DIY stepper: a second idea of the number is drift no lint
|
|
159
|
+
could see.
|
|
160
|
+
|
|
161
|
+
**U0 opens the run properly.** Write `log_dir/.current` =
|
|
162
|
+
`run-budget-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that name
|
|
163
|
+
in the SAME step. Both, or neither. A lane the protocol declares must be a lane
|
|
164
|
+
something OPENS, or every counting tool reports it as a permanent zero.
|
|
165
|
+
|
|
166
|
+
**U1 asks `budget_plan` ONCE** if it is `auto`, as a single line, and stores it:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
Which plan are you on? It changes the primary unit, and I will not guess.
|
|
170
|
+
1 Max 20x 2 Max 5x 3 Pro 4 API (billed per token) 5 Skip — tokens only
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**U3 is a real question, not a summary.** The forecast exists to change a decision:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
1 Proceed on /orc 1.23M raw · 564k weighted · 18% of a window
|
|
177
|
+
2 Run /orc-mini instead 0.41M raw · 188k weighted · 6% (no review/verify phase)
|
|
178
|
+
3 Split T12 it forecasts 189k of a 200k window — likely to compact
|
|
179
|
+
4 Your own — re-plan smaller, or just show me the numbers again
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Where this shows up in `/orc`
|
|
183
|
+
|
|
184
|
+
- **Phase 2 intake** — the forecast at the batch-pause confirmation, so the pause
|
|
185
|
+
schedule doubles as a budget checkpoint.
|
|
186
|
+
- **Every pause** — spend so far vs forecast to here, in the primary unit.
|
|
187
|
+
- **`/orc-route`** — a cost column per lane, so routing stops being qualitative.
|
|
188
|
+
- **Ship** — actual vs forecast, fed to `/orc-retro`.
|
|
189
|
+
- **Context risk** — a task above 90% of its window is reported to the planner
|
|
190
|
+
BEFORE the wave.
|
|
191
|
+
|
|
192
|
+
**It never blocks a run.** Advisory always. The one hard stop in this area is the
|
|
193
|
+
existing `run_budget_dispatches` gate, which counts dispatches, not tokens, and is
|
|
194
|
+
not part of this lane.
|
|
195
|
+
|
|
196
|
+
## Behavior trace (always on)
|
|
197
|
+
|
|
198
|
+
Follow `../orc/references/trace-protocol.md`. Lane name `budget`.
|
|
199
|
+
**Single-dispatch lane: exactly ONE end-of-run packet** to
|
|
200
|
+
`orc-trace-writer-haiku-4-5` after U4 and BEFORE `.current` is deleted. It carries
|
|
201
|
+
`run_meta`, the events (probe, forecast, the units rendered) and the U3 answer as
|
|
202
|
+
`decisions`. A run that ends with
|
|
203
|
+
`zero new trace lines is a protocol violation`.
|
|
204
|
+
|
|
205
|
+
Zero new agents. There is nothing to dispatch: the whole forecast is deterministic.
|
|
206
|
+
|
|
207
|
+
## How this lane fails — and the rule that prevents each
|
|
208
|
+
|
|
209
|
+
| Failure | Prevention |
|
|
210
|
+
|---|---|
|
|
211
|
+
| One confident number | A range with a sample count, always |
|
|
212
|
+
| A blended token total as the headline | Four kinds, always separable |
|
|
213
|
+
| A dollar figure for a Max user | `budget_units: auto` off `budget_plan` |
|
|
214
|
+
| A price from an undated table | Dated table, 90-day staleness warning |
|
|
215
|
+
| A quota percent from a guessed plan | Asked once, stored, never inferred |
|
|
216
|
+
| Tokens silently dropped from the total | `unattributed` always printed |
|
|
217
|
+
| A forecast from a sentence | Plan-only, exit 3 with the reason |
|
|
218
|
+
| It blocks a run | Advisory always |
|
|
219
|
+
| The skill recomputes a band | The CLI is the only engine |
|
|
220
|
+
|
|
221
|
+
## Rules this lane always keeps
|
|
222
|
+
|
|
223
|
+
Never one number · never a blended headline · never an invented price · never a
|
|
224
|
+
guessed plan · never drop `unattributed` · never forecast from prose · never block ·
|
|
225
|
+
never compute what the CLI computes.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Reference — the corpus, the join, and what may be claimed from it
|
|
2
|
+
|
|
3
|
+
Loaded at U2 when a number needs explaining. Nothing here is computed by the
|
|
4
|
+
skill — `orc budget calibrate` owns all of it. This file exists so a user can be
|
|
5
|
+
told WHY a number is what it is, and where it stops being trustworthy.
|
|
6
|
+
|
|
7
|
+
## The two halves
|
|
8
|
+
|
|
9
|
+
**Half one — the cost.** Claude Code writes a JSONL transcript per session at
|
|
10
|
+
`~/.claude/projects/<project-slug>/*.jsonl`, one line per message. Every assistant
|
|
11
|
+
line carries:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
"usage": { "input_tokens": 2, "cache_creation_input_tokens": 44439,
|
|
15
|
+
"cache_read_input_tokens": 18432, "output_tokens": 582,
|
|
16
|
+
"server_tool_use": { "web_search_requests": 0, "web_fetch_requests": 0 } }
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
and the LINE carries `model`, `timestamp`, `cwd`, `sessionId` and — the field that
|
|
20
|
+
makes this work — **`isSidechain`**, which is how a subagent dispatch is told apart
|
|
21
|
+
from the main thread.
|
|
22
|
+
|
|
23
|
+
**Half two — the meaning.** ORC's own trace: the `DISPATCH` line's task, the
|
|
24
|
+
`SCORE` line's band and facet vector, `expect=<model>/<effort>`, the `wiki:`
|
|
25
|
+
continuation, `RETURN`'s `actual_model`, `OUTCOME`'s retries and requeues.
|
|
26
|
+
|
|
27
|
+
## The join
|
|
28
|
+
|
|
29
|
+
1. Group contiguous `isSidechain` lines in one session on one model into **one
|
|
30
|
+
dispatch**. A gap over 20 minutes starts a new group.
|
|
31
|
+
2. For each trace, take the run's own time window from its first and last
|
|
32
|
+
timestamped lines.
|
|
33
|
+
3. Match each `DISPATCH` line to the nearest unclaimed group in that window whose
|
|
34
|
+
model equals the dispatch's expected model.
|
|
35
|
+
4. Anything left over goes to **`unattributed`**.
|
|
36
|
+
|
|
37
|
+
**Timestamps come from two clocks and both are honoured as written:** a trace line
|
|
38
|
+
carries LOCAL wall clock, a transcript line carries ISO UTC. Both resolve to the
|
|
39
|
+
same instant on the same machine. A join that silently treated one as the other
|
|
40
|
+
would be off by the timezone offset and quietly attribute nothing.
|
|
41
|
+
|
|
42
|
+
## What `unattributed` really means
|
|
43
|
+
|
|
44
|
+
It is not an error and it is not waste. Common, legitimate causes:
|
|
45
|
+
|
|
46
|
+
- the main thread's own tokens (never a sidechain, never joined to a task)
|
|
47
|
+
- a dispatch from a lane that writes no trace (`/orc-retro`, `/orc-explain`)
|
|
48
|
+
- an ad-hoc read-only recon dispatch (`/orc-quick`, `/orc-brainstorm`,
|
|
49
|
+
`/orc-boundary`) — deliberately unpinned, so the hook writes no `SPAWN`
|
|
50
|
+
- a session where `.current` was lost mid-run
|
|
51
|
+
|
|
52
|
+
**It is always printed anyway.** A total that quietly excludes tokens somebody paid
|
|
53
|
+
for is the one number in this lane that must never be silently wrong.
|
|
54
|
+
|
|
55
|
+
## What may be claimed, and what may not
|
|
56
|
+
|
|
57
|
+
| May be claimed | May NOT be claimed |
|
|
58
|
+
|---|---|
|
|
59
|
+
| "This band cost this much, over N samples" | "This run will cost exactly X" |
|
|
60
|
+
| "Cache reads were 74% of raw tokens" | "You will be charged $X" — unless `budget_plan: api` |
|
|
61
|
+
| "This task's peak prompt was 189k of 200k" | "This task will compact" — it is a forecast |
|
|
62
|
+
| "2 bands have fewer than 5 samples" | Filling a thin band from the band next door |
|
|
63
|
+
| "Weighted 564k / raw 1.23M" | One of the two on its own |
|
|
64
|
+
|
|
65
|
+
**Why report both weighted and raw:** raw is what fills a context window and a rate
|
|
66
|
+
limit; weighted (cache reads at 0.1×) is what fills an invoice. They move
|
|
67
|
+
differently, and a single number hides whichever one is about to bite.
|
|
68
|
+
|
|
69
|
+
## The price table
|
|
70
|
+
|
|
71
|
+
`bin/pricing.json`, or whatever `budget_price_table` points at. Four rates per
|
|
72
|
+
model — never one, for the same reason the vector has four components. Dated:
|
|
73
|
+
`as_of`, and older than 90 days puts a staleness warning next to every dollar
|
|
74
|
+
figure. **Never patch a rate to make a forecast look right.**
|
|
75
|
+
|
|
76
|
+
The `plans` block holds WEIGHTED-token capacities for the quota view. They
|
|
77
|
+
approximate a published allowance; they are not a metered balance. The renderer says
|
|
78
|
+
so, and that honesty is why the quota view is usable at all.
|
|
79
|
+
|
|
80
|
+
## Feeding `/orc-retro`
|
|
81
|
+
|
|
82
|
+
`orc budget actual <run-slug>` emits per-band forecast-vs-actual with a diff
|
|
83
|
+
percent. `/orc-retro` already calibrates the score→model table from process signals
|
|
84
|
+
(retries, requeues, downgrades); this adds the cost signal, so a band can be judged
|
|
85
|
+
on what it COST as well as on how smoothly it ran. A band that always lands inside
|
|
86
|
+
p90 is calibrated; one that lands at +151% twice has a facet problem, not a price
|
|
87
|
+
problem.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Build your own `/orc-challenge` cycle
|
|
2
|
+
|
|
3
|
+
This is the maintainer's guide to the lane. If you just want to use it, run
|
|
4
|
+
`/orc-challenge` and answer the seven intake questions.
|
|
5
|
+
|
|
6
|
+
## The one design decision everything else follows from
|
|
7
|
+
|
|
8
|
+
**The judge and the fixer must never share a context.**
|
|
9
|
+
|
|
10
|
+
Everything unusual about this lane is downstream of that one sentence:
|
|
11
|
+
|
|
12
|
+
- there is no in-session repair loop, because a session that wrote the fix would
|
|
13
|
+
grade its own homework
|
|
14
|
+
- the judge's dispatch slice is paths and ids only, because a summary of what
|
|
15
|
+
changed is written by the party with an interest in passing
|
|
16
|
+
- PASS is computed by the CLI, because a judge that CAN pass something can be
|
|
17
|
+
talked into passing something
|
|
18
|
+
- the stop is the deliverable, not an interruption
|
|
19
|
+
|
|
20
|
+
If you are tempted to add a `challenge_same_session` escape hatch: that config
|
|
21
|
+
key is how the premise dies. It is deliberately not there.
|
|
22
|
+
|
|
23
|
+
## The shape of one iteration
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
C2 lint (free) → C3 the council → C4 judge → C5 record (the CLI decides)
|
|
27
|
+
(parallel, <=3) ├── PASS → C7 final report
|
|
28
|
+
└── FAIL → C6 advise → C8 STOP
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
One iteration is C2 → C8. The user then fixes in a **different session** and
|
|
32
|
+
comes back, and the whole thing runs again with the carried findings.
|
|
33
|
+
|
|
34
|
+
## The eight agents, and why each is pinned where it is
|
|
35
|
+
|
|
36
|
+
| Agent | Effort | Why that effort |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| `orc-challenge-judge-opus-5-high` | high | D2 is the only dimension no computer can reach, and it is the expensive one |
|
|
39
|
+
| `orc-challenge-advisor-opus-5-med` | medium | grouping twelve findings into three causes is pattern work, not deep reasoning |
|
|
40
|
+
| `orc-challenge-reader-opus-5-low` | **low, on purpose** | a harder-thinking reader reasons AROUND the gaps D4 exists to find. A stronger configuration is a WORSE instrument |
|
|
41
|
+
| `orc-challenge-contrarian-opus-5-high` | high | a shallow contrarian returns the three surface complaints the free lint already caught |
|
|
42
|
+
| `orc-challenge-outsider-opus-5-low` | **low, on purpose** | a harder-thinking outsider reasons its way AROUND an unexplained acronym and reports the document is fine |
|
|
43
|
+
| `orc-challenge-executor-opus-5-med` | medium | pattern work against a concrete artifact — the same class as the advisor |
|
|
44
|
+
| `orc-challenge-principles-opus-5-high` | high | rebuilding a problem statement from the ground up is the deepest reasoning in the lane |
|
|
45
|
+
| `orc-challenge-expansionist-opus-5-med` | medium | pattern work again, pointed at upside instead of at defect |
|
|
46
|
+
|
|
47
|
+
All eight are `claude-opus-5`, so **`opus5_only` is a no-op for this lane** —
|
|
48
|
+
zero new agent pairs, no `LEGACY_KEYS` entry, no rename churn. The lane is
|
|
49
|
+
unaffected, not exempt.
|
|
50
|
+
|
|
51
|
+
**Effort here is a MEASUREMENT choice, not a cost choice.** That is why there is
|
|
52
|
+
no model or effort config key: a key that lets `outsider: low` be tuned is a key
|
|
53
|
+
that lets the instrument be broken.
|
|
54
|
+
|
|
55
|
+
## The council (v0.49.1)
|
|
56
|
+
|
|
57
|
+
Five of those eight are new, and the design is in `references/council.md`. Three
|
|
58
|
+
sentences carry it:
|
|
59
|
+
|
|
60
|
+
- **A lens raises; only the judge resolves.**
|
|
61
|
+
- **ORC proposes the council; the user picks it.** `--council` has no default and
|
|
62
|
+
`init` refuses by name — **a lane that picks its own council has broken this
|
|
63
|
+
contract.**
|
|
64
|
+
- **Two lenses never touch the pass gate.** The expansionist returns
|
|
65
|
+
`opportunity`, the first-principles thinker returns `premise`; neither has a
|
|
66
|
+
severity, and forcing either to have one would make it lie.
|
|
67
|
+
|
|
68
|
+
The gate that makes five extra reviewers safe is `council_coverage_pct`, derived
|
|
69
|
+
by `orc challenge record` from `iteration-NN/council/*.json` on disk — **not from
|
|
70
|
+
the judge's account of them.** The judge cannot shrink the set by omission.
|
|
71
|
+
|
|
72
|
+
They are pinned and dispatched BY NAME for one reason beyond the trace hook: **a
|
|
73
|
+
verdict must be attributable.** `/orc-retro` can then mine downgrade behaviour on
|
|
74
|
+
judging runs like any other lane.
|
|
75
|
+
|
|
76
|
+
## Adding a lens
|
|
77
|
+
|
|
78
|
+
1. `references/council.md` — the roster row, what it is for, how it fails, and
|
|
79
|
+
why its effort is what it is.
|
|
80
|
+
2. `bin/cli.js` — `CHALLENGE_LENSES` and `CHALLENGE_LENS_META`. Pick a prefix
|
|
81
|
+
nothing else uses; prefixes are the raiser's signature and `record` gates on
|
|
82
|
+
them.
|
|
83
|
+
3. The agent file, named in `bin/verify-package.js`, with a `MODEL-MAPPING.md`
|
|
84
|
+
row that states the reason for the effort.
|
|
85
|
+
4. A golden test comparing 1 and 2. The roster is documented drift the token
|
|
86
|
+
lint cannot see, because it is a list, not a token.
|
|
87
|
+
|
|
88
|
+
Decide its CLASS first. If it cannot honestly carry a `serves`, it is not a
|
|
89
|
+
finding lens and it must never enter `findings[]`.
|
|
90
|
+
|
|
91
|
+
## Adding a dimension
|
|
92
|
+
|
|
93
|
+
1. `references/dimensions.md` — the definition, the evidence a finding must
|
|
94
|
+
carry, and which agent produces it.
|
|
95
|
+
2. `bin/cli.js` — `CHALLENGE_DIMS` and the `--dimensions` validator.
|
|
96
|
+
3. `references/kinds.md` — whether any kind selects it by default.
|
|
97
|
+
4. A golden test comparing 1 and 2. The enum is documented drift the token lint
|
|
98
|
+
cannot see, because it is a list, not a token.
|
|
99
|
+
|
|
100
|
+
## Adding a lint check
|
|
101
|
+
|
|
102
|
+
1. `bin/cli.js` — the check itself, in `challengeLint`. Emit `L-###` with a
|
|
103
|
+
dimension and a line number.
|
|
104
|
+
2. `references/plain-english.md` — the row in the table, and the word list if it
|
|
105
|
+
has one.
|
|
106
|
+
3. A fixture in `test/`.
|
|
107
|
+
|
|
108
|
+
Keep both honesty rules intact: it is a signal, not a verdict, and it is
|
|
109
|
+
heuristic. A lint that starts blocking is a lint that starts being argued with.
|
|
110
|
+
|
|
111
|
+
## Adding an artifact kind
|
|
112
|
+
|
|
113
|
+
`references/kinds.md` and `CHALLENGE_KINDS` in `bin/cli.js`. A kind is a
|
|
114
|
+
PROPOSAL of a dimension set and a template hint — never a silent application of
|
|
115
|
+
one.
|
|
116
|
+
|
|
117
|
+
## What this lane must never grow
|
|
118
|
+
|
|
119
|
+
- **an in-session fix.** See above.
|
|
120
|
+
- **a hard loop cap.** Each turn is a separate human sitting down to work.
|
|
121
|
+
`stalled` measures instead, and offers three real options.
|
|
122
|
+
- **a model or effort config key.** That is the pinned agents' job, and the
|
|
123
|
+
efforts are measurements.
|
|
124
|
+
- **a `challenge_council` config key.** A global default roster would silently
|
|
125
|
+
answer the one question the council exists to ask.
|
|
126
|
+
- **a `block` mode on any council output.** Opportunities and premises never
|
|
127
|
+
gate; the finding lenses gate through the EXISTING severity bar and nothing
|
|
128
|
+
else.
|
|
129
|
+
- **auto-severity from corroboration.** Two lenses agreeing is a signal, and
|
|
130
|
+
churn is a signal, not a verdict.
|
|
131
|
+
- **a `block` mode on `challenge_gate`.** The `/orc-pact` precedent: the payoff
|
|
132
|
+
is knowing, not gating.
|
|
133
|
+
- **a second definition of "a plan", "a state", or "fresh".** If a state exists,
|
|
134
|
+
the CLI computes it and everything else renders it.
|
|
135
|
+
|
|
136
|
+
## Reading order for a new maintainer
|
|
137
|
+
|
|
138
|
+
`references/intake.md` (it defines what every later file grades against) →
|
|
139
|
+
`council.md` → `sealed-slice.md` → `rubric.md` → `conservation.md` →
|
|
140
|
+
`cycle-state.md` → `fix-brief.md`. Then `examples/tsd-two-iterations.md` for the
|
|
141
|
+
whole thing end to end, and `examples/council-full-roster.md` for a run where
|
|
142
|
+
the first-principles thinker lands a premise challenge and the goal moves.
|