@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,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: The invariant ledger — the promises your project makes, and which ones are in doubt right now
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-pact** skill. Standalone — no scan, no plan, no build, no code
|
|
6
|
+
written.
|
|
7
|
+
|
|
8
|
+
`/orc-grill` and `/orc-brainstorm` already settle constraints, and a plan already
|
|
9
|
+
carries them into every executor slice. Then the run ends and they evaporate. This
|
|
10
|
+
is the ledger that outlives the run.
|
|
11
|
+
|
|
12
|
+
Four states, and every one is **computed on read**, never stored:
|
|
13
|
+
|
|
14
|
+
- **HOLDING** — its check passed at a commit that still covers the files it anchors.
|
|
15
|
+
- **DRIFTED** — commits since then touched those files. Coverage-relative: a promise
|
|
16
|
+
about payments does not fall into doubt because the README changed.
|
|
17
|
+
- **UNCHECKABLE** — nothing cheap proves it. **This is the honest state and the
|
|
18
|
+
point of the lane**, and it never counts as a failure.
|
|
19
|
+
- **BROKEN** — the check ran and failed.
|
|
20
|
+
|
|
21
|
+
How it runs:
|
|
22
|
+
|
|
23
|
+
1. **Harvest** — pull constraints out of a run's `spec_invariants[]`, a grill doc, a
|
|
24
|
+
brainstorm doc, or a frozen poly-repo contract. Each one arrives quoted verbatim
|
|
25
|
+
with an origin recorded. **It never invents a promise.**
|
|
26
|
+
2. **Recheck** — `orc pact check` runs the cheap proofs for the drifted ones only,
|
|
27
|
+
and re-anchors what passes. No model judges what a test can answer.
|
|
28
|
+
3. **Reconcile** — one promise at a time. ORC brings the facts (which commits
|
|
29
|
+
touched it, what the check returned, whether this already went wrong before);
|
|
30
|
+
**you** decide whether the promise still stands. It recommends, then waits.
|
|
31
|
+
4. **Write** — the ledger, plus a committed, PM-readable `PACT.md` at the project
|
|
32
|
+
root, rendered by the CLI from the ledger so the two can never disagree.
|
|
33
|
+
|
|
34
|
+
**It never retires a promise on its own.** Retirement is your decision and records
|
|
35
|
+
your reason, and a retired promise stays visible struck through.
|
|
36
|
+
|
|
37
|
+
Inside `/orc` (`pact_gate`, default `warn`): one preflight line, and — the payoff —
|
|
38
|
+
a drifted promise whose files a plan is about to touch is injected into the planner
|
|
39
|
+
as a constraint. Last month's decision constrains this month's plan, automatically.
|
|
40
|
+
It never blocks a run.
|
|
41
|
+
|
|
42
|
+
Read it back any time without this lane: `orc pact status`.
|
|
43
|
+
|
|
44
|
+
What you want to do (harvest / review / add — or nothing, and it will ask): $ARGUMENTS
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Learn & cache the project's real code conventions per language — reconciles a generic playbook against your actual files so ORC executors match your house style
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-pattern** skill. Start at Phase 0: detect the project's
|
|
6
|
+
frontend/backend languages, then branch per language (cache miss → codify; cache
|
|
7
|
+
hit + no drift → report and skip; cache hit + drift → auto-refresh). Dispatch the
|
|
8
|
+
`orc-pattern-codifier-sonnet-5-high` subagent (`orc-pattern-codifier-opus-5-med`
|
|
9
|
+
when `opus5_only` is set) to reconcile the generic playbook
|
|
10
|
+
against the most-recently-modified real files (project conventions win; invariants
|
|
11
|
+
always kept; conflicts flagged), then write `.claude/orc/patterns/<lang>-pattern.md`.
|
|
12
|
+
Never run tests or change project code. Follow the skill's SKILL.md exactly.
|
|
13
|
+
|
|
14
|
+
Optional: a language name to codify just that one, or `--refresh` to force
|
|
15
|
+
re-codification. $ARGUMENTS
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Requirement Planner — turn a detailed request or analyst spec into a grounded task plan (plan only)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-planner** subskill via the orchestrator. Take the input (a
|
|
6
|
+
detailed request, or a System Analyst requirement-spec) and produce a grounded,
|
|
7
|
+
right-sized, dependency-checked plan in orc's planning-output format. If the
|
|
8
|
+
request is below the plannable floor (an observable outcome + an identifiable
|
|
9
|
+
repo area), do not plan — recommend `/orc-analyze` requirement mode instead.
|
|
10
|
+
Ground declared files from the repo/wiki when run standalone; trust the analyst
|
|
11
|
+
spec when chained. If the input is an orc-poly `poly-spec.md` (first line
|
|
12
|
+
`orc-poly:spec`), the planner switches to **poly-repo split mode** — one plan
|
|
13
|
+
per repo in its `repos[]` block, each written into its own repo and each pinned
|
|
14
|
+
to the frozen `interface-contract.md` (see the planner agent). Every declared path carries a grounding attestation
|
|
15
|
+
(exists|new + evidence), every task a sliced source-cited acceptance[] plus the
|
|
16
|
+
requirements[] it implements — the orchestrator spot-checks grounding AND
|
|
17
|
+
recomputes coverage (an orphan requirement bounces the plan), plus cycle and
|
|
18
|
+
same-file collision checks. Show the plan once for approval/edits (task
|
|
19
|
+
breakdown/approach only), then offer to take it into a build or save it as
|
|
20
|
+
plan-{name}.md and stop. The orchestrator dispatches the planning to a subagent.
|
|
21
|
+
|
|
22
|
+
Request / spec: $ARGUMENTS
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Poly-repo planning — plan ONE change across 2+ repos, freeze the shared interface contract, split into one plan per repo (no drift)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the **orc-poly** skill. You are in the HOST repo; paste the path of each
|
|
6
|
+
PEER repo the change also touches (one or many — FE→BE, BE→another service's
|
|
7
|
+
gRPC, …). orc-poly peeks at every repo's wiki + crosslink read-only (or, when a
|
|
8
|
+
wiki is missing, asks you which folders/files to dig — never a blind scan),
|
|
9
|
+
gathers the cross-repo context by asking questions until the shared boundary is
|
|
10
|
+
pinned with no guesses, then writes a source-of-truth doc set
|
|
11
|
+
(`poly-context.md`, `interface-contract.md`, `poly-spec.md`) into
|
|
12
|
+
`poly-repo-implementation/<slug>/`. Each iteration it offers three choices: pass
|
|
13
|
+
to orc-plan · stop & chat · add more context (another repo path or pasted
|
|
14
|
+
knowledge). On "pass to orc-plan" the shared planner self-activates poly mode on
|
|
15
|
+
the `orc-poly:spec` marker and splits ONE plan per repo — the HOST plan into
|
|
16
|
+
this repo, each PEER plan written into that peer repo — every plan pinned to the
|
|
17
|
+
frozen `interface-contract.md`. You then build each repo later, in its own
|
|
18
|
+
session, with plain `/orc`, and no repo drifts. PEER source is READ-ONLY (the
|
|
19
|
+
only peer write is its plan file); orc-poly never builds.
|
|
20
|
+
|
|
21
|
+
Change / peer path(s): $ARGUMENTS
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Stacked-PR driver — execute a stack plan: one branch per layer, mandatory per-layer green gate, gh stack submit, then sync/rebase/bottom-up merge
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the **orc-pr-driver** skill. It takes an approved stack plan and makes the
|
|
6
|
+
layers real: `gh stack init` → per layer `gh stack add`, only that layer's files,
|
|
7
|
+
the **mandatory green-gate ladder** (build → tests → lint scoped to *that layer's
|
|
8
|
+
own base* → the repo's own pre-commit hooks, never `--no-verify`) → commit →
|
|
9
|
+
`gh stack submit`, PR bodies filled from the resolved template, then the ongoing
|
|
10
|
+
`gh stack sync` / `rebase --upstack` / `modify` care and the bottom-up merge.
|
|
11
|
+
|
|
12
|
+
**Three ways in — all read the same file** (`stacked-pr/<slug>/stack-plan.md`,
|
|
13
|
+
probed with `orc pr stack status`):
|
|
14
|
+
|
|
15
|
+
1. `/orc-pr-setup` planned it (the normal path),
|
|
16
|
+
2. ORC's ship phase handed it over (`stacked-pr/<slug>/STACK-FROM.md`),
|
|
17
|
+
3. **you wrote the plan yourself** — run `orc pr stack template` for the skeleton,
|
|
18
|
+
fill it in, and start here. No planner run required.
|
|
19
|
+
|
|
20
|
+
It **refuses to run** — naming the exact missing field — on a plan with an
|
|
21
|
+
unanswered uncertain seam, a missing ticket, a layer with no purpose or value
|
|
22
|
+
class, a FOUNDATION layer that names no consumer, fewer than 2 layers, or a red
|
|
23
|
+
build. It never fills a field in for you.
|
|
24
|
+
|
|
25
|
+
When the change already exists in the worktree, your work is snapshotted to a
|
|
26
|
+
scratch branch BEFORE any branch surgery, every layer is materialized from that
|
|
27
|
+
snapshot file-by-file, and a completeness gate proves the union of the layers
|
|
28
|
+
equals the snapshot exactly before anything is submitted.
|
|
29
|
+
|
|
30
|
+
Slug / plan path / stack action: $ARGUMENTS
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Stacked-PR planner — decide where the PR cut lines go, prove each layer stands alone, write stacked-pr/<slug>/stack-plan.md (plans only, never touches git)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Run the **orc-pr-setup** skill. It plans a **stack of pull requests** for a
|
|
6
|
+
change that is too big to review as one PR: ordered layers, each with a one-line
|
|
7
|
+
purpose, a value class (`USER | OPERATOR | CONTRACT | FOUNDATION`), an explicit
|
|
8
|
+
file list, measured LoC/file budgets and a dependency reason — written to
|
|
9
|
+
`stacked-pr/<slug>/stack-plan.md`.
|
|
10
|
+
|
|
11
|
+
It **plans only**: no branches, no commits, no pushes, no PRs. That is
|
|
12
|
+
`/orc-pr-driver`.
|
|
13
|
+
|
|
14
|
+
Two entry modes, auto-detected: **greenfield** (nothing written yet — a spec or
|
|
15
|
+
ticket) and **orc-run** (the change already exists in the worktree, e.g. ORC just
|
|
16
|
+
built it — the split is file-granular; hunk surgery is forbidden). A ticket
|
|
17
|
+
number is required. The PR-description template is resolved from the ORC template,
|
|
18
|
+
then the project (`.github/`, `docs/`), then a `CLAUDE.md` section — and if none
|
|
19
|
+
exists you get three recommended options to pick from; declining them all means
|
|
20
|
+
the stack is skipped and the change ships as one regular PR.
|
|
21
|
+
|
|
22
|
+
**P0 hard gate:** every uncertain boundary STOPS the lane and asks you, one
|
|
23
|
+
decision at a time, with the LoC/file/CI cost of each option and a recommendation
|
|
24
|
+
— and records your answer under `## Decisions`. Same-tier files, shared helpers,
|
|
25
|
+
refactor mixed with behavior change, ordering ambiguity and oversize atoms are all
|
|
26
|
+
uncertain by definition. It never guesses a seam.
|
|
27
|
+
|
|
28
|
+
When the plan is written it shows the layer table, states that nothing has been
|
|
29
|
+
created yet, and hands off to `/orc-pr-driver`.
|
|
30
|
+
|
|
31
|
+
Ticket / change / spec: $ARGUMENTS
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Quick lane for almost anything — look, ask once, dispatch. Always asks which agent. Saves every request as a numbered entry in orc-quick/<slug>/quick-context.md
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-quick** skill. It is standalone — not part of the `/orc` pipeline,
|
|
6
|
+
and no config key can change how it dispatches.
|
|
7
|
+
|
|
8
|
+
Three steps per request, one user turn:
|
|
9
|
+
|
|
10
|
+
1. **LOOK** (silent) — check the wiki and code-pattern if they exist (never a
|
|
11
|
+
blocker), find the files, read the PR comments if this is PR work, and note
|
|
12
|
+
anything the user already decided.
|
|
13
|
+
2. **ASK** (one turn) — up to 3 grounded questions *plus* the dispatch gate in
|
|
14
|
+
the same turn. **The gate is hard: always ask which agent to dispatch.**
|
|
15
|
+
Code work offers `orc-executor-sonnet-4-6-med` or `orc-executor-opus-5-low`;
|
|
16
|
+
read-only work offers an ad-hoc model + effort.
|
|
17
|
+
3. **DO** — dispatch, check the return, run build/tests if they exist, write the
|
|
18
|
+
numbered entry to `orc-quick/<slug>/quick-context.md`, then offer tests /
|
|
19
|
+
review / commit.
|
|
20
|
+
|
|
21
|
+
Not only for code: a quick context dig, a defect hunt, a dependency bump, or
|
|
22
|
+
fixing PR review comments all run the same way. A request that turns out too big
|
|
23
|
+
gets an **offer** of `/orc-mini` — never a forced fallback.
|
|
24
|
+
|
|
25
|
+
No smoke gate. A red build starts a repair loop (2 rounds reuse the executor,
|
|
26
|
+
round 3 asks again, then it asks what to do). Red tests stop the commit offer but
|
|
27
|
+
never loop. No test suite means no check at all.
|
|
28
|
+
|
|
29
|
+
`gh` is read + push only — never a comment, never a resolve, never a merge.
|
|
30
|
+
|
|
31
|
+
Ask for a new request any time and it becomes entry 2, 3, 4 … in the same doc.
|
|
32
|
+
|
|
33
|
+
Request (or `pr <n>`, `thread=<name>`): $ARGUMENTS
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mine the ORC behavior traces — per-band calibration, downgrades, pipeline leaks (read-only report)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-retro** skill. **P0 preflight first:** verify a delivery channel
|
|
6
|
+
exists — the gh CLI (authed) or a GitHub MCP server; if NEITHER is available,
|
|
7
|
+
do not run the retro at all (the report must land upstream or it's pointless).
|
|
8
|
+
Then: read the persistent behavior traces in `log_dir` (behavior-trace logging is
|
|
9
|
+
permanent — every run writes one), dispatch the retro miner subagent to aggregate
|
|
10
|
+
per-band outcomes (retries, requeues, needs_context, unmet), tier downgrades,
|
|
11
|
+
and pipeline leaks, write the AI-readable calibration report to
|
|
12
|
+
`log_dir/retro/`, and DELIVER it to the ORC repo (`retro_repo` config, default
|
|
13
|
+
azure-id/orc) as a PR — issue fallback — showing the created URL. Never edits
|
|
14
|
+
the rubric, skills, or code locally. If no traces exist yet (no runs have
|
|
15
|
+
happened), say so and stop.
|
|
16
|
+
|
|
17
|
+
Optional trace subset / date range: $ARGUMENTS
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: You have a plan — this says which lane should build it, with the numbers it decided from. Plan-only: it refuses a request in words rather than guess
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-route** skill. Zero agents, nothing is built.
|
|
6
|
+
|
|
7
|
+
**It routes a PLAN, and only a plan** — pasted ORC planning-output, a
|
|
8
|
+
`plan-<name>.md` path, or a saved `orc/planner/<name>/` checkpoint (the same
|
|
9
|
+
definition `references/plan-handoff.md` already uses). A plan carries real
|
|
10
|
+
numbers: tasks, files per task, dependencies, facets, scores. Routing from those
|
|
11
|
+
is arithmetic; routing from a sentence is guessing, so a request in words gets a
|
|
12
|
+
refusal and a pointer to `/orc-plan`, not a guess.
|
|
13
|
+
|
|
14
|
+
It reads the plan plus ORC's deterministic probes (`orc wiki status`,
|
|
15
|
+
`orc pattern status`, `orc gotcha status`, `orc diy status`) and answers:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Plan: merchant-notifications — 7 tasks, 3 waves, 14 files touched
|
|
19
|
+
top score 78, two tasks marked risky
|
|
20
|
+
|
|
21
|
+
→ /orc the plan has risky tasks and a task above 70;
|
|
22
|
+
review and verify are worth paying for here
|
|
23
|
+
runner-up /orc-mini — about 3x faster, but it skips full review
|
|
24
|
+
and verification. Fine only if you will read the diff yourself.
|
|
25
|
+
not possible /orc-fast — needs a fresh wiki (yours is STALE) and this plan
|
|
26
|
+
is 7 tasks; that lane runs ONE task
|
|
27
|
+
|
|
28
|
+
Start /orc now? [yes / no]
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Every runner-up says what choosing it costs you. Every impossible lane names the
|
|
32
|
+
condition blocking it **and** how to fix it. Risk beats size: a small plan with a
|
|
33
|
+
cited risk still earns the full lane.
|
|
34
|
+
|
|
35
|
+
`/orc-plan` also offers this automatically after **Save & stop**, so you rarely
|
|
36
|
+
need to type it.
|
|
37
|
+
|
|
38
|
+
New to ORC and wondering which command to use at all? That is
|
|
39
|
+
`orc onboarding first-run`, not this.
|
|
40
|
+
|
|
41
|
+
Plan (paste it, or give a path): $ARGUMENTS
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Ultra lane — full orchestrator + Opus 5 xhigh advisor and three judgment gates, for ultra-complex work (maximum rigor, cost accepted)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc** skill with `ultra_mode: true` forced on for this run. Ultra is
|
|
6
|
+
the maximum-rigor lane for complex/ultra-complex requests: everything the full
|
|
7
|
+
pipeline does, PLUS an up-front Advisor brief with a batched clarification
|
|
8
|
+
round (orc-advisor skill), three judgment gates — after analysis, after
|
|
9
|
+
planning, and after verify (implementation fidelity + ultra-strict quality;
|
|
10
|
+
orc-judge skill) — an assumption ledger, a deterministic traceability matrix,
|
|
11
|
+
a blast-radius map, and an executor tier floor. Forced for the run (run-scoped,
|
|
12
|
+
never written to the user's config): deep analyze (Phase A′ gate bypassed),
|
|
13
|
+
pattern findings on, test authoring on, security review on. Ultra is costly by
|
|
14
|
+
design — state it once, never prompt about cost mid-run. Follow the orc
|
|
15
|
+
SKILL.md's ULTRA LANE section and references/ultra-mode.md exactly.
|
|
16
|
+
|
|
17
|
+
Request: $ARGUMENTS
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Standalone verify — checks git-modified changes only, shows summary, Opus 5 medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-verify** skill independently (no orchestrator): verify
|
|
6
|
+
only the git-modified changes in the working tree using Opus 5 medium effort,
|
|
7
|
+
classify findings on the P0–P3 severity ladder (P0/P1 gate, P2/P3 advisory;
|
|
8
|
+
every P0–P2 finding anchored with file:line + a verbatim quote, else it's
|
|
9
|
+
auto-P3), and show the summary. Read-only — do not fix or commit.
|
|
10
|
+
|
|
11
|
+
Optional focus: $ARGUMENTS
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Build/maintain the project knowledge base (wiki) — Opus 4.8 high, expensive, multi-session, warns before scanning
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc-wiki** skill. Start at Phase 0: auto-detect whether this is a
|
|
6
|
+
repair of an unregistered wiki, a fresh build, a resume of an in-progress scan,
|
|
7
|
+
or a refresh of an existing wiki, and branch accordingly. On a fresh build, show
|
|
8
|
+
the cost warning and scan NOTHING until the user explicitly confirms. Refreshes
|
|
9
|
+
also sweep for coverage gaps (changed files no doc covers → propose new areas)
|
|
10
|
+
and dead docs (covered files gone → archive/delete, user decides). Every run
|
|
11
|
+
registers via `orc wiki sync` and ends with the integrity self-check. Follow the
|
|
12
|
+
skill's SKILL.md exactly.
|
|
13
|
+
|
|
14
|
+
**Crosslink is always on.** Plain `/orc-wiki` — every scan, resume, incremental,
|
|
15
|
+
full regenerate, or selective refresh — publishes/updates this repo's boundary
|
|
16
|
+
tags (`wiki/crosslink/`) in the SAME pass as the docs, and a refresh never
|
|
17
|
+
deletes them. There is no separate "generate crosslink" step in a wiki's normal
|
|
18
|
+
life; the only crosslink config is the graph (`orc crosslink`), needed only to
|
|
19
|
+
resolve what this repo consumes.
|
|
20
|
+
|
|
21
|
+
**`/orc-wiki crosslink`** → the CROSSLINK-ONLY branch (Phase 3c) is a LEGACY
|
|
22
|
+
BACKFILL: publish tags + resolve consumption from the existing docs'
|
|
23
|
+
`Contracts & shapes` rows (opening only the files they anchor), for wikis whose
|
|
24
|
+
docs predate v0.24.0 and so have no `wiki/crosslink/` yet. No area is re-scanned,
|
|
25
|
+
no doc rewritten. On a wiki scanned at ≥v0.24.0, missing tags are not this
|
|
26
|
+
branch — `orc wiki sync --check` names the real fix. Never a refresh.
|
|
27
|
+
|
|
28
|
+
**`/orc-wiki crosslink compile`** → the one-shot CROSSLINK COMPILE branch
|
|
29
|
+
(v0.33.0 — references/crosslink-compile.md): resolve/consume from the graph →
|
|
30
|
+
generate the federation atlas (`wiki/crosslink/atlas.md`) → write it into each
|
|
31
|
+
linked repo → inject/update the CLAUDE.md pointer block locally and in each
|
|
32
|
+
linked repo (in-place, user content byte-preserved). Requires a crosslink
|
|
33
|
+
config with ≥1 edge; every step warn-only; never a re-scan. Peer writes are
|
|
34
|
+
FILE writes only — never a commit or push.
|
|
35
|
+
|
|
36
|
+
| Argument | Branch |
|
|
37
|
+
|---|---|
|
|
38
|
+
| *(none)* | Phase 0 auto-branch: repair / fresh / resume / refresh (delta default) |
|
|
39
|
+
| `crosslink` | Phase 3c legacy backfill (publish tags from existing docs) |
|
|
40
|
+
| `crosslink compile` | one-shot resolve + atlas + CLAUDE.md injection (local + peers) |
|
|
41
|
+
|
|
42
|
+
Optional focus (or `crosslink` / `crosslink compile`): $ARGUMENTS
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Full orchestrator — intake, planning, scored parallel subagents, review, verify, ship
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Use the **orc** skill to handle this request end to end: Phase 0
|
|
6
|
+
intake (with intent-spec sign-off), planning, per-task scoring, spawning scored
|
|
7
|
+
subagents in conflict-free waves, review, verify, and ship. Follow the skill's
|
|
8
|
+
SKILL.md exactly.
|
|
9
|
+
|
|
10
|
+
If the input IS a plan (pasted planning-output, a `plan-{name}.md` path, or an
|
|
11
|
+
`orc/planner/{name}/` checkpoint) rather than a request, the skill switches to
|
|
12
|
+
its plan-handoff entry contract (`references/plan-handoff.md`) — it re-grounds
|
|
13
|
+
and re-scores the plan in this session, then runs Phase 2–8; it never executes a
|
|
14
|
+
handed-off plan task-by-task ad hoc.
|
|
15
|
+
|
|
16
|
+
Request: $ARGUMENTS
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* ORC effort guard — a Claude Code PreToolUse hook.
|
|
6
|
+
*
|
|
7
|
+
* Blocks invocation of the full `orc` orchestrator skill unless the MAIN
|
|
8
|
+
* session is running at HIGH reasoning effort (Opus 5 / Fable 5 clear at
|
|
9
|
+
* medium+ — see the session-model bridge below). This is the one half of the
|
|
10
|
+
* "run ORC on Opus 4.8 high or better" rule hooks can enforce deterministically:
|
|
11
|
+
* Claude Code exposes `effort.level` (and $CLAUDE_EFFORT) to PreToolUse, but
|
|
12
|
+
* NOT the model id (only SessionStart may see the model, and cannot block).
|
|
13
|
+
* The model tier is surfaced separately by the statusline warning + the
|
|
14
|
+
* self-check inside skills/orc/SKILL.md.
|
|
15
|
+
*
|
|
16
|
+
* Wiring (installed by `orc init` into .claude/settings.json):
|
|
17
|
+
* hooks.PreToolUse[] { matcher: "Skill", hooks:[{ type:"command",
|
|
18
|
+
* command: 'node "<.claude>/hooks/orc-effort-guard.js"' }] }
|
|
19
|
+
*
|
|
20
|
+
* Contract: read PreToolUse JSON from stdin. Exit 0 = allow. Exit 2 = block
|
|
21
|
+
* the tool call and show stderr to Claude, which relays it to the user.
|
|
22
|
+
*
|
|
23
|
+
* Also surfaces a "newer orc version available" nudge here — this hook fires
|
|
24
|
+
* exactly when /orc is invoked, so it's the natural place to tell the user
|
|
25
|
+
* without them running `orc version`. On allow it emits a `systemMessage`
|
|
26
|
+
* (shown to the user, NOT added to model context → zero tokens); on block it
|
|
27
|
+
* appends the nudge to the block reason. Version check is cached 24h and
|
|
28
|
+
* fail-silent. (systemMessage handling may vary by Claude Code version — verify
|
|
29
|
+
* with /doctor if you don't see it; the statusline shows it regardless.)
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
// Shared update-check helper (sibling file). Degrade gracefully if absent.
|
|
33
|
+
let updater = null;
|
|
34
|
+
try {
|
|
35
|
+
updater = require("./orc-update-lib.js");
|
|
36
|
+
} catch (_) {
|
|
37
|
+
updater = null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Effort ladder: low < medium < high < xhigh < max. A tier that meets the bar
|
|
41
|
+
// meets it at that rung OR anything stronger — so "requires high" allows xhigh
|
|
42
|
+
// and max too (the bug this fixes: an xhigh/max session was hard-blocked).
|
|
43
|
+
const EFFORT_LADDER = ["low", "medium", "high", "xhigh", "max"];
|
|
44
|
+
const effortsAtOrAbove = (e) => {
|
|
45
|
+
const i = EFFORT_LADDER.indexOf(String(e).toLowerCase());
|
|
46
|
+
return i === -1 ? ["high", "xhigh", "max"] : EFFORT_LADDER.slice(i);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Session-model bridge (written by orc-statusline.js). The guard can't see the
|
|
50
|
+
// model id itself, so it reads it here to grant the medium-effort allowance of
|
|
51
|
+
// the models that are strictly stronger than the Opus 4.8 baseline (Opus 5 and
|
|
52
|
+
// Fable 5). Fail-OPEN: missing / unreadable / stale → null, and the guard
|
|
53
|
+
// behaves exactly as it would without a bridge (never blocks on our own error).
|
|
54
|
+
// Stale = older than this window; a live session re-renders the statusline far
|
|
55
|
+
// more often, so a fresh file always exists during active use.
|
|
56
|
+
const BRIDGE_MAX_AGE_MS = 30 * 60 * 1000;
|
|
57
|
+
function readSessionModel(projectDir) {
|
|
58
|
+
try {
|
|
59
|
+
const fs = require("fs");
|
|
60
|
+
const path = require("path");
|
|
61
|
+
const p = path.join(projectDir, ".claude", "orc", "session-model.json");
|
|
62
|
+
const j = JSON.parse(fs.readFileSync(p, "utf8").replace(/^/, ""));
|
|
63
|
+
if (!j || typeof j.written_at !== "number") return null;
|
|
64
|
+
if (Date.now() - j.written_at > BRIDGE_MAX_AGE_MS) return null;
|
|
65
|
+
return String(j.model_id || "");
|
|
66
|
+
} catch (_) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Models that clear /orc at medium effort — strictly stronger than the Opus 4.8
|
|
71
|
+
// baseline, so medium on them beats high on it. Opus 5 (v0.34.0) joins Fable 5.
|
|
72
|
+
// The `\b` after the 5 keeps 4.8 / 4.7 / 5-something-else correctly gated.
|
|
73
|
+
const isMediumOkModel = (id) =>
|
|
74
|
+
/(opus|fable)[\s._-]?5\b/.test(String(id || "").toLowerCase());
|
|
75
|
+
|
|
76
|
+
let raw = "";
|
|
77
|
+
process.stdin.on("data", (c) => (raw += c));
|
|
78
|
+
process.stdin.on("end", () => {
|
|
79
|
+
let data = {};
|
|
80
|
+
try {
|
|
81
|
+
data = JSON.parse(raw || "{}");
|
|
82
|
+
} catch (_) {
|
|
83
|
+
// Unparseable payload — never block on our own error.
|
|
84
|
+
process.exit(0);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const tool = data.tool_name || "";
|
|
88
|
+
const input = data.tool_input || {};
|
|
89
|
+
const skill = String(input.skill || input.name || "");
|
|
90
|
+
|
|
91
|
+
// Only gate the full orchestrator and the compiled DIY lane. orc-mini /
|
|
92
|
+
// orc-fast / orc-analyze / subskills pass — orc-fast is DESIGNED to run at
|
|
93
|
+
// Sonnet medium; never widen this match to include it.
|
|
94
|
+
const isOrc = tool === "Skill" && /^orc$/i.test(skill);
|
|
95
|
+
const isDiy = tool === "Skill" && /^orc-diy$/i.test(skill);
|
|
96
|
+
if (!isOrc && !isDiy) process.exit(0);
|
|
97
|
+
|
|
98
|
+
const effort = String(
|
|
99
|
+
(data.effort && data.effort.level) || process.env.CLAUDE_EFFORT || ""
|
|
100
|
+
).toLowerCase();
|
|
101
|
+
const installed = updater ? updater.installedVersion(__dirname) : null;
|
|
102
|
+
const projectDir = data.cwd || process.cwd();
|
|
103
|
+
|
|
104
|
+
// Baseline /orc: the session must be at high effort OR stronger (xhigh/max).
|
|
105
|
+
// Opus 5 and Fable 5 additionally clear at medium — strictly-capable models —
|
|
106
|
+
// detected through the session-model bridge (the guard can't see the model id
|
|
107
|
+
// itself; fail-open when the bridge is missing/stale, i.e. medium stays blocked).
|
|
108
|
+
let requiredEfforts = effortsAtOrAbove("high");
|
|
109
|
+
let requiredLabel =
|
|
110
|
+
"Opus 4.8 at high effort (Opus 5 / Fable 5 also clear at medium+)";
|
|
111
|
+
if (!isDiy && isMediumOkModel(readSessionModel(projectDir))) {
|
|
112
|
+
requiredEfforts = ["medium", ...requiredEfforts];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// /orc-diy: the required tier is whatever the flow was COMPILED for — read
|
|
116
|
+
// it from flow.lock.json (written only by the `orc diy` CLI). Fail closed:
|
|
117
|
+
// no lock = no compiled flow = deterministic onboarding block. `compile` /
|
|
118
|
+
// `status` invocations pass at any effort (they just shell out to the CLI).
|
|
119
|
+
if (isDiy) {
|
|
120
|
+
if (/^\s*(compile|status)\b/i.test(String(input.args || ""))) process.exit(0);
|
|
121
|
+
const fs = require("fs");
|
|
122
|
+
const path = require("path");
|
|
123
|
+
let lock = null;
|
|
124
|
+
try {
|
|
125
|
+
lock = JSON.parse(
|
|
126
|
+
fs
|
|
127
|
+
.readFileSync(
|
|
128
|
+
path.join(projectDir, ".claude", "orc", "diy", "flow.lock.json"),
|
|
129
|
+
"utf8"
|
|
130
|
+
)
|
|
131
|
+
.replace(/^\uFEFF/, "")
|
|
132
|
+
);
|
|
133
|
+
} catch (_) {}
|
|
134
|
+
if (!lock || !lock.session_tier) {
|
|
135
|
+
process.stderr.write(
|
|
136
|
+
"\n⛔ /orc-diy blocked — no compiled flow in this project (fail-closed gate)." +
|
|
137
|
+
"\n Compose and build your flow in the terminal first:" +
|
|
138
|
+
"\n orc diy init (then shape it: orc diy set <key> <value>)" +
|
|
139
|
+
"\n orc diy compile" +
|
|
140
|
+
"\n Guide: .claude/skills/orc-diy/README.md — or use plain /orc for this request.\n"
|
|
141
|
+
);
|
|
142
|
+
process.exit(2);
|
|
143
|
+
}
|
|
144
|
+
// Effort half is DETERMINISTIC from the compiled slug's suffix (allow that
|
|
145
|
+
// effort or anything stronger); the model half is warn-only on the
|
|
146
|
+
// statusline (hooks can't block on model). Covers the full tier grid —
|
|
147
|
+
// sonnet-4-6 / opus-4-7 / opus-4-8 / fable-5 at med|high|xhigh|max.
|
|
148
|
+
const m = String(lock.session_tier).match(/-(med|high|xhigh|max)$/);
|
|
149
|
+
const slugEffort = m ? (m[1] === "med" ? "medium" : m[1]) : "high";
|
|
150
|
+
requiredEfforts = effortsAtOrAbove(slugEffort);
|
|
151
|
+
requiredLabel = `${lock.session_tier} (compiled session_tier — needs effort ${slugEffort}+)`;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
const decide = (nudge) => {
|
|
155
|
+
if (requiredEfforts.includes(effort)) {
|
|
156
|
+
// Requirement met — allow. Surface a version nudge if one exists.
|
|
157
|
+
if (nudge) {
|
|
158
|
+
try {
|
|
159
|
+
process.stdout.write(JSON.stringify({ systemMessage: nudge }));
|
|
160
|
+
} catch (_) {}
|
|
161
|
+
}
|
|
162
|
+
process.exit(0);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
process.stderr.write(
|
|
166
|
+
`\n⛔ ${isDiy ? "/orc-diy" : "ORC"} blocked — required effort not met` +
|
|
167
|
+
(effort ? ` (current effort: ${effort}).` : " (effort not detected).") +
|
|
168
|
+
`\n Switch this session to ${requiredLabel}, then re-run.` +
|
|
169
|
+
"\n Run the MAIN session at (or above) the required tier — subagents cannot" +
|
|
170
|
+
"\n exceed the main tier, so pinned agents silently downgrade below it.\n" +
|
|
171
|
+
(nudge ? "\n" + nudge + "\n" : "")
|
|
172
|
+
);
|
|
173
|
+
process.exit(2);
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
if (updater) updater.refreshAndNudge(installed, decide);
|
|
177
|
+
else decide(null);
|
|
178
|
+
});
|