@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,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* fixtures/settings.js — canned data for `orc ui --fixtures`.
|
|
3
|
+
The full config list, including a SHADOWED key: you cannot design the lock
|
|
4
|
+
and its explanation against a config where nothing is shadowed.
|
|
5
|
+
|
|
6
|
+
THE RULE FOR EVERY FILE IN HERE: carry ONE OF EVERY STATE, including the
|
|
7
|
+
ugly ones. You cannot DESIGN a STALE chip on a fresh wiki, and a state
|
|
8
|
+
with no fixture is a state nobody has ever looked at. A per-state count
|
|
9
|
+
test asserts this, so a new state cannot ship without one.
|
|
10
|
+
|
|
11
|
+
Shapes MUST match what `bin/cli.js --json` really emits — a drifted
|
|
12
|
+
fixture is worse than no fixture. */
|
|
13
|
+
|
|
14
|
+
const { PROJECT } = require("./shell.js");
|
|
15
|
+
|
|
16
|
+
const config = {
|
|
17
|
+
config_path: PROJECT + "/.claude/orc.config.yaml",
|
|
18
|
+
exists: true,
|
|
19
|
+
keys: [
|
|
20
|
+
{ key: "max_wave_tasks", tier: "common", value: 4, default: 3, is_overridden: true, is_shadowed: false, shadow_reason: null, desc: "Max parallel tasks per execution wave (higher = more parallelism, more collision risk).", options: [2, 3, 4, 5], control: { kind: "int", choices: null, min: 1, max: null } },
|
|
21
|
+
{ key: "batch_pause_every", tier: "common", value: 2, default: 2, is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Waves between stop-and-continue pauses (1 = pause every wave).", options: [1, 2, 3, 4, 5], control: { kind: "int", choices: null, min: 1, max: null } },
|
|
22
|
+
{ key: "rubric_bands", tier: "common", value: 5, default: 5, is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Scoring granularity (2-5 narrow preset, 6-8 wide preset).", options: [2, 3, 4, 5, 6, 7, 8], control: { kind: "range", choices: null, min: 2, max: 8 } },
|
|
23
|
+
{ key: "pattern_findings", tier: "common", value: "on", default: "ask", is_overridden: true, is_shadowed: false, shadow_reason: null, desc: "Code-pattern gate on an FE/BE cache miss.", options: ["ask", "on", "off"], control: { kind: "enum", choices: ["ask", "on", "off"], min: null, max: null } },
|
|
24
|
+
{ key: "generate_tests", tier: "common", value: false, default: false, is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Opt-in Phase 6.5: author test cases before ship.", options: ["true", "false"], control: { kind: "enum", choices: ["true", "false"], min: null, max: null } },
|
|
25
|
+
// ON, so the whole fable5_* block below renders shadowed — the animation
|
|
26
|
+
// §6.2 calls the single best argument for the project.
|
|
27
|
+
{ key: "opus5_only", tier: "common", value: "true", default: false, is_overridden: true, is_shadowed: false, shadow_reason: null, desc: "EVERY dispatched role uses ONE model — Opus 5 — with EFFORT as the cost dial.", options: ["true", "false"], control: { kind: "enum", choices: ["true", "false"], min: null, max: null } },
|
|
28
|
+
{ key: "fable5_enabled", tier: "fable5", value: "true", default: false, is_overridden: true, is_shadowed: true, shadow_reason: "shadowed by opus5_only — every role dispatches its Opus 5 agent, so the Fable 5 override is inert", desc: "Master gate — route selected roles to Fable 5 agents.", options: ["true", "false"], control: { kind: "enum", choices: ["true", "false"], min: null, max: null } },
|
|
29
|
+
{ key: "fable5_effort", tier: "fable5", value: "medium", default: "medium", is_overridden: false, is_shadowed: true, shadow_reason: "shadowed by opus5_only — every role dispatches its Opus 5 agent, so the Fable 5 override is inert", desc: "Effort for the Fable 5 role agents.", options: ["medium", "high", "xhigh", "max"], control: { kind: "enum", choices: ["medium", "high", "xhigh", "max"], min: null, max: null } },
|
|
30
|
+
{ key: "fable5_roles", tier: "fable5", value: "[analyze, plan]", default: "[]", is_overridden: true, is_shadowed: true, shadow_reason: "shadowed by opus5_only — every role dispatches its Opus 5 agent, so the Fable 5 override is inert", desc: "Which roles use Fable 5 (CSV).", options: ["analyze", "plan", "advisor", "judge", "review"], control: { kind: "subset", choices: ["analyze", "plan", "advisor", "judge", "review"], min: null, max: null } },
|
|
31
|
+
{ key: "wiki_fresh_max", tier: "advanced", value: 10, default: 10, is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Wiki freshness: commit distance < this → FRESH.", options: null, control: { kind: "int", choices: null, min: 1, max: null } },
|
|
32
|
+
{ key: "wiki_aging_max", tier: "advanced", value: 30, default: 30, is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Wiki freshness: commit distance <= this → AGING; beyond → STALE.", options: null, control: { kind: "int", choices: null, min: 1, max: null } },
|
|
33
|
+
{ key: "log_dir", tier: "advanced", value: ".claude/orc/logs", default: ".claude/orc/logs", is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Persistent trace folder (never auto-deleted).", options: null, control: { kind: "path", choices: null, min: null, max: null } },
|
|
34
|
+
{ key: "retro_repo", tier: "advanced", value: "azure-id/orc", default: "azure-id/orc", is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "GitHub owner/repo that receives /orc-retro reports.", options: null, control: { kind: "repo", choices: null, min: null, max: null } },
|
|
35
|
+
// v0.50.0 — the nine `orc extra` keys, copied from the live registry so the
|
|
36
|
+
// shapes cannot drift. `extra_enabled` is TRUE here on purpose: an ARMED
|
|
37
|
+
// subsystem is the state that needs designing.
|
|
38
|
+
{"key": "extra_enabled", "tier": "common", "value": true, "default": false, "is_overridden": true, "is_shadowed": false, "shadow_reason": null, "desc": "Master gate for `orc extra` — dispatching a scored task to a non-Claude worker (DeepSeek, GLM, Kimi, a local Ollama, any OpenAI-/Anthropic-compatible endpoint you can name). NOTHING changes unless true, the fable5_enabled precedent. The orchestrator always stays Claude; what moves is who executes a slice. Every run that will cross the boundary PRINTS it at Phase 1 — routing work off Claude silently is the failure mode this whole subsystem is shaped around.", "options": ["true", "false"], "control": {"kind": "enum", "choices": ["true", "false"], "min": null, "max": null}},
|
|
39
|
+
{"key": "extra_roles", "tier": "common", "value": "[executor]", "default": "[executor]", "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "Which dispatched roles may go foreign (CSV). Executor only by default, deliberately: an executor's output is checked by the smoke gate, the TDD gate, the reviewer and the worktree-delta check, all of which are engine-blind — while a REVIEWER you cannot trust is worse than no reviewer at all, because it launders a finding nobody made.", "options": ["executor", "reviewer", "verifier", "analyst", "planner", "scout", "test-author", "doc-writer", "doc-checker"], "control": {"kind": "subset", "choices": ["executor", "reviewer", "verifier", "analyst", "planner", "scout", "test-author", "doc-writer", "doc-checker"], "min": null, "max": null}},
|
|
40
|
+
{"key": "extra_risk_tasks", "tier": "common", "value": "off", "default": "off", "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "Whether a task with a non-empty cited `risk[]` (auth, money, migration, security, concurrency, data-integrity) may leave Claude. OFF holds it on the Claude ladder whatever the route table says, and the preflight NAMES it as held back. ORC already refuses to send a refund-endpoint change to a cheap model; this keeps Extra from becoming the hole in that rule.", "options": ["off", "on"], "control": {"kind": "enum", "choices": ["off", "on"], "min": null, "max": null}},
|
|
41
|
+
{"key": "extra_on_failure", "tier": "common", "value": "fallback", "default": "fallback", "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "What an unreachable endpoint, a 401, a 429 past backoff, a timeout or a malformed return does. `fallback` re-dispatches the task to the Claude band it would have had, ANNOUNCED, and the run continues. `stop` is for people who would rather stop than silently start paying Anthropic rates. A failed foreign dispatch is never a dead run either way.", "options": ["fallback", "stop"], "control": {"kind": "enum", "choices": ["fallback", "stop"], "min": null, "max": null}},
|
|
42
|
+
{"key": "extra_max_concurrent", "tier": "common", "value": 1, "default": 1, "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "Foreign dispatches in flight at once. Per-provider rate limits are undocumented in aggregate, so 1 is the honest default — a wave of 3 that 429s costs more in repairs than the parallelism saved.", "options": [1, 2, 3], "control": {"kind": "int", "choices": null, "min": 1, "max": null}},
|
|
43
|
+
{"key": "extra_unlock", "tier": "common", "value": "per-run", "default": "per-run", "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "When a vault-stored key asks for its passphrase. `per-run` asks ONCE at the Phase-1 stop the lane already has, so an unattended wave can actually run. `per-dispatch` prompts every time and REFUSES to start an unattended wave, naming why — it is interactive-only by design. Irrelevant when the credential source is an environment variable, which is the recommended one.", "options": ["per-run", "per-dispatch"], "control": {"kind": "enum", "choices": ["per-run", "per-dispatch"], "min": null, "max": null}},
|
|
44
|
+
{"key": "extra_vault_max_attempts", "tier": "advanced", "value": 10, "default": 10, "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "Wrong passphrases before the encrypted key DELETES ITSELF. It is a key rather than a magic number so the count is inspectable and testable — NOT so it can be switched off; below 3 is refused. The counter stops someone at your keyboard; it does not stop someone who copies the vault file and tries offline, and scrypt's cost is the only defence there.", "options": null, "control": {"kind": "int", "choices": null, "min": 3, "max": null}},
|
|
45
|
+
{"key": "extra_timeout_s", "tier": "advanced", "value": 900, "default": 900, "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "Per-dispatch wall clock for a foreign worker. The child's own timeouts are DERIVED from this rather than set independently, so three timeouts cannot disagree about which one fires first.", "options": null, "control": {"kind": "int", "choices": null, "min": 30, "max": null}},
|
|
46
|
+
{"key": "extra_verify_max_days", "tier": "advanced", "value": 7, "default": 7, "is_overridden": false, "is_shadowed": false, "shadow_reason": null, "desc": "Past this a profile's verification reads STALE and is re-pinged before wave 1. A STALE profile STILL ROUTES — a stale check is not a failed one (the /orc-pact UNCHECKABLE rule) — and freshness is computed on read, never stored.", "options": null, "control": {"kind": "int", "choices": null, "min": 1, "max": null}},
|
|
47
|
+
{ key: "orchestrator_model", tier: "advanced", value: "claude-opus-4-8", tierNote: null, default: "claude-opus-4-8", is_overridden: false, is_shadowed: false, shadow_reason: null, desc: "Main-session model (below Opus breaks the tier ladder).", options: null, control: { kind: "enum", choices: ["claude-opus-5", "claude-opus-4-8", "claude-sonnet-5"], min: null, max: null } },
|
|
48
|
+
],
|
|
49
|
+
// The registry-less, hand-written key — read-only everywhere, and shadowed here.
|
|
50
|
+
hand_edited: [
|
|
51
|
+
{ key: "rubric_bands_override", value: "[[0,50,'orc-executor-sonnet-5-high'],[50,100,'orc-executor-opus-5-high']]", is_shadowed: true, shadow_reason: "shadowed by opus5_only — executors use the fixed 3-band Opus 5 ladder", editable: false },
|
|
52
|
+
],
|
|
53
|
+
legacy_keys: [{ key: "opus5_executor_only", renamed_to: "opus5_only" }],
|
|
54
|
+
score_table: {
|
|
55
|
+
active: "opus5_only",
|
|
56
|
+
default: [
|
|
57
|
+
{ from: 0, to: 30, inclusive_to: false, agent: "orc-executor-haiku-4-5" },
|
|
58
|
+
{ from: 30, to: 40, inclusive_to: false, agent: "orc-executor-sonnet-4-6-med" },
|
|
59
|
+
{ from: 40, to: 55, inclusive_to: false, agent: "orc-executor-sonnet-4-6-high" },
|
|
60
|
+
{ from: 55, to: 65, inclusive_to: false, agent: "orc-executor-sonnet-5-high" },
|
|
61
|
+
{ from: 65, to: 70, inclusive_to: false, agent: "orc-executor-opus-4-7-med" },
|
|
62
|
+
{ from: 70, to: 80, inclusive_to: false, agent: "orc-executor-opus-4-7-high" },
|
|
63
|
+
{ from: 80, to: 90, inclusive_to: false, agent: "orc-executor-opus-4-8-high" },
|
|
64
|
+
{ from: 90, to: 100, inclusive_to: true, agent: "orc-executor-opus-5-high" },
|
|
65
|
+
],
|
|
66
|
+
opus5_only: [
|
|
67
|
+
{ from: 0, to: 40, inclusive_to: false, agent: "orc-executor-opus-5-low" },
|
|
68
|
+
{ from: 40, to: 80, inclusive_to: false, agent: "orc-executor-opus-5-med" },
|
|
69
|
+
{ from: 80, to: 100, inclusive_to: true, agent: "orc-executor-opus-5-high" },
|
|
70
|
+
],
|
|
71
|
+
},
|
|
72
|
+
behavior_trace: { always_on: true, configurable_key: "log_dir" },
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
// Deliberately UNHEALTHY, and with the global-install finding present — the
|
|
76
|
+
// banner §1 requires can only be designed against a doctor that reports it.
|
|
77
|
+
|
|
78
|
+
module.exports = { config };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* fixtures/shell.js — canned data for `orc ui --fixtures`.
|
|
3
|
+
The project root, `orc where` and `orc doctor` — the three every panel reads.
|
|
4
|
+
|
|
5
|
+
THE RULE FOR EVERY FILE IN HERE: carry ONE OF EVERY STATE, including the
|
|
6
|
+
ugly ones. You cannot DESIGN a STALE chip on a fresh wiki, and a state
|
|
7
|
+
with no fixture is a state nobody has ever looked at. A per-state count
|
|
8
|
+
test asserts this, so a new state cannot ship without one.
|
|
9
|
+
|
|
10
|
+
Shapes MUST match what `bin/cli.js --json` really emits — a drifted
|
|
11
|
+
fixture is worse than no fixture. */
|
|
12
|
+
|
|
13
|
+
const PROJECT = "/example/project";
|
|
14
|
+
|
|
15
|
+
const doctor = {
|
|
16
|
+
ok: false,
|
|
17
|
+
claude_dir: PROJECT + "/.claude",
|
|
18
|
+
installed_version: "0.41.0",
|
|
19
|
+
package_version: "0.43.0",
|
|
20
|
+
global_install: { present: true, version: "0.39.0", shadows: true },
|
|
21
|
+
findings: [
|
|
22
|
+
{ id: "version-skew", severity: "warn", message: "payload version 0.41.0 != CLI 0.43.0 — run `orc update`", fixable: true, installed_version: "0.41.0", package_version: "0.43.0" },
|
|
23
|
+
{ id: "global-skew", severity: "warn", message: "GLOBAL install ~/.claude is 0.39.0 but this project is 0.41.0 — the global copy can win skill resolution; run `orc update --global`", fixable: false, global_version: "0.39.0", local_version: "0.41.0" },
|
|
24
|
+
{ id: "orphan", severity: "warn", message: "2 orphan(s) from a prior payload: agents/orc-executor-opus-4-8-med.md, skills/orc-old/SKILL.md — `orc update`", fixable: true, paths: ["agents/orc-executor-opus-4-8-med.md", "skills/orc-old/SKILL.md"] },
|
|
25
|
+
{ id: "statusline-missing", severity: "warn", message: "no statusLine — the non-Opus/high model warning won't show; run `orc update`", fixable: true },
|
|
26
|
+
],
|
|
27
|
+
fixable: true,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const where = {
|
|
31
|
+
claude_dir: PROJECT + "/.claude",
|
|
32
|
+
project_root: PROJECT,
|
|
33
|
+
package_root: "/usr/lib/node_modules/orc",
|
|
34
|
+
package_version: "0.43.0",
|
|
35
|
+
installed_version: "0.41.0",
|
|
36
|
+
skills: PROJECT + "/.claude/skills",
|
|
37
|
+
commands: PROJECT + "/.claude/commands",
|
|
38
|
+
agents: PROJECT + "/.claude/agents",
|
|
39
|
+
hooks: PROJECT + "/.claude/hooks",
|
|
40
|
+
settings: PROJECT + "/.claude/settings.json",
|
|
41
|
+
config: PROJECT + "/.claude/orc.config.yaml",
|
|
42
|
+
run_dir: PROJECT + "/.claude/orc/run",
|
|
43
|
+
log_dir: PROJECT + "/.claude/orc/logs",
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// STALE on purpose (§9: you cannot design the STALE chip while your wiki is fresh).
|
|
47
|
+
|
|
48
|
+
module.exports = { PROJECT, doctor, where };
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* fixtures/stats.js — canned data for `orc ui --fixtures`.
|
|
3
|
+
Usage, the cost forecast and the dated rate table. The forecast is a RANGE
|
|
4
|
+
with a sample count, and cache-read is its own segment.
|
|
5
|
+
|
|
6
|
+
THE RULE FOR EVERY FILE IN HERE: carry ONE OF EVERY STATE, including the
|
|
7
|
+
ugly ones. You cannot DESIGN a STALE chip on a fresh wiki, and a state
|
|
8
|
+
with no fixture is a state nobody has ever looked at. A per-state count
|
|
9
|
+
test asserts this, so a new state cannot ship without one.
|
|
10
|
+
|
|
11
|
+
Shapes MUST match what `bin/cli.js --json` really emits — a drifted
|
|
12
|
+
fixture is worse than no fixture. */
|
|
13
|
+
|
|
14
|
+
const { PROJECT } = require("./shell.js");
|
|
15
|
+
|
|
16
|
+
const stats = {
|
|
17
|
+
log_dir: PROJECT + "/.claude/orc/logs",
|
|
18
|
+
runs: 61,
|
|
19
|
+
from: "2026-04-11",
|
|
20
|
+
to: "2026-08-08",
|
|
21
|
+
lanes: { orc: 22, quick: 17, mini: 9, wiki: 6, fast: 4, ultra: 2, grill: 1 },
|
|
22
|
+
agents: { "orc-executor": 88, "orc-system-analyst": 21, "orc-planner": 21, "orc-reviewer": 18, "orc-verifier": 18, "orc-scout": 12, "orc-wiki-scanner": 9, "orc-trace-writer": 61 },
|
|
23
|
+
dispatches: 248,
|
|
24
|
+
downgrades: 3,
|
|
25
|
+
unfinished: 2,
|
|
26
|
+
unknown_lane: 1,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/* ============================================================ v0.46.0 ====== */
|
|
30
|
+
/* Same rule as everything above: ONE OF EVERY STATE, including the ugly ones.
|
|
31
|
+
You cannot design a BROKEN promise card on a ledger where everything holds,
|
|
32
|
+
a REFUSE checklist on a repo with no refusals, or an empty-debt Knowledge
|
|
33
|
+
panel on a wiki that owes four docs. test/webui.test.js asserts the count per
|
|
34
|
+
state, so a new state cannot ship without a fixture. */
|
|
35
|
+
|
|
36
|
+
const budgetForecast = {
|
|
37
|
+
ok: true,
|
|
38
|
+
plan: PROJECT + "/.claude/orc/run/store-credit/plan.md",
|
|
39
|
+
tasks: 14,
|
|
40
|
+
waves: 5,
|
|
41
|
+
tokens: {
|
|
42
|
+
p50: { input: 53400, cache_write: 362800, cache_read: 733800, output: 75100 },
|
|
43
|
+
p90: { input: 81000, cache_write: 548000, cache_read: 1140000, output: 118000 },
|
|
44
|
+
},
|
|
45
|
+
raw: { p50: 1225100, p90: 1887000 },
|
|
46
|
+
weighted: { p50: 564680, p90: 861000 },
|
|
47
|
+
usd: { p50: 6.76, p90: 10.5 },
|
|
48
|
+
price_table: { as_of: "2026-08-01", age_days: 9, stale: false, path: "bin/pricing.json" },
|
|
49
|
+
quota: { available: true, plan: "max20", label: "Max 20x", window_pct: 18.2, weekly_pct: 4.1 },
|
|
50
|
+
// A task at CONTEXT RISK — the state that cannot be designed on a small plan.
|
|
51
|
+
context_risk: [{ task: "T12", agent: "orc-executor-opus-5-high", peak: 189000, window: 200000, pct: 95 }],
|
|
52
|
+
bands: [
|
|
53
|
+
{ band: "[0,30)", agent: "orc-executor-haiku-4-5", count: 2, tasks: ["T01", "T02"], samples: 9, p50: { input: 1200, cache_write: 6400, cache_read: 11800, output: 900 }, p90: { input: 1800, cache_write: 9200, cache_read: 17000, output: 1400 } },
|
|
54
|
+
{ band: "[40,55)", agent: "orc-executor-sonnet-4-6-high", count: 3, tasks: ["T03", "T05", "T07"], samples: 12, p50: { input: 7800, cache_write: 52100, cache_read: 104000, output: 8400 }, p90: { input: 11000, cache_write: 75000, cache_read: 150000, output: 12000 } },
|
|
55
|
+
{ band: "[70,80)", agent: "orc-executor-opus-4-7-high", count: 1, tasks: ["T04"], samples: 6, p50: { input: 5700, cache_write: 40200, cache_read: 81000, output: 9300 }, p90: { input: 8100, cache_write: 58000, cache_read: 117000, output: 13400 } },
|
|
56
|
+
// A band with insufficient history — the low-confidence warning is not
|
|
57
|
+
// optional chrome, so the fixture has to be able to trigger it.
|
|
58
|
+
{ band: "[90,100]", agent: "orc-executor-opus-5-high", count: 1, tasks: ["T12"], samples: 2, p50: { input: 9100, cache_write: 61000, cache_read: 128000, output: 17000 }, p90: { input: 14000, cache_write: 94000, cache_read: 198000, output: 26000 } },
|
|
59
|
+
],
|
|
60
|
+
fixed_roles: [
|
|
61
|
+
{ role: "orc-system-analyst-opus-5-high", samples: 11, p50: { input: 6100, cache_write: 41000, cache_read: 82000, output: 9000 }, p90: { input: 8600, cache_write: 58000, cache_read: 116000, output: 13000 } },
|
|
62
|
+
{ role: "orc-planner-opus-5-med", samples: 11, p50: { input: 5000, cache_write: 33000, cache_read: 68000, output: 7400 }, p90: { input: 7100, cache_write: 47000, cache_read: 96000, output: 10500 } },
|
|
63
|
+
{ role: "orc-trace-writer-haiku-4-5", samples: 41, p50: { input: 900, cache_write: 3000, cache_read: 5400, output: 700 }, p90: { input: 1300, cache_write: 4400, cache_read: 7800, output: 1000 } },
|
|
64
|
+
],
|
|
65
|
+
low_confidence_bands: 1,
|
|
66
|
+
min_samples: 5,
|
|
67
|
+
// Non-zero on purpose: `unattributed` is shown whenever it is above 0, and a
|
|
68
|
+
// fixture where it is always 0 makes that branch undesignable.
|
|
69
|
+
unattributed: { blocks: 12, tokens: { input: 900, cache_write: 12000, cache_read: 24000, output: 1100 } },
|
|
70
|
+
transcripts_readable: true,
|
|
71
|
+
lanes: [
|
|
72
|
+
{ lane: "ultra", cmd: "/orc-ultra", raw: 2410000, weighted: 1090000, usd: 14.2, low_confidence_bands: 1, low_confidence_roles: 0 },
|
|
73
|
+
{ lane: "orc", cmd: "/orc", raw: 1225100, weighted: 564680, usd: 6.76, low_confidence_bands: 1, low_confidence_roles: 0 },
|
|
74
|
+
{ lane: "mini", cmd: "/orc-mini", raw: 410000, weighted: 188000, usd: 2.1, low_confidence_bands: 0, low_confidence_roles: 0 },
|
|
75
|
+
{ lane: "fast", cmd: "/orc-fast", raw: 0, weighted: 0, usd: null, low_confidence_bands: 1, low_confidence_roles: 1 },
|
|
76
|
+
],
|
|
77
|
+
view: "auto",
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const budgetRates = {
|
|
81
|
+
ok: true,
|
|
82
|
+
version: 1,
|
|
83
|
+
calibrated_at: "10-08-2026 09:40:11",
|
|
84
|
+
transcript_dir: "/home/you/.claude/projects/-example-project",
|
|
85
|
+
transcripts_readable: true,
|
|
86
|
+
transcript_files: 31,
|
|
87
|
+
traces_read: 42,
|
|
88
|
+
dispatches_joined: 96,
|
|
89
|
+
price_table_as_of: "2026-08-01",
|
|
90
|
+
bands: {
|
|
91
|
+
"[0,30)": { samples: 9, p50: { input: 1200, cache_write: 6400, cache_read: 11800, output: 900 }, p90: { input: 1800, cache_write: 9200, cache_read: 17000, output: 1400 }, peak_p50: 24000, peak_p90: 38000 },
|
|
92
|
+
"[40,55)": { samples: 12, p50: { input: 7800, cache_write: 52100, cache_read: 104000, output: 8400 }, p90: { input: 11000, cache_write: 75000, cache_read: 150000, output: 12000 }, peak_p50: 78000, peak_p90: 121000 },
|
|
93
|
+
"[70,80)": { samples: 6, p50: { input: 5700, cache_write: 40200, cache_read: 81000, output: 9300 }, p90: { input: 8100, cache_write: 58000, cache_read: 117000, output: 13400 }, peak_p50: 96000, peak_p90: 142000 },
|
|
94
|
+
"[90,100]": { samples: 2, p50: { input: 9100, cache_write: 61000, cache_read: 128000, output: 17000 }, p90: { input: 14000, cache_write: 94000, cache_read: 198000, output: 26000 }, peak_p50: 151000, peak_p90: 189000 },
|
|
95
|
+
},
|
|
96
|
+
roles: {
|
|
97
|
+
"orc-system-analyst-opus-5-high": { samples: 11, p50: { input: 6100, cache_write: 41000, cache_read: 82000, output: 9000 }, p90: { input: 8600, cache_write: 58000, cache_read: 116000, output: 13000 }, peak_p50: 88000, peak_p90: 131000 },
|
|
98
|
+
"orc-trace-writer-haiku-4-5": { samples: 41, p50: { input: 900, cache_write: 3000, cache_read: 5400, output: 700 }, p90: { input: 1300, cache_write: 4400, cache_read: 7800, output: 1000 }, peak_p50: 9000, peak_p90: 14000 },
|
|
99
|
+
},
|
|
100
|
+
lanes: {},
|
|
101
|
+
unattributed: { blocks: 12, tokens: { input: 900, cache_write: 12000, cache_read: 24000, output: 1100 } },
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
module.exports = { stats, budgetForecast, budgetRates };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Panel wording — the term list
|
|
2
|
+
|
|
3
|
+
> One page. It exists so the next two hundred strings stay consistent, because
|
|
4
|
+
> without it a wording pass drifts back within two releases.
|
|
5
|
+
|
|
6
|
+
The panel's **instruction text** is written in Simplified Technical English
|
|
7
|
+
(ASD-STE100 in spirit, not in certification). Instruction text is anything the
|
|
8
|
+
user must **act on**: a button, a field label, a hint, an error, a gate, a
|
|
9
|
+
countdown, an install or connect step.
|
|
10
|
+
|
|
11
|
+
**Rationale prose keeps its voice** and only gets shorter. Sentences like *"It
|
|
12
|
+
stops someone at your keyboard, not someone who copied the file"* draw a
|
|
13
|
+
distinction STE has no vocabulary for; flattened, they become true and useless.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## The rule that is not negotiable
|
|
18
|
+
|
|
19
|
+
> **NEVER simplify a CLI-computed value.**
|
|
20
|
+
|
|
21
|
+
A state word, an exit reason, a doctor message, a config key, a model id, a
|
|
22
|
+
provider id, a path, a band or a command is **not prose** and is not the panel's
|
|
23
|
+
to rewrite. A simplified state word is a state that does not exist — the same
|
|
24
|
+
failure as a translated config key.
|
|
25
|
+
|
|
26
|
+
This applies to `bin/cli.js --json` output in every panel, in every language.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## How to write an instruction
|
|
31
|
+
|
|
32
|
+
- One instruction per sentence.
|
|
33
|
+
- 20 words maximum.
|
|
34
|
+
- Active voice, present tense, "you" as the subject.
|
|
35
|
+
- The condition comes **before** the action: *"If the test is green, save the key."*
|
|
36
|
+
- No phrasal verb where a single verb exists.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## One word, one meaning
|
|
41
|
+
|
|
42
|
+
Pick the left column. Never use the right column for the same idea.
|
|
43
|
+
|
|
44
|
+
| use | never |
|
|
45
|
+
|---|---|
|
|
46
|
+
| **connect** (make a connection to a provider) | add, link, hook up, set up |
|
|
47
|
+
| **test** (prove a connection answers) | probe, ping, check, try |
|
|
48
|
+
| **delete** (remove permanently) | remove, forget, drop, clear, wipe |
|
|
49
|
+
| **save** (write and keep) | store, persist, remember |
|
|
50
|
+
| **enable** / **disable** | turn on, turn off, switch on, activate |
|
|
51
|
+
| **configure** | set up, sort out |
|
|
52
|
+
| **run** (execute a command) | fire, kick off, trigger, invoke |
|
|
53
|
+
| **open** (a file, a window, a terminal) | bring up, pull up, launch |
|
|
54
|
+
| **install** | get, grab, pull |
|
|
55
|
+
| **refresh** (read again) | reload, re-fetch, sync |
|
|
56
|
+
| **stop** (end before it finishes) | halt, abort, kill, cancel |
|
|
57
|
+
| **wait** | hold, pause, hang on |
|
|
58
|
+
| **choose** | pick, select from |
|
|
59
|
+
| **show** | display, render, surface |
|
|
60
|
+
| **key** (a credential value) | token, secret, api key |
|
|
61
|
+
| **passphrase** (what opens the vault) | password, phrase, secret |
|
|
62
|
+
| **deadline** (when a saved passphrase ends) | expiry, timeout, TTL, lifetime |
|
|
63
|
+
| **connection** (a configured profile) | profile, endpoint, provider link |
|
|
64
|
+
| **document** | doc, file, artefact |
|
|
65
|
+
| **section** | part, chunk, block |
|
|
66
|
+
| **command** | line, invocation |
|
|
67
|
+
|
|
68
|
+
Two exceptions, both because they are the CLI's own words and the rule above
|
|
69
|
+
outranks this table:
|
|
70
|
+
|
|
71
|
+
- `profile` where the CLI prints `profile`;
|
|
72
|
+
- `ping`, `probe` and `forget` where they are the **name of a command**
|
|
73
|
+
(`orc extra ping`, `orc extra session --forget`).
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Where each rule applies
|
|
78
|
+
|
|
79
|
+
| STE, strictly | keep the voice |
|
|
80
|
+
|---|---|
|
|
81
|
+
| button and control labels | the honesty sentences (the passphrase deadline, `tok=none`, "zero reroutes is not evidence") |
|
|
82
|
+
| field labels and hints | the boundary card |
|
|
83
|
+
| error and refusal text | the "why this design" notes |
|
|
84
|
+
| every gate and countdown sentence | trace-format explanations |
|
|
85
|
+
| install and connect steps | |
|
|
86
|
+
| the passphrase modal, **end to end** — it is a procedure and it cannot be dismissed | |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Keys that keep their voice
|
|
91
|
+
|
|
92
|
+
The default is STE: **a new key is instruction text unless it is listed here.**
|
|
93
|
+
Opting out is a deliberate line in a diff somebody reads, which is the same
|
|
94
|
+
shape as the contract-lint table.
|
|
95
|
+
|
|
96
|
+
These are the sentences doing the most work in this subsystem, and STE has no
|
|
97
|
+
vocabulary for the distinctions they draw. Flattened, they become true and
|
|
98
|
+
useless. The test parses this fenced list by name.
|
|
99
|
+
|
|
100
|
+
```prose-keys
|
|
101
|
+
extra.boundary.leaves
|
|
102
|
+
extra.boundary.whom
|
|
103
|
+
extra.boundary.cannot
|
|
104
|
+
extra.boundary.fence
|
|
105
|
+
extra.boundary.probe
|
|
106
|
+
extra.providers.subWhy
|
|
107
|
+
extra.providers.noModels
|
|
108
|
+
extra.providers.stale
|
|
109
|
+
extra.routing.gapWhy
|
|
110
|
+
extra.gate.hiddenWhy
|
|
111
|
+
extra.cost.noRate
|
|
112
|
+
extra.cost.sourcesWhy
|
|
113
|
+
extra.live.noReport
|
|
114
|
+
extra.tools.subWhy
|
|
115
|
+
extra.tools.altNone
|
|
116
|
+
extra.tools.neverElevates
|
|
117
|
+
extra.add.vaultWarn
|
|
118
|
+
extra.session.honesty
|
|
119
|
+
extra.lanes.subWhy
|
|
120
|
+
extra.guard.subWhy
|
|
121
|
+
extra.recovery.noteWhy
|
|
122
|
+
extra.slots.subWhy
|
|
123
|
+
extra.slots.keepsSlotWhy
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## What is NOT checked automatically
|
|
129
|
+
|
|
130
|
+
There is no STE checker in this repo and there is not going to be one: a real
|
|
131
|
+
one needs the approved dictionary, which is licensed. A test asserts the cheap
|
|
132
|
+
half — no string in the STE set is over 20 words, and no banned synonym appears
|
|
133
|
+
— and the rest is this page plus review. A checker that half-works would be
|
|
134
|
+
worse than none, because people would trust it.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version.unknown.label": "unknown",
|
|
3
|
+
"version.unknown.note": "Could not read the installed version.",
|
|
4
|
+
"version.off.label": "check off",
|
|
5
|
+
"version.off.note": "Update checks are disabled (ORC_NO_UPDATE_CHECK).",
|
|
6
|
+
"version.offline.label": "offline",
|
|
7
|
+
"version.offline.note": "Could not reach the install source to compare versions.",
|
|
8
|
+
"version.available.label": "{latest} available",
|
|
9
|
+
"version.available.note": "You have {version}. Maintenance → upgrade installs it.",
|
|
10
|
+
"version.current.label": "up to date",
|
|
11
|
+
"version.current.note": "{version} is the latest on {source}.",
|
|
12
|
+
"banner.update.title": "orc {latest} is available — you have {version}.",
|
|
13
|
+
"banner.update.note": "Click to read what changed, then upgrade from Maintenance.",
|
|
14
|
+
"banner.update.cta": "Read →",
|
|
15
|
+
"banner.global.title": "A global ORC install exists at ~/.claude and may win skill resolution.",
|
|
16
|
+
"banner.global.body": "These project settings may not be the ones your runs read. This panel never edits global config — it reports the conflict.",
|
|
17
|
+
"banner.global.check": "Check it with: orc doctor",
|
|
18
|
+
"banner.fixtures": "Fixture mode: every number on this page is canned. Nothing real is read, and nothing can be written.",
|
|
19
|
+
"banner.noToken": "This page is missing its session token.",
|
|
20
|
+
"banner.noTokenHint": "Re-run `orc ui` in your project to get a fresh URL.",
|
|
21
|
+
"changelog.title": "What's new in {version}",
|
|
22
|
+
"changelog.disabled": "Update checks are disabled (ORC_NO_UPDATE_CHECK), so there is nothing to show.",
|
|
23
|
+
"changelog.offline": "Could not reach the changelog — you are offline, or the source is unreachable.",
|
|
24
|
+
"changelog.offlineNote": "The release itself is still real; this panel just could not fetch its notes.",
|
|
25
|
+
"changelog.empty": "No changelog entries newer than what you have.",
|
|
26
|
+
"changelog.source": "Source: {src}",
|
|
27
|
+
"changelog.goUpgrade": "Take me to the upgrade",
|
|
28
|
+
"changelog.loadFail": "Could not load the changelog: {err}"
|
|
29
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"boundary.title": "Boundary",
|
|
3
|
+
"boundary.sub": "Where ORC will act on its own, where it needs a person, and where it will not act at all.",
|
|
4
|
+
"boundary.none": "No boundary cards yet",
|
|
5
|
+
"boundary.noneHint": "An area with no card is UNKNOWN - never assumed safe. Cards are written once per area and then consulted instantly.",
|
|
6
|
+
"boundary.cmdWhy": "Working out a verdict means reading the area and answering four questions about it, so it costs model tokens. This panel reads the cards; it cannot write one.",
|
|
7
|
+
"boundary.summary": "Areas",
|
|
8
|
+
"boundary.staleChip": "1 stale",
|
|
9
|
+
"boundary.staleChipPlural": "{n} stale",
|
|
10
|
+
"boundary.gatesOrc": "This gates ORC's own dispatch, never you. Ask ORC directly and it will still do the work - the card is shown, not enforced against you.",
|
|
11
|
+
"boundary.stale": "stale",
|
|
12
|
+
"boundary.malformedNoChecklist": "This card refuses without saying what would change that. A refusal with no checklist is malformed - re-run the lane for this area.",
|
|
13
|
+
"boundary.wouldMakeYes": "What would make this a yes",
|
|
14
|
+
"boundary.escalateTo": "Signed off by: {who}",
|
|
15
|
+
"boundary.malformedNoWho": "This card escalates without naming anybody. An escalation with no name is malformed - re-run the lane for this area.",
|
|
16
|
+
"boundary.staleWhy": "1 commit has touched this area since the card was written, so its evidence has moved. That is not a wrong card - just one worth re-checking.",
|
|
17
|
+
"boundary.staleWhyPlural": "{n} commits have touched this area since the card was written, so its evidence has moved. That is not a wrong card - just one worth re-checking.",
|
|
18
|
+
"boundary.route.pact": "Open Promises",
|
|
19
|
+
"boundary.route.knowledge": "Open Knowledge"
|
|
20
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"challenge.title": "Challenge",
|
|
3
|
+
"challenge.sub": "Grade a finished artifact against a goal you stated. ORC judges, you fix, ORC re-judges.",
|
|
4
|
+
"challenge.summary": "Cycles",
|
|
5
|
+
"challenge.contract": "ORC never fixes what it judged. A session that just wrote the fix would grade its own homework, and it would always pass.",
|
|
6
|
+
"challenge.none": "No review cycles yet.",
|
|
7
|
+
"challenge.noneHint": "A cycle starts by stating what the artifact must achieve. ORC asks, and never guesses.",
|
|
8
|
+
"challenge.cmdWhy": "Opening or continuing a cycle runs a judgement, which costs model tokens.",
|
|
9
|
+
"challenge.paidWhy": "A judgement costs model tokens, so this is a command to copy, not a button.",
|
|
10
|
+
"challenge.iterN": "{n} iteration",
|
|
11
|
+
"challenge.iterNPlural": "{n} iterations",
|
|
12
|
+
"challenge.blockingN": "{n} blocking",
|
|
13
|
+
"challenge.blockingNPlural": "{n} blocking",
|
|
14
|
+
"challenge.noBlocking": "nothing blocking",
|
|
15
|
+
"challenge.stalledChip": "stalled",
|
|
16
|
+
"challenge.noTemplateChip": "no template",
|
|
17
|
+
"challenge.goalTitle": "What this artifact has to achieve",
|
|
18
|
+
"challenge.goalNote": "Frozen at intake. Every finding must serve one of these, and a finding that cannot is dropped.",
|
|
19
|
+
"challenge.field.goal": "Goal",
|
|
20
|
+
"challenge.field.audience": "Audience",
|
|
21
|
+
"challenge.field.done": "Done means",
|
|
22
|
+
"challenge.field.outOfScope": "Out of scope",
|
|
23
|
+
"challenge.field.context": "Context (evidence, not instruction)",
|
|
24
|
+
"challenge.field.wrong": "What is wrong",
|
|
25
|
+
"challenge.field.consequence": "Consequence",
|
|
26
|
+
"challenge.field.fixedWhen": "Fixed when",
|
|
27
|
+
"challenge.field.serves": "Serves",
|
|
28
|
+
"challenge.field.supersededBy": "Superseded by",
|
|
29
|
+
"challenge.field.reason": "Reason",
|
|
30
|
+
"challenge.timeline": "Iterations",
|
|
31
|
+
"challenge.timelineAria": "Timeline of {n} iterations",
|
|
32
|
+
"challenge.convNote": "Blocking findings per iteration, stacked by severity. A dashed break marks a re-frozen goal or template, because a comparison across one is not a comparison.",
|
|
33
|
+
"challenge.noIterations": "Created, not yet judged.",
|
|
34
|
+
"challenge.noIterationsHint": "Run /orc-challenge {slug} to open the first iteration.",
|
|
35
|
+
"challenge.stalledNote": "Stalled: no net reduction across the last iterations. Narrow the rubric, accept the gaps as known, or keep going.",
|
|
36
|
+
"challenge.readerTitle": "Cold comprehension",
|
|
37
|
+
"challenge.readerSub": "answered {answered} of {asked} questions from the artifact alone",
|
|
38
|
+
"challenge.readerNote": "Measured by an agent that could read this one file and nothing else. It is the only honest way to ask whether a reader with no context can follow it.",
|
|
39
|
+
"challenge.dimensions": "Dimensions",
|
|
40
|
+
"challenge.dimNote": "NOT-CHECKED keeps its slot and carries its reason. A silently skipped check is indistinguishable from a forgotten one.",
|
|
41
|
+
"challenge.findings": "Findings",
|
|
42
|
+
"challenge.dropped": "{n} finding dropped for having no goal element to serve: {ids}",
|
|
43
|
+
"challenge.events": "Events",
|
|
44
|
+
"challenge.acceptedBadge": "accepted",
|
|
45
|
+
"challenge.rebuttedBadge": "rebutted",
|
|
46
|
+
"challenge.acceptedNote": "Accepted as a known gap: {reason}",
|
|
47
|
+
"challenge.rebuttedNote": "Rebutted ({status}): {reason}",
|
|
48
|
+
"challenge.acceptBtn": "Accept as a known gap",
|
|
49
|
+
"challenge.rebutBtn": "Rebut it",
|
|
50
|
+
"challenge.acceptTitle": "Accept a known gap",
|
|
51
|
+
"challenge.rebutTitle": "Rebut a finding",
|
|
52
|
+
"challenge.acceptBody": "{id} stops blocking, and stays visible in every report with your reason. It is never automatic.",
|
|
53
|
+
"challenge.rebutBody": "The next judgement must answer {id} explicitly: withdrawn with an admission, or upheld with new evidence.",
|
|
54
|
+
"challenge.acceptNote": "Good enough, and here is why, is a real ending. Recording it beats quietly lowering the bar.",
|
|
55
|
+
"challenge.rebutNote": "Without this, one wrong finding loops forever and your only move is to give up.",
|
|
56
|
+
"challenge.acceptGo": "Accept it",
|
|
57
|
+
"challenge.rebutGo": "Rebut it",
|
|
58
|
+
"challenge.acceptOk": "Accepted. It stays visible with your reason.",
|
|
59
|
+
"challenge.rebutOk": "Rebutted. The next judgement must answer it.",
|
|
60
|
+
"challenge.needReason": "A reason is required.",
|
|
61
|
+
"challenge.reasonPlaceholder": "Why?",
|
|
62
|
+
"challenge.reRender": "Re-render the report",
|
|
63
|
+
"challenge.reportOk": "Report re-derived from the ledger.",
|
|
64
|
+
"challenge.missingRevision": "The declared revision is not there: {path}",
|
|
65
|
+
"challenge.candidatesNote": "These are listed, never adopted. Picking one for you would point the judge at the wrong file, and it would write a page of confident, useless findings.",
|
|
66
|
+
"challenge.tamperedNote": "A verdict file changed after it was recorded. Reported, never silently re-graded: say what happened before continuing.",
|
|
67
|
+
"challenge.passedNote": "Passed. Nothing here is staged, so commit it if your team should see the review trail.",
|
|
68
|
+
"challenge.stalePassNote": "It passed, then the artifact changed. Honest, not a failure: it simply has not been judged since.",
|
|
69
|
+
"challenge.awaitingFixNote": "Waiting for you to fix it, in a NEW session, not this one.",
|
|
70
|
+
"challenge.pasteHead": "Paste this into a new Claude Code session",
|
|
71
|
+
"challenge.copyPrompt": "Copy prompt",
|
|
72
|
+
"challenge.council": "The council",
|
|
73
|
+
"challenge.councilRan": "{ran} of {of} ran",
|
|
74
|
+
"challenge.councilUnset": "No roster on this cycle.",
|
|
75
|
+
"challenge.councilUnsetHint": "It was opened before the council existed. Who reviews is a decision, not a default, so ORC will not fill it in — it asks, and the next judgement is refused until it is answered.",
|
|
76
|
+
"challenge.councilUnsetWhy": "Answering it is one question in the lane, and the next iteration costs model tokens.",
|
|
77
|
+
"challenge.councilNote": "ORC suggests a roster; you pick it. A lens raises a candidate, and only the judge decides what happens to it — so a lens you switch off can never quietly lose an open finding.",
|
|
78
|
+
"challenge.neverBlocks": "never blocks",
|
|
79
|
+
"challenge.lensCounts": "raised {raised} · adopted {adopted} · merged {merged} · rejected {rejected} · out of goal {outOfGoal}",
|
|
80
|
+
"challenge.lensNotRun": "Did not run: {reason}",
|
|
81
|
+
"challenge.lensNotSelected": "Not on this cycle's roster. To add it:",
|
|
82
|
+
"challenge.mondayMorning": "What you would actually do first",
|
|
83
|
+
"challenge.alsoFoundBy": "also found by: {lenses}",
|
|
84
|
+
"challenge.field.raisedBy": "Raised by",
|
|
85
|
+
"challenge.raisedAdopted": "{lens}, then adopted by the judge",
|
|
86
|
+
"challenge.field.disposition": "What the judge did with it",
|
|
87
|
+
"challenge.premises": "Is this even the right problem?",
|
|
88
|
+
"challenge.disputes": "disputes the {what}",
|
|
89
|
+
"challenge.field.reframe": "The problem, restated",
|
|
90
|
+
"challenge.field.whatChanges": "What this review would attack instead",
|
|
91
|
+
"challenge.field.cheapestTest": "Cheapest way to settle it",
|
|
92
|
+
"challenge.dismissPremise": "Dismiss it",
|
|
93
|
+
"challenge.dismissPremiseNote": "Your reason stays in the report forever. That is the point of asking for one.",
|
|
94
|
+
"challenge.adoptPremiseWhy": "Agreeing means writing a new goal file, and the panel must not invent one for you.",
|
|
95
|
+
"challenge.premiseNote": "This disputes the goal every finding above was measured against, so it sits first. Nothing here blocks, and nothing here happens on its own: a person decides.",
|
|
96
|
+
"challenge.opportunities": "Upside nobody counted",
|
|
97
|
+
"challenge.opportunityNote": "Not work. Nothing here blocks anything, and nothing here has a severity — one lens looks for what is being undervalued instead of what is wrong.",
|
|
98
|
+
"challenge.field.what": "What",
|
|
99
|
+
"challenge.field.upside": "If it works better than expected",
|
|
100
|
+
"challenge.field.firstStep": "First step",
|
|
101
|
+
"challenge.field.anchor": "Where",
|
|
102
|
+
"challenge.field.confidence": "Confidence",
|
|
103
|
+
"challenge.takeOpportunity": "Keep it",
|
|
104
|
+
"challenge.dropOpportunity": "Let it go",
|
|
105
|
+
"challenge.opportunityReasonNote": "Either way it is written down with your reason. An idea that quietly disappears looks the same as one nobody ever had."
|
|
106
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_readme": [
|
|
3
|
+
"en.json — the English string table for `orc ui`. THE SCOPE RULE, and it is a",
|
|
4
|
+
"hard one: only the PANEL'S OWN prose lives here. Anything that arrives from",
|
|
5
|
+
"`bin/cli.js --json` is never translated — config keys, their descriptions and",
|
|
6
|
+
"values, agent names, model ids, file paths, commands, doctor messages, CLI",
|
|
7
|
+
"output. Those are identifiers and machine text; a translated config key would",
|
|
8
|
+
"be a key that does not exist, and a translated command would be a command you",
|
|
9
|
+
"cannot type. Chrome and explanation are ours; data is the CLI's.",
|
|
10
|
+
"Placeholders are {name} and are substituted by t()."
|
|
11
|
+
],
|
|
12
|
+
"lang.title": "Switch language",
|
|
13
|
+
"rail.light": "Light",
|
|
14
|
+
"rail.dark": "Dark",
|
|
15
|
+
"rail.shortcuts": "Keyboard shortcuts",
|
|
16
|
+
"rail.fixtures": "FIXTURE MODE",
|
|
17
|
+
"common.copy": "Copy",
|
|
18
|
+
"common.copied": "Copied",
|
|
19
|
+
"common.cancel": "Cancel",
|
|
20
|
+
"common.close": "Close",
|
|
21
|
+
"common.remove": "Remove",
|
|
22
|
+
"common.later": "Later",
|
|
23
|
+
"common.next": "Next",
|
|
24
|
+
"common.done": "Done",
|
|
25
|
+
"common.skipTour": "Skip tour",
|
|
26
|
+
"common.waiting": "Waiting for you…",
|
|
27
|
+
"common.step": "{n} of {total}",
|
|
28
|
+
"common.loadFail": "Could not load this panel.",
|
|
29
|
+
"common.clipboardOk": "{label} to clipboard.",
|
|
30
|
+
"common.clipboardFail": "Could not reach the clipboard — select the text and copy by hand.",
|
|
31
|
+
"common.none": "none",
|
|
32
|
+
"common.checking": "checking…",
|
|
33
|
+
"age.now": "just now",
|
|
34
|
+
"age.min": "{n} min ago",
|
|
35
|
+
"age.hours": "{n} hours ago",
|
|
36
|
+
"age.day": "{n} day ago",
|
|
37
|
+
"age.dayPlural": "{n} days ago",
|
|
38
|
+
"edits.none": "No unsaved changes.",
|
|
39
|
+
"edits.pending": "Not written yet:",
|
|
40
|
+
"edits.toDefault": "default",
|
|
41
|
+
"edits.apply": "Apply",
|
|
42
|
+
"edits.applyN": "Apply {n}",
|
|
43
|
+
"edits.applying": "Applying…",
|
|
44
|
+
"edits.applied": "Applied {n} change(s).",
|
|
45
|
+
"edits.someFailed": "{n} change(s) were refused.",
|
|
46
|
+
"edits.cancel": "Discard",
|
|
47
|
+
"edits.reset": "Reset to defaults",
|
|
48
|
+
"edits.resetAll": "Reset every key",
|
|
49
|
+
"edits.resetFlow": "Reset every key",
|
|
50
|
+
"edits.resetAllTitle": "Reset every setting",
|
|
51
|
+
"edits.resetAllBody": "This removes every key from the config file, so all of them fall back to their shipped defaults. Anything staged but not applied is discarded first.",
|
|
52
|
+
"edits.resetAllApply": "Reset the file",
|
|
53
|
+
"shortcuts.title": "Keyboard shortcuts",
|
|
54
|
+
"shortcuts.panels": "Jump to that panel in the rail",
|
|
55
|
+
"shortcuts.filter": "Focus the filter box (Settings)",
|
|
56
|
+
"shortcuts.reload": "Reload the current panel",
|
|
57
|
+
"shortcuts.theme": "Toggle light / dark",
|
|
58
|
+
"shortcuts.lang": "Toggle language",
|
|
59
|
+
"shortcuts.list": "This list",
|
|
60
|
+
"shortcuts.escape": "Close a dialog, or clear the filter",
|
|
61
|
+
"shortcuts.note": "Shortcuts are ignored while you are typing in a field.",
|
|
62
|
+
"shortcuts.replay": "Replay the tour",
|
|
63
|
+
"setting.resetTo": "reset to {value}",
|
|
64
|
+
"common.open": "Open",
|
|
65
|
+
"common.writeFail": "That did not work",
|
|
66
|
+
"common.runInClaude": "Run this in Claude Code",
|
|
67
|
+
"shortcuts.panelsLetters": "Promises, Boundary, Self-serve, Extra, Mocked Skill Use",
|
|
68
|
+
"common.confirm": "Confirm"
|
|
69
|
+
}
|