@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,65 @@
|
|
|
1
|
+
# Worked example — orc-claude runs (mock; orient only, never execute from this)
|
|
2
|
+
|
|
3
|
+
## Run 1 — UPDATE (existing hand-written CLAUDE.md, 610 lines)
|
|
4
|
+
|
|
5
|
+
U: /orc-claude
|
|
6
|
+
C: CLAUDE.md exists, no orc-claude:meta header → UPDATE mode. Spawns
|
|
7
|
+
orc-claude-writer-opus-4-8-high (the skill never writes the file itself).
|
|
8
|
+
W: Scans: pnpm monorepo (3 workspaces), turbo, eslint+prettier, vitest,
|
|
9
|
+
Postgres migrations under `packages/db/migrations`.
|
|
10
|
+
W: Copies CLAUDE.md → CLAUDE.md.bak. Injects meta header (v0.0.1, 12-07-2026,
|
|
11
|
+
line-budget: 400) + P0 placeholder at top, appends fenced sections:
|
|
12
|
+
commands, layout (ownership map), conventions, boundaries, workflow,
|
|
13
|
+
decisions, patterns, gotchas placeholder, testing, environment, glossary
|
|
14
|
+
placeholder. Skips `adr` (nothing scannable). Existing 610 lines: untouched.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
ORC-CLAUDE — update → CLAUDE.md v0.0.1 (12-07-2026)
|
|
18
|
+
Sections written: p0*, commands, layout, conventions, boundaries, workflow,
|
|
19
|
+
decisions, patterns, gotchas*, testing, environment, glossary* (*=fill yourself)
|
|
20
|
+
Skipped (empty scan): adr, pointers
|
|
21
|
+
Preserved untouched: user content (610 lines), no wiki block found
|
|
22
|
+
Conflicts flagged (NOT auto-edited):
|
|
23
|
+
- existing line 42 says "run yarn test" — repo uses pnpm (pnpm test)
|
|
24
|
+
Backup: CLAUDE.md.bak written (add it to .gitignore)
|
|
25
|
+
NOTE: file is 802 lines total (budget covers generated content only) — trim
|
|
26
|
+
unused user content yourself for better instruction-following.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Run 2 — REFRESH, one stale section
|
|
30
|
+
|
|
31
|
+
U: /orc-claude (weeks later; `test` script renamed to `test:unit` + `test:e2e`)
|
|
32
|
+
C: Header found → REFRESH → spawns the writer.
|
|
33
|
+
W: Recomputes fingerprints: only `commands` differs (e3f1a2 → 8c04b1). Writes
|
|
34
|
+
.bak, replaces the commands fence interior, bumps 0.0.1 → 0.0.2,
|
|
35
|
+
updated: 03-08-2026. User's edits outside fences + the wiki block:
|
|
36
|
+
byte-identical. Returns actual_model=claude-opus-4-8, actual_effort=high.
|
|
37
|
+
|
|
38
|
+
## Run 3 — REFRESH, noop
|
|
39
|
+
|
|
40
|
+
U: /orc-claude
|
|
41
|
+
W: All fingerprints match →
|
|
42
|
+
`CLAUDE.md up to date (v0.0.2, 03-08-2026)` — no write, no bump, no bak.
|
|
43
|
+
|
|
44
|
+
## Run 4 — behavior trace (permanent, always on)
|
|
45
|
+
|
|
46
|
+
Same dispatch as any run, plus the minimal one-dispatch trace. The skill writes
|
|
47
|
+
the run pointer (`run-claude-<slug>-<DDMMYY>-<HHMMSS>.txt` into `log_dir`)
|
|
48
|
+
FIRST, records these events as they happen, and — as a single-dispatch lane —
|
|
49
|
+
dispatches the trace writer ONCE at run end to append them (`SPAWN`/`RETURN`
|
|
50
|
+
come from the `orc-trace.js` hook as they occur):
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
[120726 09:14:02.110] writer DISPATCH orc-claude-writer :: refresh expect=opus-4-8/high
|
|
54
|
+
[120726 09:14:02.230] hook SPAWN orc-claude-writer-opus-4-8-high
|
|
55
|
+
[120726 09:15:47.900] hook RETURN
|
|
56
|
+
[120726 09:15:48.010] writer VERIFY writer actual=claude-opus-4-8/high ✅ MATCH
|
|
57
|
+
[120726 09:15:48.120] writer FINISH :: refresh CLAUDE.md v0.0.3
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Then the writer packet returns and the run pointer is deleted (in that order).
|
|
61
|
+
A noop refresh traces the same shape, ending
|
|
62
|
+
`FINISH :: noop`. No phase/score/gate/finding/verdict markers — orc-claude
|
|
63
|
+
runs none of those phases (they live inside the writer). The `orc-trace.js` hook
|
|
64
|
+
bootstraps the pointer on the writer dispatch, so the SPAWN/RETURN skeleton is
|
|
65
|
+
captured even if the skill's run-start step is skipped.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Reference — Refresh Protocol (section-scoped, fingerprint-driven)
|
|
2
|
+
|
|
3
|
+
REFRESH runs when `CLAUDE.md` carries an `orc-claude:meta` header. It touches
|
|
4
|
+
ONLY stale fenced sections — small drift means a small diff (one section body,
|
|
5
|
+
the version, the date, one fingerprint).
|
|
6
|
+
|
|
7
|
+
## Fingerprints
|
|
8
|
+
|
|
9
|
+
Each scanned section's fingerprint is a 6-hex digest of the CANONICAL INPUT
|
|
10
|
+
STRING that produced it — the inputs, not the prose — so cosmetic rewording of
|
|
11
|
+
generated text never marks a section stale.
|
|
12
|
+
|
|
13
|
+
Canonical input string per section (pipe-joined, sorted where a list):
|
|
14
|
+
|
|
15
|
+
| Section | Canonical input |
|
|
16
|
+
|---------|-----------------|
|
|
17
|
+
| `whatis` | manifest name+description fields + top-level dir names |
|
|
18
|
+
| `commands` | sorted `name=command` pairs of every verified script/target |
|
|
19
|
+
| `layout` | sorted top-level dir names (+ workspace package names) |
|
|
20
|
+
| `conventions` | sorted basenames+size of lint/format/type config files |
|
|
21
|
+
| `boundaries` (scanned half) | sorted `.gitignore` non-comment lines + generated/vendored dir names |
|
|
22
|
+
| `workflow` | CI workflow file basenames + detected branch/commit convention |
|
|
23
|
+
| `decisions` | dependency-manifest name (tiebreakers only change if stack changes) |
|
|
24
|
+
| `patterns` | sorted config basenames + primary language name |
|
|
25
|
+
| `testing` | test-runner name + test dir names |
|
|
26
|
+
| `adr` | manifest name+version field |
|
|
27
|
+
| `environment` | sorted env-var names found |
|
|
28
|
+
| `pointers` | sorted `docs/claude-*.md` basenames |
|
|
29
|
+
|
|
30
|
+
Compute with a real command — never mentally:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
node -e "console.log(require('crypto').createHash('md5').update(process.argv[1]).digest('hex').slice(0,6))" "<canonical input string>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`@user` sections have no fingerprint and are NEVER regenerated. For
|
|
37
|
+
`@user+scan` (boundaries), fingerprint and refresh only the scanned half; the
|
|
38
|
+
user half is untouchable.
|
|
39
|
+
|
|
40
|
+
## The refresh algorithm
|
|
41
|
+
|
|
42
|
+
1. Parse the `orc-claude:meta` header (version, updated, line-budget,
|
|
43
|
+
sections map). Malformed header → treat the file as foreign → UPDATE mode.
|
|
44
|
+
2. Run the Phase-1 scan; recompute every scanned section's fingerprint.
|
|
45
|
+
3. Diff against the header's `name@fingerprint` entries →
|
|
46
|
+
- **stale**: fingerprint changed → regenerate that fence's interior.
|
|
47
|
+
- **new**: a section that now scans non-empty but isn't in the file →
|
|
48
|
+
append it (fenced) and add it to the header map.
|
|
49
|
+
- **gone**: a scanned section whose inputs vanished entirely (e.g. tests
|
|
50
|
+
removed) → leave the fence but note it in the report; never silently
|
|
51
|
+
delete (the user may want the history). Flag, don't cut.
|
|
52
|
+
- **@user**: skip always.
|
|
53
|
+
4. **No stale/new sections** → print
|
|
54
|
+
`CLAUDE.md up to date (v<X.Y.Z>, <DD-MM-YYYY>)` and STOP. No write, no
|
|
55
|
+
bump, no bak.
|
|
56
|
+
5. Otherwise: write `CLAUDE.md.bak` (overwrite the old bak), apply the
|
|
57
|
+
section replacements inside their fences only, bump `version` by exactly
|
|
58
|
+
0.0.1, set `updated:` to today (DD-MM-YYYY), rewrite the header's
|
|
59
|
+
fingerprint map, and re-emit the one-line visible trademark under the
|
|
60
|
+
header with the new version/date.
|
|
61
|
+
6. Contradiction check: if the scan contradicts a user-authored line (e.g.
|
|
62
|
+
file says `yarn`, repo uses `pnpm`), list it under "Conflicts flagged" in
|
|
63
|
+
the report. NEVER edit the user's line.
|
|
64
|
+
7. Budget: regenerated sections respect the persisted `line-budget` for
|
|
65
|
+
generated content, same overflow rule as CREATE (cut Zone B → `docs/` +
|
|
66
|
+
pointer). Existing user content never counts and is never trimmed.
|
|
67
|
+
|
|
68
|
+
## Invariants (hold in every refresh)
|
|
69
|
+
|
|
70
|
+
- Exactly +0.0.1 per content-changing run; no bump on noop.
|
|
71
|
+
- DD-MM-YYYY everywhere a date is written.
|
|
72
|
+
- Nothing outside `orc-claude:section` fences and the `orc-claude:meta`
|
|
73
|
+
header is ever modified.
|
|
74
|
+
- The `ORC-WIKI:START`…`ORC-WIKI:END` block (owned by orc-wiki) is
|
|
75
|
+
byte-preserved even when it sits between generated sections.
|
|
76
|
+
- Zero questions to the user, in every branch.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Reference — Generated CLAUDE.md Template
|
|
2
|
+
|
|
3
|
+
The exact shape orc-claude writes. Two zones: **Zone A (rules)** first — the
|
|
4
|
+
hot zone Claude must obey, kept short so nothing dilutes — then **Zone B
|
|
5
|
+
(reference)** — lookup material (tables, maps, checklists). Behavioral rules
|
|
6
|
+
never go in Zone B.
|
|
7
|
+
|
|
8
|
+
Sections whose scan came back empty are OMITTED entirely (no stubs). `@user`
|
|
9
|
+
sections are ALWAYS emitted as placeholders — they are the user's to fill and
|
|
10
|
+
are never regenerated by refresh.
|
|
11
|
+
|
|
12
|
+
## The meta header (top of file, before everything)
|
|
13
|
+
|
|
14
|
+
```markdown
|
|
15
|
+
<!-- orc-claude:meta
|
|
16
|
+
generated-by: orc-claude
|
|
17
|
+
version: 0.0.1
|
|
18
|
+
updated: 12-07-2026
|
|
19
|
+
line-budget: 400
|
|
20
|
+
sections: p0@user | commands@e3f1a2 | layout@9b21cc | conventions@41ad07 | boundaries@user+scan | workflow@c0ffee | decisions@d00d01 | patterns@5eed42 | gotchas@user | testing@77c2e1 | adr@1decaf | environment@ab12cd | glossary@user | pointers@f00baa
|
|
21
|
+
-->
|
|
22
|
+
> Generated by **orc-claude** v0.0.1 — 12-07-2026. Run `/orc-claude` to
|
|
23
|
+
> refresh stale sections only. Fill the placeholder sections yourself.
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- `version` starts at `0.0.1`, bumps by exactly 0.0.1 per content-changing run.
|
|
27
|
+
- `updated` is DD-MM-YYYY.
|
|
28
|
+
- `sections:` lists only sections actually present, as `name@fingerprint`;
|
|
29
|
+
`@user` marks never-regenerated sections; `@user+scan` marks a section with
|
|
30
|
+
a scanned half (refreshable) and a user half (untouchable). Fingerprint
|
|
31
|
+
recipe: `references/refresh.md`.
|
|
32
|
+
|
|
33
|
+
## The fence grammar
|
|
34
|
+
|
|
35
|
+
Every generated section body sits inside:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
<!-- orc-claude:section commands -->
|
|
39
|
+
...content...
|
|
40
|
+
<!-- /orc-claude:section -->
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Refresh replaces ONLY the interior of a stale section's fences. Anything the
|
|
44
|
+
user writes OUTSIDE fences survives every run, verbatim. User edits INSIDE a
|
|
45
|
+
scanned fence are lost on that section's next refresh — the report warns about
|
|
46
|
+
this once.
|
|
47
|
+
|
|
48
|
+
## Zone A — rules (target ≤ ~120 generated lines)
|
|
49
|
+
|
|
50
|
+
| # | Section | Fence name | Source | ~Lines | Content |
|
|
51
|
+
|---|---------|-----------|--------|-------|---------|
|
|
52
|
+
| 1 | `# P0 — non-negotiable rules` | `p0` | `@user` | 15 | Placeholder below. |
|
|
53
|
+
| 2 | `## What this is` | `whatis` | scan | 5 | 2–4 sentences: what the project does, who consumes it, the one architectural fact not obvious from the tree. |
|
|
54
|
+
| 3 | `## Commands` | `commands` | scan | 25 | Verified-real only: install, dev/run, build, test (+ single-test form), lint, typecheck, migrate. Per-workspace table if monorepo. |
|
|
55
|
+
| 4 | `## Boundaries` | `boundaries` | `@user+scan` | 15 | Scanned half: do-not-touch dirs (generated/vendored/legacy), lockfile + secrets rules, migration safety. User half: placeholder for zones only a human knows. |
|
|
56
|
+
| 5 | `## Workflow` | `workflow` | scan | 15 | Branch/commit conventions (from git history + CI), the pre-done verification loop, PR checklist if CI defines one. |
|
|
57
|
+
| 6 | `## Decision rules` | `decisions` | scan | 8 | 3–4 tiebreakers for ambiguity, e.g. "match existing patterns over introducing new ones; ask before adding dependencies". |
|
|
58
|
+
|
|
59
|
+
### The P0 placeholder (emitted verbatim in CREATE/UPDATE)
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
<!-- orc-claude:section p0 -->
|
|
63
|
+
# P0 — non-negotiable rules
|
|
64
|
+
**IMPORTANT: these override everything below. YOU (the human) must fill this
|
|
65
|
+
section in yourself — orc-claude never writes rules on your behalf and never
|
|
66
|
+
asks. Each rule: one line + a short *why*. Delete this notice when done.**
|
|
67
|
+
- <your hard rule> — <why it exists>
|
|
68
|
+
- <your hard rule> — <why it exists>
|
|
69
|
+
<!-- /orc-claude:section -->
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Zone B — reference (the rest of the budget)
|
|
73
|
+
|
|
74
|
+
| # | Section | Fence name | Source | ~Lines | Content |
|
|
75
|
+
|---|---------|-----------|--------|-------|---------|
|
|
76
|
+
| 7 | `## Layout` | `layout` | scan | 20 | Annotated top-level dirs (non-obvious ones only, never file-by-file). Monorepo → package ownership map + cross-package edit rules. |
|
|
77
|
+
| 8 | `## Conventions` | `conventions` | scan | 30 | Deviations from defaults only: module system, "formatter owns style — don't hand-format", naming, error-handling shape, FE state/styling or BE API shape. |
|
|
78
|
+
| 9 | `## Patterns & anti-patterns` | `patterns` | scan | 35 | Do/don't table WITH reasons, sampled from real code. Seeded by scan; user grows it. |
|
|
79
|
+
| 10 | `## Gotchas` | `gotchas` | `@user` | 30 | Placeholder + note: "if you typed the same correction last session, it belongs here." Append-only; refresh never rewrites it. |
|
|
80
|
+
| 11 | `## Testing` | `testing` | scan | 25 | Unit vs integration split, mocks-or-not, fixture locations, evidence rule: "never claim done without test/build output". |
|
|
81
|
+
| 12 | `## Architecture decisions` | `adr` | scan | 25 | Mini-ADR list, one line each: decision + why + date. Scan seeds obvious ones; user/refresh appends. |
|
|
82
|
+
| 13 | `## Environment` | `environment` | scan | 15 | Required env-var NAMES only (never values), local-setup quirks, external service boundaries. |
|
|
83
|
+
| 14 | `## Domain glossary` | `glossary` | `@user` | 15 | Placeholder: business term ↔ code name mappings only a human knows. |
|
|
84
|
+
| 15 | `## Pointers` | `pointers` | scan | 10 | `@docs/...` imports for anything that overflowed the budget. |
|
|
85
|
+
|
|
86
|
+
`@user` placeholders (gotchas, glossary, boundaries' user half) each carry a
|
|
87
|
+
one-line bold note that the user must fill them themself, mirroring the P0
|
|
88
|
+
notice.
|
|
89
|
+
|
|
90
|
+
## Budget rules
|
|
91
|
+
|
|
92
|
+
- Default budget: **400 generated lines** (header + all fences). Persist the
|
|
93
|
+
effective budget in `line-budget:`; a user-passed `budget=N` argument
|
|
94
|
+
overrides and is persisted.
|
|
95
|
+
- The budget NEVER applies to pre-existing user content. In UPDATE mode the
|
|
96
|
+
total file may exceed the budget — allowed; the report tells the user to
|
|
97
|
+
trim unused content themself.
|
|
98
|
+
- Over budget at generation time → cut Zone B first (largest section first),
|
|
99
|
+
moving the overflow into `docs/claude-<section>.md` + an `@docs/...` line in
|
|
100
|
+
Pointers. Zone A is never cut.
|
|
101
|
+
|
|
102
|
+
## Placement rules (UPDATE mode)
|
|
103
|
+
|
|
104
|
+
- Meta header: very top of the file.
|
|
105
|
+
- Generated sections: appended after existing content as one contiguous block,
|
|
106
|
+
EXCEPT the P0 placeholder, which goes directly under the meta header so the
|
|
107
|
+
hot zone stays on top.
|
|
108
|
+
- Existing user headings are never moved to "make room".
|
|
109
|
+
- The orc-wiki managed block stays exactly where it is, byte-identical.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# ORC-DIY — Build your own ORC flow
|
|
2
|
+
|
|
3
|
+
> This guide is intentionally separate from the main project README. The root
|
|
4
|
+
> README covers installing and using the shipped lanes; **everything about
|
|
5
|
+
> composing your own lane lives here.**
|
|
6
|
+
|
|
7
|
+
ORC-DIY lets you assemble a custom orchestrator pipeline from ORC's real
|
|
8
|
+
parts — keep the phases you want, drop the ones you don't, pick the session
|
|
9
|
+
tier, and decide how autonomous the run is. The shape is chosen entirely in
|
|
10
|
+
your **terminal** (deterministic, zero model tokens); Claude only ever runs
|
|
11
|
+
the flow you compiled.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
orc diy init → orc diy set … (repeat) → orc diy compile → /orc-diy <request>
|
|
15
|
+
(config created) (shape your flow) (build the flow) (run it)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 1. Bootstrap
|
|
19
|
+
|
|
20
|
+
**Easiest path — the interactive composer.** Run bare `orc diy` in a real
|
|
21
|
+
terminal: it creates the flow if none exists (pick full-lane defaults or a
|
|
22
|
+
preset from a numbered list), then lets you shape every key with numbered
|
|
23
|
+
pick-lists, shows the live gate status and validation issues as you go, and
|
|
24
|
+
offers to compile on exit. Everything below is the same thing, non-interactive:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
orc diy # interactive composer (create + shape + compile)
|
|
28
|
+
orc diy init # scriptable: create the default config (full-lane shape)
|
|
29
|
+
orc diy init --preset lean # or start from a preset: lean | paranoid | solo-fast
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
This writes three project-scoped files (there is no global variant — `orc
|
|
33
|
+
diy` rejects `--global`; one flow per project):
|
|
34
|
+
|
|
35
|
+
| File | What it is | Who writes it |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `.claude/orc-diy.config.yaml` | your flow choices | the CLI only |
|
|
38
|
+
| `.claude/orc/diy/flow.md` | human-readable flow spec (regenerated on every change) | the CLI only |
|
|
39
|
+
| `.claude/orc/diy/flow.lock.json` | hashes + compile stamp — the gate's state | the CLI only |
|
|
40
|
+
|
|
41
|
+
## 2. Shape the flow
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
orc diy show # current flow + gate status (READY / STALE / UNCONFIGURED)
|
|
45
|
+
orc diy set review blocking-only
|
|
46
|
+
orc diy set verify smoke
|
|
47
|
+
orc diy set scoring off
|
|
48
|
+
orc diy set fixed_executor orc-executor-sonnet-5-high
|
|
49
|
+
orc diy set session_tier opus-4-7-med
|
|
50
|
+
orc diy set autonomy semi
|
|
51
|
+
orc diy validate # re-check cross-key rules any time
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**`opus5_only` does not reach this lane.** That config forces every other
|
|
55
|
+
lane's roles to Opus 5, but a DIY flow's executors come from `flow.lock.json`,
|
|
56
|
+
which only `orc diy compile` writes. To run this lane on Opus 5, set
|
|
57
|
+
`fixed_executor`/`session_tier` here and re-compile.
|
|
58
|
+
|
|
59
|
+
The full key table lives in `references/flow-schema.md`. Highlights:
|
|
60
|
+
|
|
61
|
+
- **Phases** — `analyze`, `review`, `security`, `verify`, `testgen`,
|
|
62
|
+
`summary`, `wiki_gate`: each phase has off/on/strictness values. Order is
|
|
63
|
+
fixed; you choose presence and strictness.
|
|
64
|
+
- **Scoring** — `scoring on` keeps the per-task rubric; `scoring off` skips
|
|
65
|
+
it and sends every task to your `fixed_executor`.
|
|
66
|
+
- **Session tier** — `session_tier` is the model+effort the compiled flow
|
|
67
|
+
requires. DIY is SEPARATE from the baseline /orc rule — pick any tier from the
|
|
68
|
+
full grid: `sonnet-4-6-{med,high}`, `opus-4-7-{med,high}`,
|
|
69
|
+
`opus-4-8-{med,high,xhigh,max}`, `opus-5-{med,high,xhigh,max}`,
|
|
70
|
+
`fable-5-{med,high,xhigh,max}` (default
|
|
71
|
+
`opus-4-8-high`). The effort guard enforces the effort half deterministically
|
|
72
|
+
(the compiled effort OR higher on the ladder); the statusline warns on the
|
|
73
|
+
model half. Executor choices above the tier are rejected at validate time; the
|
|
74
|
+
score table is clipped to the tier at compile time.
|
|
75
|
+
- **Autonomy** — `interactive` (all asks), `semi` (routine asks
|
|
76
|
+
auto-accepted), `hands-off` (only hard stops + ship). Locked safety rules
|
|
77
|
+
are never overridden — see `references/locked-blocks.md` for what you can
|
|
78
|
+
NEVER configure away.
|
|
79
|
+
- **Ship** — `ship_mode`: `ask`, `commit`, `pr`, or `report-only`.
|
|
80
|
+
|
|
81
|
+
## 3. Compile
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
orc diy compile # deterministic stitch — no model, no tokens
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The compiler validates, cherry-picks the needed references from your
|
|
88
|
+
installed orc skill, stitches `.claude/orc/diy/FLOW-COMPILED.md`, and stamps
|
|
89
|
+
`flow.lock.json`. Details: `references/compile.md`.
|
|
90
|
+
|
|
91
|
+
**Every change requires a recompile.** The gate flips to STALE whenever:
|
|
92
|
+
- you change any key (`orc diy set` …),
|
|
93
|
+
- you update orc (`orc update` / `orc upgrade`),
|
|
94
|
+
- the compiled file is edited or deleted.
|
|
95
|
+
|
|
96
|
+
`/orc-diy` will not run a stale flow — it names the reason, tells you to run
|
|
97
|
+
`orc diy compile`, and offers the regular `/orc` lane for the request at
|
|
98
|
+
hand. `/orc-diy compile` in a session just runs the same CLI compiler.
|
|
99
|
+
|
|
100
|
+
## 4. Run
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
/orc-diy implement the CSV export endpoint
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The stub skill checks the gate, then follows your compiled flow: same run
|
|
107
|
+
folders, checkpoints, subagents, and evidence rules as the full lane — minus
|
|
108
|
+
the phases you removed, plus the strictness you chose.
|
|
109
|
+
|
|
110
|
+
## Presets
|
|
111
|
+
|
|
112
|
+
| Preset | Shape |
|
|
113
|
+
|---|---|
|
|
114
|
+
| `lean` | analyze off, review blocking-only, verify smoke, summary short |
|
|
115
|
+
| `paranoid` | analyze full, security always, testgen on, verify full |
|
|
116
|
+
| `solo-fast` | scoring off → one Sonnet 5 high executor, review off, verify smoke, autonomy semi |
|
|
117
|
+
|
|
118
|
+
Presets are just config bundles — inspect with `orc diy show`, tweak with
|
|
119
|
+
`set`, and compile like any other flow.
|
|
120
|
+
|
|
121
|
+
## Command reference
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
orc diy INTERACTIVE composer (create/shape/compile in one menu)
|
|
125
|
+
orc diy init [--preset <name>] [--force] create (or overwrite) the config
|
|
126
|
+
orc diy show flow table + gate status
|
|
127
|
+
orc diy status [--json] gate status only (used by the skill/hooks)
|
|
128
|
+
orc diy set <key> <value> change one key (invalidates the compile)
|
|
129
|
+
orc diy validate run cross-key validation
|
|
130
|
+
orc diy compile build FLOW-COMPILED.md + stamp the lock
|
|
131
|
+
orc diy reset delete config, flow, lock, and compiled file
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Boundaries (read before getting creative)
|
|
135
|
+
|
|
136
|
+
- The CLI is the only writer. Never hand-edit the config, the lock, or the
|
|
137
|
+
compiled flow — and never ask Claude to; the skill refuses by contract.
|
|
138
|
+
- `references/locked-blocks.md` is compiled into every flow verbatim: the
|
|
139
|
+
orchestrator never implements, checkpoint discipline, wave conflict rules,
|
|
140
|
+
the severity ladder, and red-build ship blocking are not yours to remove.
|
|
141
|
+
- orc-diy needs the orc skill installed next to it (it cherry-picks by
|
|
142
|
+
reference); `orc init` installs both.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orc-diy
|
|
3
|
+
description: >
|
|
4
|
+
User-composable ORC lane. Use for "/orc-diy" or "run my custom orc flow".
|
|
5
|
+
The pipeline shape (analyze/review/verify/security/testgen on-off, scoring
|
|
6
|
+
or a fixed executor, autonomy, ship mode, session tier) is configured
|
|
7
|
+
ENTIRELY through the `orc diy` CLI and compiled into a flow file —
|
|
8
|
+
never configured in-session. HARD-GATED: no config or a stale compile →
|
|
9
|
+
this skill never runs the custom flow; it explains the CLI steps and offers
|
|
10
|
+
plain /orc instead. "/orc-diy compile" re-runs the deterministic CLI
|
|
11
|
+
compiler. See references/flow-schema.md and references/compile.md.
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ORC-DIY (stub — gate + dispatcher)
|
|
15
|
+
|
|
16
|
+
You are the entry gate for the user's compiled custom flow. You NEVER invent,
|
|
17
|
+
modify, or interpret flow configuration in-session — the `orc diy` CLI is the
|
|
18
|
+
only writer, the compiler is the only builder, and this stub only gates and
|
|
19
|
+
dispatches. All state lives in the project's `.claude/` (project-scoped; no
|
|
20
|
+
global variant).
|
|
21
|
+
|
|
22
|
+
## Step 0 — route `compile`
|
|
23
|
+
|
|
24
|
+
If the invocation argument is `compile` (from `/orc-diy compile`): run
|
|
25
|
+
`orc diy compile` via Bash and relay its output. If the `orc` CLI is not on
|
|
26
|
+
PATH, tell the user to run `orc diy compile` in their own terminal — do NOT
|
|
27
|
+
reimplement the compiler in-session. Then end the turn. (`status` routes the
|
|
28
|
+
same way to `orc diy status`.)
|
|
29
|
+
|
|
30
|
+
## Step 1 — the hard gate (every other invocation)
|
|
31
|
+
|
|
32
|
+
Run `orc diy status` via Bash and branch on the reported state. If the CLI is
|
|
33
|
+
unavailable, apply the same checks manually from
|
|
34
|
+
`.claude/orc-diy.config.yaml` + `.claude/orc/diy/flow.lock.json` per
|
|
35
|
+
`references/flow-schema.md` — and treat ANYTHING you cannot verify as STALE
|
|
36
|
+
(fail closed).
|
|
37
|
+
|
|
38
|
+
- **UNCONFIGURED** — no config exists. Tell the user, in this order: what
|
|
39
|
+
orc-diy is (one sentence), the exact bootstrap
|
|
40
|
+
(`orc diy init` → optionally `orc diy set <key> <value>` →
|
|
41
|
+
`orc diy compile` — see the skill's README for the full guide), then ask
|
|
42
|
+
ONE question: *"Run this request through the regular full `/orc` lane
|
|
43
|
+
instead?"* Yes → invoke the `orc` skill with the user's original request
|
|
44
|
+
carried over verbatim. No → end the turn. Never proceed on an
|
|
45
|
+
unconfigured flow, and never write the config yourself.
|
|
46
|
+
- **STALE** — configured but not runnable. Report the specific reason the
|
|
47
|
+
status gave (config changed since compile / orc was updated / compiled
|
|
48
|
+
flow modified or missing) and the fix (`orc diy compile`), then the same
|
|
49
|
+
single `/orc` fallback question as above. Never run a stale flow.
|
|
50
|
+
- **READY** — proceed to Step 2.
|
|
51
|
+
|
|
52
|
+
## Step 2 — dispatch the compiled flow
|
|
53
|
+
|
|
54
|
+
Read `.claude/orc/diy/FLOW-COMPILED.md` and follow it as your orchestrator
|
|
55
|
+
spine for this run — it is self-contained: tier self-check, locked rules,
|
|
56
|
+
phase sequence, and the references it cherry-picks from the installed orc
|
|
57
|
+
skill. Honor its generated header: if its own self-gate fails, stop exactly
|
|
58
|
+
as it says. Do not consult this stub again for the rest of the run, and do
|
|
59
|
+
not load orc's SKILL.md as a spine (the compiled flow already references the
|
|
60
|
+
exact orc subskills and schemas it needs).
|
|
61
|
+
|
|
62
|
+
## Hard rules
|
|
63
|
+
|
|
64
|
+
1. The compiled flow is a build artifact — NEVER edit
|
|
65
|
+
`FLOW-COMPILED.md`, `flow.lock.json`, or `orc-diy.config.yaml` yourself,
|
|
66
|
+
and never "patch" the flow conversationally. Config changes go through
|
|
67
|
+
`orc diy set` + `orc diy compile`, both run by the user.
|
|
68
|
+
2. Fail closed: any gate ambiguity = STALE, with the reason shown.
|
|
69
|
+
3. The fallback ask is ONE question with two outcomes (`/orc` or stop) —
|
|
70
|
+
never a menu, never a silent fallback.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
## Phase: Analyze (doc intake)
|
|
2
|
+
|
|
3
|
+
<!-- diy:when analyze=off -->
|
|
4
|
+
Document analysis is DISABLED in this flow. If the user supplies a
|
|
5
|
+
requirements document, tell them this flow skips analysis and will plan
|
|
6
|
+
directly from their stated intent; offer `/orc-analyze` as a standalone step
|
|
7
|
+
if they want the doc grounded first.
|
|
8
|
+
<!-- /diy:when -->
|
|
9
|
+
<!-- diy:when analyze=mini -->
|
|
10
|
+
When the request includes a document (PDF path or pasted), dispatch the
|
|
11
|
+
trimmed analyst: follow `.claude/skills/orc-analyze-mini/SKILL.md` and hand
|
|
12
|
+
its requirement spec to planning. No doc → go straight to planning.
|
|
13
|
+
<!-- /diy:when -->
|
|
14
|
+
<!-- diy:when analyze=full -->
|
|
15
|
+
When the request includes a document (PDF path or pasted), dispatch the full
|
|
16
|
+
System Analyst: follow `.claude/skills/orc-analyze/SKILL.md` (the orchestrator
|
|
17
|
+
dispatches; it never analyzes itself) and hand the requirement spec to
|
|
18
|
+
planning. No doc → go straight to planning.
|
|
19
|
+
<!-- /diy:when -->
|
|
20
|
+
<!-- diy:when analyze=auto -->
|
|
21
|
+
Route doc intake exactly as the full lane does: a document present triggers
|
|
22
|
+
the System Analyst per the intake rules in
|
|
23
|
+
`.claude/skills/orc/references/intake.md`; otherwise proceed to planning.
|
|
24
|
+
<!-- /diy:when -->
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
## Phase: Execution (waves)
|
|
2
|
+
|
|
3
|
+
Run execution exactly as the full lane's execution subskill defines it —
|
|
4
|
+
follow `.claude/skills/orc/subskills/orc-execution/SKILL.md` (slices
|
|
5
|
+
constructed by you, standing rules injected, evidence-bearing returns
|
|
6
|
+
validated against the contract) with these compiled overrides:
|
|
7
|
+
|
|
8
|
+
- Max parallel tasks per wave: **{{max_wave_tasks}}** (hard cap; overflow →
|
|
9
|
+
next wave; wave grouping per
|
|
10
|
+
`.claude/skills/orc/references/wave-grouping.md`).
|
|
11
|
+
- Stop-and-continue pause every **{{batch_pause_every}}** waves (checkpoint
|
|
12
|
+
confirmed BEFORE announcing any stop; resume per
|
|
13
|
+
`.claude/skills/orc/references/stop-and-resume.md`).
|
|
14
|
+
- Executor selection comes from this flow's scoring section above — never
|
|
15
|
+
from the shipped presets.
|
|
16
|
+
|
|
17
|
+
<!-- diy:when tdd=on -->
|
|
18
|
+
TDD execution: `tdd_spec` is SCOPED by each entry's `disposition` — only
|
|
19
|
+
`new-surface` and `behavior-change` get tests; `covered-by-existing` (cited
|
|
20
|
+
existing test) and `no-behavior` (constants, translation strings, docs, config)
|
|
21
|
+
get none, and a task with cited `risk[]` is never scoped out. A PAIRED TDD task
|
|
22
|
+
(never a Wave 0) materializes the remaining skeletons into real
|
|
23
|
+
FAILING tests (red proven before implementation; a `new-surface` pre-implementation
|
|
24
|
+
pass is a spec bug → block that requirement). Each implementation slice carries its
|
|
25
|
+
`tdd_spec`; executors implement to green (implement→test→repair, cap
|
|
26
|
+
`tdd_loop_max`; `TDD-RED`/`TDD-GREEN` per iteration) and return `tdd_state`
|
|
27
|
+
per `.claude/skills/_shared/return-validation.md` — including §6's worktree
|
|
28
|
+
delta: `git status --short` before/after each dispatch, any changed path
|
|
29
|
+
outside `declared_files` (a revert included) gates the wave close.
|
|
30
|
+
<!-- /diy:when -->
|
|
31
|
+
|
|
32
|
+
<!-- diy:when gotchas=on -->
|
|
33
|
+
Repair memory: probe `orc gotcha status` once at preflight (exit 0 = entries,
|
|
34
|
+
1 = none — never a `find`) and print one line either way. Inject the
|
|
35
|
+
SCOPE-MATCHING entries into each slice beside `pattern` — glob vs that task's
|
|
36
|
+
`declared_files`, cap 3, highest `hits` first; zero matches = NO block, never an
|
|
37
|
+
empty one, and NEVER unfiltered. A return that CLOSED a repair loop carries
|
|
38
|
+
`gotcha_recorded`; dedupe it on `symptom`+`scope` (a match bumps `hits` and
|
|
39
|
+
`last_seen`) and append it to `.claude/orc/gotchas.md` YOURSELF — a subagent never
|
|
40
|
+
writes that file, and a loop that hit its cap and stopped records nothing. Full
|
|
41
|
+
contract: `.claude/skills/_shared/gotchas.md`.
|
|
42
|
+
<!-- /diy:when -->
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
## Phase: Extra — may an executor run OFF Claude?
|
|
2
|
+
|
|
3
|
+
<!-- diy:when extra=on -->
|
|
4
|
+
This flow ALLOWS a foreign executor. Canonical contract:
|
|
5
|
+
`.claude/skills/_shared/extra-dispatch.md` — load it before the first dispatch.
|
|
6
|
+
|
|
7
|
+
Two things must both be true or nothing routes foreign: `config.extra_enabled`
|
|
8
|
+
is on, and a route row covers the score. Neither is decided here — **the flow
|
|
9
|
+
key decides WHETHER, the resolver decides WHERE**, per task, at run time:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
orc extra resolve <score> --role executor --risk <n> --json # 0 foreign · 1 Claude
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Route rows — **and slot rows** — are deliberately NOT baked into this compiled
|
|
16
|
+
flow the way the score table is. The score table is clipped to this flow's
|
|
17
|
+
session tier, so it is a compile-time fact; a route row and a slot row are a
|
|
18
|
+
ledger the user edits independently, and `orc diy status` cannot see either one
|
|
19
|
+
change. Baked rows would go stale in silence.
|
|
20
|
+
|
|
21
|
+
**A DIY flow is a SCORED lane, so it resolves BANDS, not positions.** The six
|
|
22
|
+
POSITIONS (`orc extra role`) belong to `/orc-quick`, `/orc-fast`, `/orc-doc` and
|
|
23
|
+
`/orc-wiki`; nothing here reads one, and `fixed_executor:
|
|
24
|
+
extra:<profile>/<provider>/<model>` is unchanged and remains band-free by
|
|
25
|
+
construction.
|
|
26
|
+
|
|
27
|
+
- **`scoring: off`** — this flow pins ONE executor, so there is no score.
|
|
28
|
+
Resolve that agent's **BAND at both edges and require them to agree**; a row
|
|
29
|
+
that covers the band only partially keeps the run on Claude and says so.
|
|
30
|
+
- Print the `extra:` preflight line whenever the gate is on, before the first
|
|
31
|
+
dispatch — including on a run where nothing routed foreign. P0:
|
|
32
|
+
`a lane that sends work off Claude without saying so`.
|
|
33
|
+
- Dispatch through `orc extra dispatch --task <file> --json` with the IDENTICAL
|
|
34
|
+
slice; validate the return with `return-validation.md` **§2b, not §2**; a
|
|
35
|
+
failure runs `orc extra reconcile <task_id>` FIRST — a worktree that moved is
|
|
36
|
+
RESUMED, never re-done (`a lane that re-does work the worktree already
|
|
37
|
+
contains` has broken the contract) — then falls back to the Claude band it
|
|
38
|
+
would have had, announced.
|
|
39
|
+
- **Recovery is NOT compiled in.** The route rows already stay out of the
|
|
40
|
+
compiled lock file because they would go stale in silence; the same is true of
|
|
41
|
+
the recovery procedure. `orc extra reconcile` reads the journal at the moment
|
|
42
|
+
it is needed, and `config.extra_resume` decides whether a resume slice is
|
|
43
|
+
composed at all.
|
|
44
|
+
- A cited-risk task never leaves Claude while `extra_risk_tasks` is `off`.
|
|
45
|
+
<!-- /diy:when -->
|
|
46
|
+
<!-- diy:when extra=off -->
|
|
47
|
+
Extra is OFF in this flow. Every executor dispatch stays on Claude.
|
|
48
|
+
|
|
49
|
+
**This is a decision the compile made, and it OUTRANKS the global setting.** If
|
|
50
|
+
`config.extra_enabled` is on, say so once before the first dispatch — Extra is
|
|
51
|
+
INERT here, exactly as `opus5_only` is inert in `/orc-quick`, and a shadowed
|
|
52
|
+
setting must never be silent. Turning it on globally must never quietly change a
|
|
53
|
+
flow the user compiled; that is what this key is for. To route foreign here, run
|
|
54
|
+
`orc diy set extra on` and recompile.
|
|
55
|
+
<!-- /diy:when -->
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!-- GENERATED SOURCE BLOCK — stitched by `orc diy compile`. Edit the block
|
|
2
|
+
template in skills/orc-diy/references/blocks/, never the compiled file. -->
|
|
3
|
+
# ORC-DIY compiled flow — {{flow_name}}
|
|
4
|
+
|
|
5
|
+
> GENERATED — do not edit. Recompile with `orc diy compile` after any config
|
|
6
|
+
> change. config_hash: `{{config_hash}}` · orc payload: `{{orc_version}}` ·
|
|
7
|
+
> compiled: {{compiled_at}}
|
|
8
|
+
|
|
9
|
+
You are the **orchestrator** for this custom flow. You run as
|
|
10
|
+
**{{tier_model}} at {{tier_effort}} effort** — the tier this flow was compiled
|
|
11
|
+
for. If you can tell you are on a LOWER model than {{tier_model}}, STOP and
|
|
12
|
+
tell the user to switch: subagents cannot exceed the main-session tier, so
|
|
13
|
+
every pinned agent below would silently downgrade.
|
|
14
|
+
|
|
15
|
+
**Self-gate (run FIRST):** run `orc diy status` via Bash. **Exit 0 = READY;
|
|
16
|
+
any non-zero means STOP** — tell the user the reported reason (it names every
|
|
17
|
+
live trigger) and to run `orc diy compile`, then end. Never orchestrate from a
|
|
18
|
+
stale compile.
|
|
19
|
+
|
|
20
|
+
**Tier reconciliation (both directions).** Compare the session you are actually
|
|
21
|
+
running as against `{{tier_model}}`:
|
|
22
|
+
- **BELOW it** → STOP as stated above; every pinned agent would silently
|
|
23
|
+
downgrade.
|
|
24
|
+
- **ABOVE it** → do NOT stop, but say so once: the executor table was CLIPPED
|
|
25
|
+
to `{{tier_model}}` at compile time and is frozen in this artifact, while the
|
|
26
|
+
pinned role agents (reviewer/verifier) are named verbatim and run at their
|
|
27
|
+
FULL pin — so a better session buys you better roles and the same clipped
|
|
28
|
+
executors, with nothing else telling you. Line to print:
|
|
29
|
+
*"compiled for {{tier_model}}, running higher — executors are clipped below
|
|
30
|
+
what this session supports; `orc diy set session_tier <tier> && orc diy
|
|
31
|
+
compile` to use the full ladder."* The session model is not part of any hash,
|
|
32
|
+
so `orc diy status` still reports READY — this line is the only signal.
|
|
33
|
+
|
|
34
|
+
This flow reuses the full orchestrator's machinery by reference — schemas and
|
|
35
|
+
subskills live under `.claude/skills/orc/`, the run folder + checkpoint under
|
|
36
|
+
`.claude/orc/run/` (outside the installer's blast radius).
|
|
37
|
+
Create the run folder first (`.claude/orc/run/{run-slug}/`), checkpoint
|
|
38
|
+
eagerly, and treat disk as truth exactly as the locked rules below demand.
|
|
39
|
+
|
|
40
|
+
<!-- diy:when autonomy=interactive -->
|
|
41
|
+
**Autonomy: interactive.** Keep every user ask the referenced orc phases
|
|
42
|
+
define — confirmations, gates, and escalations all go to the user.
|
|
43
|
+
<!-- /diy:when -->
|
|
44
|
+
<!-- diy:when autonomy=semi -->
|
|
45
|
+
**Autonomy: semi.** Auto-accept advisory/preference asks using the referenced
|
|
46
|
+
phase's stated default; still ASK the user for every P1-gating decision,
|
|
47
|
+
scope change, and the ship decision. Log each auto-accepted ask in the
|
|
48
|
+
decision log with the default you took.
|
|
49
|
+
<!-- /diy:when -->
|
|
50
|
+
<!-- diy:when autonomy=hands-off -->
|
|
51
|
+
**Autonomy: hands-off.** Auto-accept every ask using the referenced phase's
|
|
52
|
+
stated default and log it; the ONLY user interactions left are hard P0 stops
|
|
53
|
+
(second-failure surface) and the ship step's own behavior below. Never let
|
|
54
|
+
hands-off override a locked rule.
|
|
55
|
+
<!-- /diy:when -->
|