@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,66 @@
|
|
|
1
|
+
# Writing a human can actually read (P0)
|
|
2
|
+
|
|
3
|
+
Both the writer and the checker are held to this. The free half is measured by
|
|
4
|
+
`orc doc lint`; the rest is what the checker grades each section for.
|
|
5
|
+
|
|
6
|
+
## The rules
|
|
7
|
+
|
|
8
|
+
1. **Write for the audience named in D4**, not for the model that wrote it.
|
|
9
|
+
2. **One idea per sentence.** Average ≤ 20 words. Any sentence over 35 words is
|
|
10
|
+
a lint finding, with its line number.
|
|
11
|
+
3. **Common words beat precise-sounding ones.** *use* not *utilise*, *start* not
|
|
12
|
+
*initiate*, *about* not *regarding*, *use* not *leverage*, *before* not
|
|
13
|
+
*prior to*.
|
|
14
|
+
4. **Every acronym is expanded on first use** — "service level objective (SLO)".
|
|
15
|
+
The lint catches unexpanded ones by scanning for capitalised runs, and it
|
|
16
|
+
already knows the ones every technical reader has.
|
|
17
|
+
5. **Active voice.** "The service retries the call", not "the call is retried" —
|
|
18
|
+
the passive hides who does it, and in a runbook that is the whole point of
|
|
19
|
+
the sentence.
|
|
20
|
+
6. **No unexplained internal jargon.** A term the D4 audience would not know is
|
|
21
|
+
either replaced or defined in the glossary. The checker flags it either way.
|
|
22
|
+
7. **Facts go in tables**, not in a paragraph listing six things.
|
|
23
|
+
8. **Say the thing first.** Each section opens with its conclusion; the
|
|
24
|
+
reasoning follows.
|
|
25
|
+
9. **Never invent a fact.** What is not in `context.md` or `context-sources.md`
|
|
26
|
+
is **not written at all** — it comes back as a gap and is raised with the
|
|
27
|
+
user. The deliverable carries content only, so it never carries ORC's own
|
|
28
|
+
uncertainty markers. Filler that reads like a fact is the worst possible
|
|
29
|
+
output of this lane; a `> **Open:**` line left in the reader's document is
|
|
30
|
+
the second worst.
|
|
31
|
+
10. **Non-English output is held to the same bar in that language** — short
|
|
32
|
+
sentences, common words, acronyms expanded. Technical terms with no natural
|
|
33
|
+
translation stay in English and are glossed once.
|
|
34
|
+
|
|
35
|
+
## Why the checker is `low` effort — deliberately
|
|
36
|
+
|
|
37
|
+
`orc-doc-checker-opus-5-low` reads a short range and answers a bounded question:
|
|
38
|
+
*does this text do what its section is for, in words this audience knows,
|
|
39
|
+
without inventing anything?*
|
|
40
|
+
|
|
41
|
+
Low effort is the **right instrument** for that, not a cost compromise. A
|
|
42
|
+
harder-thinking checker reasons its way past a gap a real reader would trip on —
|
|
43
|
+
the same reasoning that pins `/orc-challenge`'s cold reader at `low`. **Nothing
|
|
44
|
+
may "upgrade" it later.**
|
|
45
|
+
|
|
46
|
+
## What the lint measures, and what it does not
|
|
47
|
+
|
|
48
|
+
| Free (`orc doc lint`) | Judgment (the checker) |
|
|
49
|
+
|---|---|
|
|
50
|
+
| average sentence length, and the longest one with its line | whether the section does what its purpose says |
|
|
51
|
+
| long-word ratio | whether the declared audience can act on it |
|
|
52
|
+
| acronyms used without being expanded | whether a term needs the glossary |
|
|
53
|
+
| passive constructions (a pattern match) | whether a sentence hides its actor in a way that matters |
|
|
54
|
+
| leftover `TODO` / `TBD` / `???` | whether something is asserted that nothing supports |
|
|
55
|
+
|
|
56
|
+
**Free checks run before paid ones. Always.** The lint's findings ride in the
|
|
57
|
+
checker's slice, so no model ever spends a token counting sentences — and the
|
|
58
|
+
checker never re-reports one.
|
|
59
|
+
|
|
60
|
+
## Two honesty rules the lint prints about itself
|
|
61
|
+
|
|
62
|
+
1. **A readability signal is a SIGNAL, not a verdict.** A long sentence is not
|
|
63
|
+
automatically a defect. It never blocks anything.
|
|
64
|
+
2. **It is English-specific and heuristic.** Passive-voice detection is a
|
|
65
|
+
pattern match and a syllable count is an estimate. It says so, once, on its
|
|
66
|
+
own output.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Portable Markdown — the rules `document.md` is held to
|
|
2
|
+
|
|
3
|
+
Enforced two ways: **`orc doc lint`** (free, deterministic, mechanical) and the
|
|
4
|
+
checker (judgment). Every rule below came from a real product limit, not from
|
|
5
|
+
taste — see `import-targets.md` for where each one comes from.
|
|
6
|
+
|
|
7
|
+
| Rule | Why |
|
|
8
|
+
|---|---|
|
|
9
|
+
| ATX headings only, exactly one H1, no skipped levels | Every importer's outline builder depends on it. A setext (underlined) heading is invisible to most of them |
|
|
10
|
+
| **Max depth H3** under `--target notion` (and under `generic`) | Notion has three heading levels. An H4 silently becomes bold text |
|
|
11
|
+
| **No hard-wrapped paragraphs — one paragraph, one line** | A hard wrap at 80 columns becomes a line break INSIDE a Notion or Docs paragraph. This is the single most common import-mangling bug |
|
|
12
|
+
| No raw HTML, no HTML comments in the deliverable | Some importers render them as literal text |
|
|
13
|
+
| Simple pipe tables only — no nesting, no colspan, no ragged rows | Everything else survives an import; these do not |
|
|
14
|
+
| ` ``` ` fences only, with a language tag | `~~~` and indented code blocks convert unreliably |
|
|
15
|
+
| No `[[wikilinks]]`, no footnotes, no definition lists | Obsidian-only / Pandoc-only syntax |
|
|
16
|
+
| Task lists `- [ ]` are allowed | Notion, GitHub and Docs all handle them |
|
|
17
|
+
| Images: a relative path **and** alt text, plus a one-line text description beside it | Images do not travel through most imports. The description is what survives |
|
|
18
|
+
| **YAML front matter OFF by default**, ON for `--target docusaurus` / `hugo` / `jekyll` | Notion and Docs render it as visible junk at the top of the page; a static-site generator will not render the page without it |
|
|
19
|
+
| No emoji in headings (the body is fine) | Some importers slug headings and mangle the anchors |
|
|
20
|
+
|
|
21
|
+
## The one that is worth repeating
|
|
22
|
+
|
|
23
|
+
**One paragraph is one line.** Not "prefer long lines" — one line. A writer that
|
|
24
|
+
hard-wraps at 80 columns produces a document that reads perfectly in a terminal
|
|
25
|
+
and arrives in Notion as a column of broken fragments. `orc doc lint` reports
|
|
26
|
+
it once per paragraph, as an ERROR.
|
|
27
|
+
|
|
28
|
+
## Where a gap goes, and why it is not in the document
|
|
29
|
+
|
|
30
|
+
**The deliverable carries content only.** No `> **Open:**`, no
|
|
31
|
+
`> **Assumption:**`, no note callout, no HTML comment — not in `document.md`, and
|
|
32
|
+
not in any file under `sections/`.
|
|
33
|
+
|
|
34
|
+
This does **not** relax the never-invent-a-fact rule; it changes only where the
|
|
35
|
+
honesty is written down. ORC still refuses to make something up. What is not in
|
|
36
|
+
`context.md` or `context-sources.md` is **not written at all**:
|
|
37
|
+
|
|
38
|
+
| what it is | where it goes |
|
|
39
|
+
|---|---|
|
|
40
|
+
| nobody has decided this yet | `orc doc log <slug> --kind gap --sections <id> --text "the fraud limit has not been decided"` → `gaps.md`, and it is raised with the user |
|
|
41
|
+
| I had to assume it to write the sentence | the same, and it is raised with the user |
|
|
42
|
+
| which option we chose, and why | `orc doc log <slug> --kind decision --text "…"` → the journal |
|
|
43
|
+
| the template's `<!-- purpose: … -->` lines | stripped at compile — they are instructions for the writer |
|
|
44
|
+
|
|
45
|
+
**Why the reversal.** A PRD that arrives in Notion with three `> **Open:**`
|
|
46
|
+
blockquotes in it is a PRD the reader has to filter. The gap is real and worth
|
|
47
|
+
recording; it just is not part of what the reader came for. And a *stub* section
|
|
48
|
+
that is nothing but an Open line is worse than an absent one — under
|
|
49
|
+
`orc doc compile --partial` a missing section is simply **absent**, and named
|
|
50
|
+
loudly outside the document.
|
|
51
|
+
|
|
52
|
+
**It is enforced in four places**, and none of them is a silent rewrite:
|
|
53
|
+
|
|
54
|
+
1. **The writer never emits one** — uncertainty goes in its return's `gaps[]`.
|
|
55
|
+
2. **`orc doc lint`'s `annotation-in-body` is an ERROR.** The rule matches an
|
|
56
|
+
EXACT, narrow set — `> **Open:**`, `> **Assumption:**`, `> **Note (ORC):**`,
|
|
57
|
+
an `orc-doc:` fence — and **nothing else**. A user's own line beginning
|
|
58
|
+
"Note:" is content and is never flagged. A narrow rule that is always right
|
|
59
|
+
beats a broad one that argues with the author.
|
|
60
|
+
3. **`compile` REPORTS them and never silently strips.** They come back in
|
|
61
|
+
`annotations[]` with a line and a fix. We cannot tell whose line it is, and a
|
|
62
|
+
silent strip can delete a real sentence. The one exception is the explicit
|
|
63
|
+
`orc doc compile --strip-annotations`.
|
|
64
|
+
4. **The section state no longer sniffs the body.** Existence and hashes decide
|
|
65
|
+
it, which was always strictly more reliable than a text match.
|
|
66
|
+
|
|
67
|
+
## Severity
|
|
68
|
+
|
|
69
|
+
`orc doc lint` returns `error` and `warn`:
|
|
70
|
+
|
|
71
|
+
- **`error`** — the document will be visibly wrong in the target. It blocks the
|
|
72
|
+
handoff line ("this is ready to import").
|
|
73
|
+
- **`warn`** — a readability or portability signal. It is reported, never
|
|
74
|
+
blocking. A signal is not a verdict.
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Resuming — the contract that makes a document survive a session
|
|
2
|
+
|
|
3
|
+
> **The context is gathered once and frozen.** A resumed session reads
|
|
4
|
+
> `context.md` from disk; it never re-interviews the user for what session 1
|
|
5
|
+
> already settled. **a lane that re-asks a frozen question** has broken this
|
|
6
|
+
> contract.
|
|
7
|
+
|
|
8
|
+
## Entry
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/orc-doc resume → lists every document with its status line
|
|
12
|
+
/orc-doc resume prd-checkout-refund → prefix match; an ambiguous prefix lists candidates
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
`orc doc list --json` supplies the list. It may only claim what the disk proves:
|
|
16
|
+
`document.md` missing means **"not started"**, never "failed".
|
|
17
|
+
|
|
18
|
+
## The resumed session's first four moves
|
|
19
|
+
|
|
20
|
+
1. `orc doc status <slug> --json` (0 nothing to do · 1 something to do · 2
|
|
21
|
+
unknown slug) and **`orc doc parts <slug> --json`** — which works BEFORE a
|
|
22
|
+
single compile has ever run, because the section files ARE the progress.
|
|
23
|
+
2. **Read `context.md` and `outline.md`. NOT the document.**
|
|
24
|
+
3. **Detect the user's own edits.** Sections whose live hash ≠ the hash
|
|
25
|
+
`doc.json` recorded are `user-edited`. Say so, **by section name**. A part
|
|
26
|
+
with no recorded hash at all is `unconfirmed` — a wave killed mid-flight —
|
|
27
|
+
and it is re-written, never shipped.
|
|
28
|
+
4. **HARD STOP and ask what should change.**
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Picking up: PRD — checkout refunds (started 13-08-2026, cycle 2).
|
|
32
|
+
I have read the context you gave me — you do not need to repeat it.
|
|
33
|
+
|
|
34
|
+
Sections: 17 planned · 14 written · wave 5 of 7
|
|
35
|
+
You edited since last time: §02 Summary, §08 Requirements ← I will not touch these unless you say so
|
|
36
|
+
Not written yet: §12 Risks · §13 Rollout
|
|
37
|
+
document.md is 2 sections behind sections/ — rebuilding it is free.
|
|
38
|
+
|
|
39
|
+
What should change? (a section to rewrite, something to add, a finding to fix,
|
|
40
|
+
or "finish the rest")
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**No change request → no work.** The lane stops there. Regenerating a document
|
|
44
|
+
nobody asked to change is the most expensive possible way to do nothing.
|
|
45
|
+
|
|
46
|
+
## `RESUME.md` — the P0 hand-back
|
|
47
|
+
|
|
48
|
+
Written by **the lane itself, never by a dispatched agent** — a dispatch inside
|
|
49
|
+
a stop sequence lets a stop fail because a subagent did.
|
|
50
|
+
|
|
51
|
+
**v0.49.5 — the CLI writes it, and it is never behind.** `orc doc resume-file
|
|
52
|
+
<slug>` composes the whole page from `doc.json`, and `doc.json` refreshes it on
|
|
53
|
+
**every** write, so it exists from `orc doc init` onward. This replaces a rule
|
|
54
|
+
the orchestrator had to remember at every stop, which is the bet this repo has
|
|
55
|
+
already lost twice (the v0.32.0 narration lesson): a hand-back you are TOLD to
|
|
56
|
+
write at every stop is the hand-back that goes missing on the one run that
|
|
57
|
+
mattered — the one a usage limit killed.
|
|
58
|
+
|
|
59
|
+
**Rule 16 — `every question points at RESUME.md`.** Before ORC asks the user
|
|
60
|
+
anything, it runs `orc doc resume-file <slug>` and ends the message with that
|
|
61
|
+
file's path and the line to paste. A user who has to remember where they were is
|
|
62
|
+
a user who does not come back.
|
|
63
|
+
|
|
64
|
+
The page is written for someone who does not read code: what this document is,
|
|
65
|
+
where the files are, what is not written yet, what happens next, and the one
|
|
66
|
+
line to paste. Nothing in it needs interpreting.
|
|
67
|
+
|
|
68
|
+
**It lives at `{run_dir}/{slug}/RESUME.md`** — the registered v0.42.0 home, and
|
|
69
|
+
the ONLY place `listRuns()` looks. It is not in the document folder, and there is
|
|
70
|
+
no second copy there: two copies is two ideas, and they drift. Anyone browsing
|
|
71
|
+
the folder gets the same line from `orc doc status`.
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
# Resume this document
|
|
75
|
+
|
|
76
|
+
Paste this line into a new Claude Code session, in this project:
|
|
77
|
+
|
|
78
|
+
/orc-doc resume prd-checkout-refund-130826
|
|
79
|
+
|
|
80
|
+
Where it stands: /orc-doc · PRD · cycle 2 · 14 of 17 sections written · phase D6 · wave 5 of 7
|
|
81
|
+
|
|
82
|
+
- Sections: orc/orc-doc/prd-checkout-refund-130826/sections/ ← the source of truth
|
|
83
|
+
- Document: document.md is a BUILD ARTIFACT — `orc doc compile` rebuilds it, free
|
|
84
|
+
- Context: context.md (the new session reads this first — you do not repeat yourself)
|
|
85
|
+
- Not written yet: §12 Risks · §13 Rollout
|
|
86
|
+
|
|
87
|
+
## What the new session will do
|
|
88
|
+
1. Read context.md and doc.json. It will NOT re-ask what you already answered.
|
|
89
|
+
2. Start at wave 6, and re-read NOTHING it already wrote.
|
|
90
|
+
3. Ask you what should change. **It will not touch the document until you say.**
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**The `Where it stands:` line is at COLUMN 0.** Never `## Where it stands:` —
|
|
94
|
+
`parseStands` is line-anchored, so a heading prefix means it never matches, and
|
|
95
|
+
that single line is what `orc doc list`, `orc resume` and `orc run list` all
|
|
96
|
+
parse. There is a test that feeds this exact template to the real parser.
|
|
97
|
+
|
|
98
|
+
**One generator, not two.** The whole file comes from `orc doc resume-file`,
|
|
99
|
+
which builds the `Where it stands:` line with the same function `orc doc status`
|
|
100
|
+
uses. Never assemble your own copy of either. The CLI computes, the skill points
|
|
101
|
+
at the result, and the two can then never disagree.
|
|
102
|
+
|
|
103
|
+
## The wave hand-back (P0, every wave)
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Wave 2 of 7 done — 6 of 17 sections written.
|
|
107
|
+
|
|
108
|
+
orc/orc-doc/acme-prd-170826/sections/04-detailed-design/01-data-model.md 142 L
|
|
109
|
+
orc/orc-doc/acme-prd-170826/sections/04-detailed-design/02-api-surface.md 118 L
|
|
110
|
+
orc/orc-doc/acme-prd-170826/sections/05-rollout.md 96 L
|
|
111
|
+
|
|
112
|
+
Read them now if you want to redirect — nothing later is bought yet.
|
|
113
|
+
See it as one file (free): orc doc compile acme-prd-170826 --partial
|
|
114
|
+
|
|
115
|
+
To carry on — new session, or after your usage limit resets:
|
|
116
|
+
|
|
117
|
+
/orc-doc resume acme-prd-170826
|
|
118
|
+
|
|
119
|
+
Everything needed is on disk. The next session starts at wave 3 and re-reads
|
|
120
|
+
nothing it already wrote.
|
|
121
|
+
|
|
122
|
+
The full picture, in plain words:
|
|
123
|
+
.claude/orc/run/acme-prd-170826/RESUME.md
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Every message that asks the user something ends with those last two lines**
|
|
127
|
+
(rule 16) — a gate, a wave stop, a revision round, an offer. The path is what
|
|
128
|
+
`orc doc resume-file` just printed; never type one from memory.
|
|
129
|
+
|
|
130
|
+
## The hand-back mention (P0, every cycle)
|
|
131
|
+
|
|
132
|
+
After **every** cycle that touched the document — the first run and every
|
|
133
|
+
resume — this is the last thing on screen, always in this shape:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
Saved to orc/orc-doc/prd-checkout-refund-130826/sections/ (the source of truth)
|
|
137
|
+
orc/orc-doc/prd-checkout-refund-130826/document.md (rebuilt, free)
|
|
138
|
+
|
|
139
|
+
Editing it yourself is expected — go ahead. When you want to carry on, even in a
|
|
140
|
+
brand-new chat, paste this line:
|
|
141
|
+
|
|
142
|
+
/orc-doc resume prd-checkout-refund-130826
|
|
143
|
+
|
|
144
|
+
The full picture is in that folder's RESUME.md — it remembers the context, the
|
|
145
|
+
audience and what is still open, so you never have to explain it twice.
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Then the two things this lane offers but never does:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
Not staged, not committed. If your team should see it:
|
|
152
|
+
git add orc/orc-doc/prd-checkout-refund-130826/
|
|
153
|
+
|
|
154
|
+
Want it graded before you send it? In a NEW session:
|
|
155
|
+
/orc-challenge orc/orc-doc/prd-checkout-refund-130826/document.md
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
`/orc-challenge` is offered and never run from here. It is the same separation
|
|
159
|
+
its own contract already enforces from the other side: a session that wrote the
|
|
160
|
+
thing cannot honestly grade it.
|
|
161
|
+
|
|
162
|
+
## The user's edits are sacred
|
|
163
|
+
|
|
164
|
+
A `user-edited` section is **never** rewritten without an explicit instruction
|
|
165
|
+
naming it. If a finding lands inside one, the finding is *reported* and the fix
|
|
166
|
+
is *offered*, never applied. Overwriting a human's paragraph is unrecoverable
|
|
167
|
+
from this lane's side — the part file is gone, and their wording with it.
|
|
168
|
+
|
|
169
|
+
## `changelog.md`
|
|
170
|
+
|
|
171
|
+
One entry per cycle, appended, newest last. It is the answer to "what did the
|
|
172
|
+
last session actually do", and it is written by the lane, not derived:
|
|
173
|
+
|
|
174
|
+
```markdown
|
|
175
|
+
## Cycle 2 — 14-08-2026
|
|
176
|
+
- You asked: tighten §04 Goals and add the fraud limit to §12.
|
|
177
|
+
- Changed: sections/04-goals-and-metrics.md (rewritten, 22 → 18 lines), sections/12-risks.md (one row added).
|
|
178
|
+
- Untouched: §02 and §08 — you edited those yourself.
|
|
179
|
+
- Not written yet: §13 Rollout.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
An Open question or an Assumption does NOT go here and does not go into the
|
|
183
|
+
document. It goes into the journal as a gap —
|
|
184
|
+
`orc doc log <slug> --kind gap --sections <id> --text "…"` — and the CLI derives
|
|
185
|
+
`gaps.md` from that. The deliverable carries content only.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## The journal — what you asked for, in order (v0.48.1)
|
|
190
|
+
|
|
191
|
+
`changelog.md` above is **lane-written prose**. The journal is the **derived**
|
|
192
|
+
companion, and the two are not the same thing: one is a narrative someone wrote,
|
|
193
|
+
the other is a merge of four sources with the provenance of every row attached.
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
orc doc log <slug> --kind request|decision|gate|note|gap --text "…" [--sections a,b] [--source user|/orc-grill|/orc-brainstorm]
|
|
197
|
+
orc doc journal <slug> [--json]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
| `origin` | source | what it is |
|
|
201
|
+
|---|---|---|
|
|
202
|
+
| `recorded` | `journal[]` | the user's own words, **verbatim** |
|
|
203
|
+
| `derived` | `cycles[]` | a write / check / edit / compile cycle — a machine fact |
|
|
204
|
+
| `derived` | the ship / unship records | a machine fact |
|
|
205
|
+
| `observed` | a section that turned `user-edited` | a machine fact, no text |
|
|
206
|
+
|
|
207
|
+
**It never invents an entry.** A cycle that ran with nothing logged renders as
|
|
208
|
+
an explicit gap — *"cycle 2 ran · no request was recorded for it"* — and **never**
|
|
209
|
+
a plausible reconstruction from file mtimes. **a lane that invents a journal entry**
|
|
210
|
+
has broken this contract. Same honesty rule as `/orc-pact`'s
|
|
211
|
+
**UNCHECKABLE**: not knowing is an answer, and faking it teaches people to
|
|
212
|
+
distrust the rows that are real.
|
|
213
|
+
|
|
214
|
+
**Call `orc doc log` at D1 with the user's words verbatim.** A resumed session
|
|
215
|
+
reads the journal to answer *"what have I been asking for?"*, and a paraphrase
|
|
216
|
+
there is the same failure as a paraphrase in `context.md` — it is where a
|
|
217
|
+
resumed session quietly starts writing a different document.
|
|
218
|
+
|
|
219
|
+
## Resuming is a loop now, not a memory
|
|
220
|
+
|
|
221
|
+
The resumed session's moves are unchanged — `orc doc status`, `orc doc parts`,
|
|
222
|
+
read `context.md` and `outline.md` (**not the document**), name what the user
|
|
223
|
+
edited, then HARD STOP and ask. After that, **`orc doc next <slug> --json` says
|
|
224
|
+
what happens next** and this lane does exactly that, until it exits 1.
|
|
225
|
+
|
|
226
|
+
Nothing about the pipeline is remembered across the gap any more. That is the
|
|
227
|
+
point: a session resumed months later in a fresh context has the same
|
|
228
|
+
information as the one that started it.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
<!-- orc-doc:template collaboration — the shipped base template.
|
|
2
|
+
|
|
3
|
+
two or more teams agreeing who owns what and how they will talk; RACI is the spine
|
|
4
|
+
|
|
5
|
+
Every `<!-- purpose: … -->` line is an instruction for the WRITER and is
|
|
6
|
+
STRIPPED at compile — it never reaches document.md. A required section with
|
|
7
|
+
no material is NOT written: it comes back as a gap, lands in gaps.md, and is
|
|
8
|
+
raised with you. The deliverable carries content only — never a silent
|
|
9
|
+
omission, never invented filler, and never ORC's own bookkeeping.
|
|
10
|
+
|
|
11
|
+
A template is a floor, not a cage. Your own template REPLACES this one
|
|
12
|
+
entirely (`orc doc init … --template <path>`); the two are never merged.
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
# <document title>
|
|
16
|
+
|
|
17
|
+
## Document info
|
|
18
|
+
|
|
19
|
+
<!-- purpose: owner, version, date, the teams it binds -->
|
|
20
|
+
|
|
21
|
+
| Field | Value |
|
|
22
|
+
|---|---|
|
|
23
|
+
| Title | |
|
|
24
|
+
| Owner | |
|
|
25
|
+
| Status | draft \| in review \| approved |
|
|
26
|
+
| Version | 0.1 |
|
|
27
|
+
| Date | |
|
|
28
|
+
| Reviewers | |
|
|
29
|
+
|
|
30
|
+
## Purpose and scope
|
|
31
|
+
|
|
32
|
+
<!-- purpose: what this agreement covers, and what it does not -->
|
|
33
|
+
|
|
34
|
+
## Parties
|
|
35
|
+
|
|
36
|
+
<!-- purpose: a table: team, what they bring, named contact, time zone -->
|
|
37
|
+
|
|
38
|
+
| Team | What they bring | Named contact | Time zone |
|
|
39
|
+
|---|---|---|---|
|
|
40
|
+
| | | | |
|
|
41
|
+
|
|
42
|
+
## Shared goal and definition of success
|
|
43
|
+
|
|
44
|
+
<!-- purpose: one goal both sides would state the same way -->
|
|
45
|
+
|
|
46
|
+
## Ownership split (RACI)
|
|
47
|
+
|
|
48
|
+
<!-- purpose: a table — row = deliverable or decision, column = team -->
|
|
49
|
+
|
|
50
|
+
| Deliverable or decision | Team A | Team B |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| | R | C |
|
|
53
|
+
|
|
54
|
+
R responsible · A accountable · C consulted · I informed.
|
|
55
|
+
|
|
56
|
+
## Interfaces between us
|
|
57
|
+
|
|
58
|
+
<!-- purpose: what each side hands over, in what format, by when -->
|
|
59
|
+
|
|
60
|
+
| What is handed over | From | To | Format | By when |
|
|
61
|
+
|---|---|---|---|---|
|
|
62
|
+
| | | | | |
|
|
63
|
+
|
|
64
|
+
## Decision rights and escalation path
|
|
65
|
+
|
|
66
|
+
<!-- purpose: who decides, who breaks a tie, and how fast -->
|
|
67
|
+
|
|
68
|
+
| Decision | Who decides | Who breaks a tie | How fast |
|
|
69
|
+
|---|---|---|---|
|
|
70
|
+
| | | | |
|
|
71
|
+
|
|
72
|
+
## Communication plan
|
|
73
|
+
|
|
74
|
+
<!-- purpose: channel, cadence, meeting, status format -->
|
|
75
|
+
|
|
76
|
+
| Channel | What it is for | Cadence |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| | | |
|
|
79
|
+
|
|
80
|
+
## Dependencies and critical dates
|
|
81
|
+
|
|
82
|
+
<!-- purpose: a table, with the owner of each date -->
|
|
83
|
+
|
|
84
|
+
| Dependency | Owner | Date | What breaks if it slips |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| | | | |
|
|
87
|
+
|
|
88
|
+
## Decision log
|
|
89
|
+
|
|
90
|
+
<!-- purpose: a table: date, decision, who decided, why -->
|
|
91
|
+
|
|
92
|
+
| Date | Decision | Who decided | Why |
|
|
93
|
+
|---|---|---|---|
|
|
94
|
+
| | | | |
|
|
95
|
+
|
|
96
|
+
## Risks
|
|
97
|
+
|
|
98
|
+
<!-- purpose: each with an owner and a mitigation -->
|
|
99
|
+
|
|
100
|
+
| Risk | Impact | Owner | Mitigation |
|
|
101
|
+
|---|---|---|---|
|
|
102
|
+
| | | | |
|
|
103
|
+
|
|
104
|
+
## Open questions
|
|
105
|
+
|
|
106
|
+
<!-- purpose: each with an owner -->
|
|
107
|
+
|
|
108
|
+
| Question | Owner | Answer needed by |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| | | |
|
|
111
|
+
|
|
112
|
+
## Revision history
|
|
113
|
+
|
|
114
|
+
<!-- purpose: a table: version, date, author, what changed -->
|
|
115
|
+
|
|
116
|
+
| Version | Date | Author | What changed |
|
|
117
|
+
|---|---|---|---|
|
|
118
|
+
| 0.1 | | | First draft |
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<!-- orc-doc:template prd — the shipped base template.
|
|
2
|
+
|
|
3
|
+
cover → problem → goals → requirements → risks → rollout, the shape every current template converges on
|
|
4
|
+
|
|
5
|
+
Every `<!-- purpose: … -->` line is an instruction for the WRITER and is
|
|
6
|
+
STRIPPED at compile — it never reaches document.md. A required section with
|
|
7
|
+
no material is NOT written: it comes back as a gap, lands in gaps.md, and is
|
|
8
|
+
raised with you. The deliverable carries content only — never a silent
|
|
9
|
+
omission, never invented filler, and never ORC's own bookkeeping.
|
|
10
|
+
|
|
11
|
+
A template is a floor, not a cage. Your own template REPLACES this one
|
|
12
|
+
entirely (`orc doc init … --template <path>`); the two are never merged.
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
# <document title>
|
|
16
|
+
|
|
17
|
+
## Document info
|
|
18
|
+
|
|
19
|
+
<!-- purpose: title, owner, status, version, date, reviewers — as a table -->
|
|
20
|
+
|
|
21
|
+
| Field | Value |
|
|
22
|
+
|---|---|
|
|
23
|
+
| Title | |
|
|
24
|
+
| Owner | |
|
|
25
|
+
| Status | draft \| in review \| approved |
|
|
26
|
+
| Version | 0.1 |
|
|
27
|
+
| Date | |
|
|
28
|
+
| Reviewers | |
|
|
29
|
+
|
|
30
|
+
## Summary
|
|
31
|
+
|
|
32
|
+
<!-- purpose: what we are building, in three sentences -->
|
|
33
|
+
|
|
34
|
+
## Problem and context
|
|
35
|
+
|
|
36
|
+
<!-- purpose: who hurts, and what the evidence is -->
|
|
37
|
+
|
|
38
|
+
## Goals and success metrics
|
|
39
|
+
|
|
40
|
+
<!-- purpose: each metric with a baseline and a target -->
|
|
41
|
+
|
|
42
|
+
| Goal | Metric | Baseline today | Target | By when |
|
|
43
|
+
|---|---|---|---|---|
|
|
44
|
+
| | | | | |
|
|
45
|
+
|
|
46
|
+
## Non-goals
|
|
47
|
+
|
|
48
|
+
<!-- purpose: what this deliberately does not do -->
|
|
49
|
+
|
|
50
|
+
## Users and jobs to be done
|
|
51
|
+
|
|
52
|
+
<!-- purpose: who they are and what they are trying to get done -->
|
|
53
|
+
|
|
54
|
+
| Who they are | What they are trying to get done | What stops them today |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| | | |
|
|
57
|
+
|
|
58
|
+
## Scenarios and user stories
|
|
59
|
+
|
|
60
|
+
<!-- purpose: the concrete paths through the product -->
|
|
61
|
+
|
|
62
|
+
## Functional requirements
|
|
63
|
+
|
|
64
|
+
<!-- purpose: numbered FR-1…, each with a priority -->
|
|
65
|
+
|
|
66
|
+
| ID | Requirement | Priority | Notes |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| FR-1 | | must \| should \| could | |
|
|
69
|
+
|
|
70
|
+
## Non-functional requirements
|
|
71
|
+
|
|
72
|
+
<!-- purpose: performance, security, privacy, accessibility, i18n, compliance -->
|
|
73
|
+
|
|
74
|
+
| Area | Requirement | How it is measured |
|
|
75
|
+
|---|---|---|
|
|
76
|
+
| Performance | | |
|
|
77
|
+
| Security | | |
|
|
78
|
+
| Privacy | | |
|
|
79
|
+
| Accessibility | | |
|
|
80
|
+
| Internationalisation | | |
|
|
81
|
+
| Compliance | | |
|
|
82
|
+
|
|
83
|
+
## Experience and flows
|
|
84
|
+
|
|
85
|
+
<!-- purpose: links to designs, described in words for readers who cannot open them (optional — drop it at the outline gate if nobody asked for it) -->
|
|
86
|
+
|
|
87
|
+
## Dependencies and assumptions
|
|
88
|
+
|
|
89
|
+
<!-- purpose: what has to be true, and who else is involved -->
|
|
90
|
+
|
|
91
|
+
| What has to be true | Who owns it | What we do if it is not |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| | | |
|
|
94
|
+
|
|
95
|
+
## Risks and open questions
|
|
96
|
+
|
|
97
|
+
<!-- purpose: each with an owner -->
|
|
98
|
+
|
|
99
|
+
| Risk or question | Impact | Owner | What we will do |
|
|
100
|
+
|---|---|---|---|
|
|
101
|
+
| | | | |
|
|
102
|
+
|
|
103
|
+
## Rollout and measurement plan
|
|
104
|
+
|
|
105
|
+
<!-- purpose: how it reaches users and how we know it worked -->
|
|
106
|
+
|
|
107
|
+
## Milestones
|
|
108
|
+
|
|
109
|
+
<!-- purpose: a table: milestone, due, status -->
|
|
110
|
+
|
|
111
|
+
| Milestone | Due | Status |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| | | |
|
|
114
|
+
|
|
115
|
+
## Out of scope for this release
|
|
116
|
+
|
|
117
|
+
<!-- purpose: explicitly deferred, so nobody re-litigates it -->
|
|
118
|
+
|
|
119
|
+
## Glossary
|
|
120
|
+
|
|
121
|
+
<!-- purpose: every term the audience would not already know (optional — drop it at the outline gate if nobody asked for it) -->
|
|
122
|
+
|
|
123
|
+
| Term | What it means here |
|
|
124
|
+
|---|---|
|
|
125
|
+
| | |
|
|
126
|
+
|
|
127
|
+
## Revision history
|
|
128
|
+
|
|
129
|
+
<!-- purpose: a table: version, date, author, what changed -->
|
|
130
|
+
|
|
131
|
+
| Version | Date | Author | What changed |
|
|
132
|
+
|---|---|---|---|
|
|
133
|
+
| 0.1 | | | First draft |
|