@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,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-combiner
|
|
3
|
+
description: >
|
|
4
|
+
Combines 2+ RELATED, already-confirmed ORC analyses (from orc-analyze) into
|
|
5
|
+
ONE merged, deduped, conflict-resolved requirement context before build. Use
|
|
6
|
+
when the user analyzed multiple related documents within the same scope and
|
|
7
|
+
chose "pass to context-combiner" at orc-analyze's Phase F. Verifies the source
|
|
8
|
+
analyses actually overlap (shared files/requirements/scope) and challenges the
|
|
9
|
+
user if they look unrelated; pools ALL source requirements into one table and
|
|
10
|
+
reconciles them (exact/semantic duplicates, partial overlaps split — never
|
|
11
|
+
collapsed, conflicts, ordering) one issue at a time; proves NOTHING WAS LOST
|
|
12
|
+
via a source coverage matrix and a 100% coverage gate before handoff;
|
|
13
|
+
spot-checks inherited evidence and marks stale anchors; writes
|
|
14
|
+
combined-report.md + combined-requirement-spec.md (the merged spec reuses the
|
|
15
|
+
requirement-spec schema, so the planner/build pipeline is unchanged). Full
|
|
16
|
+
lane only (Opus 5 high). The orchestrator DISPATCHES this to a subagent —
|
|
17
|
+
it never combines itself, and the combiner never builds or spawns subagents.
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# CONTEXT-COMBINER
|
|
21
|
+
|
|
22
|
+
The orchestrator stays on top and **dispatches a Context Combiner subagent
|
|
23
|
+
(orc-context-combiner-opus-5-high)** with a list of 2+ confirmed analysis
|
|
24
|
+
spec paths. It never combines itself. The combiner merges related, ALREADY
|
|
25
|
+
code-grounded analyses — it does not re-analyze the repo from scratch.
|
|
26
|
+
|
|
27
|
+
Purpose: turn 2+ related, confirmed requirement-specs (same user scope) into ONE
|
|
28
|
+
merged, deduped, conflict-resolved requirement set a planner can build from as if
|
|
29
|
+
it were a single analysis — with PROOF that no source requirement was lost.
|
|
30
|
+
|
|
31
|
+
## Hard rules
|
|
32
|
+
|
|
33
|
+
1. **Dispatched, not self-run.** The orchestrator coordinates; the Combiner
|
|
34
|
+
subagent (Opus 5 high) reads the specs and reconciles them against each
|
|
35
|
+
other. The combiner NEVER builds and NEVER spawns subagents.
|
|
36
|
+
2. **Related only — verify + challenge.** The user asserted relatedness at the
|
|
37
|
+
Phase F gate, but the combiner MUST verify real overlap (shared files,
|
|
38
|
+
overlapping requirements, shared scope). If overlap is weak/empty, it
|
|
39
|
+
challenges: "combine anyway / keep separate" — and records the decision.
|
|
40
|
+
3. **Trust confirmed sources — but spot-check freshness.** Source specs are
|
|
41
|
+
already code-grounded with evidence. The combiner INHERITS their `file:line`
|
|
42
|
+
evidence — it does not re-derive the code. It only reconciles the specs
|
|
43
|
+
against EACH OTHER, plus ONE bounded freshness pass: for each inherited
|
|
44
|
+
anchor, confirm the file still exists and the line still plausibly matches
|
|
45
|
+
(Read just that region — never a re-analysis). A failed check marks the row's
|
|
46
|
+
evidence `STALE` — never silently carried. STALE evidence on a buildable
|
|
47
|
+
requirement becomes a Phase D challenge (re-anchor / proceed anyway / drop).
|
|
48
|
+
Record the repo state checked against as `combined_against` (git HEAD short
|
|
49
|
+
sha) in both artifacts.
|
|
50
|
+
4. **Resolve conflicts one at a time.** Every cross-source conflict, duplicate,
|
|
51
|
+
and ordering dependency is raised as a 2–3 option challenge with ONE
|
|
52
|
+
**recommended** option + a one-line reason. Wait, record, continue. Never
|
|
53
|
+
batch. Keep asking until the combined context is clear (no open conflict).
|
|
54
|
+
5. **Conservation — nothing is lost, and you must prove it.** Every source
|
|
55
|
+
requirement ID gets EXACTLY ONE outcome in the Source coverage matrix
|
|
56
|
+
(merged / deduped-into / split-across / conflict-resolved / dropped).
|
|
57
|
+
`dropped` is legal ONLY with a recorded user decision from a Phase D
|
|
58
|
+
challenge. **When in doubt, keep both rows** — a redundant requirement costs
|
|
59
|
+
the planner a dedupe; a lost one costs the build a feature. The conservation
|
|
60
|
+
gate (Phase E) blocks artifact handoff until `coverage_pct` is 100.
|
|
61
|
+
6. **Two artifacts, spec derived from report.** `combined-report.md` (human,
|
|
62
|
+
source of truth) and `combined-requirement-spec.md` DERIVED from it (schemas/).
|
|
63
|
+
7. **Never build on unresolved.** If a conflict is left unresolved, record it as
|
|
64
|
+
an open question and refuse handoff to build until it is resolved.
|
|
65
|
+
8. **Checkpoint decisions eagerly.** Every challenge verdict is appended to
|
|
66
|
+
`combine-decisions.md` in the internal folder THE MOMENT it is given
|
|
67
|
+
(question, options, choice, timestamp). On resume/compaction, replay that
|
|
68
|
+
file and continue from the first unanswered item — never re-ask a recorded
|
|
69
|
+
decision, never lose one.
|
|
70
|
+
9. Usage: report handoff + remind the user to run `/usage`. Never invoke it.
|
|
71
|
+
10. **Never open a run of your own.** The combiner has no slash command; it is
|
|
72
|
+
always dispatched from `orc-analyze` Phase F while that run's trace is still
|
|
73
|
+
open. So: do NOT write `log_dir/.current`, do NOT create a trace file, do
|
|
74
|
+
NOT emit `FINISH`. Your `DISPATCH`/`RETURN`, every Phase D verdict and the
|
|
75
|
+
Phase E conservation result belong to the **dispatching lane's** end-of-run
|
|
76
|
+
packet — the hook segments your work as its own `PHASE-EDGE` family
|
|
77
|
+
(`combine`) inside that same file. Bootstrapping here would split the
|
|
78
|
+
analyze run across two files and invent a lane nothing can open. See
|
|
79
|
+
`../orc/references/trace-protocol.md`.
|
|
80
|
+
|
|
81
|
+
## Phase A — Load sources
|
|
82
|
+
Read every source `requirement-spec.md` (2+) the orchestrator hands you, plus
|
|
83
|
+
their reports. Confirm you have ≥2. Note each source's scope, mode, depth.
|
|
84
|
+
Record `combined_against` = current git HEAD short sha.
|
|
85
|
+
**Scale guard:** if sources > 4, warn that merge quality and token cost degrade
|
|
86
|
+
and offer staged combining (combine the two most related first, then fold in
|
|
87
|
+
the next against the combined result). Record the choice in
|
|
88
|
+
`combine-decisions.md`.
|
|
89
|
+
|
|
90
|
+
## Phase B — Verify relatedness
|
|
91
|
+
Compute overlap across sources:
|
|
92
|
+
- shared `files[]` between specs,
|
|
93
|
+
- overlapping/duplicate requirement statements,
|
|
94
|
+
- shared scope string.
|
|
95
|
+
If overlap is strong → proceed. If weak/empty → CHALLENGE (recommended-option):
|
|
96
|
+
"These share {N} files / no overlapping requirements — combine anyway
|
|
97
|
+
(recommended only if you're sure) or keep separate?" Record the verdict in the
|
|
98
|
+
report's Relatedness check. If the user chooses **keep separate**, STOP the run:
|
|
99
|
+
do NOT proceed to Phase C or write any `combined-*` artifact — return to the
|
|
100
|
+
orchestrator with `combined: false` (the analyses stay separate; the orchestrator
|
|
101
|
+
falls back to per-analysis stop/build).
|
|
102
|
+
|
|
103
|
+
## Phase C — Pool, then reconcile
|
|
104
|
+
|
|
105
|
+
**C.0 — Pool first, never pairwise.** Normalize ALL source requirements into ONE
|
|
106
|
+
pooled table (`source_id` e.g. A.R1, statement, files, evidence, depth of its
|
|
107
|
+
source). Then cluster pooled rows by shared files/behavior and detect issues
|
|
108
|
+
WITHIN clusters. This scales to N sources — pairwise comparison misses
|
|
109
|
+
three-way interactions and is forbidden.
|
|
110
|
+
|
|
111
|
+
**C.1 — Classify every cluster:**
|
|
112
|
+
- **EXACT-DUPLICATE** — same requirement, same wording → merge into one row,
|
|
113
|
+
tracking `from: [A.Rx, B.Ry]`.
|
|
114
|
+
- **SEMANTIC-DUPLICATE** — same effect, different wording → merge, but QUOTE
|
|
115
|
+
both original statements in the report so intent nuance isn't erased. If the
|
|
116
|
+
equivalence is not obvious, it's a Phase D challenge, not a silent merge.
|
|
117
|
+
- **PARTIAL-OVERLAP** — one requirement subsumes or intersects another →
|
|
118
|
+
**SPLIT into a shared row + residue row(s)**; never collapse. Residue rows
|
|
119
|
+
keep their own `from[]` and evidence. Ambiguous splits are Phase D challenges.
|
|
120
|
+
- **CONFLICT** — source A and source B require contradictory things on the same
|
|
121
|
+
file/behavior.
|
|
122
|
+
- **ORDERING** — one source depends on another's change existing first. Record
|
|
123
|
+
as structured pairs (`before` / `after` merged IDs), not free text.
|
|
124
|
+
|
|
125
|
+
**C.2 — Reconcile beyond requirements.** Cross-check `assumptions_resolved` and
|
|
126
|
+
`alternatives` across sources too: contradictory resolved assumptions are a
|
|
127
|
+
CONFLICT (Phase D); alternatives anchored to a merged/split requirement are
|
|
128
|
+
re-pointed at the merged ID.
|
|
129
|
+
|
|
130
|
+
**C.3 — Evidence freshness spot-check** (per Hard rule 3): verify each inherited
|
|
131
|
+
anchor still exists; mark failures `STALE`.
|
|
132
|
+
|
|
133
|
+
Anything ambiguous becomes a Phase D challenge.
|
|
134
|
+
|
|
135
|
+
## Phase D — Challenge (interactive, recommended options, one at a time)
|
|
136
|
+
For every CONFLICT / ambiguous DUPLICATE or PARTIAL-OVERLAP split / ORDERING
|
|
137
|
+
decision / STALE-evidence-on-buildable / proposed drop, ask a single focused
|
|
138
|
+
2–3 option question with ONE **recommended** option + a one-line reason. Wait,
|
|
139
|
+
record, continue. Never batch. Append every verdict to `combine-decisions.md`
|
|
140
|
+
immediately (Hard rule 8). Keep going until nothing is unresolved.
|
|
141
|
+
|
|
142
|
+
## Phase E — Conservation gate (before any artifact is written)
|
|
143
|
+
Build the **Source coverage matrix**: one row per source requirement ID with
|
|
144
|
+
exactly one Outcome — `merged → #N` / `deduped-into → #N` / `split-across →
|
|
145
|
+
#N,#M` / `conflict-resolved → #N` / `dropped (user decision ref)`. Then check:
|
|
146
|
+
- every source ID appears exactly once (no unaccounted IDs, no double-counting),
|
|
147
|
+
- the union of `from[]` across merged rows equals the non-dropped source set,
|
|
148
|
+
- every `dropped` row cites a recorded decision in `combine-decisions.md`.
|
|
149
|
+
`coverage_pct` = accounted source IDs / total source IDs × 100. If it is not
|
|
150
|
+
100 → fix the merge (or raise the missing challenge), do NOT proceed.
|
|
151
|
+
`handoff_ready` = (`coverage_pct` == 100) AND (no open conflict).
|
|
152
|
+
|
|
153
|
+
## Phase F — Write combined artifacts
|
|
154
|
+
1. Write `combined-report.md` (schemas/combined-report.md) into
|
|
155
|
+
`.claude/skills/orc/analyzer/combined-{name}/` (internal): Relatedness check,
|
|
156
|
+
Merged requirements (deduped, ordered, evidence inherited, STALE flagged,
|
|
157
|
+
`depth_from` when sources differ in depth), **Source coverage matrix**
|
|
158
|
+
(Phase E), **Additional context (do not build)** merged from the sources
|
|
159
|
+
(anchors re-pointed at the merged requirement; dedupe ONLY when the evidence
|
|
160
|
+
anchor is the same `file:line` AND the notes convey the same constraint —
|
|
161
|
+
otherwise keep both; non-actionable, omit if none), Cross-scope conflicts &
|
|
162
|
+
decisions, Open questions, Handoff readiness.
|
|
163
|
+
2. Derive `combined-requirement-spec.md` (schemas/combined-requirement-spec.md)
|
|
164
|
+
FROM the confirmed combined report, in the same internal folder. Reuse the
|
|
165
|
+
base requirement-spec shape + `combined_from`, `cross_scope`, and the
|
|
166
|
+
`coverage` block.
|
|
167
|
+
|
|
168
|
+
## Phase G — Return & branch
|
|
169
|
+
Return to the orchestrator: `combined_report_path`, `combined_spec_path`,
|
|
170
|
+
`combined_from[]`, `conflicts_resolved[]`, `coverage_pct`, `dropped[]`
|
|
171
|
+
(source IDs dropped by user decision), `stale_evidence[]` (rows flagged STALE),
|
|
172
|
+
`handoff_ready: bool` (open/unresolved items are NOT a return field — they live
|
|
173
|
+
in the report's Open questions section, reachable via `combined_report_path`).
|
|
174
|
+
The orchestrator then offers the user (plain language):
|
|
175
|
+
- **Stop here** → COPY `combined-report.md` OUT to `{report_out_dir}/combined-{name}/`
|
|
176
|
+
and stop.
|
|
177
|
+
- **Pass to orc build** → hand `combined-requirement-spec.md` back to the
|
|
178
|
+
orchestrator, which continues at Phase 1 (Requirement Planner) and runs the
|
|
179
|
+
full pipeline. The combiner NEVER builds directly.
|
|
180
|
+
|
|
181
|
+
**Gate the build option on `handoff_ready`:** if `handoff_ready` is false (an
|
|
182
|
+
unresolved conflict remains per Hard rule 7, or `coverage_pct` < 100 per Hard
|
|
183
|
+
rule 5), the orchestrator offers ONLY **Stop here** — the build option is
|
|
184
|
+
withheld until the open conflict is resolved and coverage is complete.
|
|
185
|
+
|
|
186
|
+
## No mini variant
|
|
187
|
+
Full lane only. `orc-analyze-mini` / `orc-mini` do not use the combiner.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Template — Combined Analysis Report
|
|
2
|
+
|
|
3
|
+
Human-readable source of truth for a MERGE of 2+ related analyses. Written to
|
|
4
|
+
orc/analyzer/combined-{name}/combined-report.md. Copied OUT to
|
|
5
|
+
{report_out_dir}/combined-{name}/ on "stop here".
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
# Combined Analysis Report — {combined-name}
|
|
9
|
+
kind: combined
|
|
10
|
+
combined_from: [analysis-A, analysis-B, ...] # source analysis names
|
|
11
|
+
scope: <the shared scope X these analyses live in>
|
|
12
|
+
combined_at: DDMMYY HH:MM:SS
|
|
13
|
+
combined_against: <git HEAD short sha the evidence spot-check ran against>
|
|
14
|
+
model: opus-5-high # the RESOLVED model of the combiner that produced
|
|
15
|
+
# this — never copied from here
|
|
16
|
+
|
|
17
|
+
## Relatedness check
|
|
18
|
+
How the source analyses overlap — shared files, overlapping requirements,
|
|
19
|
+
shared scope. If overlap was weak, the user was challenged and their decision
|
|
20
|
+
is recorded here.
|
|
21
|
+
- Shared files: web/reports/x (analysis-A R1, analysis-B R2)
|
|
22
|
+
- Overlapping requirement: both add export to the reports module
|
|
23
|
+
- Verdict: related (confirmed) | combined-anyway (user override) | ...
|
|
24
|
+
|
|
25
|
+
## Merged requirements (deduped, ordered)
|
|
26
|
+
Every row carries file:line evidence inherited from the source spec (the
|
|
27
|
+
combiner trusts confirmed specs; it does not re-derive the code) — spot-checked
|
|
28
|
+
against `combined_against`; anchors that no longer match are marked STALE and
|
|
29
|
+
were challenged, never silently carried. SEMANTIC-DUPLICATE merges quote both
|
|
30
|
+
original statements. PARTIAL-OVERLAP rows are split (shared + residue), never
|
|
31
|
+
collapsed. `Depth` is shown when sources differ in depth.
|
|
32
|
+
|
|
33
|
+
| # | Requirement (merged) | From | Depth | Code reality | Evidence (file:line) | Files/modules | Status |
|
|
34
|
+
|---|----------------------|------|-------|--------------|----------------------|---------------|--------|
|
|
35
|
+
| 1 | "add CSV export" | A.R1 | deep | HTML only | web/reports/view.x:30 | web/reports/x | buildable |
|
|
36
|
+
| 2 | "reuse report auth" | A.R2, B.R3 (dedup) | standard | guard present | web/reports/routes.x:12 (STALE — user chose proceed) | web/reports/x | exists |
|
|
37
|
+
|
|
38
|
+
## Source coverage matrix (conservation proof)
|
|
39
|
+
EVERY source requirement ID appears exactly once with exactly one Outcome.
|
|
40
|
+
`dropped` requires a recorded user decision in combine-decisions.md. The gate
|
|
41
|
+
below must show coverage_pct: 100 before this report can hand off to build.
|
|
42
|
+
|
|
43
|
+
| Source ID | Outcome | Merged as | Decision ref |
|
|
44
|
+
|-----------|---------|-----------|--------------|
|
|
45
|
+
| A.R1 | merged | #1 | — |
|
|
46
|
+
| A.R2 | deduped-into | #2 | — |
|
|
47
|
+
| B.R2 | conflict-resolved | #3 | combine-decisions.md #2 |
|
|
48
|
+
| B.R3 | deduped-into | #2 | — |
|
|
49
|
+
| B.R4 | dropped | — | combine-decisions.md #4 (user: superseded by A.R1) |
|
|
50
|
+
|
|
51
|
+
- source requirements total: {N} · accounted: {N} · coverage_pct: 100
|
|
52
|
+
|
|
53
|
+
## Additional context (do not build)
|
|
54
|
+
Anchored, non-actionable context merged from the sources — each item re-pointed at
|
|
55
|
+
the merged requirement it serves. Dedupe ONLY when the evidence anchor is the same
|
|
56
|
+
file:line AND the notes convey the same constraint — near-identical notes are kept,
|
|
57
|
+
both, with their own From tags. Read for understanding; never a task. Omit this
|
|
58
|
+
whole section if no source carried context.
|
|
59
|
+
| Anchor (merged #) | From | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
|
|
60
|
+
|-------------------|------|-----------|------------|-----------------------|----------------------|
|
|
61
|
+
| 1 (CSV export) | A.ctx | reporting (Y) | consumes-output | report query already paginates; export must page too | web/reports/query.x:44 |
|
|
62
|
+
|
|
63
|
+
## Cross-scope conflicts & decisions
|
|
64
|
+
Every conflict/duplicate/partial-overlap/ordering issue found across sources
|
|
65
|
+
(including contradictory resolved assumptions), each raised as a
|
|
66
|
+
recommended-option challenge and resolved. Decisions are also checkpointed
|
|
67
|
+
eagerly in combine-decisions.md.
|
|
68
|
+
- CONFLICT (resolved): A.R4 wants offset paging, B.R2 wants cursor — user chose cursor.
|
|
69
|
+
- DUPLICATE (merged): A.R2 and B.R3 both reuse auth — merged into #2.
|
|
70
|
+
- PARTIAL-OVERLAP (split): A.R5 subsumes B.R1 — shared row #4, A-only residue row #5.
|
|
71
|
+
- ORDERING (structured): before: #1 (A export) → after: #6 (B schedule).
|
|
72
|
+
|
|
73
|
+
## Open questions (block handoff until resolved)
|
|
74
|
+
- (none) | UNRESOLVED: ... — combiner refuses build handoff while any remain.
|
|
75
|
+
|
|
76
|
+
## Handoff readiness
|
|
77
|
+
- complete: yes/no (coverage_pct == 100, all conflicts resolved, no open UNRESOLVED)
|
|
78
|
+
```
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Schema — Combined Requirement Spec (DERIVED from combined-report.md)
|
|
2
|
+
|
|
3
|
+
Machine projection of combined-report.md. A STRICT SUPERSET of the base
|
|
4
|
+
requirement-spec schema — every base field is present (so the planner consumes it
|
|
5
|
+
UNCHANGED, exactly like a single requirement-spec.md) — plus combine-only
|
|
6
|
+
additions: `combined_from`, `combined_against`, `cross_scope`, `coverage`,
|
|
7
|
+
`kind`, and `requirements[].from` / `requirements[].depth_from`.
|
|
8
|
+
Written to orc/analyzer/combined-{name}/combined-requirement-spec.md.
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
analysis_name: string # combined-{name}
|
|
12
|
+
kind: combined # ADDED: marks this as a merge (vs a single analysis)
|
|
13
|
+
combined_from: [string] # ADDED: source analysis names, e.g. [analysis-A, analysis-B]
|
|
14
|
+
combined_against: string # ADDED: git HEAD short sha the evidence spot-check ran against
|
|
15
|
+
mode: audit | prose | requirement | mixed # base enum + 'mixed' when sources differ
|
|
16
|
+
depth: standard | deep | mixed # base enum + 'mixed' when sources differ
|
|
17
|
+
source_doc: string | null # base field: null for combined (sources are in combined_from)
|
|
18
|
+
scope: string # base field: the shared scope X
|
|
19
|
+
grounding: repo-read | repo-read+scouts | from-system-analyst | from-source-specs
|
|
20
|
+
# base enum + 'from-source-specs'; combined always uses the latter
|
|
21
|
+
derived_from: combined-report.md
|
|
22
|
+
created_at: timestamp
|
|
23
|
+
|
|
24
|
+
requirements: # base field, merged/deduped/ordered — base item shape + 'from'
|
|
25
|
+
- id: R1
|
|
26
|
+
statement: string
|
|
27
|
+
from: [string] # ADDED: which source req(s) this came from, e.g. [A.R1]
|
|
28
|
+
depth_from: standard | deep # ADDED: depth of the dominant source (only when depth: mixed)
|
|
29
|
+
code_reality: string
|
|
30
|
+
evidence: [string] # file:line inherited from source spec; STALE anchors are
|
|
31
|
+
# suffixed " (STALE)" and carry a recorded user decision
|
|
32
|
+
files: [string]
|
|
33
|
+
status: exists | missing | conflict | verified | buildable | resolved
|
|
34
|
+
resolution: string|null
|
|
35
|
+
|
|
36
|
+
assumptions_resolved: # base field: merged from all sources (may be []).
|
|
37
|
+
- item: string # Contradictory resolutions across sources were raised as
|
|
38
|
+
decision: string # CONFLICT challenges and carry the reconciled decision.
|
|
39
|
+
|
|
40
|
+
alternatives: # base field: merged from deep-mode sources ([] if none),
|
|
41
|
+
- for: R# # re-pointed at MERGED requirement ids
|
|
42
|
+
recommended: string
|
|
43
|
+
options: [string]
|
|
44
|
+
risk: string
|
|
45
|
+
|
|
46
|
+
context: # base field: merged anchored, NON-ACTIONABLE context ([] if none)
|
|
47
|
+
- anchor: R# # remapped to the MERGED requirement id (still REQUIRED — no anchor, no entry)
|
|
48
|
+
from_scope: string
|
|
49
|
+
dependency: string # consumes-output | guards-invariant | shares-file | doc-references
|
|
50
|
+
note: string
|
|
51
|
+
evidence: [string]
|
|
52
|
+
# Same rule as the base spec: read-for-understanding, never a task. On merge,
|
|
53
|
+
# dedupe ONLY same-file:line anchors carrying the same constraint; otherwise keep both.
|
|
54
|
+
|
|
55
|
+
coverage: # ADDED: conservation proof (mirrors the report's coverage matrix)
|
|
56
|
+
source_requirements_total: int
|
|
57
|
+
merged_total: int
|
|
58
|
+
coverage_pct: 100 # MUST be 100 — the combiner refuses handoff below that
|
|
59
|
+
dropped: # source IDs excluded ONLY by recorded user decision
|
|
60
|
+
- id: string # e.g. B.R4
|
|
61
|
+
decision: string
|
|
62
|
+
stale_evidence: [string] # merged R ids whose inherited anchors failed the spot-check
|
|
63
|
+
|
|
64
|
+
cross_scope: # ADDED: combine-only audit block
|
|
65
|
+
conflicts_resolved:
|
|
66
|
+
- between: [A.R4, B.R2]
|
|
67
|
+
decision: string
|
|
68
|
+
overlaps_merged:
|
|
69
|
+
- merged: [A.R2, B.R3]
|
|
70
|
+
into: R2
|
|
71
|
+
kind: exact | semantic # semantic merges quote both statements in the report
|
|
72
|
+
overlaps_split: # PARTIAL overlaps are split, never collapsed
|
|
73
|
+
- between: [A.R5, B.R1]
|
|
74
|
+
shared: R4
|
|
75
|
+
residue: [R5]
|
|
76
|
+
ordering: # structured — consumable as planner dependencies
|
|
77
|
+
- before: R1
|
|
78
|
+
after: R6
|
|
79
|
+
|
|
80
|
+
# Everything here is confirmed. The planner does NOT re-question scope/accuracy;
|
|
81
|
+
# it turns these into tasks (cross_scope.ordering rows are real sequencing
|
|
82
|
+
# dependencies — respect them when waving). Because this is a strict superset of
|
|
83
|
+
# the base spec, the planner reads it exactly like a single requirement-spec.md —
|
|
84
|
+
# the added keys (kind, combined_from, combined_against, requirements[].from,
|
|
85
|
+
# requirements[].depth_from, coverage, cross_scope) are additive and ignorable.
|
|
86
|
+
scope_closed: true
|
|
87
|
+
```
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# ORC (installed payload)
|
|
2
|
+
|
|
3
|
+
A Claude Code skill constellation: intake → planning → scored parallel
|
|
4
|
+
execution → review → verify → ship. One orchestrator spine invoking focused
|
|
5
|
+
subskills, with eager checkpointing that survives compaction, crashes, and
|
|
6
|
+
fresh-session resumes.
|
|
7
|
+
|
|
8
|
+
Stack-agnostic — detects and adapts to your project's language/tooling.
|
|
9
|
+
|
|
10
|
+
> This README ships inside the installed payload. The full user docs (install,
|
|
11
|
+
> commands, config, changelog) live in the `orc` npm package's root README:
|
|
12
|
+
> https://github.com/azure-id/orc
|
|
13
|
+
|
|
14
|
+
## Install / update
|
|
15
|
+
|
|
16
|
+
Installed by the `orc` npm package — don't copy files by hand:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm i -g github:azure-id/orc
|
|
20
|
+
orc init # install into ./.claude (orc init --global for ~/.claude)
|
|
21
|
+
orc update # re-copy the installed package's files (offline)
|
|
22
|
+
orc upgrade # fetch the latest package, then apply it
|
|
23
|
+
orc config # view/change settings — zero model tokens
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
`orc init` installs **skills/**, **commands/** (`/orc` `/orc-mini` `/orc-fast`
|
|
27
|
+
`/orc-analyze`
|
|
28
|
+
`/orc-plan` `/orc-verify` `/orc-wiki` `/orc-pattern`), **agents/** (single-role,
|
|
29
|
+
model-pinned subagents + `MODEL-MAPPING.md`), and **hooks/** (effort hard-block,
|
|
30
|
+
statusline tier warning, behavior trace), merging the hook wiring
|
|
31
|
+
non-destructively into `.claude/settings.json`.
|
|
32
|
+
|
|
33
|
+
After installing:
|
|
34
|
+
|
|
35
|
+
1. **Paste your PR template** into `orc/subskills/orc-pr/pr.md` (replaces the
|
|
36
|
+
placeholder).
|
|
37
|
+
2. Add `.claude/orc/run/` to your project `.gitignore` (a local
|
|
38
|
+
.gitignore inside run/ is included, but confirm).
|
|
39
|
+
3. Run `/agents` to confirm the model IDs your Claude Code accepts, and **run
|
|
40
|
+
your main session on Opus** — a subagent's model can't exceed the main
|
|
41
|
+
session's tier.
|
|
42
|
+
|
|
43
|
+
## Use
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
use orc to build <feature> # or /orc
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
It will: rough-size → ask tiered intake questions (2/4/6) → draft an intent-spec
|
|
50
|
+
for your sign-off → plan (Superpowers/OpenSpec/Requirement Planner/self) →
|
|
51
|
+
recommend sequential vs parallel dispatch (workers always spawned) → score every
|
|
52
|
+
task (rubric → config preset → named executor agent) and show you the table →
|
|
53
|
+
execute in conflict-free waves with batch pauses → at every stop: checkpoint,
|
|
54
|
+
usage report, and a paste-block to resume in a FRESH session (recommended for
|
|
55
|
+
long runs) → review → verify → optional security pass / test authoring →
|
|
56
|
+
summary → commit/push/PR.
|
|
57
|
+
|
|
58
|
+
## Layout (this skill)
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
orc/
|
|
62
|
+
├── SKILL.md # thin orchestrator spine (progressive disclosure)
|
|
63
|
+
├── config.md # shipped defaults + the single score→model table
|
|
64
|
+
├── schemas/ # orchestrator-owned; workers get slices
|
|
65
|
+
│ ├── intent-spec.md
|
|
66
|
+
│ ├── planning-output.md
|
|
67
|
+
│ └── checkpoint.md # + state-of-play format
|
|
68
|
+
├── references/ # loaded only when their phase fires
|
|
69
|
+
│ ├── intake.md
|
|
70
|
+
│ ├── effort-and-mode.md # dispatch-style gate + scoring rubric
|
|
71
|
+
│ ├── wave-grouping.md
|
|
72
|
+
│ ├── log-protocol.md
|
|
73
|
+
│ ├── stop-and-resume.md # stop sequence, /usage, resume block
|
|
74
|
+
│ ├── house-rules.md # standing behavioral card, injected into every slice
|
|
75
|
+
│ ├── security-checklist.md # Phase 5.5 OWASP/STRIDE items (opt-in)
|
|
76
|
+
│ └── trace-protocol.md # behavior trace (PERMANENT — always on)
|
|
77
|
+
├── subskills/
|
|
78
|
+
│ ├── orc-execution/ # SKILL.md + core.md + subagent.md (always spawned)
|
|
79
|
+
│ ├── orc-review-verify/ # review / verify / security modes (always spawned)
|
|
80
|
+
│ ├── orc-planner/ # Requirement Planner (+ orc-planner-mini fast lane)
|
|
81
|
+
│ ├── orc-testgen/ # opt-in Phase 6.5 test authoring
|
|
82
|
+
│ ├── orc-checkpoint/ # stateless write/read service
|
|
83
|
+
│ └── orc-pr/ # SKILL.md + pr.md (YOUR template goes here)
|
|
84
|
+
├── examples/full-run-mock.md
|
|
85
|
+
└── run/ # gitignored — all run artifacts live here
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Sibling skills installed alongside: `orc-mini` (fast path), `orc-fast`
|
|
89
|
+
(fastest lane — knowledge-gated on a fresh wiki + pattern cache, falls back to
|
|
90
|
+
orc-mini), `orc-verify`
|
|
91
|
+
(standalone git-diff verify), `orc-analyze` + `orc-analyze-mini` (System
|
|
92
|
+
Analyst), `orc-wiki` (project knowledge base), `orc-pattern` (code-pattern
|
|
93
|
+
codifier: 9 language playbooks + a11y/perf rule packs), `context-combiner`
|
|
94
|
+
(merge related analyses).
|
|
95
|
+
|
|
96
|
+
## Key behaviors to know
|
|
97
|
+
|
|
98
|
+
- **The orchestrator NEVER implements — it always spawns scored subagents,
|
|
99
|
+
even for tiny tasks.** Orchestrator (Opus 4.8 high, or Opus 5 / Fable 5 at
|
|
100
|
+
medium+) only coordinates; each task's 0–100 score (computed arithmetically
|
|
101
|
+
from the planner's per-task `facets`) maps to a named executor agent via the
|
|
102
|
+
single 8-band table in `config.md` (`rubric_bands` = report granularity only),
|
|
103
|
+
Haiku 4.5 → Opus 4.8 high [80,90) → Opus 5 high [90,100].
|
|
104
|
+
- **Every executor slice carries** the intent-spec constraints, the task's
|
|
105
|
+
sliced acceptance criteria, the standing
|
|
106
|
+
house-rules card, and — when a code-pattern is resolved — your project's
|
|
107
|
+
conventions + blocking invariants + the playbook's measurable validation
|
|
108
|
+
gate. Executors echo `actual_model`/`actual_effort` (claimed-vs-actual tier
|
|
109
|
+
check), `pattern_version`/`invariants_checked`, plus verbatim build/test
|
|
110
|
+
`evidence` and an `unmet[]` honesty field — a `done` without proof (or with
|
|
111
|
+
admitted unmet lines) is a malformed return.
|
|
112
|
+
- **Plans are grounded, not trusted:** every declared file carries an
|
|
113
|
+
`exists|new` attestation the orchestrator spot-checks with Glob before
|
|
114
|
+
scoring — hallucinated paths bounce the plan back to the planner.
|
|
115
|
+
- **P0–P3 severity ladder** on review/verify findings: P0 (objective breakage)
|
|
116
|
+
auto-fixed once without asking · P1 (correctness/security risk) gates ship,
|
|
117
|
+
you're asked before the fix · P2/P3 advisory, offered as an optional
|
|
118
|
+
fix-batch in the summary. Every P0–P2 finding must be anchored (file:line +
|
|
119
|
+
verbatim quote — spot-checked before any fix); unanchored findings are
|
|
120
|
+
auto-P3 and never gate.
|
|
121
|
+
- **Opt-in phases** (all default OFF, via `orc config`): security pass
|
|
122
|
+
(`security_review`, fires only on runs with a task scored ≥ 70), test
|
|
123
|
+
authoring (`generate_tests`, writes tests + a TEST-PLAN.md + curl bundle to a
|
|
124
|
+
visible `test-generator/<change-slug>/` folder at the project root, never runs
|
|
125
|
+
them), behavior trace (PERMANENT — persistent per-run `.txt`).
|
|
126
|
+
- **Usage is reported at every pause AND at run completion** — limits reminder
|
|
127
|
+
plus the full per-task dispatch table (score, model, effort).
|
|
128
|
+
- **Disk is truth.** Every pause emits a resume block; paste it into a fresh
|
|
129
|
+
session to continue with near-zero context cost. state-of-play.md +
|
|
130
|
+
checkpoint carry everything.
|
|
131
|
+
- **Strict contracts.** Workers receive slices, return fixed structures;
|
|
132
|
+
malformed = failure. `needs_context` (cap 2) is the only way a worker asks
|
|
133
|
+
for more.
|
|
134
|
+
|
|
135
|
+
## Verify at first run (environment-dependent)
|
|
136
|
+
|
|
137
|
+
- Whether `/usage` can be invoked programmatically (fallback: dispatch-log
|
|
138
|
+
report + instruct you to run /usage yourself — already built in).
|
|
139
|
+
- That the orchestrator loads subskills by PATH (subskills/...) — it should
|
|
140
|
+
never rely on nested-skill auto-discovery.
|
|
141
|
+
- The planner hand-off: if Superpowers/OpenSpec output lacks declared files,
|
|
142
|
+
the orchestrator extracts them — watch that seam on run one.
|
|
143
|
+
|
|
144
|
+
## Tuning after first runs
|
|
145
|
+
|
|
146
|
+
- Waves over-serializing → declared_files globs too broad; narrow them.
|
|
147
|
+
- Collisions slipping through → workers under-declaring; emphasize tests too.
|
|
148
|
+
- Rubric scores feel off → adjust weights in references/effort-and-mode.md;
|
|
149
|
+
audit the override log to see where the orchestrator disagreed with it.
|
|
150
|
+
- Cached pattern drifted from the codebase → `/orc-pattern --refresh`.
|