@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,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orc-route
|
|
3
|
+
description: >
|
|
4
|
+
Plan-only lane router — you have a plan, this tells you which lane should build
|
|
5
|
+
it. Use for "/orc-route", "which lane for this plan?", "is this worth the full
|
|
6
|
+
orc run?". It reads the plan's own numbers (tasks, waves, files, top score,
|
|
7
|
+
risk) plus ORC's deterministic knowledge probes, then names ONE recommended
|
|
8
|
+
lane, the runners-up with the reason each lost, and any lane that is not
|
|
9
|
+
possible with the blocking condition named. It routes a PLAN and nothing else —
|
|
10
|
+
given a request in words it refuses and says why, because routing from a
|
|
11
|
+
sentence is guessing. Zero agents, user-invoked only, nothing is built.
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# ORC-ROUTE
|
|
15
|
+
|
|
16
|
+
**This is not a general "which command should I use" helper.** It only works on a
|
|
17
|
+
plan, on purpose.
|
|
18
|
+
|
|
19
|
+
A plan contains real numbers — tasks, the files each task touches, dependencies,
|
|
20
|
+
facets, scores. A sentence like *"add notifications"* contains none of them.
|
|
21
|
+
Routing from a plan is arithmetic. Routing from a sentence is guessing, and a
|
|
22
|
+
guess that looks like a calculation is worse than no answer.
|
|
23
|
+
|
|
24
|
+
The newcomer's "which of these commands do I type?" is answered by
|
|
25
|
+
`orc onboarding first-run`, not here. That is the trade: a narrow tool that is
|
|
26
|
+
always right, instead of a broad one that is sometimes wrong.
|
|
27
|
+
|
|
28
|
+
## Input contract — reuse, never reinvent
|
|
29
|
+
|
|
30
|
+
A valid input is **exactly** what `../orc/references/plan-handoff.md` already
|
|
31
|
+
defines as a plan input:
|
|
32
|
+
|
|
33
|
+
- pasted planning-output (a block matching `../orc/schemas/planning-output.md` —
|
|
34
|
+
a `tasks:` list with `declared_files`, `depends_on`, `grounding[]`);
|
|
35
|
+
- a `plan-{name}.md` path the user points at;
|
|
36
|
+
- an `orc/planner/{name}/` checkpoint (the planner's "Save & stop" artifact).
|
|
37
|
+
|
|
38
|
+
Load that reference and use its definition — do NOT write a second one here. A
|
|
39
|
+
second definition of "what counts as a plan" is drift the contract lint cannot
|
|
40
|
+
see, and the two would eventually disagree about the same file.
|
|
41
|
+
|
|
42
|
+
Schema-validate against `../orc/schemas/planning-output.md`. A structurally
|
|
43
|
+
malformed plan is not a routing question: say which field is missing and point at
|
|
44
|
+
`/orc-plan`.
|
|
45
|
+
|
|
46
|
+
## Refusal — anything that is not a plan
|
|
47
|
+
|
|
48
|
+
Do not guess. Do not quietly downgrade into a general suggestion box.
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
This is not a plan, so I cannot route it.
|
|
52
|
+
|
|
53
|
+
I can only route a plan — a pasted ORC plan, a plan-<name>.md file, or a saved
|
|
54
|
+
planner checkpoint. What you gave me is a request in words.
|
|
55
|
+
|
|
56
|
+
Make a plan first with /orc-plan, then come back here.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
If the input is a plain request AND the user seems unsure what they even want,
|
|
60
|
+
you may add ONE line offering `/orc-grill` first. Offer it; never run it.
|
|
61
|
+
|
|
62
|
+
## What it reads
|
|
63
|
+
|
|
64
|
+
Only the plan, plus the deterministic probes ORC already ships — **never an
|
|
65
|
+
ad-hoc `find`**, per `../_shared/detecting-artifacts.md`:
|
|
66
|
+
|
|
67
|
+
| Probe | Tells you |
|
|
68
|
+
|---|---|
|
|
69
|
+
| `orc wiki status` | wiki tier — the `/orc-fast` prerequisite |
|
|
70
|
+
| `orc pattern status <lang>` | cached code-pattern — the other `/orc-fast` prerequisite |
|
|
71
|
+
| `orc gotcha status` | whether this project has repair memory for the area |
|
|
72
|
+
| `orc diy status` | exit 0 = a compiled custom flow exists and is READY |
|
|
73
|
+
|
|
74
|
+
Signals taken from the plan itself: task count, wave count, total distinct files
|
|
75
|
+
in `declared_files`, the top facet score, whether any task carries a **cited**
|
|
76
|
+
`risk[]`, and whether `plan_confidence` is low.
|
|
77
|
+
|
|
78
|
+
Read nothing else. This lane opens no source file.
|
|
79
|
+
|
|
80
|
+
## How it decides
|
|
81
|
+
|
|
82
|
+
Not a formula to hide behind — these are the real discriminators, in order:
|
|
83
|
+
|
|
84
|
+
1. **Hard gates first.** A lane whose prerequisites fail is `not possible`, not
|
|
85
|
+
"runner-up". `/orc-fast` needs a FRESH or AGING wiki **and** a cached pattern
|
|
86
|
+
**and** a single-task plan — it runs ONE task, **and (v0.46.0) a plan carrying
|
|
87
|
+
any boundary REFUSE can never route there**: fast has one executor and no wave
|
|
88
|
+
to lift the refused task out of, so the gate has nowhere to act. `/orc-diy`
|
|
89
|
+
needs `orc diy status` to exit 0.
|
|
90
|
+
2. **Risk beats size.** Any task with a cited `risk[]`, or `plan_confidence:
|
|
91
|
+
low`, recommends `/orc` — review and verify are what you are paying for, and
|
|
92
|
+
a small risky change is exactly the case that earns them.
|
|
93
|
+
3. **Then size.** Roughly: 1 task with both `/orc-fast` gates green → `/orc-fast`;
|
|
94
|
+
1–3 tasks, no risk, one wave → `/orc-mini`; anything multi-wave, or a top
|
|
95
|
+
score in the high bands, or more than a handful of files → `/orc`.
|
|
96
|
+
4. **`/orc-ultra` is never a default.** Name it only when the plan itself
|
|
97
|
+
justifies maximum rigor (cited risk on more than one task, or a security-
|
|
98
|
+
surface plan), and say plainly that it costs the most.
|
|
99
|
+
|
|
100
|
+
State the numbers you decided from. A recommendation without its evidence cannot
|
|
101
|
+
be argued with, and the user is the one who knows whether the risk is real.
|
|
102
|
+
|
|
103
|
+
**Cost, when it is knowable (v0.46.0).** Run `orc budget forecast <plan> --json`
|
|
104
|
+
and add ONE cost column per lane, in the primary unit `budget_units` resolves to.
|
|
105
|
+
Routing stops being qualitative the moment "about 3x faster" becomes "1.23M vs
|
|
106
|
+
0.41M raw, 18% vs 6% of a 5-hour window". Two rules ride with it: a band below
|
|
107
|
+
`budget_min_samples` makes the number a FLOOR and the column says so, and **exit 3
|
|
108
|
+
(no history) means the column is simply absent** — never a guessed figure, and
|
|
109
|
+
never a reason to withhold the recommendation itself, which does not depend on
|
|
110
|
+
cost.
|
|
111
|
+
|
|
112
|
+
## Output shape
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
Plan: merchant-notifications — 7 tasks, 3 waves, 14 files touched
|
|
116
|
+
top score 78, two tasks marked risky
|
|
117
|
+
|
|
118
|
+
→ /orc the plan has risky tasks and a task above 70;
|
|
119
|
+
review and verify are worth paying for here
|
|
120
|
+
1.23M raw · 18% of a 5-hour window on Max 20x
|
|
121
|
+
runner-up /orc-mini — about 3x faster and 0.41M raw (6% of a window),
|
|
122
|
+
but it skips full review and verification. Fine only if you
|
|
123
|
+
will read the diff yourself.
|
|
124
|
+
not possible /orc-fast — needs a fresh wiki (yours is STALE) and this plan
|
|
125
|
+
is 7 tasks; that lane runs ONE task. It also carries 1 boundary
|
|
126
|
+
REFUSE, which fast has no wave to lift out.
|
|
127
|
+
|
|
128
|
+
Start /orc now? [yes / no]
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Rules for that block:
|
|
132
|
+
|
|
133
|
+
- **Every runner-up names what it costs you**, not just that it is cheaper.
|
|
134
|
+
- **Every `not possible` names the blocking condition AND its fix** ("run
|
|
135
|
+
`/orc-wiki` to refresh"). A blocked lane with no stated fix is a dead end.
|
|
136
|
+
- **The final offer starts the recommended lane.** `no` ends the run cleanly.
|
|
137
|
+
|
|
138
|
+
## Second entry point — one question after "Save & stop"
|
|
139
|
+
|
|
140
|
+
`../orc/subskills/orc-planner/SKILL.md` ends in a three-way branch. On **Save &
|
|
141
|
+
stop** ONLY, it asks:
|
|
142
|
+
|
|
143
|
+
> Want a lane recommendation for building this? [yes / no]
|
|
144
|
+
|
|
145
|
+
*Take into build* never asks — the lane is already chosen and running. *Poly
|
|
146
|
+
split & stop* never asks — it has its own per-repo handoff. One question, in
|
|
147
|
+
exactly one branch.
|
|
148
|
+
|
|
149
|
+
## Behavior trace (always on — same as every lane)
|
|
150
|
+
|
|
151
|
+
Follow `../orc/references/trace-protocol.md`. Lane name `route`. Single-dispatch
|
|
152
|
+
tier: **exactly ONE end-of-run packet** to `orc-trace-writer-haiku-4-5`, solo,
|
|
153
|
+
after the offer is answered and BEFORE `log_dir/.current` is deleted. Run start
|
|
154
|
+
writes `log_dir/.current` = `run-route-<slug>-<DDMMYY>-<HHMMSS>.txt` AND
|
|
155
|
+
`touch the trace file` of that name in the SAME step. The packet carries the
|
|
156
|
+
probe results, the signals read from the plan, the recommendation, and — as
|
|
157
|
+
`decisions` — why the runners-up lost. A run that ends with
|
|
158
|
+
`zero new trace lines is a protocol violation`.
|
|
159
|
+
|
|
160
|
+
## Rules this lane always keeps
|
|
161
|
+
|
|
162
|
+
Routes a plan, refuses anything else · zero agents, nothing dispatched · reuses
|
|
163
|
+
`plan-handoff.md`'s plan definition, never a second one · deterministic probes
|
|
164
|
+
only, never an ad-hoc `find` · reads no source file · never starts a lane the
|
|
165
|
+
user did not accept · never edits config or any project file.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orc-verify
|
|
3
|
+
description: >
|
|
4
|
+
Standalone verification for ORC. Use for "verify my changes",
|
|
5
|
+
"/orc-verify", or "check the modified files". Runs INDEPENDENTLY —
|
|
6
|
+
no orchestrator, no planning, no run folder required. Verifies only the
|
|
7
|
+
git-modified changes in the working tree and shows a summary of results. Uses
|
|
8
|
+
Opus 5 medium effort. Read-only: it reports, it does not fix or commit.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# ORC-VERIFY (standalone)
|
|
12
|
+
|
|
13
|
+
A focused, dependency-free verify pass. No intake, no planning, no checkpoint —
|
|
14
|
+
you point it at your uncommitted work and it tells you what's wrong.
|
|
15
|
+
|
|
16
|
+
Run as Opus 5, medium effort.
|
|
17
|
+
|
|
18
|
+
**Worked example** (orient only — never execute from it): `examples/verify-mock.md`.
|
|
19
|
+
|
|
20
|
+
## Procedure
|
|
21
|
+
|
|
22
|
+
1. **Gather the change surface** from git: `git diff --name-only` (unstaged +
|
|
23
|
+
staged) and, if useful, `git diff` for the actual hunks. Scope is ONLY the
|
|
24
|
+
modified/added files — do not review the whole repo.
|
|
25
|
+
2. **Detect the stack** (package manager, test runner) from the repo.
|
|
26
|
+
If a cached pattern exists for a changed file's language — test it with the
|
|
27
|
+
deterministic probe `orc pattern status <lang>` (exit 0 = cached; see
|
|
28
|
+
`../_shared/detecting-artifacts.md`, never an ad-hoc `find` for
|
|
29
|
+
`.claude/orc/patterns/<lang>-pattern.md`) — read its Invariants +
|
|
30
|
+
Validation-gate sections and check the diff against them too (an invariant
|
|
31
|
+
violation or unmet enforceable gate line is P0). No cached pattern → skip
|
|
32
|
+
silently, never codify from here.
|
|
33
|
+
3. **Verify the changes:**
|
|
34
|
+
- Run the build if one exists; capture failures.
|
|
35
|
+
- Run the tests that cover the changed files (or the full suite if scoping
|
|
36
|
+
isn't clean); capture failures.
|
|
37
|
+
- Check the diff for obvious breakage: broken imports, references to removed
|
|
38
|
+
symbols, unhandled errors introduced, type errors.
|
|
39
|
+
- **Adversarial pass (v0.33.0):** attack the diff the way the pipeline's
|
|
40
|
+
Phase 6 does — edge cases the change ignores (empty/zero/max, unicode),
|
|
41
|
+
error paths (each external call's failure), contract violations (response
|
|
42
|
+
shapes/status codes vs consumers), race/ordering on shared state, and
|
|
43
|
+
workflow breaks (dead wiring, broken commands). Same evidence rule.
|
|
44
|
+
4. **Classify findings** on the P0–P3 severity ladder (same rule as the full
|
|
45
|
+
skill: P0 = failing build/tests, broken references, runtime errors ·
|
|
46
|
+
P1 = correctness/security risk · P2 = maintainability · P3 = cosmetic).
|
|
47
|
+
P0/P1 mean NOT ready to commit; P2/P3 are advisory. **Evidence-or-advisory
|
|
48
|
+
(same rule as the full pipeline):** every P0–P2 finding carries `file:line`
|
|
49
|
+
+ the offending line(s) quoted VERBATIM from a file read this session; a
|
|
50
|
+
finding that can't be anchored is AUTO-P3 and never gates the verdict.
|
|
51
|
+
5. **Show a summary** and STOP. This skill does not fix, stage, or commit.
|
|
52
|
+
|
|
53
|
+
## Output (summary)
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
ORC-VERIFY — <n> files changed
|
|
57
|
+
Build: <pass/fail/none> Tests: <x/y passing>
|
|
58
|
+
P0/P1 (gate — fix before commit):
|
|
59
|
+
- <P0|P1> <file:loc> <issue>
|
|
60
|
+
P2/P3 (advisory):
|
|
61
|
+
- <P2|P3> <file:loc> <issue>
|
|
62
|
+
Verdict: <READY / NEEDS FIXES>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Behavior trace (PERMANENT — every ORC entry point traces; always on)
|
|
66
|
+
|
|
67
|
+
Standalone verify traces too — appended as each event happens, never batched
|
|
68
|
+
at the end (a phase ending with
|
|
69
|
+
`zero new trace lines is a protocol violation`). Resolve `log_dir`
|
|
70
|
+
(`../orc/config.md` default + `.claude/orc.config.yaml`) at start and follow
|
|
71
|
+
`../orc/references/trace-protocol.md`: write
|
|
72
|
+
`log_dir/.current` = `run-verify-<slug>-<DDMMYY>-<HHMMSS>.txt` and
|
|
73
|
+
`touch the trace file` of that name in the SAME step, first. Narration
|
|
74
|
+
is dispatched, not remembered: collect `PHASE` lines, `FINDING p0=… p1=… p2=…
|
|
75
|
+
p3=…`, `VERDICT pass|fail` and `FINISH` with their REAL timestamps plus
|
|
76
|
+
`decisions` (the WHY), dispatch the trace writer ONCE at run end (the
|
|
77
|
+
single-dispatch-lane packet), then delete `.current` (the hook bootstraps
|
|
78
|
+
`.current` + the skeleton on dispatch regardless).
|
|
79
|
+
|
|
80
|
+
## Boundaries
|
|
81
|
+
|
|
82
|
+
- **Read-only.** Never edit, stage, commit, or push. Report only.
|
|
83
|
+
- **Independent.** Requires no orchestrator, no run folder, no intent-spec.
|
|
84
|
+
- If there are no git changes, say so and stop.
|
|
85
|
+
- Reminder: to see usage limits, tell the user to run `/usage` (never invoke it
|
|
86
|
+
programmatically).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Example — Annotated Standalone Verify (dry run)
|
|
2
|
+
|
|
3
|
+
V: = verifier (Opus 5 medium) · U: = user. Nothing real. Runs INDEPENDENTLY — no
|
|
4
|
+
orchestrator, no planning, no run folder. Read-only: it reports, never fixes or commits.
|
|
5
|
+
|
|
6
|
+
U: /orc-verify
|
|
7
|
+
|
|
8
|
+
## Scope — git-modified changes only
|
|
9
|
+
V: [git status/diff] 3 modified files: api/routes/orders.py, api/schemas.py,
|
|
10
|
+
tests/test_orders.py. Nothing staged beyond the working tree — verifying exactly
|
|
11
|
+
these changes (no repo-wide sweep).
|
|
12
|
+
|
|
13
|
+
## Build + tests
|
|
14
|
+
V: [detects Python/poetry/pytest]
|
|
15
|
+
$ poetry run pytest tests/test_orders.py → 11 passed
|
|
16
|
+
$ poetry run mypy api/ → clean
|
|
17
|
+
Build/type/test: GREEN.
|
|
18
|
+
|
|
19
|
+
## Diff sanity + findings (P0–P3 ladder)
|
|
20
|
+
V: Walks each hunk against intent inferred from the diff (every P0–P2 finding
|
|
21
|
+
anchored: file:line + the offending line quoted VERBATIM, else auto-P3):
|
|
22
|
+
⛔ P1 api/routes/orders.py:42 — quote: `async def get_order(order_id: str):`
|
|
23
|
+
— new `/orders/{id}` route has no auth decorator; every sibling route
|
|
24
|
+
uses `@require_auth`. Security risk — likely unintended.
|
|
25
|
+
(Not P0: build/tests are green.)
|
|
26
|
+
• P3 api/schemas.py:18 — field `createdAt` breaks the snake_case convention
|
|
27
|
+
used elsewhere (`created_at`).
|
|
28
|
+
• P2 tests/test_orders.py — no negative-path test for a missing id.
|
|
29
|
+
|
|
30
|
+
## Summary (read-only — no edits, no commit)
|
|
31
|
+
V: 1 P1, 1 P2, 1 P3. Tests green but the missing auth decorator gates the
|
|
32
|
+
commit (P0/P1 = fix before commit; P2/P3 advisory). I don't edit or commit —
|
|
33
|
+
hand this to /orc or fix manually, then re-run /orc-verify.
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
# orc-wiki
|
|
2
|
+
|
|
3
|
+
Builds and maintains a persistent, evidence-anchored project knowledge base (the
|
|
4
|
+
**wiki**) under project-root `wiki/`, plus a cross-repo **crosslink** subsystem.
|
|
5
|
+
Skill mechanics live in `SKILL.md`; freshness in `references/staleness.md`;
|
|
6
|
+
integrity in `references/integrity-check.md`; doc shape in `schemas/wiki-doc.md`;
|
|
7
|
+
crosslink mechanics in `references/crosslink.md`.
|
|
8
|
+
|
|
9
|
+
## What the wiki is
|
|
10
|
+
|
|
11
|
+
`/orc-wiki` scans the codebase with Opus 4.8 high and writes `wiki/orc-feature-*`,
|
|
12
|
+
`wiki/orc-reference-*`, and `wiki/orc-architecture-overview.md`, an `INDEX.md`, and
|
|
13
|
+
the machine manifest `.claude/orc/wiki-meta.json`. Future ORC runs consult it —
|
|
14
|
+
precedence `code > fresh wiki > stale wiki (hints) > model priors`. Freshness is
|
|
15
|
+
computed on read (git commit distance), never stored. Expensive and often
|
|
16
|
+
multi-session — it always warns and gets consent before scanning.
|
|
17
|
+
|
|
18
|
+
## Two halves: docs and registration
|
|
19
|
+
|
|
20
|
+
- **Docs** (`wiki/*.md`) — prose. Written by the skill's scan agents, because it
|
|
21
|
+
takes a model to read code and summarize it. This is the expensive half.
|
|
22
|
+
- **Registration** (`wiki/INDEX.md` + `.claude/orc/wiki-meta.json`) — the index
|
|
23
|
+
and manifest that make the docs *findable*. Every field is derived from the
|
|
24
|
+
docs' own headers, so the **`orc wiki sync` CLI** writes it: instant, free,
|
|
25
|
+
deterministic. No model is ever involved.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
orc wiki # registration state: registered / UNREGISTERED / corrupt / out of sync
|
|
29
|
+
orc wiki sync # (re)build INDEX.md + wiki-meta.json from the docs on disk
|
|
30
|
+
orc wiki sync --check # read-only; exit 1 if registration doesn't match the docs
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**If ORC or `orc crosslink` says it can't see your wiki, run `orc wiki sync` —
|
|
34
|
+
not a re-scan.** A wiki with docs but no manifest is UNREGISTERED, not missing:
|
|
35
|
+
the docs are fine, nothing indexed them. This is common and expected, because
|
|
36
|
+
`/orc-wiki` pauses every 5 areas by design, and a run stopped at a pause never
|
|
37
|
+
reached its assemble phase. Sync fixes it in a second, for free; re-scanning
|
|
38
|
+
buys you docs you already have. `/orc-wiki` also detects this on entry and
|
|
39
|
+
offers the repair without any scan.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# Cross-repo crosslink — the complete guide
|
|
44
|
+
|
|
45
|
+
## Why you'd want this
|
|
46
|
+
|
|
47
|
+
You have more than one repo, and they talk to each other:
|
|
48
|
+
|
|
49
|
+
- a **backend** that a **frontend dashboard** calls over HTTP, or
|
|
50
|
+
- a **backend** that calls **another service** over gRPC (maybe several).
|
|
51
|
+
|
|
52
|
+
Each repo's wiki only knows *its own* code. So when you ask ORC to build a new
|
|
53
|
+
gRPC call from `service-a` to `service-c`, it has no idea what `service-c`'s
|
|
54
|
+
`CreateInvoice` actually expects — it guesses the field names. **Crosslink fixes
|
|
55
|
+
that:** it lets `service-a`'s wiki read `service-c`'s wiki *at the exact boundary*
|
|
56
|
+
so the executor builds against the real contract.
|
|
57
|
+
|
|
58
|
+
**The one rule that makes it safe:** crosslink is **advisory and never blocking**,
|
|
59
|
+
and it only ever **reads** another repo's *wiki* — never its source code, and it
|
|
60
|
+
never writes anything in the other repo. If a linked repo is missing, un-scanned,
|
|
61
|
+
or out of date, you just get a warning and less context — your build never stops.
|
|
62
|
+
|
|
63
|
+
## The mental model (30 seconds)
|
|
64
|
+
|
|
65
|
+
1. Every repo **publishes** its own boundary (its endpoints / gRPC methods) as
|
|
66
|
+
small per-point "tag" files when you scan it — automatically.
|
|
67
|
+
2. You **draw the graph** once with a CLI: "this repo calls that one over gRPC."
|
|
68
|
+
3. ORC **connects the dots**: when a task touches a boundary, it hands the
|
|
69
|
+
executor the linked repo's real contract as a hint.
|
|
70
|
+
|
|
71
|
+
You do step 2 (coarse: which repos, which way). The machine does the rest.
|
|
72
|
+
|
|
73
|
+
## Before you start
|
|
74
|
+
|
|
75
|
+
- ORC installed in **each** repo you want to link (`orc init`).
|
|
76
|
+
- The repos checked out as **siblings** (or anywhere reachable by a relative
|
|
77
|
+
path), e.g. `~/code/service-a`, `~/code/service-c`, `~/code/dashboard`.
|
|
78
|
+
- A terminal open in the **consuming** repo (the one that calls the others).
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Step 1 — give every repo a wiki
|
|
83
|
+
|
|
84
|
+
In **each** repo, run:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
/orc-wiki
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Besides the normal knowledge base, a scan also **publishes that repo's
|
|
91
|
+
boundary**: one small per-point tag file per endpoint / gRPC method under
|
|
92
|
+
`wiki/crosslink/<kind>/<slug>.md`, plus a `crosslink_provided` list in that
|
|
93
|
+
repo's `.claude/orc/wiki-meta.json`. This is **always on and happens per
|
|
94
|
+
scan-task**, in the same pass as the docs — whether or not anyone links to you
|
|
95
|
+
yet, so you never coordinate timing between teams. Every later scan/refresh
|
|
96
|
+
re-publishes in the same pass, and a refresh **never deletes** your tags
|
|
97
|
+
(a vanished endpoint is retired one-at-a-time, and only with your say-so).
|
|
98
|
+
|
|
99
|
+
> A repo with no outward boundary simply publishes nothing (each scan-task
|
|
100
|
+
> records that explicitly). That's fine.
|
|
101
|
+
|
|
102
|
+
### Old wiki with no tags? Backfill — don't re-scan.
|
|
103
|
+
|
|
104
|
+
A wiki built **before v0.24.0** has docs but no `wiki/crosslink/` folder, because
|
|
105
|
+
publishing used to happen only at the end of a scan (so a run that stopped at one
|
|
106
|
+
of the 5-area pauses never reached it). The boundary is already described in your
|
|
107
|
+
docs' evidence-anchored `Contracts & shapes` rows, so recovering it needs no repo
|
|
108
|
+
scan:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
/orc-wiki crosslink
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
This is the **CROSSLINK-ONLY** legacy-backfill branch. It reads those rows, opens
|
|
115
|
+
*only* the files they anchor to, writes the tag files, resolves what you consume,
|
|
116
|
+
and indexes it all with `orc wiki sync`. It never re-scans an area, never rewrites
|
|
117
|
+
a doc, and never touches coverage. **"No crosslink tags" is never a reason to pay
|
|
118
|
+
for a refresh.**
|
|
119
|
+
|
|
120
|
+
> On a wiki scanned at **v0.24.0 or later** you should never land here: tags
|
|
121
|
+
> publish on every scan/refresh automatically. If `orc wiki status` says
|
|
122
|
+
> `crosslink: UNPUBLISHED boundary` or `orc wiki sync --check` fails with
|
|
123
|
+
> "boundary documented but no crosslink tags", run the backfill above — that's
|
|
124
|
+
> the guard catching a gap, not a re-scan request.
|
|
125
|
+
|
|
126
|
+
> **Run it in the repo being CALLED.** Tags are published by the *provider*, so
|
|
127
|
+
> `no crosslink tags yet` about your backend is fixed in the **backend**, not in
|
|
128
|
+
> the frontend you're standing in. Running it in the caller publishes the
|
|
129
|
+
> caller's *own* surface — which for a typical frontend is nothing at all, since
|
|
130
|
+
> a pure consumer exposes no API and correctly publishes zero tags. If both repos
|
|
131
|
+
> call each other (e.g. backend webhooks into the frontend), run it in both.
|
|
132
|
+
|
|
133
|
+
## Step 2 — draw the graph (in the consuming repo)
|
|
134
|
+
|
|
135
|
+
From the repo that *calls* the others, run:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
orc crosslink
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
You'll get a tiny menu:
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
ORC crosslink — self: service-a · 0 linked repo(s), 0 edge(s)
|
|
145
|
+
[1] add linked repo [2] list [3] remove [4] done
|
|
146
|
+
> 1
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Adding a link walks you through five short prompts. Here's a real one — linking
|
|
150
|
+
`service-a` to a gRPC dependency `service-c`:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
name for the linked repo (slug): service-c
|
|
154
|
+
repo path (repo ROOT, relative to this repo, e.g. ../service-z): ../service-c
|
|
155
|
+
✓ wiki found · last_scan 11-07-2026 09:12:00 · FRESH · 8 tags
|
|
156
|
+
|
|
157
|
+
kinds this repo exposes/consumes (catalog):
|
|
158
|
+
1) grpc 2) rest-endpoint 3) graphql
|
|
159
|
+
... (18 in the catalog, plus type your own)
|
|
160
|
+
pick (numbers and/or names, comma-separated): 1
|
|
161
|
+
|
|
162
|
+
direction? [1] this repo CALLS them [2] they CALL this repo
|
|
163
|
+
> 1
|
|
164
|
+
|
|
165
|
+
linked to which repo?
|
|
166
|
+
1) this repo (service-a)
|
|
167
|
+
> 1
|
|
168
|
+
✓ added service-c · edge self ──grpc──▶ service-c (we consume → drift-checked)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
What each prompt means:
|
|
172
|
+
|
|
173
|
+
| Prompt | What to enter |
|
|
174
|
+
|--------|---------------|
|
|
175
|
+
| **name** | any short slug for the linked repo (`service-c`, `dashboard`) |
|
|
176
|
+
| **repo path** | the linked repo's **root folder**, relative to this repo (`../service-c`) — not its `wiki/` folder |
|
|
177
|
+
| **kinds** | how they connect — pick from the catalog (`grpc`, `rest-endpoint`, …) or type your own; "Other" is always allowed |
|
|
178
|
+
| **direction** | `[1]` = *you* call them (you'll get drift-checked against their contract); `[2]` = they call you |
|
|
179
|
+
| **linked to** | which repo is the other end — **option 1 is always this repo**; other repos you've added show up as 2, 3, … |
|
|
180
|
+
|
|
181
|
+
**The freshness line after you paste the path is the important safety check.** The
|
|
182
|
+
CLI reads the linked repo's `wiki-meta.json` right then and tells you:
|
|
183
|
+
|
|
184
|
+
- `✓ wiki found · … · FRESH · 8 tags` — great, fully linked.
|
|
185
|
+
- `⚠ no wiki-meta.json there — run orc-wiki in that repo first` — typo or you
|
|
186
|
+
skipped Step 1 there. The link is still saved (inert until they scan).
|
|
187
|
+
- `✗ path not found — saved as a PENDING edge` — wrong path; fix it later, it
|
|
188
|
+
resolves automatically when the path exists.
|
|
189
|
+
|
|
190
|
+
**Bulk-add (nice shortcut).** If the linked repo *already* declares a matching
|
|
191
|
+
link back at you, the CLI notices and offers to mirror it:
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
service-c also declares service-c ──webhook──▶ service-a — mirror it into your config? (y/n) y
|
|
195
|
+
✓ mirrored
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
When you're done, pick `[4]`. On your first setup the CLI offers to add the
|
|
199
|
+
derived cache folder to `.gitignore` — say yes.
|
|
200
|
+
|
|
201
|
+
Everything you just did was written to **one file**: `.claude/orc-crosslink.config.yaml`.
|
|
202
|
+
The CLI never touches the linked repo.
|
|
203
|
+
|
|
204
|
+
## Step 3 — let ORC connect the dots
|
|
205
|
+
|
|
206
|
+
Back in the consuming repo, run `/orc-wiki` once more (or your next scan/refresh).
|
|
207
|
+
Now that the graph exists, orc-wiki walks your call sites and:
|
|
208
|
+
|
|
209
|
+
- resolves the **exact** per-point contracts you depend on into
|
|
210
|
+
`.claude/orc/crosslink/needs.json` (you never hand-list endpoints), and
|
|
211
|
+
- mirrors snapshots of those contracts into `.claude/orc/crosslink/cache/`
|
|
212
|
+
(gitignored) so they're available even when the other repo isn't checked out.
|
|
213
|
+
|
|
214
|
+
That's it. You're set up.
|
|
215
|
+
|
|
216
|
+
### One-shot alternative: `/orc-wiki crosslink compile`
|
|
217
|
+
|
|
218
|
+
Once the graph exists (Step 2), `/orc-wiki crosslink compile` does the whole
|
|
219
|
+
connect-the-dots pass in one command (v0.33.0): resolve/consume from the graph
|
|
220
|
+
(refresh `needs.json` + `cache/`) → generate the federation **ATLAS** (below) →
|
|
221
|
+
write the atlas into each linked repo → inject/update the CLAUDE.md pointer
|
|
222
|
+
block locally **and in each linked repo** (in-place block update, user content
|
|
223
|
+
byte-preserved; a peer with no CLAUDE.md gets a minimal file with only the
|
|
224
|
+
block). Every step is warn-only on failure, never a re-scan, never a doc
|
|
225
|
+
rewrite, and it ends with one summary line per repo touched. Hard
|
|
226
|
+
precondition: `.claude/orc-crosslink.config.yaml` with ≥1 edge — missing/empty
|
|
227
|
+
means it explains the `orc crosslink` CLI steps and stops.
|
|
228
|
+
|
|
229
|
+
## The ATLAS — federation super-context (v0.33.0)
|
|
230
|
+
|
|
231
|
+
`wiki/crosslink/atlas.md` is ONE repo-agnostic document describing the whole
|
|
232
|
+
federation — every node, every edge (including transitive repos learned from
|
|
233
|
+
peer atlases), what each repo provides/consumes, and **peek hints** (which of a
|
|
234
|
+
repo's wiki docs answer which questions). The same document lives in EACH
|
|
235
|
+
linked repo; a header records `generated_from`, the `generated` timestamp, and
|
|
236
|
+
per-peer peek freshness. Freshness on read = `min(own wiki tier, oldest peek
|
|
237
|
+
age)` — computed on read, never stored; across copies, **newest wins** (trust
|
|
238
|
+
the newer `generated` stamp).
|
|
239
|
+
|
|
240
|
+
It is regenerated at the end of every scan/refresh (derived + cheap — never a
|
|
241
|
+
scan), and after writing the local copy the session **writes the same file into
|
|
242
|
+
each linked repo** — this is a sanctioned peer FILE write (exception #2 in
|
|
243
|
+
`references/crosslink.md`, next to orc-poly's handoff plan): never a commit,
|
|
244
|
+
never a push, never any other peer path, and any failure warns and continues.
|
|
245
|
+
`orc wiki sync` treats it as derived — never a registered doc, never
|
|
246
|
+
bulk-deleted by a refresh.
|
|
247
|
+
|
|
248
|
+
## Step 4 — check it worked
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
orc crosslink status
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
Crosslink status — self: service-a, 1 linked repo(s), 1 edge(s)
|
|
256
|
+
|
|
257
|
+
service-c:
|
|
258
|
+
✓ wiki found · last_scan 11-07-2026 09:12:00 · FRESH · 8 tags
|
|
259
|
+
|
|
260
|
+
needs baseline: .claude/orc/crosslink/needs.json (per-point tags orc-wiki resolved)
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
From now on, when you run `/orc`, `/orc-fast`, or `/orc-mini` and a task touches
|
|
264
|
+
that gRPC boundary, the executor gets `service-c`'s real `CreateInvoice` contract
|
|
265
|
+
handed to it as a hint — no more guessed field names.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## What lives where (after setup)
|
|
270
|
+
|
|
271
|
+
| File | Who writes it | Committed? | What it is |
|
|
272
|
+
|------|---------------|-----------|------------|
|
|
273
|
+
| `.claude/orc-crosslink.config.yaml` | `orc crosslink` CLI (you) | yes | the graph you drew |
|
|
274
|
+
| `wiki/crosslink/**` | `/orc-wiki` | yes | this repo's own published boundary tags |
|
|
275
|
+
| `.claude/orc/crosslink/needs.json` | `/orc-wiki` | yes | the exact contracts you depend on (drift baseline) |
|
|
276
|
+
| `.claude/orc/crosslink/cache/**` | `/orc-wiki` | **no** (gitignored) | mirrored snapshots of linked contracts |
|
|
277
|
+
| `wiki/crosslink/atlas.md` | `/orc-wiki` (derived; also written into each linked repo) | yes | the federation atlas — repo-agnostic super-context |
|
|
278
|
+
|
|
279
|
+
`orc update` never touches any of these.
|
|
280
|
+
|
|
281
|
+
## Everyday use
|
|
282
|
+
|
|
283
|
+
- **Drift warnings.** If a contract you depend on changes or disappears, the next
|
|
284
|
+
`/orc-wiki` scan warns you *by exact tag* (`grpc:billing.v1.CreateInvoice
|
|
285
|
+
changed under you`). It's a **warning only** — nothing is ever blocked.
|
|
286
|
+
- **Keeping it current.** Re-run `/orc-wiki` (incremental refresh is cheap) in
|
|
287
|
+
the consuming repo to re-sync the cache and re-check drift.
|
|
288
|
+
- **Freshness you can trust.** A linked hint is only used as fresh when *both* the
|
|
289
|
+
provider's wiki is fresh *and* your snapshot is recent — the weaker of the two
|
|
290
|
+
wins, and it's labeled "cross-repo hints, not verified". Local code always wins
|
|
291
|
+
over any cross-repo hint.
|
|
292
|
+
|
|
293
|
+
## Troubleshooting
|
|
294
|
+
|
|
295
|
+
| You see | What it means | Fix |
|
|
296
|
+
|---------|---------------|-----|
|
|
297
|
+
| `⚠ wiki found (N docs) but UNREGISTERED` | that repo's wiki is real and possibly complete — nothing ever indexed it (usually a scan stopped at a 5-area pause) | `orc wiki sync` in the linked repo — instant, free, **do not re-scan** |
|
|
298
|
+
| `⚠ wiki-meta.json there is unreadable` | the manifest is corrupt JSON | `orc wiki sync` in the linked repo rebuilds it from the docs |
|
|
299
|
+
| `⚠ no wiki there` | that repo genuinely has no docs | run `/orc-wiki` in the linked repo |
|
|
300
|
+
| `✓ inbound only (they call us)` | that repo only *consumes* your API — you read nothing from it | nothing to do; its tags/freshness are irrelevant on your side |
|
|
301
|
+
| `⚠ linked, but no edge yet` | you added the repo but never drew an edge | `orc crosslink` → add the edge; a node alone does nothing |
|
|
302
|
+
| `✗ path not found — PENDING` | the repo path is wrong or not checked out | fix the path with `orc crosslink` (remove + re-add), or check the repo out |
|
|
303
|
+
| `no crosslink tags yet (coarse hints only)` | that repo has wiki docs but never published its boundary — its scan stopped before the publish step, or its wiki predates crosslink | run **`/orc-wiki crosslink`** in that repo: publishes the tags from the docs it already has, no re-scan. (It also upgrades on that repo's next full scan — but don't pay for a scan just for this.) |
|
|
304
|
+
| `tier unknown (git unavailable there)` | linked folder isn't a git checkout | freshness falls back to the snapshot date — still works |
|
|
305
|
+
| executor didn't get a contract | the task didn't touch a linked boundary, or `needs.json` isn't built | run `/orc-wiki` in this repo to build the needs baseline |
|
|
306
|
+
|
|
307
|
+
## The guarantees (why it's safe to adopt)
|
|
308
|
+
|
|
309
|
+
- **Advisory, never blocking** — every failure degrades to a warning; your build
|
|
310
|
+
never stops on a cross-repo issue.
|
|
311
|
+
- **Reads foreign *wiki* only** — never another repo's source. The whole
|
|
312
|
+
footprint is a few read-only wiki files + read-only git queries. The ONLY
|
|
313
|
+
writes into a peer are the two sanctioned file writes (the atlas +, via
|
|
314
|
+
`crosslink compile`, the CLAUDE.md pointer block) — file writes only, never
|
|
315
|
+
a commit or push, warn-only on failure.
|
|
316
|
+
- **No cross-team coordination** — publish and consume are independent; a repo on
|
|
317
|
+
an older wiki gives you coarse hints today and precise ones for free the day it
|
|
318
|
+
re-scans.
|
|
319
|
+
|
|
320
|
+
## Git hygiene
|
|
321
|
+
|
|
322
|
+
Commit `.claude/orc-crosslink.config.yaml`, `.claude/orc/crosslink/needs.json`,
|
|
323
|
+
and `wiki/crosslink/**`. Keep `.claude/orc/crosslink/cache/**` out of git — it's
|
|
324
|
+
derived and regenerable. The `orc crosslink` CLI offers, once, to append the cache
|
|
325
|
+
path to `.gitignore`; it never edits `.gitignore` silently.
|