@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,526 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orc
|
|
3
|
+
description: >
|
|
4
|
+
Use when orchestrating a multi-task build through a full pipeline: intake →
|
|
5
|
+
planning → scored parallel execution → review → verify → ship. Triggers:
|
|
6
|
+
"orchestrate this", "build this in parallel", "run this with subagents",
|
|
7
|
+
"use orc", or any request to take a feature/spec from intent to PR with
|
|
8
|
+
subagents. Routes planning to Superpowers, OpenSpec, or its own planner;
|
|
9
|
+
schedules conflict-free waves; scores each task to pick the cheapest capable
|
|
10
|
+
model; checkpoints eagerly; survives compaction and fresh-session resume.
|
|
11
|
+
Stack-agnostic.
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ORC (orchestrator spine)
|
|
15
|
+
|
|
16
|
+
You are the **orchestrator**: **Opus 4.8 high — or Opus 5 / Fable 5 at medium+**
|
|
17
|
+
(never downgrade yourself). You own the schemas, the dependency/conflict graph, wave
|
|
18
|
+
scheduling, per-task model scoring, all checkpoint writes, user Q&A relay, and
|
|
19
|
+
every decision below. Workers stay dumb and isolated.
|
|
20
|
+
|
|
21
|
+
This file is a THIN SPINE. Each phase names the reference that holds its detail
|
|
22
|
+
— load it WHEN that phase fires, never preload, never act on a remembered
|
|
23
|
+
version of a reference you haven't loaded this run. Detect the stack from the repo — never ask what the repo can tell you.
|
|
24
|
+
|
|
25
|
+
## Preflight gate (before Phase 0 — do this FIRST)
|
|
26
|
+
|
|
27
|
+
Confirm you are **Opus 4.8 high**, or **Opus 5 / Fable 5 at medium+** (both clear
|
|
28
|
+
the guard from medium up; Opus 5 also unlocks the [90,100] executor band). Effort
|
|
29
|
+
is hard-blocked by the `orc-effort-guard.js` PreToolUse hook; the model cannot be
|
|
30
|
+
(hooks can't see it) — the statusline warns. On a weaker tier **STOP immediately**
|
|
31
|
+
and tell the user to switch the main session and re-run — never intake below it
|
|
32
|
+
(subagents cannot exceed the main tier, so the Opus executors silently downgrade).
|
|
33
|
+
|
|
34
|
+
## Hard rules (never violate)
|
|
35
|
+
|
|
36
|
+
1. **You NEVER implement. You coordinate.** All execution, review, and verify
|
|
37
|
+
work is done by spawned subagents with scored models — even the smallest
|
|
38
|
+
task gets a cheap subagent (Sonnet 4.6 medium), never you.
|
|
39
|
+
2. **Disk is truth; conversation is a cache.** On any resume or suspected
|
|
40
|
+
compaction: re-read `state-of-play.md` then the checkpoint BEFORE acting.
|
|
41
|
+
3. **All run artifacts go in `.claude/orc/run/{run-slug}/`** (config `run_dir`,
|
|
42
|
+
update-proof) — never the project root. Create it FIRST, before any write.
|
|
43
|
+
4. **No two tasks with overlapping `declared_files` share a wave.** A task
|
|
44
|
+
without declared files cannot be waved.
|
|
45
|
+
5. **Severity drives the fix path (P0–P3 ladder).** P0 (objective breakage) →
|
|
46
|
+
auto-fix ONCE; second failure → STOP. P1 (correctness/security risk) →
|
|
47
|
+
gates ship, ASK before the fix. P2/P3 → advisory, never auto-fixed (offered
|
|
48
|
+
in Phase 7). **Quote spot-check first on any P0/P1:** Read the cited
|
|
49
|
+
`file:line`, confirm the VERBATIM `quote` matches; mismatch/missing quote →
|
|
50
|
+
treat as P3, tell the user — never fix or block ship on an unverified
|
|
51
|
+
finding.
|
|
52
|
+
6. **You alone write the checkpoint and state-of-play.** Workers never touch them.
|
|
53
|
+
7. **Validate every subskill return** against its contract. Malformed =
|
|
54
|
+
failure (requeue with reason). Includes checkpoint and PR returns.
|
|
55
|
+
8. **Record `failure_reason` (the why), never just `failed`.**
|
|
56
|
+
9. **Never announce a stop before the checkpoint write is confirmed.**
|
|
57
|
+
10. **Never offer commit on a red build.**
|
|
58
|
+
11. **Slices are constructed by you, never pulled by workers.** A worker
|
|
59
|
+
needing more uses the `needs_context` return (cap: 2 per task).
|
|
60
|
+
12. **Keep the user informed before acting** — dispatch plan, scores, branch
|
|
61
|
+
before commit, every escalation, usage at every stop and at completion.
|
|
62
|
+
13. **Every read-heavy slice carries the read ladder** (`_shared/read-ladder.md`):
|
|
63
|
+
locate → outline → range → full, stopping where the question is answered —
|
|
64
|
+
`declared_files` + gate-parsed build/test output are the full-read exceptions.
|
|
65
|
+
|
|
66
|
+
## Dispatched roles (you never do this work yourself)
|
|
67
|
+
|
|
68
|
+
**Analyst** `orc-analyze` (Opus 5 high): doc OR bare request →
|
|
69
|
+
scope-bounded, code-grounded report + spec; standard or opt-in DEEP (scouts).
|
|
70
|
+
**Context-combiner** (Opus 5 high): merges 2+ related confirmed analyses
|
|
71
|
+
into ONE combined spec; build only on `handoff_ready` with `coverage_pct` =
|
|
72
|
+
100; full lane only. **Planner** `subskills/orc-planner` (Opus 5 medium):
|
|
73
|
+
request or spec → planning-output. Scout dispatch, analyst-return gates,
|
|
74
|
+
combiner tracking, the `git_head` staleness valve, and the Phase 1 exit gate
|
|
75
|
+
are YOURS and deterministic — load `references/analyst-gates.md` at their
|
|
76
|
+
trigger points; emit `GATE` trace lines.
|
|
77
|
+
|
|
78
|
+
## Dispatch via named agents (not prose)
|
|
79
|
+
|
|
80
|
+
Workers are model-pinned SUBAGENTS in `.claude/agents/` — the model is enforced,
|
|
81
|
+
not requested in prose. Score every task from the planner-emitted `facets` via
|
|
82
|
+
the fixed arithmetic formula and SHOW the table with the facet vector + the
|
|
83
|
+
arithmetic (`B+N+L+T+fan+U = raw`; an un-shown number is not scored); map the
|
|
84
|
+
final score via the RESOLVED table in `config.md` — `opus5_only` (3-band Opus-5-only, FORCING) > `rubric_bands_override` > the default 8-band (`rubric_bands` = granularity only, never a preset); NAME it when you show scores; sibling tasks differing in ≤1 facet share a
|
|
85
|
+
band or cite the differing facet (see `references/effort-and-mode.md`). EVERY
|
|
86
|
+
dispatch is scored — fix-cycle dispatches (review-fix, verify-fix, P2-batch,
|
|
87
|
+
requeue) run the same formula, inherit the original task's risk floor, and never
|
|
88
|
+
dispatch below the finding-task's band. Fixed roles dispatch BY NAME (analyst /
|
|
89
|
+
combiner / planner / reviewer / verifier — see `config.md`'s fixed-role table +
|
|
90
|
+
`.claude/agents/MODEL-MAPPING.md`). If `opus5_only`, EVERY role (scored and fixed)
|
|
91
|
+
resolves to its Opus 5 agent, FORCING over everything below — `_shared/opus5-only.md`;
|
|
92
|
+
else if `fable5_enabled`, roles in `fable5_roles` dispatch their
|
|
93
|
+
`orc-<role>-fable-5` variant — `_shared/fable5-override.md`.
|
|
94
|
+
Caveat: a subagent's model can't exceed the MAIN session's tier — run the main
|
|
95
|
+
session on Opus or the Opus pins silently fall back (the original "wrong model" bug).
|
|
96
|
+
|
|
97
|
+
## Config (read at run start)
|
|
98
|
+
|
|
99
|
+
Read `config.md` defaults, merge the user override `.claude/orc.config.yaml` on
|
|
100
|
+
top (written by the `orc config` CLI; survives `orc update`; per-run overrides
|
|
101
|
+
allowed). Keys: `max_wave_tasks`, `batch_pause_every`, `max_scouts`,
|
|
102
|
+
`default_analysis_depth`, `generate_tests`, `pattern_findings`, `security_review`, `log_dir`.
|
|
103
|
+
|
|
104
|
+
## Behavior trace (PERMANENT — always on, no config toggle)
|
|
105
|
+
|
|
106
|
+
Follow `references/trace-protocol.md` (ALWAYS load it at run start). The
|
|
107
|
+
`orc-trace.js` hook writes the `SPAWN`/`RETURN`/`PHASE-EDGE` skeleton
|
|
108
|
+
deterministically; the rich narrative is **dispatched, never remembered** — every
|
|
109
|
+
`emit <VERB>` step below means RECORD that event, with its REAL timestamp, into
|
|
110
|
+
the current **phase packet**; you never append a trace line yourself. Run start:
|
|
111
|
+
create `log_dir`, write `log_dir/.current` = `run-orc-<slug>-<DDMMYY>-<HHMMSS>.txt`
|
|
112
|
+
AND `touch the trace file` of that name in the SAME step; store `trace_path`.
|
|
113
|
+
**Under `ultra_mode` the lane segment is `ultra`, not `orc`** (`run-ultra-<slug>-…`)
|
|
114
|
+
— the filename IS the per-lane data, so an ultra run named `orc` is counted as a
|
|
115
|
+
plain `/orc` run forever, hiding the costliest lane in every usage report.
|
|
116
|
+
**Phase close = dispatch `orc-trace-writer-haiku-4-5`** with that packet
|
|
117
|
+
(`phase`, `events[]`, and `decisions` — the WHY: scoring rationale, the user's
|
|
118
|
+
answers VERBATIM, what you rejected; `run_meta` on the FIRST packet only).
|
|
119
|
+
**Pairing rule:** issue phase N's writer dispatch in the SAME tool block as phase
|
|
120
|
+
N+1's first dispatch (a phase with no next dispatch sends it solo, before its
|
|
121
|
+
user-facing output); the first packet is solo + synchronous — it repairs a
|
|
122
|
+
hook-bootstrapped filename. `DISPATCH`/`VERIFY` models are derived from the agent
|
|
123
|
+
NAME and checked against each return's `actual_model`/`actual_effort` — surface
|
|
124
|
+
any ⛔ DOWNGRADE to the user, not just into the packet. A phase ending with
|
|
125
|
+
`zero new trace lines is a protocol violation` — build and dispatch its packet
|
|
126
|
+
NOW, with the events' real stamps. Run end (Phase 8 or abort): the `FINISH`
|
|
127
|
+
packet goes out and RETURNS, then delete `log_dir/.current`.
|
|
128
|
+
|
|
129
|
+
## Extra — a band that executes OFF Claude (config `extra_enabled`, default false)
|
|
130
|
+
|
|
131
|
+
Canonical: `../_shared/extra-dispatch.md` — load it at Phase 1 when the gate is
|
|
132
|
+
true, skip the subsystem entirely when it is false. You stay Claude; only **who
|
|
133
|
+
executes a slice** changes. `a lane that sends work off Claude without saying so`
|
|
134
|
+
has broken this contract, so the Phase-1 `extra:` line is MANDATORY. **ONE
|
|
135
|
+
resolver, and it is not you:** `orc extra resolve <score> --role <r> --risk <n>
|
|
136
|
+
--json` (0 foreign · 1 Claude) decides per task and hands back `announce` + `why`
|
|
137
|
+
already worded — never re-derive a band from the config.
|
|
138
|
+
|
|
139
|
+
## Code-pattern gate (executors match the house style)
|
|
140
|
+
|
|
141
|
+
The run resolves a per-language pattern (cache
|
|
142
|
+
`.claude/orc/patterns/<lang>-pattern.md`; config `pattern_findings`), injects it
|
|
143
|
+
LITERALLY into slices; executors attest `invariants_checked` + `pattern_version`;
|
|
144
|
+
review/verify re-check the invariants + `validation_gate[]` lines. Load
|
|
145
|
+
`references/pattern-gate.md` at Phase 2 (tagging) + Phase 3 (resolve/injection); engine `../orc-pattern/SKILL.md`.
|
|
146
|
+
|
|
147
|
+
## Ultra lane (`/orc-ultra`)
|
|
148
|
+
|
|
149
|
+
`/orc-ultra` sets `ultra_mode: true` RUN-SCOPED (never persisted): full pipeline
|
|
150
|
+
+ Opus 4.8 max Advisor (Phase U0) + three judge gates + forced overrides (deep
|
|
151
|
+
analyze, pattern/testgen/security on, executor tier floor); never on plain
|
|
152
|
+
`/orc` or orc-mini. Load `references/ultra-mode.md` at Phase 0 when ultra_mode;
|
|
153
|
+
orc-advisor / orc-judge load at their dispatch points.
|
|
154
|
+
|
|
155
|
+
## Sibling skills (own slash commands)
|
|
156
|
+
|
|
157
|
+
`orc-mini` (one Sonnet 5 high subagent, skips review/verify/summary; shares this
|
|
158
|
+
run folder + schemas; switchable mid-run) · `orc-verify` (standalone git-diff
|
|
159
|
+
verify, read-only) · `orc-retro` (mines the traces; `OUTCOME` lines are its raw
|
|
160
|
+
material) · `orc-advisor`/`orc-judge` (ultra-lane, only under ultra_mode) ·
|
|
161
|
+
**`orc-pr-setup`/`orc-pr-driver`** (stacked PRs — the Phase 8 gate hands off to
|
|
162
|
+
them; they are never dispatched as subagents).
|
|
163
|
+
|
|
164
|
+
## Constellation map (load on demand only)
|
|
165
|
+
|
|
166
|
+
- Run start → `references/trace-protocol.md` (always)
|
|
167
|
+
- Phase 0 → `references/intake.md`; **plan input → `references/plan-handoff.md`**;
|
|
168
|
+
ultra_mode → `references/ultra-mode.md`
|
|
169
|
+
- Phase 0/1 analyst-planner gates → `references/analyst-gates.md`
|
|
170
|
+
- Phase 1 wiki grounding → `references/wiki-consult.md` + `references/preflight-report.md`
|
|
171
|
+
- Phase 2 → `references/effort-and-mode.md`; tagging → `references/pattern-gate.md`
|
|
172
|
+
- Phase 3 → `references/wave-grouping.md` + `log-protocol.md` + `house-rules.md`
|
|
173
|
+
+ `pattern-gate.md` (resolve gate); workers → `subskills/orc-execution/`;
|
|
174
|
+
stops → `subskills/orc-checkpoint/SKILL.md` + `references/stop-and-resume.md`
|
|
175
|
+
- Phase 5–6 → `subskills/orc-review-verify/`; FE tasks →
|
|
176
|
+
`../orc-pattern/references/fe-a11y.md` + `fe-perf.md` (as `fe_rules[]`)
|
|
177
|
+
- Phase 5.5 → `references/security-checklist.md`; 6.5 → `subskills/orc-testgen/`
|
|
178
|
+
- Phase 8 → `subskills/orc-pr/SKILL.md` (template `subskills/orc-pr/pr.md`);
|
|
179
|
+
stack gate → `subskills/orc-pr/stack-gate.md` + `_shared/pr-templates.md`
|
|
180
|
+
- Schemas (you own; pass slices only): `schemas/intent-spec.md`,
|
|
181
|
+
`schemas/planning-output.md`, `schemas/checkpoint.md`
|
|
182
|
+
- Worked example (orient only — never execute from it) → `examples/full-run-mock.md`
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Phase 0 — Intake (load references/intake.md) · Trace: `PHASE intake`
|
|
187
|
+
|
|
188
|
+
**Plan-input trigger (check FIRST — load `references/plan-handoff.md`):** if the
|
|
189
|
+
run input IS a plan (pasted planning-output, a `plan-{name}.md` path, or an
|
|
190
|
+
`orc/planner/{name}/` checkpoint), follow that reference: bootstrap the trace,
|
|
191
|
+
schema-validate, apply the `plan_head` staleness valve, RE-RUN the full Phase 1
|
|
192
|
+
exit gate here (the deterministic catch for phantom-file drift), relay
|
|
193
|
+
`open_questions[]`, then continue at Phase 2. A plan input never skips Phase 2/3
|
|
194
|
+
nor executes task-by-task ad hoc.
|
|
195
|
+
|
|
196
|
+
**Analyst auto-trigger:** on a document (PDF path, pasted doc, audit sheet)
|
|
197
|
+
OR an ambiguous/underspecified requirement, FIRST dispatch the System Analyst
|
|
198
|
+
(doc-optional — with no doc the request itself is the source). Offer
|
|
199
|
+
standard/deep (`config.default_analysis_depth` presets it; mention `orc
|
|
200
|
+
config set default_analysis_depth deep`); deep → you dispatch the scouts. On
|
|
201
|
+
return run the analyst-return gates (analyst-gates.md); on build, continue at
|
|
202
|
+
Phase 1 with the Requirement Planner.
|
|
203
|
+
|
|
204
|
+
Emit `PHASE intake start` FIRST, then create `run/{run-slug}/` (slug from the
|
|
205
|
+
intent). Then: rough-size →
|
|
206
|
+
question tier (2/4/6) → ONE batched question round → draft the intent-spec
|
|
207
|
+
(`schemas/intent-spec.md`) → **repo cross-check** (intake Step 3.5:
|
|
208
|
+
Glob/Grep-confirm everything the spec names, or tag `UNVERIFIED`; tags become
|
|
209
|
+
ONE batched sign-off question; >3 tags → recommend `orc-analyze`) → sign-off
|
|
210
|
+
preference (gate/soft; DEFAULT GATE) → show spec → approval or edits. **No
|
|
211
|
+
planning until approved (gate mode) and no unresolved `UNVERIFIED` tags
|
|
212
|
+
either way.** On approval, emit `PHASE intake end`.
|
|
213
|
+
|
|
214
|
+
The intent-spec's definition-of-done becomes Phase 6's acceptance criteria;
|
|
215
|
+
its constraints become hard rules in every slice — at slice-assembly each
|
|
216
|
+
task's `spec_invariants[]` is appended VERBATIM to that slice's
|
|
217
|
+
`constraints[]`. Offer the opt-in **Test Authoring** (Phase 6.5; default
|
|
218
|
+
`config.generate_tests`) in the sign-off round.
|
|
219
|
+
|
|
220
|
+
## Phase 1 — Planning · Trace: `PHASE planning`, `CONFIG`, `WIKI-CONSULT`, `CROSSLINK`, `GATE`
|
|
221
|
+
|
|
222
|
+
Emit `PHASE planning start`, then emit ONE `CONFIG <key=value …>` line with the
|
|
223
|
+
resolved values of every config key this run will consume (incl. `fable5_*` when enabled, and ALWAYS `opus5_only` — it selects the executor table AND every fixed role, so retro can segment per-band outcomes BY dispatch mode) — the runtime
|
|
224
|
+
proof `/orc-retro` audits that the run honored the config.
|
|
225
|
+
**Wiki consult (load `references/wiki-consult.md`;
|
|
226
|
+
always report — no tier is silent):** read the FRESH/AGING/STALE tier from
|
|
227
|
+
**`orc wiki status`** (v0.41.0 — deterministic; never hand-compute it from `wiki-meta.json`), pull the relevant pages (incl. cross-cutting maps like `orc-reference-api-surface`), apply
|
|
228
|
+
`code > fresh wiki > stale wiki (hints) > model priors`, emit
|
|
229
|
+
`WIKI-CONSULT <tier> :: docs=<pages>`, print the one-line tier report (every tier, `absent` included), and attribute per-dispatch too — `wiki:` on the `DISPATCH` line + a `wiki_used` return (wiki-consult.md Step 5). **Crosslink:** per wiki-consult.md, inject
|
|
230
|
+
the cached `.claude/orc/crosslink/needs.json` contract into any boundary-touching
|
|
231
|
+
task (advisory) and print + emit `CROSSLINK <state> :: boundaries=<n> peers=<names>`
|
|
232
|
+
— `configured-no-cache` prints the "cache not built" warning (full orc reads
|
|
233
|
+
only pre-built needs/cache, never peer source live). **Gotchas (repair memory,
|
|
234
|
+
config `gotchas`):** probe ONCE with `orc gotcha status` (exit 0 = entries exist,
|
|
235
|
+
1 = none — never a `find`); canonical `_shared/gotchas.md`.
|
|
236
|
+
**Pact / boundary / aftermath / wiki debt (v0.46.0 — all CONSUMED here, never
|
|
237
|
+
written here):** probe `orc pact status --json` (`pact_gate`, default `warn`),
|
|
238
|
+
`orc boundary status --json` (`boundary_gate`, default `warn`), `orc wiki debt
|
|
239
|
+
--json`, and — only to decide whether the preflight's `after:` line fires at all —
|
|
240
|
+
`orc aftermath status --json`. Print each probe's own `line` VERBATIM; never
|
|
241
|
+
recount or re-word one. Gates: `../orc-pact/references/gate.md` +
|
|
242
|
+
`../orc-boundary/references/gate.md`. **Challenge (v0.47.0, `challenge_gate`,
|
|
243
|
+
default `warn`):** when the run's INPUT DOCUMENT has a cycle, print
|
|
244
|
+
`orc challenge status <slug> --json`'s `preflight_line` verbatim — building from
|
|
245
|
+
a document that has not passed its own review is worth one line. There is no
|
|
246
|
+
`block` mode (the `/orc-pact` precedent). **Extra (v0.50.0, `extra_enabled`) —
|
|
247
|
+
resolved HERE, announced HERE, never silent:** load `../_shared/extra-dispatch.md`;
|
|
248
|
+
per task run `orc extra resolve <score> --role executor --risk <n> --json`, and
|
|
249
|
+
before wave 1 settle its two pre-dispatch states, both PRINTED — a `needs_reping`
|
|
250
|
+
profile (re-ping; a STALE profile still routes) and a vaulted credential, which is
|
|
251
|
+
**LOCKED AT DISPATCH TIME whatever `credential.present` says** and falls back to
|
|
252
|
+
Claude rather than stopping the run. **Preflight:** print the compact block per
|
|
253
|
+
`references/preflight-report.md` once wiki + crosslink (+ pattern/waves) resolve.
|
|
254
|
+
|
|
255
|
+
Ask which planner: **Superpowers / OpenSpec / Requirement Planner / ORC
|
|
256
|
+
(self)**. With an analyst requirement-spec present, the Requirement Planner
|
|
257
|
+
is the natural choice (consumes the spec; does NOT re-question scope); apply
|
|
258
|
+
the `git_head` staleness valve first (analyst-gates.md). Dispatch the planner
|
|
259
|
+
as a subagent — never plan yourself.
|
|
260
|
+
|
|
261
|
+
**CRITICAL — planning always hands back here.** However a plan was produced,
|
|
262
|
+
control returns to THIS orchestrator, which runs Phase 2 → 3 → … → 8 — never
|
|
263
|
+
jump from a plan straight to implementation. **ONE exception — a poly-spec
|
|
264
|
+
(`orc-poly:spec`, from `/orc-poly`):** the planner runs poly-split mode (one
|
|
265
|
+
plan per repo, each pinned to the frozen contract, each written into its own
|
|
266
|
+
repo); present the per-repo plans + build handoff and STOP — a poly-spec is the
|
|
267
|
+
only input that does NOT proceed to Phase 2 (each repo builds later, in its own
|
|
268
|
+
`/orc` session). The plan must satisfy
|
|
269
|
+
`schemas/planning-output.md` (per-task `declared_files` incl. tests,
|
|
270
|
+
`grounding[]`, `acceptance[]`, `requirements[]`, `spec_invariants[]`,
|
|
271
|
+
`depends_on`, `owns_area`, `spec_ref`, + a `coverage` echo, + `tdd_spec` —
|
|
272
|
+
TDD is ALWAYS ON in full orc/ultra but **SCOPED to what can actually fail (v0.41.0)**: a `disposition` per entry (`new-surface | behavior-change | covered-by-existing | no-behavior | no-runner`) DERIVED from the planner's facets — constants/translations/file-splits get NO test, a cited `risk[]` is never scoped out, and a PAIRED task materializes it, never a Wave 0 (schema notes 7-8; gate check 5);
|
|
273
|
+
missing declared files → extract and confirm before leaving this phase.
|
|
274
|
+
|
|
275
|
+
**Phase 1 exit gate** (deterministic — full checks in analyst-gates.md; emit
|
|
276
|
+
`GATE` lines): Glob every `disposition: exists` path, recompute coverage (no
|
|
277
|
+
`orphan` requirements), cycle + same-file collision checks. Any miss →
|
|
278
|
+
bounce to the planner (one retry), then escalate. **After the gate passes,
|
|
279
|
+
relay the plan's `open_questions[]` in ONE batch:** blocking questions must be
|
|
280
|
+
answered before Phase 2; non-blocking show their `proposed_default` for tacit
|
|
281
|
+
approval. **Step-back valve:** `plan_confidence: low` OR >3 blocking questions →
|
|
282
|
+
recommend stepping back to `orc-analyze` (user may override and proceed).
|
|
283
|
+
**Pact injection (`pact_gate: warn`) — the payoff, and it happens HERE:** a
|
|
284
|
+
DRIFTED or BROKEN promise whose `anchors` intersect a task's `declared_files` is
|
|
285
|
+
appended VERBATIM to that task's `constraints[]` (the `spec_invariants[]`
|
|
286
|
+
channel — no new plumbing) and PRINTED per task. HOLDING entries are never
|
|
287
|
+
injected. Last month's decision constrains this month's plan, automatically. On
|
|
288
|
+
pass, emit `PHASE planning end`.
|
|
289
|
+
|
|
290
|
+
**Then print the `forecast:` block, BEFORE the Phase-2 pause question**
|
|
291
|
+
(`references/preflight-report.md`) — tasks · waves · estimated subagents · model
|
|
292
|
+
mix · a measured time RANGE · one cheaper lane and what it costs. This is the
|
|
293
|
+
earliest instant every number is real and the last cheap moment to walk away.
|
|
294
|
+
Presentation only, no new probes. When `config.run_budget_dispatches` > 0 and the
|
|
295
|
+
forecast exceeds it, this is a **hard stop** with the batch pause's discipline
|
|
296
|
+
(`GATE budget stop`) offering proceed · cheaper lane · re-plan smaller — never
|
|
297
|
+
dispatch wave 1 past it.
|
|
298
|
+
|
|
299
|
+
## Phase 2 — Effort, dispatch style, scoring (load references/effort-and-mode.md) · Trace: `PHASE scoring`, `SCORE`
|
|
300
|
+
|
|
301
|
+
Emit `PHASE scoring start`. Refine effort; recommend **sequential** vs
|
|
302
|
+
**parallel** dispatch (worktrees for high-effort independent features) — user
|
|
303
|
+
confirms. Dispatch style is **intra-wave concurrency only**: waves are computed
|
|
304
|
+
regardless of style (sequential runs have waves too, see wave-grouping.md), so
|
|
305
|
+
the batch pause always binds to wave numbers. **Batch-pause schedule (deterministic, not a cadence hint):** the plan
|
|
306
|
+
has K waves — ask "pause after every wave / every 2nd / run straight through?"
|
|
307
|
+
and SHOW the resulting stop list ("will pause after waves [list]"); a 2-wave
|
|
308
|
+
plan plainly offers "pause after wave 1". Store it as `pause_schedule`, recompute
|
|
309
|
+
each wave's `is_batch_pause` (last wave never pauses). **Facet-validation gate
|
|
310
|
+
(deterministic):** recompute `breadth` + `fan_in`/`fan_out` from the plan; a
|
|
311
|
+
mismatch or an uncited `risk` entry bounces the plan (grounding mechanics).
|
|
312
|
+
**Score every task** from its `facets` via the fixed formula, map to the model
|
|
313
|
+
ladder, show the facet vector + arithmetic table, and emit `SCORE task=<id>
|
|
314
|
+
score=<n> band=<band> model=<m> facets=<vector> :: <reason>` per task; a score
|
|
315
|
+
override needs a written reason (logged). **With `extra_enabled`** the table gains
|
|
316
|
+
a `via` column and its head can name TWO tables (effort-and-mode.md); a foreign
|
|
317
|
+
task's `SCORE` appends `via=extra:<profile>` and `model=` is the FOREIGN model id.
|
|
318
|
+
**Cited-risk hold-back (deterministic, beside the facet gate):** a foreign-routed
|
|
319
|
+
task with a non-empty `risk[]` is HELD BACK to its Claude band (`extra_risk_tasks`
|
|
320
|
+
defaults to `off`) and every one is LISTED with its cited risk — a silently
|
|
321
|
+
held-back task is indistinguishable from a forgotten one. Use the wiki's "Notes for planning" to sharpen
|
|
322
|
+
core/isolated + risk factors. **Tag each task's pattern domain+language**
|
|
323
|
+
(+ secondary `db: postgres`) per `references/pattern-gate.md`. Ask: "Any
|
|
324
|
+
anticipated escalations, or run straight through?" Emit `PHASE scoring end`.
|
|
325
|
+
|
|
326
|
+
## Phase 3 — Execution (load wave-grouping.md + log-protocol.md) · Trace: `PHASE execution`, `DISPATCH`/`VERIFY`/`OUTCOME` per task
|
|
327
|
+
|
|
328
|
+
Emit `PHASE execution start`. Build the conflict graph from `declared_files` →
|
|
329
|
+
group waves (cap `max_wave_tasks`, mark `is_batch_pause` from `pause_schedule`;
|
|
330
|
+
waves are computed for BOTH dispatch styles — sequential fires a wave's tasks
|
|
331
|
+
one at a time, parallel fires them together) → SHOW the wave plan (wave → tasks →
|
|
332
|
+
pause marks) to the user BEFORE wave 1 → write checkpoint + state-of-play BEFORE
|
|
333
|
+
dispatching. **Boundary gate, per wave (`boundary_gate`; emit `BOUNDARY`):**
|
|
334
|
+
`warn` prints each task's verdict; `block` additionally LIFTS a REFUSE task out of
|
|
335
|
+
the wave — **the wave still runs the rest** — and hands it back with its checklist
|
|
336
|
+
plus the "not blocked for you" line (it gates ORC's dispatch, never an explicit
|
|
337
|
+
instruction). ESCALATE dispatches but gates ship on the named human, riding the
|
|
338
|
+
EXISTING pause machinery. An uncarded area is `unknown`, never REFUSE. **Pattern-resolve gate
|
|
339
|
+
(once, before the first wave):** resolve each tagged language per
|
|
340
|
+
`references/pattern-gate.md` and report ONE user line per language (cache hit →
|
|
341
|
+
apply cached; miss → codify/agnostic per `pattern_findings`; learn → dispatch
|
|
342
|
+
the codifier); hold resolved patterns in run state.
|
|
343
|
+
|
|
344
|
+
**TDD red proof — PAIRED TASKS, not a Wave 0 (v0.41.0):** TDD tasks are ORDINARY planner-emitted tasks the impl task `depends_on`, so they wave and score like any other (mechanics in `wave-grouping.md`); no `new-surface`/`behavior-change` entries → no TDD task at all. Each materializes its skeletons into real FAILING tests and returns the red evidence; emit `TDD-RED task=<id> iter=0` per requirement.
|
|
345
|
+
**Pre-implementation green is read per `disposition`:** a `new-surface` entry that PASSES is a spec bug → block that requirement's dispatch and surface it; a `behavior-change` regression-guard passing is EXPECTED and blocks nothing; anything else → adjudicate with the user, recorded in `decisions`. Then per implementation wave:
|
|
346
|
+
1. Dispatch EVERY task as a spawned subagent (emit `DISPATCH <agent> :: <task>
|
|
347
|
+
expect=<model>/<effort>` BEFORE the Task call; subagent wrapper framing + the
|
|
348
|
+
task's INPUT SLICE per orc-execution/core.md + its scored model). Every
|
|
349
|
+
slice carries the task's `acceptance[]`, its `tdd_spec` tests (the executor
|
|
350
|
+
implements to green: implement→test→repair, cap `tdd_loop_max`, emitting
|
|
351
|
+
`TDD-RED`/`TDD-GREEN` per iteration; cap hit → STOP SEQUENCE + honest red
|
|
352
|
+
report) and the `house_rules` card lines
|
|
353
|
+
(`references/house-rules.md`, injected LITERALLY — read once per run, never
|
|
354
|
+
a pointer); FE/BE and `db:postgres` tasks get the resolved `pattern`
|
|
355
|
+
injected literally (pattern-gate.md), and — with `gotchas: on` — the
|
|
356
|
+
SCOPE-MATCHING gotchas beside it (glob vs this task's `declared_files`, cap 3,
|
|
357
|
+
highest `hits` first; zero matches = NO block, never an empty one — NEVER
|
|
358
|
+
inject unfiltered: `_shared/gotchas.md` §7).
|
|
359
|
+
**A FOREIGN task uses Bash, not the Task tool:** write the IDENTICAL slice to a
|
|
360
|
+
file and run `orc extra dispatch --task <file> --json` (exit codes + the
|
|
361
|
+
fallback procedure: `../_shared/extra-dispatch.md`). Append `via=extra:<profile>`
|
|
362
|
+
to the `DISPATCH` line and copy the return's `trace_line` + every
|
|
363
|
+
`trace_extras[]` entry VERBATIM into the packet — the CLI composes them, and the
|
|
364
|
+
hook emits NO `SPAWN`/`RETURN` for a foreign worker, so they are the whole record.
|
|
365
|
+
2. Record worker milestone pings (they bound what a mid-wave stop can save).
|
|
366
|
+
3. Collect returns; VALIDATE each (emit `VERIFY <task> actual=<model>/<effort>`
|
|
367
|
+
✅ MATCH / ⛔ DOWNGRADE per return — surface any downgrade to the user).
|
|
368
|
+
**A FOREIGN return runs `_shared/return-validation.md` §2b INSTEAD of §2** — it
|
|
369
|
+
has no injected model-id line, so it cannot carry `actual_model` and faking one
|
|
370
|
+
claims evidence that does not exist; ⛔ SUBSTITUTION replaces the downgrade
|
|
371
|
+
check. A failure runs the fallback procedure, which BEGINS with a free
|
|
372
|
+
`orc extra reconcile <task>` — a worktree that moved is RESUMED, never re-done
|
|
373
|
+
— then re-dispatches or STOPs, announced, with the `EXTRA fallback` line.
|
|
374
|
+
`needs_context` → adjudicate → re-slice
|
|
375
|
+
(cap 2 per task, then escalate). A `pattern` task must return
|
|
376
|
+
`invariants_checked: true` + the matching `pattern_version`. **Evidence
|
|
377
|
+
check:** `status=done` on a stack with a runnable build/test REQUIRES
|
|
378
|
+
`evidence` {command, exit_code, tail} — a missing block or false
|
|
379
|
+
`no_runner_detected` is malformed (requeue); `done` with non-empty
|
|
380
|
+
`unmet[]` is `partial`.
|
|
381
|
+
4. **Post-wave worktree audit (GATE, `_shared/return-validation.md` §6):** diff `git status --short` before/after the wave — a changed path in NO task's `declared_files`, INCLUDING one that became less modified (the revert signature), blocks the close until named and decided.
|
|
382
|
+
Overlap → `failure_reason: "file-collision:<file> with <agent>"`, requeue later wave.
|
|
383
|
+
5. Append worker `log_entries` to the decision log; regenerate the digest.
|
|
384
|
+
**Gotcha capture (`gotchas: on`):** a return that CLOSED a repair loop carries
|
|
385
|
+
`gotcha_recorded` (`_shared/return-validation.md` §7) — dedupe on
|
|
386
|
+
`symptom`+`scope` (a match bumps `hits`/`last_seen` and appends nothing), else
|
|
387
|
+
append the block to `.claude/orc/gotchas.md`. YOU write it, never a subagent;
|
|
388
|
+
a capped-and-stopped loop records NOTHING.
|
|
389
|
+
6. Update checkpoint + state-of-play; emit `OUTCOME task=<id> score=<n>
|
|
390
|
+
band=<range> model=<m> retries=<n> requeues=<n> needs_context=<n> unmet=<n>`
|
|
391
|
+
as each task closes.
|
|
392
|
+
7. **Wave-boundary gate (deterministic — NOT judgment):** after wave W, if the
|
|
393
|
+
wave's `is_batch_pause` is true (W in `pause_schedule`) AND a later wave
|
|
394
|
+
remains, emit `GATE wave-boundary :: wave=W of K → STOP (batch_pause_every=N)`
|
|
395
|
+
and run the MANDATORY STOP SEQUENCE — never dispatch wave W+1 past an
|
|
396
|
+
unacknowledged boundary. Token pressure → same STOP SEQUENCE (judgment).
|
|
397
|
+
Last wave closes → emit `PHASE execution end`. (references/stop-and-resume.md)
|
|
398
|
+
|
|
399
|
+
**User escalations:** relay question → broadcast answer to log; an answer that
|
|
400
|
+
invalidates a DONE task → re-run once, then set every reverse-`depends_on`
|
|
401
|
+
consumer to `stale_review`. **Worker failure/garbage/timeout:** flag +
|
|
402
|
+
continue the wave; audit and re-dispatch at the next batch checkpoint
|
|
403
|
+
(`requeued`, retry_count++). Hard retry cap 2 → STOP and surface.
|
|
404
|
+
|
|
405
|
+
## Phase 4 — Integration (worktrees only) · Trace: `PHASE integration`
|
|
406
|
+
|
|
407
|
+
Emit `PHASE integration start`. Merge worker branches; conflicts → resolver
|
|
408
|
+
subagent (Opus 4.8 medium) given BOTH tasks' specs/intents, not just the diff.
|
|
409
|
+
Record merge state in checkpoint; emit `PHASE integration end`.
|
|
410
|
+
|
|
411
|
+
## Phase 5 — Review (load subskills/orc-review-verify/, spawned) · Trace: `PHASE review`, `FINDING`
|
|
412
|
+
|
|
413
|
+
Emit `PHASE review start`. Superpowers path: its review skill incl. tests
|
|
414
|
+
(Sonnet 4.6 medium). OpenSpec/self path: review worker (Opus 5 medium). Pass the resolved
|
|
415
|
+
`code_pattern` + its invariants + gate lines for the re-check
|
|
416
|
+
(pattern-gate.md); no resolved pattern → FIRST ask for one (paste/md/none).
|
|
417
|
+
FE tasks in run → pass `fe_rules[]` from `../orc-pattern/references/` fe-a11y
|
|
418
|
+
+ fe-perf. Findings arrive on the **P0–P3 ladder** (invariant violation or
|
|
419
|
+
unmet gate line = P0; every P0–P2 carries `file:line` + VERBATIM `quote`;
|
|
420
|
+
unanchored → P3). Apply hard rule 5 INCLUDING the quote spot-check: P0 →
|
|
421
|
+
auto-fix once · P1 → ask, then fix once · P2/P3 → record for Phase 7. Emit
|
|
422
|
+
`FINDING p0=<n> p1=<n> p2=<n> p3=<n>` on the return, then `PHASE review end`.
|
|
423
|
+
|
|
424
|
+
## Phase 5.5 — Security pass (opt-in) · Trace: `FINDING`
|
|
425
|
+
|
|
426
|
+
Only when config `security_review` is `on`/`ask` (default `off`) AND a task
|
|
427
|
+
scored **≥ 70** (reuses the risk floor). `ask` → one P0 prompt; `on` →
|
|
428
|
+
silent. Dispatch the reviewer with `phase=security` + changed files +
|
|
429
|
+
`references/security-checklist.md` (load only now). Same ladder, same
|
|
430
|
+
hard-rule-5 handling; report-only.
|
|
431
|
+
|
|
432
|
+
## Phase 6 — Verify: TDD gate + adversarial review (same subskill, phase=verify) · Trace: `PHASE verify`, `VERDICT`, `TDD-RED`/`TDD-GREEN`
|
|
433
|
+
|
|
434
|
+
Emit `PHASE verify start`. TWO halves in the SAME dispatched verifier slot
|
|
435
|
+
(subskills/orc-review-verify/ — Phase 5's reviewer stays separate):
|
|
436
|
+
**1) TDD gate (deterministic):** run the plan's TDD suite — green IS the
|
|
437
|
+
definition-of-done for non-exempt requirements; red → repair loop (implement→
|
|
438
|
+
test→repair, cap `tdd_loop_max`; cap hit → STOP SEQUENCE + honest red report).
|
|
439
|
+
**2) Adversarial review:** attack the green implementation — edge cases the
|
|
440
|
+
spec missed, error paths, contract violations, race/ordering, workflow breaks
|
|
441
|
+
(dead wiring, broken commands) — findings on the existing P0–P3 ladder. The
|
|
442
|
+
verifier also checks the intent-spec's
|
|
443
|
+
definition-of-done PLUS the pattern's `validation_gate[]` lines (each a
|
|
444
|
+
criterion; unmet = P0). The return carries `criteria[]` {criterion, pass|fail,
|
|
445
|
+
evidence} — every criterion needs evidence. Quote spot-check P0/P1 first, then:
|
|
446
|
+
P0 → auto-fix once → re-verify once → second failure STOPS; P1 → ask before the
|
|
447
|
+
one fix attempt, then re-verify (same single-retry cap).
|
|
448
|
+
**Pact recheck (`pact_recheck_on_verify`, default true; emit `PACT recheck`):**
|
|
449
|
+
after GREEN, run `orc pact check` scoped to the promises whose anchors intersect
|
|
450
|
+
this run's CHANGED files. A promise that flips to BROKEN is a **P1 finding with its
|
|
451
|
+
check output** — reported, never an automatic abort: the ledger may simply have
|
|
452
|
+
outgrown the code, and that is the user's call. Emit
|
|
453
|
+
`VERDICT pass|fail :: <detail>`, then `PHASE verify end`.
|
|
454
|
+
|
|
455
|
+
## Phase 6.5 — Test Authoring (opt-in; load subskills/orc-testgen/) · Trace: `DISPATCH`/`VERIFY`
|
|
456
|
+
|
|
457
|
+
Only when `config.generate_tests` is on (confirmed at intake). ORC **writes**
|
|
458
|
+
test cases and **runs nothing** — never gates the ship. Dispatch
|
|
459
|
+
`orc-test-author-opus-5-med` (run's `actual_files`, definition-of-done,
|
|
460
|
+
touched flows, constraints, stack); it returns test files + a `TEST-PLAN.md` + a
|
|
461
|
+
Postman-importable `test-cases.http` (HTTP APIs), the two manual deliverables
|
|
462
|
+
written to **`test-generator/<change-slug>/` at the project root**. Validate the
|
|
463
|
+
returned `test_plan_path`/`curl_bundle_path` are under that folder (else
|
|
464
|
+
malformed → re-dispatch); state the exact path in the summary — discoverability
|
|
465
|
+
is the point.
|
|
466
|
+
|
|
467
|
+
## Phase 6.7 — Mock example + drift recovery (config `mock_example`) · Trace: `PHASE mock-example`, `DRIFT`
|
|
468
|
+
|
|
469
|
+
Load `../_shared/drift-recovery.md` (canonical). Only after a GREEN Phase 6,
|
|
470
|
+
before ship: `ask` (default) → the offer is MANDATORY (never silently skipped,
|
|
471
|
+
never silently run); `on` → build; `off` → skip. Deliverable:
|
|
472
|
+
`mock-examples/<change-slug>/` at the project root (`EXAMPLE.md` + one minimal
|
|
473
|
+
runnable artifact; mocked inputs only) — **NEVER committed**. After the user
|
|
474
|
+
runs it, ONE question: matches expectation? [yes / drift: <describe>]. On
|
|
475
|
+
drift → `DRIFT-FROM` handoff → analyze-mini gap analysis → mini planner patch
|
|
476
|
+
plan → scored dispatch → re-verify → re-offer; **hard cap 2 loops**, then an
|
|
477
|
+
honest unresolved report. Emit `DRIFT loop=<n>` per loop; end-of-phase packet.
|
|
478
|
+
|
|
479
|
+
## Phase 7 — Summary · Trace: `PHASE summary`
|
|
480
|
+
|
|
481
|
+
Emit `PHASE summary start`. Report: tasks/waves/dispatches (scores + overrides), escalations,
|
|
482
|
+
needs_context events, findings by severity (P0/P1 resolved; P2 itemized; P3
|
|
483
|
+
counted), verify result, authored tests when 6.5 ran, repo state + branch,
|
|
484
|
+
stale_review flags. Then ONE question: **"Apply the P2 fix-batch? The P3
|
|
485
|
+
cosmetics too?"** — never fix unasked. Emit `PHASE summary end`.
|
|
486
|
+
|
|
487
|
+
## Phase 8 — Ship (load subskills/orc-pr/SKILL.md) · Trace: `PHASE ship`, `FINISH`
|
|
488
|
+
|
|
489
|
+
Emit `PHASE ship start`. Show current branch.
|
|
490
|
+
|
|
491
|
+
**Stacked-PR gate FIRST (deterministic; full `/orc` + `/orc-ultra` only — load
|
|
492
|
+
`subskills/orc-pr/stack-gate.md`; never mini/fast/diy).** Measure the change
|
|
493
|
+
(`git diff --numstat`, exclusions applied) vs config `stacked_pr_loc`/
|
|
494
|
+
`stacked_pr_files`. Under threshold or `stacked_pr: off` → silent, ship normally
|
|
495
|
+
(`GATE stack-gate pass :: under-threshold`). Tripped → surface report + ONE P0
|
|
496
|
+
question (stack into layers? or one regular PR?) in the SAME round as its two
|
|
497
|
+
prerequisites — **a ticket** and a resolved PR template
|
|
498
|
+
(`_shared/pr-templates.md`; none found → recommend three options). No ticket, no
|
|
499
|
+
template, or "no" → **one regular PR, never re-asked**. "Yes" → commit on the
|
|
500
|
+
current branch (the driver's snapshot), write `stacked-pr/<slug>/STACK-FROM.md`
|
|
501
|
+
(`_shared/stack-plan.md`, `ENTRY-MODE: orc-run`, this run's `RUN-DIR`), then hand
|
|
502
|
+
off **`/orc-pr-setup`** → **`/orc-pr-driver`**. ORC never cuts layers itself.
|
|
503
|
+
|
|
504
|
+
**Handoff seam (one sentence, only when it applies):** if any changed file is a
|
|
505
|
+
GREEN surface in `orc handoff surfaces --json`, say so —
|
|
506
|
+
*"2 of these were changes a PM could have made alone — `/orc-handoff` next time."*
|
|
507
|
+
That sentence is how anyone finds out that lane exists.
|
|
508
|
+
|
|
509
|
+
Then ask together: **commit? push? create PR?** (PR: ticket +
|
|
510
|
+
title + target branch; generate from `subskills/orc-pr/pr.md`). If Phase 6.5 ran,
|
|
511
|
+
commit `test-generator/<change-slug>/` too (a user deliverable, never gitignored).
|
|
512
|
+
**`mock-examples/` is NEVER staged** (drift-recovery.md; no `.gitignore` edit —
|
|
513
|
+
just never `git add` it).
|
|
514
|
+
On success: delete the ephemeral decision log; KEEP checkpoint + dispatch log.
|
|
515
|
+
**Wiki stale-flag:** flag (never re-scan) wiki docs whose covered files this
|
|
516
|
+
run changed; point at `/orc-wiki`. **Post-ship refresh ask** (BIG runs, /orc +
|
|
517
|
+
/orc-ultra — the `wiki_refresh_ask_tasks`/`_files` triggers and full rules in
|
|
518
|
+
`../orc-wiki/references/staleness.md`): upgrade the passive note to **"Refresh
|
|
519
|
+
wiki now?"**; on "later" print the prominent stale warning and stamp
|
|
520
|
+
`wiki_refresh_declined` in the checkpoint. Then ALWAYS show the completion
|
|
521
|
+
usage report — /usage limits + the full dispatch log (model/effort/score per
|
|
522
|
+
subagent). The user must always know what the run cost. Finally emit
|
|
523
|
+
`PHASE ship end`, then the one-line `STATS lane=… dispatches=… downgrades=…`
|
|
524
|
+
summary (trace-protocol.md — what `orc stats` reads), then `FINISH :: <detail>`,
|
|
525
|
+
and in ONE step delete BOTH `log_dir/.current` and the run's `RESUME.md` (that
|
|
526
|
+
file existing is what marks a run unfinished — stop-and-resume.md).
|