@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,77 @@
|
|
|
1
|
+
# Reference — Thin input and the `/orc-grill` reverse trigger
|
|
2
|
+
|
|
3
|
+
Load at Phase A″ when the analyzable gate fails, or at Phase F when a returned
|
|
4
|
+
report is mostly tagged. Both are the SAME signal — the input was never sharp
|
|
5
|
+
enough to check against code — arriving at two different moments.
|
|
6
|
+
|
|
7
|
+
## Why a scan is the wrong instrument here
|
|
8
|
+
|
|
9
|
+
`/orc-analyze` answers *"does the repo really do that?"*. It cannot answer
|
|
10
|
+
*"what do I actually want?"*. Pointed at a fuzzy intent it still produces
|
|
11
|
+
questions — but it produces them after paying for a scan (deep mode adds scouts
|
|
12
|
+
at `max_scouts` in parallel), and it produces them as twenty tags in one batch
|
|
13
|
+
rather than as a conversation with a frontier.
|
|
14
|
+
|
|
15
|
+
The planner already refuses this shape rather than absorbing it
|
|
16
|
+
(`../../orc/subskills/orc-planner/SKILL.md`: *plannable ⇔ an observable outcome
|
|
17
|
+
AND an identifiable area*). This is the analyst's mirror of that rule.
|
|
18
|
+
|
|
19
|
+
## Branch 1 — the gate fails up front (Phase A″)
|
|
20
|
+
|
|
21
|
+
Print exactly this, then wait:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
This is too thin to check against the code — I would spend the scan asking you
|
|
25
|
+
questions instead of reading files.
|
|
26
|
+
|
|
27
|
+
→ Switch to /orc-grill first (a conversation, no scan, no scout tokens).
|
|
28
|
+
When it is sharp, it comes straight back here and I analyze it.
|
|
29
|
+
[switch / analyze anyway]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- **`switch`** → run `../../orc-grill/SKILL.md`. Its exit 2 **auto-consumes back
|
|
33
|
+
into THIS invocation**: the written `orc-grill/<slug>/grill-context.md` becomes
|
|
34
|
+
the analyze input and Phase A restarts with it. The user retypes nothing and
|
|
35
|
+
re-explains nothing. Say so in one line when handing over, so the round trip is
|
|
36
|
+
visible rather than feeling like a lane change.
|
|
37
|
+
- **`analyze anyway`** → proceed exactly as today. The user's override stands and
|
|
38
|
+
is not re-litigated later in the run; record it in the report's decisions so a
|
|
39
|
+
later reader knows the tags were expected.
|
|
40
|
+
|
|
41
|
+
**It is an OFFER.** Never switch lanes without the answer, and never refuse to
|
|
42
|
+
analyze — this gate changes what is RECOMMENDED, never what is permitted.
|
|
43
|
+
|
|
44
|
+
## Branch 2 — the same signal arriving late (after the analyst returns)
|
|
45
|
+
|
|
46
|
+
A report can pass the up-front gate and still come back mostly unanchored. That
|
|
47
|
+
is this gate firing after the fact, and it deserves the same offer rather than a
|
|
48
|
+
twenty-question relay.
|
|
49
|
+
|
|
50
|
+
**Use numbers already in hand — add no probe.** `references/analyst-gates.md`
|
|
51
|
+
already recomputes coverage on return; compare the count of rows tagged
|
|
52
|
+
`ASSUMPTION`/`UNVERIFIED` against the total requirement rows. When the tagged
|
|
53
|
+
rows are the majority, offer:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
The analysis came back mostly unverified — <k> of <n> requirements could not be
|
|
57
|
+
anchored to code. That is usually the intent still being open, not the repo
|
|
58
|
+
being unreadable.
|
|
59
|
+
|
|
60
|
+
→ /orc-grill to settle the intent (minutes, no scan), then re-analyze
|
|
61
|
+
the sharpened version — cheaper than answering <k> questions here.
|
|
62
|
+
[grill / answer the questions here]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
`answer the questions here` runs the ordinary Phase D challenge relay. Nothing is
|
|
66
|
+
withheld either way.
|
|
67
|
+
|
|
68
|
+
## What this gate never does
|
|
69
|
+
|
|
70
|
+
- Never blocks. Both branches proceed on the user's word.
|
|
71
|
+
- Never re-scores an already-approved analysis, and never fires twice in one run
|
|
72
|
+
for the same input — if the user chose "analyze anyway", branch 2 is skipped.
|
|
73
|
+
- Never invents its own idea of thin. The definition is the spine's sentence,
|
|
74
|
+
stated once and registered as a contract token:
|
|
75
|
+
**analyzable ⇔ the input names (a) a subject the repo could plausibly contain
|
|
76
|
+
— a feature, a flow, a file, or a document — AND (b) at least one thing that
|
|
77
|
+
should be true when the work is done.** Nothing here may widen it.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Template — Analyst Report (AUDIT mode)
|
|
2
|
+
|
|
3
|
+
Human-readable source of truth. You review and confirm this; the machine spec
|
|
4
|
+
is derived from it. Written to analyst_report/{analysis-name}/report.md.
|
|
5
|
+
|
|
6
|
+
```markdown
|
|
7
|
+
# Analysis Report — {analysis-name}
|
|
8
|
+
mode: audit
|
|
9
|
+
depth: standard | deep
|
|
10
|
+
source_doc: <path or "pasted">
|
|
11
|
+
scope: <X — the requested scope only>
|
|
12
|
+
analyzed_at: DDMMYY HH:MM:SS
|
|
13
|
+
model: opus-5-high # the RESOLVED model of the agent that produced this
|
|
14
|
+
# (mini writes sonnet-5-high) — never copied from here
|
|
15
|
+
grounding: repo-read | repo-read+scouts # scouts only in deep mode
|
|
16
|
+
|
|
17
|
+
## In-scope rows (X only)
|
|
18
|
+
|
|
19
|
+
Each row = one audit line that belongs to scope X, reconciled against code. Every
|
|
20
|
+
"Code reality" cell carries quote-anchored file:line evidence
|
|
21
|
+
(`file:line — "verbatim snippet"`, never paraphrased; a ref with no quote
|
|
22
|
+
auto-downgrades to UNVERIFIED), OR the row is tagged ASSUMPTION/UNVERIFIED (and
|
|
23
|
+
appears below as an open question). A row whose code reality is a claim of
|
|
24
|
+
ABSENCE ("no retry exists") instead carries `searched:` — the concrete
|
|
25
|
+
globs/greps run. In deep mode EVERY row is verified, not just the load-bearing
|
|
26
|
+
ones.
|
|
27
|
+
|
|
28
|
+
| # | Claim (result + notes) | Code reality | Evidence (file:line + quote / searched:) | Files/modules | Status | Resolution |
|
|
29
|
+
|---|------------------------|--------------|------------------------------------------|---------------|--------|------------|
|
|
30
|
+
| 1 | PASS — "UUID validated" | present | auth/uuid.x:8 — "validateUuid(id)" | auth/uuid.x | verified | — |
|
|
31
|
+
| 2 | PASS — notes: "consider adding retry" | no retry | searched: `retry`, `backoff` in svc/ — no hits | svc/x | diverged | user: retry OUT of scope |
|
|
32
|
+
| 3 | FAIL — "missing UUID check" | field renamed to ref_id | models/user.x:20 — "ref_id:" | models/x | diverged | user: update premise; check ref_id |
|
|
33
|
+
|
|
34
|
+
Status: verified | diverged | resolved
|
|
35
|
+
- verified: claim matches code (with evidence), nothing to challenge.
|
|
36
|
+
- diverged: claim vs code mismatch → was challenged.
|
|
37
|
+
- resolved: a diverged row the user decided on (Resolution column holds the call).
|
|
38
|
+
|
|
39
|
+
## Assumptions & Open Questions
|
|
40
|
+
- UNVERIFIED (resolved): row 7 cited a "legacy flag" not found in code — user
|
|
41
|
+
confirmed it was removed; row dropped.
|
|
42
|
+
|
|
43
|
+
## Additional context (do not build)
|
|
44
|
+
Anchored, non-actionable context pulled from an ADJACENT scope because an in-scope
|
|
45
|
+
row depends on it. Read for understanding; never a task. Each item names the
|
|
46
|
+
in-scope row it serves + why. Omit this whole section if none survived.
|
|
47
|
+
| Anchor (in-scope #) | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
|
|
48
|
+
|---------------------|-----------|------------|-----------------------|----------------------|
|
|
49
|
+
| Row 3 (ref_id check) | models (Y) | consumes-output | ref_id is set by the user loader before validation | models/user.x:20 |
|
|
50
|
+
|
|
51
|
+
## Alternatives & risks (DEEP mode only — omit in standard)
|
|
52
|
+
- Row 3 fix: add ref_id check in the model (recommended) vs at the API edge —
|
|
53
|
+
edge version duplicates validation across 3 handlers.
|
|
54
|
+
|
|
55
|
+
## Challenges raised & answers
|
|
56
|
+
- Row 2: notes suggested retry — user confirmed OUT of scope X.
|
|
57
|
+
- Row 3: audit says missing UUID check, code renamed field to ref_id — user
|
|
58
|
+
confirmed implement the check against ref_id.
|
|
59
|
+
|
|
60
|
+
## Row numbering — `R#` is the SPEC's namespace, never the report's
|
|
61
|
+
Refer to report rows as **"row N"** only. Labelling a report row `R1` collides
|
|
62
|
+
with the spec's own `R#` ids, and the derivation lint compares the two id sets:
|
|
63
|
+
report-`R1` (a build item) vs spec-`R1` (audit row 1) either false-passes or
|
|
64
|
+
false-bounces. A row that legitimately duplicates another's `files[]` (e.g. a
|
|
65
|
+
doc's closing `Recommendation:` line) carries `yields_build_work: false` in the
|
|
66
|
+
spec rather than a prose qualifier.
|
|
67
|
+
|
|
68
|
+
## Excluded scopes (recognized, not detailed)
|
|
69
|
+
- Recognized Y, Z in the source doc; excluded from this report per scope = X.
|
|
70
|
+
|
|
71
|
+
## Handoff readiness (checklist — all five or handoff_ready is false)
|
|
72
|
+
The first three are checkable IN this report. The last two can only become true
|
|
73
|
+
AFTER this report is confirmed and frozen, so on a correct run they stay
|
|
74
|
+
unticked here and are satisfied in the spec — a reader of report.md alone must
|
|
75
|
+
not read that as a failed checklist.
|
|
76
|
+
- [ ] all BLOCKING challenges resolved (every diverged row decided)
|
|
77
|
+
- [ ] zero open UNVERIFIED on any in-scope row
|
|
78
|
+
- [ ] every row has status + evidence-or-resolution
|
|
79
|
+
- [ ] spec derived AFTER the user confirmed this report (satisfied
|
|
80
|
+
post-confirmation — see the spec)
|
|
81
|
+
- [ ] scope_closed: true written into the spec (satisfied post-confirmation —
|
|
82
|
+
see the spec)
|
|
83
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Template — Analyst Report (PROSE mode)
|
|
2
|
+
|
|
3
|
+
Human-readable source of truth. Written to analyst_report/{analysis-name}/report.md.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Analysis Report — {analysis-name}
|
|
7
|
+
mode: prose
|
|
8
|
+
depth: standard | deep
|
|
9
|
+
source_doc: <path or "pasted">
|
|
10
|
+
scope: <X — the requested scope only>
|
|
11
|
+
analyzed_at: DDMMYY HH:MM:SS
|
|
12
|
+
model: opus-5-high # the RESOLVED model of the agent that produced this
|
|
13
|
+
# (mini writes sonnet-5-high) — never copied from here
|
|
14
|
+
grounding: repo-read | repo-read+scouts # scouts only in deep mode
|
|
15
|
+
|
|
16
|
+
## In-scope requirements (X only)
|
|
17
|
+
|
|
18
|
+
Every "Code reality" cell carries quote-anchored file:line evidence
|
|
19
|
+
(`file:line — "verbatim snippet"`, never paraphrased; a ref with no quote
|
|
20
|
+
auto-downgrades to UNVERIFIED), OR the row is tagged ASSUMPTION/UNVERIFIED (and
|
|
21
|
+
appears below as an open question). Absence claims (status missing) instead
|
|
22
|
+
carry `searched:` — the concrete globs/greps run.
|
|
23
|
+
|
|
24
|
+
| # | Requirement (from doc) | Code reality | Evidence (file:line + quote / searched:) | Files/modules | Status | Resolution |
|
|
25
|
+
|---|------------------------|--------------|------------------------------------------|---------------|--------|------------|
|
|
26
|
+
| 1 | "notifications must paginate" | list is unbounded | searched: `paginate`, `cursor`, `limit` in api/notifications — no hits | api/notifications/x | missing | implement pagination |
|
|
27
|
+
| 2 | "respect existing auth" | auth middleware present | auth/mw.x:10 — "app.use(requireAuth)" | auth/mw.x | exists | reuse, no change |
|
|
28
|
+
|
|
29
|
+
Status: exists | missing | conflict | resolved
|
|
30
|
+
|
|
31
|
+
## Assumptions & Open Questions
|
|
32
|
+
Anything not grounded to code, plus every ambiguity — each was raised as a
|
|
33
|
+
recommended-option challenge and resolved (or is still open).
|
|
34
|
+
- ASSUMPTION (resolved): "paginate" = cursor-based (recommended) — user confirmed.
|
|
35
|
+
- UNVERIFIED (open): whether a rate-limit already exists — evidence not found.
|
|
36
|
+
|
|
37
|
+
## Additional context (do not build)
|
|
38
|
+
Anchored, non-actionable context pulled from an ADJACENT scope because an in-scope
|
|
39
|
+
requirement depends on it. Read for understanding; never a task. Each item names
|
|
40
|
+
the in-scope requirement it serves + why. Omit this whole section if none survived.
|
|
41
|
+
| Anchor (in-scope #) | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
|
|
42
|
+
|---------------------|-----------|------------|-----------------------|----------------------|
|
|
43
|
+
| Req 1 (pagination) | listing (Y) | guards-invariant | shared list serializer caps a page at 100 | api/serializers/list.x:31 |
|
|
44
|
+
|
|
45
|
+
## Alternatives & risks (DEEP mode only — omit in standard)
|
|
46
|
+
- Approach A (recommended): reuse existing cursor helper — low blast radius, 3 files.
|
|
47
|
+
- Approach B: new offset paginator — simpler read, breaks existing cursor clients.
|
|
48
|
+
- Risk: pagination touches the shared list serializer (dependents: 4 call sites).
|
|
49
|
+
|
|
50
|
+
## Challenges raised & answers
|
|
51
|
+
- Req 3 appeared to require an admin panel (belongs to scope Z) — user confirmed
|
|
52
|
+
OUT of scope X.
|
|
53
|
+
|
|
54
|
+
## Excluded scopes (recognized, not detailed)
|
|
55
|
+
- Recognized Y, Z; excluded per scope = X.
|
|
56
|
+
|
|
57
|
+
## Handoff readiness (checklist — all five or handoff_ready is false)
|
|
58
|
+
- [ ] all BLOCKING challenges resolved
|
|
59
|
+
- [ ] zero open UNVERIFIED on any in-scope requirement
|
|
60
|
+
- [ ] every requirement has status + evidence-or-resolution
|
|
61
|
+
- [ ] spec derived AFTER the user confirmed this report
|
|
62
|
+
- [ ] scope_closed: true written into the spec
|
|
63
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Template — Analyst Report (REQUIREMENT mode — no document)
|
|
2
|
+
|
|
3
|
+
Used when there is NO source document: the user's plain-language request IS the
|
|
4
|
+
requirement, reconciled against the existing code. Human-readable source of
|
|
5
|
+
truth. Written to `<analyzer_dir>/{analysis-name}/report.md` (config
|
|
6
|
+
`analyzer_dir` — the internal artifact dir); it is COPIED to
|
|
7
|
+
`<report_out_dir>/{analysis-name}/report.md` only on the report-only /
|
|
8
|
+
stop-here branch. The old "written to analyst_report/…" wording described the
|
|
9
|
+
copy target as if it were the write target.
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Analysis Report — {analysis-name}
|
|
13
|
+
mode: requirement
|
|
14
|
+
depth: standard | deep
|
|
15
|
+
source: "pasted request" # the user's own words, verbatim
|
|
16
|
+
scope: <X — the requested scope only>
|
|
17
|
+
analyzed_at: DDMMYY HH:MM:SS
|
|
18
|
+
model: opus-5-high # the RESOLVED model of the agent that produced this
|
|
19
|
+
# (mini writes sonnet-5-high) — never copied from here
|
|
20
|
+
grounding: repo-read | repo-read+scouts # scouts only in deep mode
|
|
21
|
+
|
|
22
|
+
## Restated requirement (analyst's words)
|
|
23
|
+
One or two sentences restating the request — restating is what surfaces
|
|
24
|
+
misreadings. If the restatement rests on any assumption, tag it and ask.
|
|
25
|
+
|
|
26
|
+
## In-scope requirement parts (X only)
|
|
27
|
+
|
|
28
|
+
Each part of the request, reconciled against code. Every "Code reality" cell
|
|
29
|
+
carries quote-anchored file:line evidence (`file:line — "verbatim snippet"`,
|
|
30
|
+
never paraphrased; a ref with no quote auto-downgrades to UNVERIFIED), OR the
|
|
31
|
+
part is tagged ASSUMPTION/UNVERIFIED (and appears below as an open question).
|
|
32
|
+
Absence claims (status missing/buildable) instead carry `searched:` — the
|
|
33
|
+
concrete globs/greps run. In deep mode EVERY part is verified.
|
|
34
|
+
|
|
35
|
+
| # | Requirement part (from request) | Code reality | Evidence (file:line + quote / searched:) | Files/modules | Status | Resolution |
|
|
36
|
+
|---|---------------------------------|--------------|------------------------------------------|---------------|--------|------------|
|
|
37
|
+
| 1 | "add CSV export to reports" | reports render HTML only | searched: `export*`, `csv`, `download` — no hits | web/reports/x | missing | new export path |
|
|
38
|
+
| 2 | "reuse current auth" | auth guard on report routes | web/reports/routes.x:12 — "requireAuth(" | web/reports/x | exists | reuse, no change |
|
|
39
|
+
|
|
40
|
+
Status: buildable | exists | conflict | resolved
|
|
41
|
+
- buildable: not present, but consistent with the code — safe to build.
|
|
42
|
+
- exists: already implemented — flag so the planner doesn't duplicate.
|
|
43
|
+
- conflict: request contradicts existing behavior → challenged.
|
|
44
|
+
- resolved: a challenged part the user decided on.
|
|
45
|
+
|
|
46
|
+
## Assumptions & Open Questions
|
|
47
|
+
Every ambiguity in the request + anything not grounded to code. Each raised as a
|
|
48
|
+
recommended-option challenge and resolved (or still open).
|
|
49
|
+
- ASSUMPTION (resolved): "export" = download file (recommended) vs email — user
|
|
50
|
+
confirmed download.
|
|
51
|
+
- UNVERIFIED (open): whether a reports permission gate exists — evidence not found.
|
|
52
|
+
|
|
53
|
+
## Additional context (do not build)
|
|
54
|
+
Anchored, non-actionable context pulled from an ADJACENT scope because an in-scope
|
|
55
|
+
request part depends on it. Read for understanding; never a task. Each item names
|
|
56
|
+
the in-scope part it serves + why. Omit this whole section if none survived.
|
|
57
|
+
| Anchor (in-scope #) | From scope | Dependency | Touchpoint to respect | Evidence (file:line) |
|
|
58
|
+
|---------------------|-----------|------------|-----------------------|----------------------|
|
|
59
|
+
| Part 1 (CSV export) | reporting (Y) | consumes-output | report query already paginates; export must page too | web/reports/query.x:44 |
|
|
60
|
+
|
|
61
|
+
## Alternatives & risks (DEEP mode only — omit in standard)
|
|
62
|
+
- Approach A (recommended): stream CSV from the existing query — low blast radius.
|
|
63
|
+
- Approach B: precompute + cache — faster reads, adds a cache dependency.
|
|
64
|
+
- Risk: export reuses the report query (dependents: 2 schedulers).
|
|
65
|
+
|
|
66
|
+
## Challenges raised & answers
|
|
67
|
+
- Part 3 ("admin-only export") looked like scope Z (admin) — user confirmed OUT.
|
|
68
|
+
|
|
69
|
+
## Excluded scopes (recognized, not detailed)
|
|
70
|
+
- Recognized Y, Z implied by the request; excluded per scope = X.
|
|
71
|
+
|
|
72
|
+
## Handoff readiness (checklist — all five or handoff_ready is false)
|
|
73
|
+
- [ ] all BLOCKING challenges resolved
|
|
74
|
+
- [ ] zero open UNVERIFIED on any in-scope part
|
|
75
|
+
- [ ] every part has status + evidence-or-resolution
|
|
76
|
+
- [ ] spec derived AFTER the user confirmed this report
|
|
77
|
+
- [ ] scope_closed: true written into the spec
|
|
78
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Schema — Requirement Spec (DERIVED from the confirmed report)
|
|
2
|
+
|
|
3
|
+
Machine-oriented projection of report.md. The planner consumes THIS; the human
|
|
4
|
+
report travels alongside as the audit trail. Generated as the last Analyst step,
|
|
5
|
+
so it cannot drift from what the user approved. Written to
|
|
6
|
+
orc/analyzer/{analysis-name}/requirement-spec.md.
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
analysis_name: string
|
|
10
|
+
mode: audit | prose | requirement
|
|
11
|
+
depth: standard | deep
|
|
12
|
+
source_doc: string | null # null in requirement mode (no doc)
|
|
13
|
+
scope: string # X only
|
|
14
|
+
grounding: repo-read | repo-read+scouts | from-system-analyst
|
|
15
|
+
derived_from: report.md
|
|
16
|
+
created_at: timestamp
|
|
17
|
+
git_head: string | null # `git rev-parse HEAD` at analysis time (null if not a repo)
|
|
18
|
+
dirty: bool # uncommitted changes present at analysis time
|
|
19
|
+
# Staleness valve: at plan time, git_head ≠ current HEAD → the orchestrator
|
|
20
|
+
# re-runs the evidence spot-check (paths + quotes) before dispatching the
|
|
21
|
+
# planner; misses → offer re-analyze vs proceed-with-flagged. Same-session
|
|
22
|
+
# chains (HEAD matches) skip this — zero cost on the happy path.
|
|
23
|
+
|
|
24
|
+
requirements: # in-scope only; Y/Z absent by construction
|
|
25
|
+
- id: R1
|
|
26
|
+
statement: string # the requirement / audit-row / request-part, resolved
|
|
27
|
+
code_reality: string # what the code currently shows
|
|
28
|
+
evidence: [string] # quote-anchored refs backing code_reality:
|
|
29
|
+
# 'file:line — "verbatim snippet"' (≤1 line, quoted
|
|
30
|
+
# not paraphrased). A ref with no quote auto-downgrades
|
|
31
|
+
# to UNVERIFIED. Empty only if the item was an
|
|
32
|
+
# ASSUMPTION resolved by the user.
|
|
33
|
+
# status missing|buildable (claims of ABSENCE)
|
|
34
|
+
# instead carry 'searched: <the concrete
|
|
35
|
+
# globs/greps run>' — an absence claim with no
|
|
36
|
+
# searched: note is UNVERIFIED.
|
|
37
|
+
files: [string] # specific files/modules — grounds declared_files
|
|
38
|
+
status: exists | missing | conflict | verified | buildable | resolved
|
|
39
|
+
resolution: string|null # the user's decision if it was challenged
|
|
40
|
+
|
|
41
|
+
assumptions_resolved: # every ASSUMPTION/UNVERIFIED tag the user decided
|
|
42
|
+
- item: string
|
|
43
|
+
decision: string
|
|
44
|
+
|
|
45
|
+
alternatives: # deep mode only; [] in standard
|
|
46
|
+
- for: R# # which requirement this concerns
|
|
47
|
+
recommended: string
|
|
48
|
+
options: [string]
|
|
49
|
+
risk: string
|
|
50
|
+
|
|
51
|
+
context: # anchored, NON-ACTIONABLE adjacent-scope context; [] if none
|
|
52
|
+
- anchor: R# # the in-scope requirement this serves (REQUIRED — no anchor, no entry)
|
|
53
|
+
from_scope: string # the adjacent scope Y/Z it was pulled from
|
|
54
|
+
dependency: string # consumes-output | guards-invariant | shares-file | doc-references
|
|
55
|
+
note: string # the touchpoint (field/function/invariant) the build must respect
|
|
56
|
+
evidence: [string] # file:line — touchpoint-bounded, never all of the adjacent scope
|
|
57
|
+
# Read-for-understanding ONLY. The planner/executor honor these invariants but
|
|
58
|
+
# NEVER turn a context item into a task or a declared_files entry. Every item is
|
|
59
|
+
# anchored to an in-scope requirement or it was dropped (Phase E anchor-validation).
|
|
60
|
+
|
|
61
|
+
# Everything here is confirmed. The planner does NOT re-question scope/accuracy;
|
|
62
|
+
# it only turns these into tasks (breakdown/approach).
|
|
63
|
+
scope_closed: true
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The `files` arrays are the planner's grounding when chained from SA — it trusts
|
|
67
|
+
these and does not re-read the repo. The `evidence` refs let the planner (and a
|
|
68
|
+
later reviewer) spot-check any claim without re-deriving it.
|
|
69
|
+
|
|
70
|
+
## Validity (the orchestrator refuses an invalid spec)
|
|
71
|
+
|
|
72
|
+
A spec is take-into-build valid only when: `scope_closed: true`, zero open
|
|
73
|
+
`UNVERIFIED` on any in-scope requirement, and every requirement carries status +
|
|
74
|
+
evidence-or-resolution. The orchestrator also lints DERIVATION on analyst
|
|
75
|
+
return: the R# id set, per-R# status, and context-anchor set must match
|
|
76
|
+
report.md exactly — a mismatch (or a context `anchor` that isn't an in-scope
|
|
77
|
+
R#) bounces the spec back to the analyst (one retry, then escalate).
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orc-analyze-mini
|
|
3
|
+
description: >
|
|
4
|
+
Fast-lane System Analyst for ORC-MINI (Sonnet 5, high effort). Turns a
|
|
5
|
+
requirement — a document (PDF by path or pasted) OR a plain-language request —
|
|
6
|
+
into a scope-bounded, code-grounded requirement report + derived spec: bounds
|
|
7
|
+
the deliverable to exactly the asked scope (other scopes never become tasks),
|
|
8
|
+
maps each requirement to real files with quote-anchored file:line evidence —
|
|
9
|
+
or marks it an ASSUMPTION and turns it into a question — and challenges the
|
|
10
|
+
user with recommended options. Use for "/orc-analyze-mini", "quickly analyze
|
|
11
|
+
this doc", "fast doc analysis", "quick requirement check", "fast requirement
|
|
12
|
+
analysis", or when orc-mini meets a document or an ambiguous requirement.
|
|
13
|
+
Distinct from /orc-analyze: ALWAYS single-pass — NO deep mode, NO scouts —
|
|
14
|
+
trading depth for speed and tokens; switch to /orc-analyze (deep) when you
|
|
15
|
+
need a wider code sweep, verify-every-claim, or alternatives with trade-offs.
|
|
16
|
+
The orchestrator dispatches this to a subagent — it never analyzes itself.
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# ORC-ANALYZE-MINI
|
|
20
|
+
|
|
21
|
+
The fast variant of the System Analyst, dispatched by orc-mini as a Sonnet 5
|
|
22
|
+
high subagent. Produces the SAME artifacts and follows the SAME output contract
|
|
23
|
+
as the full analyst (`../orc-analyze/`) — read its schemas
|
|
24
|
+
(report-audit.md, report-prose.md, report-requirement.md, requirement-spec.md)
|
|
25
|
+
for the formats; this skill does not duplicate them.
|
|
26
|
+
|
|
27
|
+
**Worked example** (orient only — never execute from it): `examples/quick-analysis-mock.md`.
|
|
28
|
+
|
|
29
|
+
## What's trimmed vs the full analyst
|
|
30
|
+
|
|
31
|
+
- **Shallower code grounding — but the FLOOR is the same.** The mini analyst
|
|
32
|
+
MUST still verify (a) every row that emits a `files[]` entry and (b) every
|
|
33
|
+
`status: exists|conflict` claim; it may skip exhaustively tracing peripheral
|
|
34
|
+
references. Trimmed depth never means a lower floor.
|
|
35
|
+
- **Fewer challenge rounds via triage, not omission.** Blocking issues (scope
|
|
36
|
+
changes, code-vs-doc conflicts, anything changing `files[]` or a status) are
|
|
37
|
+
asked one at a time; everything else is DEMOTED to the single batched
|
|
38
|
+
advisory round — recorded in the report with its recommended default, never
|
|
39
|
+
silently dropped.
|
|
40
|
+
- **No deep mode, no scouts.** Always single-pass.
|
|
41
|
+
- **Concrete escalation thresholds** (recommend the full `/orc-analyze`, Opus
|
|
42
|
+
4.8 high, and let the user choose — the boundary is not self-assessed vibes):
|
|
43
|
+
source doc > ~10 pages, OR > 12 in-scope requirements, OR > 3 conflict rows,
|
|
44
|
+
OR audit mode with > 5 stale-premise rows.
|
|
45
|
+
- **Model:** Sonnet 5, high effort.
|
|
46
|
+
|
|
47
|
+
## What's identical
|
|
48
|
+
|
|
49
|
+
- **Doc-optional intake:** auto-detect + confirm mode — prose / audit
|
|
50
|
+
(documents) or **requirement** (NO doc; the user's request is the source of
|
|
51
|
+
truth, reconciled against code).
|
|
52
|
+
- **Evidence-or-mark, quote-anchored:** every code claim / interpretation is
|
|
53
|
+
grounded with `file:line — "verbatim snippet"` (a ref with no quote
|
|
54
|
+
auto-downgrades to `UNVERIFIED`), OR tagged `ASSUMPTION`/`UNVERIFIED` and
|
|
55
|
+
turned into a question — never a silent guess. **Absence claims**
|
|
56
|
+
(missing/buildable) carry `searched:` — the concrete globs/greps run.
|
|
57
|
+
- **The read ladder:** locate → outline → range → full, escalating only as far as
|
|
58
|
+
the question needs (`../_shared/read-ladder.md`). Trimmed depth is not a lower
|
|
59
|
+
evidence floor — it is fewer wasted full reads reaching the same anchors.
|
|
60
|
+
- **Recommended-option challenges:** each challenge is a 2–3 option set with one
|
|
61
|
+
flagged recommended option + reason (blocking one at a time, advisory batched).
|
|
62
|
+
- Two perimeters: the deliverable stays scope X (Y/Z never become tasks), but
|
|
63
|
+
anchored, non-actionable adjacent context is gathered when an in-scope item
|
|
64
|
+
depends on it — touchpoint-bounded, self-read (no scouts), each item anchored to
|
|
65
|
+
the requirement it serves + labeled "do not build". Same **Additional context
|
|
66
|
+
(do not build)** section in report + spec. Unanchored context is dropped.
|
|
67
|
+
- Two artifacts, spec derived from the confirmed report, same folder
|
|
68
|
+
`orc/analyzer/{analysis-name}/` (internal; copied out only on report-only),
|
|
69
|
+
including the Evidence column and Assumptions & Open Questions section. The
|
|
70
|
+
spec is stamped with `git_head` + `dirty` for plan-time staleness detection.
|
|
71
|
+
- Same branch: report-only, or take into build (hand both files to orc-mini,
|
|
72
|
+
which continues with the mini planner) — orc-mini runs the same evidence
|
|
73
|
+
spot-check + derivation lint gates as the full lane before building.
|
|
74
|
+
|
|
75
|
+
## Behavior trace (PERMANENT — every ORC entry point traces; always on)
|
|
76
|
+
|
|
77
|
+
Same rule as the full analyst: standalone `/orc-analyze-mini` resolves
|
|
78
|
+
`log_dir` at start and follows
|
|
79
|
+
`../orc/references/trace-protocol.md` — write `log_dir/.current` =
|
|
80
|
+
`run-analyze-<slug>-<DDMMYY>-<HHMMSS>.txt` and `touch the trace file` of that
|
|
81
|
+
name in the SAME step, before the first dispatch; collect
|
|
82
|
+
`PHASE`/`DISPATCH`/`VERIFY`/`GATE`/`FINISH` events with their REAL timestamps
|
|
83
|
+
plus `decisions` (the WHY) and dispatch the trace writer ONCE at run end (the
|
|
84
|
+
single-dispatch-lane packet), then delete `.current` (the hook bootstraps
|
|
85
|
+
`.current` + the skeleton on the first dispatch regardless). Inside an orc-mini
|
|
86
|
+
run, the mini orchestrator's trace already covers this — never open a second one.
|
|
87
|
+
|
|
88
|
+
## Workflow checkpoint (gate before deriving the spec)
|
|
89
|
+
|
|
90
|
+
Confirm the report with the user — scope bounded, blocking challenges resolved —
|
|
91
|
+
BEFORE deriving requirement-spec.md. The spec is derived from the CONFIRMED report,
|
|
92
|
+
never from an unconfirmed draft.
|
|
93
|
+
|
|
94
|
+
## Return contract (inlined — do not reconstruct from the full analyst)
|
|
95
|
+
|
|
96
|
+
Write `report.md` (mode template) + derived `requirement-spec.md` into
|
|
97
|
+
`orc/analyzer/{name}/`, including the Evidence column, the Assumptions & Open
|
|
98
|
+
Questions section, and the **Additional context (do not build)** section when any
|
|
99
|
+
survived. Return exactly:
|
|
100
|
+
|
|
101
|
+
- `report_path`, `spec_path` — the two artifacts.
|
|
102
|
+
- `mode` — prose | audit | requirement.
|
|
103
|
+
- `scope` — the confirmed scope-X one-liner.
|
|
104
|
+
- `handoff_ready` — a CHECKLIST, not a feeling: true only when all blocking
|
|
105
|
+
challenges are resolved, zero open `UNVERIFIED` on in-scope items, every
|
|
106
|
+
requirement has status + evidence-or-resolution, the spec was derived after
|
|
107
|
+
the user confirmed the report, and `scope_closed: true` is written.
|
|
108
|
+
- `actual_model` — quoted verbatim from your system prompt's "The exact model ID
|
|
109
|
+
is …" line (`unknown` if absent, never guessed).
|
|
110
|
+
- `actual_effort` — `$CLAUDE_EFFORT`.
|
|
111
|
+
|
|
112
|
+
Never build or spawn.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Example — Annotated Fast-Lane Analysis (dry run)
|
|
2
|
+
|
|
3
|
+
A: = mini analyst (Sonnet 5, high) · U: = user. Nothing real. Same artifacts and
|
|
4
|
+
contract as /orc-analyze, ALWAYS single-pass — NO deep mode, NO scouts. The
|
|
5
|
+
orchestrator dispatches this — it never analyzes itself.
|
|
6
|
+
|
|
7
|
+
U: /orc-analyze-mini add a "resend invite" action — no doc, just this request
|
|
8
|
+
|
|
9
|
+
## Mode + scope (doc-optional)
|
|
10
|
+
A: No document → REQUIREMENT mode (your request is the source of truth, reconciled
|
|
11
|
+
against code). Scope X = resend-invite. Nothing else in play.
|
|
12
|
+
|
|
13
|
+
## Ground the CLEAR links + HIGH-SIGNAL divergences (evidence-or-mark)
|
|
14
|
+
A: Maps to invites/service.py (create path at :40) + invites/routes.py (:12).
|
|
15
|
+
The obvious reuse: resend = re-issue the existing token, not mint a new invite.
|
|
16
|
+
⚠ ASSUMPTION: resend should NOT reset the 72h expiry → turning into a question
|
|
17
|
+
(couldn't confirm from code alone). Shallower grounding: I confirm the obvious
|
|
18
|
+
file map, not every downstream reference.
|
|
19
|
+
|
|
20
|
+
## Challenge (recommended options, one at a time)
|
|
21
|
+
A: On expiry: (a) keep original expiry — RECOMMENDED (least surprise; matches how
|
|
22
|
+
create issues once). (b) refresh to a new 72h window on resend.
|
|
23
|
+
U: (a)
|
|
24
|
+
|
|
25
|
+
## Artifacts + branch (+ escalation door)
|
|
26
|
+
A: Writes orc/analyzer/resend-invite/report.md + requirement-spec.md
|
|
27
|
+
(Evidence column + Assumptions & Open Questions). handoff_ready: true.
|
|
28
|
+
A: This stayed simple, so single-pass was enough. If it had needed a wider sweep or
|
|
29
|
+
verify-every-claim, I'd have flagged that it may warrant /orc-analyze (deep).
|
|
30
|
+
Take into build?
|
|
31
|
+
U: take into build → hands the spec to orc-mini, which continues with the mini planner.
|