@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,421 @@
|
|
|
1
|
+
# Mock run — `/orc-pact`
|
|
2
|
+
|
|
3
|
+
> The promises your system makes, and which ones are in doubt right now.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. What it does
|
|
8
|
+
|
|
9
|
+
When you use `/orc-grill` or `/orc-brainstorm`, you settle some decisions.
|
|
10
|
+
Some of those are **constraints** — rules the system must always follow.
|
|
11
|
+
|
|
12
|
+
Today those rules die when the run ends. Nobody checks them again. Six weeks
|
|
13
|
+
later someone breaks one, and nobody notices.
|
|
14
|
+
|
|
15
|
+
`/orc-pact` keeps them. It calls each one an **invariant** — a promise.
|
|
16
|
+
|
|
17
|
+
Each promise has four possible states. ORC works out the state itself. It never
|
|
18
|
+
saves the state to disk, because a saved state gets old and lies to you.
|
|
19
|
+
|
|
20
|
+
| State | Meaning in easy English |
|
|
21
|
+
|---|---|
|
|
22
|
+
| **HOLDING** | The check passed. Nothing changed since. This promise is fine. |
|
|
23
|
+
| **DRIFTED** | Someone changed a file this promise depends on. We owe it a re-check. |
|
|
24
|
+
| **UNCHECKABLE** | There is no cheap way to test this. **We are being honest, not lazy.** |
|
|
25
|
+
| **BROKEN** | We ran the check. It failed. This promise is not true any more. |
|
|
26
|
+
|
|
27
|
+
`UNCHECKABLE` is the most important one. Other tools would just say "OK". ORC
|
|
28
|
+
says "I cannot prove this", and shows you the list.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 2. The run
|
|
33
|
+
|
|
34
|
+
Rina ran `/orc-grill` last week about checkout. Now she runs `/orc-pact` for
|
|
35
|
+
the first time.
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
> /orc-pact
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
ORC · pact
|
|
43
|
+
|
|
44
|
+
Preflight (silent probes)
|
|
45
|
+
ledger : none yet — this will be the first one
|
|
46
|
+
git : clean, 47 commits since the grill run
|
|
47
|
+
test runner : vitest (npm test)
|
|
48
|
+
runs with constraints found : 2
|
|
49
|
+
|
|
50
|
+
I found 2 past runs that settled constraints and never saved them.
|
|
51
|
+
|
|
52
|
+
run-grill-checkout-100826-141130 4 constraints
|
|
53
|
+
run-brainstorm-refunds-220726-093015 2 constraints
|
|
54
|
+
|
|
55
|
+
Do you want me to harvest them into a new ledger?
|
|
56
|
+
|
|
57
|
+
1 Yes, harvest both runs (recommended)
|
|
58
|
+
2 Harvest only the grill run
|
|
59
|
+
3 No, I want to add promises by hand instead
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
> 1
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
ORC · pact · harvest
|
|
68
|
+
|
|
69
|
+
Reading the 6 constraints. For each one I look for the cheapest thing that
|
|
70
|
+
can prove it. I do not run anything yet.
|
|
71
|
+
|
|
72
|
+
PACT-001 A payment is never written twice for one idempotency key.
|
|
73
|
+
anchors : api/payments/ledger.ts:88, api/payments/idempotency.ts
|
|
74
|
+
check : test → npm test -- idempotency
|
|
75
|
+
found because: test file api/payments/__tests__/idempotency.test.ts exists
|
|
76
|
+
|
|
77
|
+
PACT-002 Every price is stored as a whole number of cents. Never a decimal.
|
|
78
|
+
anchors : api/payments/money.ts:12, db/migrations/0004_prices.sql
|
|
79
|
+
check : grep → no `float` or `numeric` in price columns
|
|
80
|
+
found because: migration 0004 declares price_cents INTEGER
|
|
81
|
+
|
|
82
|
+
PACT-003 A guest can finish checkout with no account.
|
|
83
|
+
anchors : web/checkout/GuestFlow.tsx, api/checkout/session.ts:31
|
|
84
|
+
check : test → npm test -- guest-checkout
|
|
85
|
+
found because: test file exists
|
|
86
|
+
|
|
87
|
+
PACT-004 A refund is only allowed inside 30 days of the order.
|
|
88
|
+
anchors : api/refunds/window.ts:19
|
|
89
|
+
check : test → npm test -- refund-window
|
|
90
|
+
found because: test file exists
|
|
91
|
+
|
|
92
|
+
PACT-005 A full card number is never written to any log.
|
|
93
|
+
anchors : api/payments/*.ts, api/middleware/logger.ts
|
|
94
|
+
check : NONE FOUND
|
|
95
|
+
→ I will mark this UNCHECKABLE. See the question below.
|
|
96
|
+
|
|
97
|
+
PACT-006 Refund money always goes back to the original payment method.
|
|
98
|
+
anchors : api/refunds/payout.ts:44
|
|
99
|
+
check : NONE FOUND
|
|
100
|
+
→ I will mark this UNCHECKABLE. See the question below.
|
|
101
|
+
|
|
102
|
+
Two promises have no check. I have one question about each.
|
|
103
|
+
I will not guess an answer for you.
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
ORC · pact · round 1 (2 questions)
|
|
108
|
+
|
|
109
|
+
Q1 — PACT-005 (card number in logs)
|
|
110
|
+
A grep for a 16-digit pattern in the logger would be cheap and would
|
|
111
|
+
catch the common mistake. It would not catch a card number that was
|
|
112
|
+
split into parts first.
|
|
113
|
+
Do you want that grep as the check?
|
|
114
|
+
|
|
115
|
+
a Yes, use the grep. Better than nothing.
|
|
116
|
+
b No. Keep it UNCHECKABLE until we write a real test.
|
|
117
|
+
c Something else (tell me)
|
|
118
|
+
|
|
119
|
+
Q2 — PACT-006 (refund goes to the original method)
|
|
120
|
+
I found no test and no cheap signal. The only honest options:
|
|
121
|
+
|
|
122
|
+
a Keep it UNCHECKABLE and add a note: "check by hand at release"
|
|
123
|
+
b Drop this promise — it was never really agreed
|
|
124
|
+
c Something else (tell me)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
> Q1 a. Q2 a, and add the note "Finance checks this in the monthly report".
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
ORC · pact · re-check
|
|
133
|
+
|
|
134
|
+
Running the checks now. Only the ones that can run.
|
|
135
|
+
|
|
136
|
+
PACT-001 npm test -- idempotency ✓ pass → HOLDING
|
|
137
|
+
PACT-002 grep price columns ✓ pass → HOLDING
|
|
138
|
+
PACT-003 npm test -- guest-checkout ✓ pass → HOLDING
|
|
139
|
+
PACT-004 npm test -- refund-window ✗ FAIL → BROKEN
|
|
140
|
+
PACT-005 grep 16-digit in logger ✓ pass → HOLDING
|
|
141
|
+
PACT-006 (manual) — not run → UNCHECKABLE
|
|
142
|
+
|
|
143
|
+
One promise is BROKEN.
|
|
144
|
+
|
|
145
|
+
PACT-004 A refund is only allowed inside 30 days of the order.
|
|
146
|
+
check : npm test -- refund-window
|
|
147
|
+
error : expected 30, received 45
|
|
148
|
+
file : api/refunds/window.ts:19 → REFUND_WINDOW_DAYS = 45
|
|
149
|
+
commit: 8a62b4f "allow longer refunds for the Nov sale" (12 days ago)
|
|
150
|
+
|
|
151
|
+
I do not know if this is a bug or a decision. Only you know.
|
|
152
|
+
I will not retire this promise by myself.
|
|
153
|
+
|
|
154
|
+
1 It is a bug. Keep the promise. Fix the code later.
|
|
155
|
+
2 It changed on purpose. Update the promise to 45 days.
|
|
156
|
+
3 Retire the promise. It does not apply any more.
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
> 2, but only for the sale. It goes back to 30 days on 01-12-2026.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
ORC · pact · write
|
|
165
|
+
|
|
166
|
+
Updated PACT-004:
|
|
167
|
+
statement : A refund is only allowed inside 45 days of the order.
|
|
168
|
+
Temporary for the November sale.
|
|
169
|
+
review_by : 01-12-2026
|
|
170
|
+
reason : changed on purpose at commit 8a62b4f, confirmed by user
|
|
171
|
+
|
|
172
|
+
Wrote:
|
|
173
|
+
PACT.md (project root — you can read this)
|
|
174
|
+
.claude/orc/pact/ledger.json (the machine copy)
|
|
175
|
+
|
|
176
|
+
4 holding · 0 broken · 2 uncheckable · 1 review due 01-12-2026
|
|
177
|
+
|
|
178
|
+
Trace: run-pact-first-ledger-100826-153020.txt
|
|
179
|
+
|
|
180
|
+
Next time, run `orc pact status` any time. It is free and takes no tokens.
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 3. The files it made
|
|
186
|
+
|
|
187
|
+
### `PACT.md` — at the project root, safe to commit, a PM can read it
|
|
188
|
+
|
|
189
|
+
````markdown
|
|
190
|
+
# PACT — what shopcart promises
|
|
191
|
+
|
|
192
|
+
Last checked: 10-08-2026 at commit `c273793`
|
|
193
|
+
State: **4 holding · 0 broken · 2 uncheckable · 1 review due**
|
|
194
|
+
|
|
195
|
+
This file is written by `/orc-pact`. Do not edit it by hand.
|
|
196
|
+
Run `orc pact status` to see the live state.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Holding — we checked, and these are true
|
|
201
|
+
|
|
202
|
+
### PACT-001 · A payment is never written twice for one idempotency key
|
|
203
|
+
- **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
|
|
204
|
+
- **Where it lives:** `api/payments/ledger.ts:88`, `api/payments/idempotency.ts`
|
|
205
|
+
- **How we prove it:** `npm test -- idempotency`
|
|
206
|
+
- **Last proved at:** commit `c273793`
|
|
207
|
+
|
|
208
|
+
### PACT-002 · Every price is a whole number of cents
|
|
209
|
+
- **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
|
|
210
|
+
- **Where it lives:** `api/payments/money.ts:12`, `db/migrations/0004_prices.sql`
|
|
211
|
+
- **How we prove it:** grep — no float or numeric type on a price column
|
|
212
|
+
- **Last proved at:** commit `c273793`
|
|
213
|
+
|
|
214
|
+
### PACT-003 · A guest can finish checkout with no account
|
|
215
|
+
- **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
|
|
216
|
+
- **Where it lives:** `web/checkout/GuestFlow.tsx`, `api/checkout/session.ts:31`
|
|
217
|
+
- **How we prove it:** `npm test -- guest-checkout`
|
|
218
|
+
- **Last proved at:** commit `c273793`
|
|
219
|
+
|
|
220
|
+
### PACT-005 · A full card number is never written to any log
|
|
221
|
+
- **Why it exists:** settled in `/orc-grill` on 10-08-2026 (checkout)
|
|
222
|
+
- **Where it lives:** `api/payments/*.ts`, `api/middleware/logger.ts`
|
|
223
|
+
- **How we prove it:** grep — no 16-digit run reaches the logger
|
|
224
|
+
- **Weak check:** this grep does not catch a card number split into parts
|
|
225
|
+
- **Last proved at:** commit `c273793`
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Under review — changed on purpose, with an end date
|
|
230
|
+
|
|
231
|
+
### PACT-004 · A refund is only allowed inside 45 days of the order
|
|
232
|
+
- **Was:** 30 days, until 29-07-2026
|
|
233
|
+
- **Changed:** commit `8a62b4f` — "allow longer refunds for the Nov sale"
|
|
234
|
+
- **Confirmed by:** user, on 10-08-2026
|
|
235
|
+
- **Review by:** 01-12-2026 — goes back to 30 days
|
|
236
|
+
- **How we prove it:** `npm test -- refund-window`
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Uncheckable — we cannot prove these cheaply
|
|
241
|
+
|
|
242
|
+
**These are not broken. We simply have no cheap way to test them.**
|
|
243
|
+
This list is the honest part of the file. Read it before you trust the rest.
|
|
244
|
+
|
|
245
|
+
### PACT-006 · Refund money always goes back to the original payment method
|
|
246
|
+
- **Why it exists:** settled in `/orc-brainstorm` on 22-07-2026 (refunds)
|
|
247
|
+
- **Where it lives:** `api/refunds/payout.ts:44`
|
|
248
|
+
- **How we prove it:** by hand. Finance checks this in the monthly report.
|
|
249
|
+
- **To make this checkable:** write a test that mocks two payment methods and
|
|
250
|
+
asserts the payout target matches the original charge.
|
|
251
|
+
````
|
|
252
|
+
|
|
253
|
+
### `.claude/orc/pact/ledger.json` — the machine copy
|
|
254
|
+
|
|
255
|
+
```json
|
|
256
|
+
{
|
|
257
|
+
"version": 1,
|
|
258
|
+
"generated_at": "2026-08-10T15:30:20Z",
|
|
259
|
+
"generated_commit": "c273793",
|
|
260
|
+
"entries": [
|
|
261
|
+
{
|
|
262
|
+
"id": "PACT-004",
|
|
263
|
+
"statement": "A refund is only allowed inside 45 days of the order. Temporary for the November sale.",
|
|
264
|
+
"origin": { "lane": "orc-grill", "run": "run-grill-checkout-100826-141130", "kind": "constraint" },
|
|
265
|
+
"anchors": ["api/refunds/window.ts:19"],
|
|
266
|
+
"check": { "kind": "test", "ref": "npm test -- refund-window" },
|
|
267
|
+
"verified_commit": "c273793",
|
|
268
|
+
"confidence": "high",
|
|
269
|
+
"review_by": "2026-12-01",
|
|
270
|
+
"history": [
|
|
271
|
+
{ "at": "2026-08-10", "was": "30 days", "now": "45 days", "commit": "8a62b4f", "reason": "November sale, confirmed by user" }
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## 4. The CLI part
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
$ orc pact status
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
PACT · shopcart
|
|
288
|
+
|
|
289
|
+
HOLDING 4 api/payments · api/checkout · web/checkout
|
|
290
|
+
DRIFTED 0
|
|
291
|
+
BROKEN 0
|
|
292
|
+
UNCHECKABLE 2 api/refunds/payout.ts
|
|
293
|
+
|
|
294
|
+
1 review due PACT-004 by 01-12-2026
|
|
295
|
+
|
|
296
|
+
ledger anchored at c273793 · you are at c273793 · nothing to re-check
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
Exit code: `0`
|
|
300
|
+
|
|
301
|
+
**The exit codes** — same idea as `orc pattern status`:
|
|
302
|
+
|
|
303
|
+
| Code | Meaning |
|
|
304
|
+
|---|---|
|
|
305
|
+
| 0 | Every promise is HOLDING |
|
|
306
|
+
| 1 | At least one DRIFTED — a re-check is owed |
|
|
307
|
+
| 2 | At least one BROKEN |
|
|
308
|
+
| 3 | No ledger on disk |
|
|
309
|
+
|
|
310
|
+
Now a week goes by. Rina edits `api/refunds/window.ts`.
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
$ orc pact status
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
PACT · shopcart
|
|
318
|
+
|
|
319
|
+
HOLDING 3
|
|
320
|
+
DRIFTED 1 PACT-004 → api/refunds/window.ts changed at e9dad01
|
|
321
|
+
BROKEN 0
|
|
322
|
+
UNCHECKABLE 2
|
|
323
|
+
|
|
324
|
+
Run `orc pact check PACT-004` to re-prove it. Takes ~4 seconds.
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
Exit code: `1`
|
|
328
|
+
|
|
329
|
+
**Note what did NOT happen.** The other 3 promises did not go stale. Only the
|
|
330
|
+
one whose file changed. This is the same rule the wiki uses
|
|
331
|
+
(`computeWikiFreshness`) — **a promise is only old if the files it depends on
|
|
332
|
+
moved.** A date alone never makes it old.
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
$ orc pact status --json
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
```json
|
|
339
|
+
{
|
|
340
|
+
"ledger_present": true,
|
|
341
|
+
"generated_commit": "c273793",
|
|
342
|
+
"head_commit": "e9dad01",
|
|
343
|
+
"counts": { "holding": 3, "drifted": 1, "broken": 0, "uncheckable": 2 },
|
|
344
|
+
"drifted": [
|
|
345
|
+
{ "id": "PACT-004", "touched_by": ["e9dad01"], "anchor": "api/refunds/window.ts" }
|
|
346
|
+
],
|
|
347
|
+
"reviews_due": [
|
|
348
|
+
{ "id": "PACT-004", "by": "2026-12-01" }
|
|
349
|
+
],
|
|
350
|
+
"exit": 1
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 5. Inside a normal `/orc` run
|
|
357
|
+
|
|
358
|
+
**Phase 1 — preflight.** One new line. It is never silent.
|
|
359
|
+
|
|
360
|
+
```
|
|
361
|
+
Preflight
|
|
362
|
+
wiki : FRESH (12 docs, anchored e9dad01)
|
|
363
|
+
pattern : typescript cached
|
|
364
|
+
crosslink : none configured
|
|
365
|
+
pact : 3 holding · 1 drifted · 2 uncheckable ← new
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
**Phase 2 — planning.** This is the payoff.
|
|
369
|
+
|
|
370
|
+
```
|
|
371
|
+
Planning · shopcart · "add partial refunds"
|
|
372
|
+
|
|
373
|
+
The plan touches api/refunds/window.ts and api/refunds/payout.ts.
|
|
374
|
+
Two promises point at those files. I am giving them to the planner as
|
|
375
|
+
hard constraints:
|
|
376
|
+
|
|
377
|
+
PACT-004 refund window is 45 days (temporary, review 01-12-2026)
|
|
378
|
+
PACT-006 refund goes back to the original payment method [UNCHECKABLE]
|
|
379
|
+
|
|
380
|
+
PACT-006 has no test. The planner will add one to the plan, because the
|
|
381
|
+
new code touches the same file.
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
A decision Rina made in July now shapes a plan in August. **Nobody had to
|
|
385
|
+
remember it.**
|
|
386
|
+
|
|
387
|
+
**Phase 6 — verify.** Re-check only what the change touched.
|
|
388
|
+
|
|
389
|
+
```
|
|
390
|
+
Verify
|
|
391
|
+
build ✓
|
|
392
|
+
tests ✓ 142 passed
|
|
393
|
+
pact re-check ✓ PACT-004 HOLDING · PACT-006 now has a test → HOLDING
|
|
394
|
+
uncheckable count 2 → 1
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## 6. Why this is good for ORC
|
|
400
|
+
|
|
401
|
+
**It turns two lanes that were dead ends into a supply chain.**
|
|
402
|
+
`/orc-grill` and `/orc-brainstorm` already make `spec_invariants[]`. Today
|
|
403
|
+
that array is used once and thrown away. With `/orc-pact` the output of a
|
|
404
|
+
thinking lane becomes the input of every future build lane. ORC starts to
|
|
405
|
+
compound.
|
|
406
|
+
|
|
407
|
+
**It is a moat.** No other skill can build this. To have an invariant ledger
|
|
408
|
+
you first need a lane that produces invariants and tags them. ORC shipped that
|
|
409
|
+
in v0.42.0 for a different reason. Nobody else has it.
|
|
410
|
+
|
|
411
|
+
**It gives the PM something to read.** `PACT.md` is twelve sentences in plain
|
|
412
|
+
English about what the system promises. Budi can read it in a pull request.
|
|
413
|
+
Today there is nothing in ORC that a non-developer can open and understand.
|
|
414
|
+
|
|
415
|
+
**It makes `UNCHECKABLE` a product.** Every other tool in this space hides what
|
|
416
|
+
it cannot prove. ORC prints the list. That single behaviour is a real reason to
|
|
417
|
+
choose ORC over a generator skill.
|
|
418
|
+
|
|
419
|
+
**Cost is close to zero after the first run.** `orc pact status` is pure CLI —
|
|
420
|
+
no model, no tokens. The model is only needed when you harvest new promises or
|
|
421
|
+
when something breaks and a human must decide.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Mock run — `/orc-pattern`
|
|
2
|
+
|
|
3
|
+
> Learns how **your** code is actually written, and caches it, so every future
|
|
4
|
+
> executor writes code that looks like yours.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. What it does
|
|
9
|
+
|
|
10
|
+
ORC ships a generic best-practice playbook for each language (React, Vue,
|
|
11
|
+
Next.js, Angular, Express, NestJS, Django, FastAPI, Go, Postgres, plus a11y and
|
|
12
|
+
performance rule packs). On its own, a playbook would fight your codebase.
|
|
13
|
+
|
|
14
|
+
So the pattern is a **reconciliation** of two things, with two different rules:
|
|
15
|
+
|
|
16
|
+
| Rule class | Example | Who wins |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| **Conventions** — style and shape | folder layout, naming, how you do DI | **Your project wins**, even if the playbook disagrees |
|
|
19
|
+
| **Invariants** — correctness and security | no SQL built by string concat, no stack traces in a response, no index as a React key | **Always applied.** A project breaking these is buggy, not different |
|
|
20
|
+
|
|
21
|
+
The result is cached at `.claude/orc/patterns/<lang>-pattern.md` and copied
|
|
22
|
+
**word for word** into every executor slice from then on.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 2. The run
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
> /orc-pattern
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Languages I can see in this repo:
|
|
34
|
+
express api/ 38 files no cached pattern
|
|
35
|
+
react web/ 52 files no cached pattern
|
|
36
|
+
|
|
37
|
+
Learning a pattern reads your most recently changed files with a subagent.
|
|
38
|
+
That costs tokens once, and every run after it is cheaper and more accurate.
|
|
39
|
+
|
|
40
|
+
Codify which? [both / express / react / none]
|
|
41
|
+
|
|
42
|
+
> both
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Dispatching orc-pattern-codifier-sonnet-5-high (express) …
|
|
47
|
+
returned as: claude-sonnet-5 / high ✓
|
|
48
|
+
|
|
49
|
+
PATTERN — express source: reconciled 14 recent files read
|
|
50
|
+
|
|
51
|
+
Conventions taken FROM YOUR CODE (the playbook lost these)
|
|
52
|
+
· routes live in api/<area>/routes.ts, handlers in the same folder
|
|
53
|
+
· every handler is `export async function`, never an arrow const
|
|
54
|
+
· errors go through next(err) — you do not try/catch in handlers
|
|
55
|
+
· money is always integer minor units (api/payments/*.ts, 6 files)
|
|
56
|
+
|
|
57
|
+
Invariants KEPT from the playbook (not negotiable)
|
|
58
|
+
· no SQL string interpolation — you use parameterised queries already ✓
|
|
59
|
+
· no stack trace or raw error in a response body
|
|
60
|
+
· every route that reads :id re-checks ownership
|
|
61
|
+
|
|
62
|
+
Conflicts I will not guess about (1)
|
|
63
|
+
· api/refunds/ uses try/catch in 3 handlers while api/orders/ uses
|
|
64
|
+
next(err). Most recently modified wins → next(err). Say so if that is
|
|
65
|
+
backwards and I will flip it.
|
|
66
|
+
|
|
67
|
+
Written: .claude/orc/patterns/express-pattern.md
|
|
68
|
+
|
|
69
|
+
Dispatching orc-pattern-codifier-sonnet-5-high (react) …
|
|
70
|
+
Written: .claude/orc/patterns/react-pattern.md
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 3. How other lanes see it
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
$ orc pattern status express
|
|
79
|
+
express cached 2026-08-12 (exit 0)
|
|
80
|
+
|
|
81
|
+
$ orc pattern status svelte
|
|
82
|
+
svelte unknown language key (exit 2)
|
|
83
|
+
keys come from orc-pattern/references/INDEX.md — it is a framework
|
|
84
|
+
name, never a file extension
|
|
85
|
+
|
|
86
|
+
$ orc pattern status go
|
|
87
|
+
go not cached (exit 1)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
That exit code is how `/orc-fast` decides whether it is allowed to run. It is
|
|
91
|
+
a deterministic probe, never a guess and never a file search — the `.claude/`
|
|
92
|
+
folder is hidden, so a plain search would say "missing" from the wrong folder.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 4. What to notice
|
|
97
|
+
|
|
98
|
+
- **ORC does not codify by itself.** It sends a subagent, reads the answer,
|
|
99
|
+
and writes the cache itself.
|
|
100
|
+
- **The cache survives updates.** It lives outside `templates/`, so
|
|
101
|
+
`orc update` never touches it.
|
|
102
|
+
- **Ambiguity is reported once, not guessed silently.** The try/catch conflict
|
|
103
|
+
above is a real example of that rule.
|
|
104
|
+
- **A brand new language folder gets the plain playbook**, marked
|
|
105
|
+
`source: generic` — there is nothing to reconcile yet.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 5. Related
|
|
110
|
+
|
|
111
|
+
- The lane that requires this: [`/orc-fast`](orc-fast.md)
|
|
112
|
+
- Build the other half of the knowledge: [`/orc-wiki`](../templates/skills/orc-wiki/examples/wiki-run-mock.md)
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# Mock run — `/orc-plan`
|
|
2
|
+
|
|
3
|
+
> Turns a request (or an analyst spec) into a real task plan. It plans only —
|
|
4
|
+
> it never builds.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. What it does
|
|
9
|
+
|
|
10
|
+
A plan here is not a to-do list. Every task carries:
|
|
11
|
+
|
|
12
|
+
- the **files it will touch**, each checked against the real repo,
|
|
13
|
+
- **what it depends on**, so waves can be worked out later,
|
|
14
|
+
- **facets** — the properties the score is computed from,
|
|
15
|
+
- and a **test disposition**: does this task need a failing test first, or not,
|
|
16
|
+
and why not.
|
|
17
|
+
|
|
18
|
+
The planner also says how confident it is. Low confidence is an answer, and it
|
|
19
|
+
changes what ORC recommends next.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. The run
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
> /orc-plan add a sent_to_bank state for refunds, shown to customers
|
|
27
|
+
and to support
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Grounding: I checked every path I am about to claim.
|
|
32
|
+
api/refunds/webhook.ts exists
|
|
33
|
+
api/refunds/state.ts exists
|
|
34
|
+
web/refunds/RefundRow.tsx exists
|
|
35
|
+
web/admin/RefundList.tsx exists
|
|
36
|
+
db/migrations/ exists
|
|
37
|
+
api/refunds/notify.ts DOES NOT EXIST → this task creates it (new)
|
|
38
|
+
|
|
39
|
+
5 tasks · 2 waves · plan_confidence: medium
|
|
40
|
+
|
|
41
|
+
| # | Task | Files | depends_on | facets | test |
|
|
42
|
+
|---|---|---|---|---|---|
|
|
43
|
+
| T1 | add sent_to_bank to the state enum + migration | 2 | — | breadth 2 · new-surface · stateful | new-surface → red proof first |
|
|
44
|
+
| T2 | webhook writes the new state | 1 | T1 | breadth 1 · imitate · branching | behavior-change → red proof first |
|
|
45
|
+
| T3 | customer refund row shows it | 1 | T1 | breadth 1 · imitate | covered-by-existing → web/refunds/RefundRow.test.tsx:44 |
|
|
46
|
+
| T4 | admin list shows it | 1 | T1 | breadth 1 · imitate | covered-by-existing → web/admin/RefundList.test.tsx:87 |
|
|
47
|
+
| T5 | the two label strings | 1 | — | breadth 1 · mechanical | no-behavior → no test |
|
|
48
|
+
|
|
49
|
+
TDD tasks emitted: 2 (T1a, T2a). They are ordinary tasks — same conflict
|
|
50
|
+
graph, same waves — and T1/T2 depend on them, so each proof runs before its
|
|
51
|
+
code. Skipped: 2 covered-by-existing (both cited above and both found on
|
|
52
|
+
disk), 1 no-behavior.
|
|
53
|
+
|
|
54
|
+
Carried, not built (constraints from your grill session)
|
|
55
|
+
· refund state is only ever written by the webhook handler
|
|
56
|
+
· no backfill of existing refund rows
|
|
57
|
+
|
|
58
|
+
Open questions (2)
|
|
59
|
+
Q1 Does the customer email change too, or only the screen?
|
|
60
|
+
Q2 Is `sent_to_bank` allowed to go back to `requested`?
|
|
61
|
+
|
|
62
|
+
> Q1 screen only for now. Q2 no, one direction only.
|
|
63
|
+
|
|
64
|
+
plan_confidence: high (both questions answered)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
What next?
|
|
69
|
+
|
|
70
|
+
1 Take it into build → /orc scores it and runs the whole pipeline
|
|
71
|
+
2 Save & stop → keeps the plan, builds nothing
|
|
72
|
+
3 Drop it
|
|
73
|
+
|
|
74
|
+
> 2
|
|
75
|
+
|
|
76
|
+
Saved: .claude/skills/orc/planner/refund-visibility/ (+ plan-refund-visibility.md at the root)
|
|
77
|
+
|
|
78
|
+
Want a lane recommendation for building this? [yes / no]
|
|
79
|
+
|
|
80
|
+
> yes
|
|
81
|
+
|
|
82
|
+
→ /orc-mini 5 tasks, 2 waves, top score 57, no risk flags.
|
|
83
|
+
Full review and verification are not what this plan needs.
|
|
84
|
+
runner-up /orc — safer, roughly 3x the tokens
|
|
85
|
+
not possible /orc-fast — this plan is 5 tasks; that lane runs ONE
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 3. What to notice
|
|
91
|
+
|
|
92
|
+
- **A path that does not exist is caught here**, before any agent is told to
|
|
93
|
+
edit it. `api/refunds/notify.ts` is marked `new` on purpose, not by accident.
|
|
94
|
+
- **Tests are scoped to what can actually fail.** A label string gets no test.
|
|
95
|
+
But a skip is never silent: `covered-by-existing` must name a test file that
|
|
96
|
+
really exists, and ORC checks that it does.
|
|
97
|
+
- **A task with a risk flag can never be scoped out of testing**, whatever its
|
|
98
|
+
facets say.
|
|
99
|
+
- **Only "Save & stop" offers the lane recommendation.** If you take it into
|
|
100
|
+
build, the lane is already chosen and running.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 4. Related
|
|
105
|
+
|
|
106
|
+
- Route the saved plan: [`/orc-route`](orc-route.md)
|
|
107
|
+
- Build it: [`/orc`](orc.md)
|
|
108
|
+
- Ground it in a document first: [`/orc-analyze`](../templates/skills/orc-analyze/examples/analyze-mock.md)
|