@azure-id/orc 1.9.2 → 2.1.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 +722 -0
- package/README-id.md +56 -42
- package/README.md +58 -41
- package/bin/build-agents.js +125 -29
- package/bin/clear-logs.js +620 -0
- package/bin/cli.js +1873 -180
- package/bin/fix.js +459 -0
- package/bin/gotcha-import.js +1081 -0
- package/bin/gotcha.js +1566 -0
- package/bin/graph-query.js +1 -1
- package/bin/graph.js +717 -717
- package/bin/habit.js +1538 -0
- package/bin/mockrun-catalog.js +284 -276
- package/bin/onboarding-content.js +2 -1
- package/bin/pricing.json +28 -21
- package/bin/run-undo.js +398 -0
- package/bin/trace-write.js +869 -0
- package/bin/verify-contracts.js +627 -100
- package/bin/verify-package.js +68 -10
- package/bin/webui/api.js +151 -6
- package/bin/webui/app.html +239 -232
- package/bin/webui/css/00-tokens.css +110 -92
- package/bin/webui/css/04-motion.css +87 -0
- package/bin/webui/css/06-responsive.css +203 -178
- package/bin/webui/css/panels/behaviour.css +205 -0
- package/bin/webui/css/panels/hookui.css +79 -0
- package/bin/webui/fixtures/behaviour.js +562 -0
- package/bin/webui/fixtures/extra.js +9 -9
- package/bin/webui/fixtures/flow.js +81 -81
- package/bin/webui/fixtures/hookui.js +506 -431
- package/bin/webui/fixtures/index.js +66 -3
- package/bin/webui/fixtures/knowledge.js +9 -3
- package/bin/webui/fixtures/maintenance.js +123 -42
- package/bin/webui/fixtures/rules.js +1007 -1002
- package/bin/webui/fixtures/settings.js +6 -7
- package/bin/webui/fixtures/stats.js +25 -6
- package/bin/webui/fixtures/wait.js +98 -97
- package/bin/webui/i18n/en/behaviour.json +156 -0
- package/bin/webui/i18n/en/hookui.json +290 -194
- package/bin/webui/i18n/en/maintenance.json +71 -52
- package/bin/webui/i18n/en/nav.json +25 -24
- package/bin/webui/i18n/en/settings.json +60 -60
- package/bin/webui/i18n/en/tour.json +37 -35
- package/bin/webui/i18n/id/behaviour.json +156 -0
- package/bin/webui/i18n/id/hookui.json +290 -194
- package/bin/webui/i18n/id/maintenance.json +71 -52
- package/bin/webui/i18n/id/nav.json +25 -24
- package/bin/webui/i18n/id/settings.json +60 -60
- package/bin/webui/i18n/id/tour.json +37 -35
- package/bin/webui/js/01-i18n.js +155 -154
- package/bin/webui/js/05-banners.js +181 -172
- package/bin/webui/js/06-edit.js +193 -183
- package/bin/webui/js/90-tour.js +498 -494
- package/bin/webui/js/91-shortcuts.js +126 -126
- package/bin/webui/js/99-boot.js +121 -118
- package/bin/webui/js/panels/behaviour.js +1087 -0
- package/bin/webui/js/panels/hookui.js +2196 -1691
- package/bin/webui/js/panels/maintenance.js +336 -235
- package/bin/webui/js/panels/settings.js +726 -719
- package/mock-run/INDEX.md +110 -107
- package/mock-run/extra-slots.md +1 -1
- package/mock-run/gotcha-import.md +118 -0
- package/mock-run/habits.md +129 -0
- package/mock-run/orc-aftermath.md +392 -392
- package/mock-run/orc-budget.md +29 -33
- package/mock-run/orc-cli.md +200 -200
- package/mock-run/orc-explain.md +86 -86
- package/mock-run/orc-extra.md +389 -392
- package/mock-run/orc-fix.md +87 -0
- package/mock-run/orc-pattern.md +112 -112
- package/mock-run/orc-quick.md +6 -1
- package/mock-run/orc.md +157 -157
- package/package.json +1 -1
- package/templates/agents/MODEL-MAPPING.md +37 -34
- package/templates/agents/orc-advisor-opus-5-xhigh.md +1 -7
- package/templates/agents/orc-analyze-mini-opus-5-med.md +1 -6
- package/templates/agents/orc-analyze-mini-sonnet-5-high.md +2 -5
- package/templates/agents/{orc-claude-writer-opus-4-8-high.md → orc-claude-writer-opus-5-low.md} +48 -53
- package/templates/agents/orc-context-combiner-opus-5-high.md +1 -11
- package/templates/agents/orc-executor-haiku-4-5.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-high.md +14 -6
- package/templates/agents/orc-executor-opus-4-7-med.md +14 -6
- package/templates/agents/orc-executor-opus-4-8-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-high.md +14 -6
- package/templates/agents/orc-executor-opus-5-low.md +14 -6
- package/templates/agents/orc-executor-opus-5-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-high.md +14 -6
- package/templates/agents/orc-executor-sonnet-4-6-med.md +14 -6
- package/templates/agents/orc-executor-sonnet-5-high.md +15 -7
- package/templates/agents/orc-executor-sonnet-5-low.md +155 -0
- package/templates/agents/orc-executor-sonnet-5-med.md +155 -0
- package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -10
- package/templates/agents/orc-judge-opus-5-xhigh.md +5 -9
- package/templates/agents/orc-learn-writer-opus-5-low.md +1 -7
- package/templates/agents/orc-pattern-codifier-opus-5-med.md +1 -8
- package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +58 -63
- package/templates/agents/orc-planner-mini-opus-5-med.md +1 -4
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -3
- package/templates/agents/orc-planner-opus-5-med.md +1 -4
- package/templates/agents/orc-recon-opus-5-low.md +1 -8
- package/templates/agents/orc-recon-sonnet-4-6-med.md +1 -8
- package/templates/agents/orc-retro-opus-5-med.md +6 -8
- package/templates/agents/orc-retro-sonnet-5-high.md +7 -8
- package/templates/agents/orc-reviewer-opus-5-low.md +96 -0
- package/templates/agents/orc-scout-opus-5-low.md +1 -6
- package/templates/agents/orc-scout-sonnet-4-6-high.md +35 -39
- package/templates/agents/orc-system-analyst-opus-5-high.md +1 -6
- package/templates/agents/orc-test-author-opus-5-med.md +4 -5
- package/templates/agents/orc-trace-writer-haiku-4-5.md +3 -7
- package/templates/agents/orc-verifier-opus-5-med.md +16 -8
- package/templates/agents/{orc-wiki-scanner-opus-4-8-high.md → orc-wiki-scanner-opus-5-low.md} +74 -79
- package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +97 -106
- package/templates/commands/orc-analyze.md +13 -21
- package/templates/commands/orc-fast.md +10 -15
- package/templates/commands/orc-fix.md +18 -0
- package/templates/commands/orc-poly.md +12 -21
- package/templates/commands/orc-pr-driver.md +11 -30
- package/templates/commands/orc-pr-setup.md +10 -31
- package/templates/commands/orc-route.md +11 -41
- package/templates/commands/orc-test.md +5 -60
- package/templates/commands/orc-wiki.md +64 -64
- package/templates/hooks/README.md +109 -7
- package/templates/hooks/orc-session-hook.js +339 -0
- package/templates/hooks/orc-statusline-render.js +317 -23
- package/templates/hooks/orc-statusline.js +165 -50
- package/templates/hooks/orc-subagent-line.js +23 -5
- package/templates/hooks/orc-weather-fetch.js +123 -0
- package/templates/skills/_shared/README.md +9 -0
- package/templates/skills/_shared/code-graph.md +47 -55
- package/templates/skills/_shared/config-precedence.md +3 -1
- package/templates/skills/_shared/extra-dispatch.md +78 -93
- package/templates/skills/_shared/gotchas.md +248 -177
- package/templates/skills/_shared/habits.md +101 -0
- package/templates/skills/_shared/lane-contract.md +84 -0
- package/templates/skills/_shared/opus5-only.md +14 -14
- package/templates/skills/_shared/phases/README.md +142 -83
- package/templates/skills/_shared/phases/analyst-gates.md +10 -21
- package/templates/skills/_shared/phases/execution.md +8 -14
- package/templates/skills/_shared/phases/house-rules.md +27 -32
- package/templates/skills/_shared/phases/intake.md +127 -133
- package/templates/skills/_shared/phases/mock-example.md +46 -56
- package/templates/skills/_shared/phases/plan-handoff.md +91 -97
- package/templates/skills/_shared/phases/planning.md +7 -17
- package/templates/skills/_shared/phases/preflight.md +19 -42
- package/templates/skills/_shared/phases/review.md +24 -28
- package/templates/skills/_shared/phases/rules.md +18 -42
- package/templates/skills/_shared/phases/scoring.md +55 -65
- package/templates/skills/_shared/phases/security-checklist.md +46 -50
- package/templates/skills/_shared/phases/security.md +45 -55
- package/templates/skills/_shared/phases/ship.md +6 -15
- package/templates/skills/_shared/phases/stop-resume.md +2 -5
- package/templates/skills/_shared/phases/summary.md +73 -48
- package/templates/skills/_shared/phases/testgen.md +41 -51
- package/templates/skills/_shared/phases/trace-verbs.md +447 -0
- package/templates/skills/_shared/phases/trace.md +66 -297
- package/templates/skills/_shared/phases/verify.md +62 -70
- package/templates/skills/_shared/phases/wave-grouping.md +128 -133
- package/templates/skills/_shared/phases/wiki-consult.md +10 -6
- package/templates/skills/_shared/read-ladder.md +2 -55
- package/templates/skills/_shared/return-validation.md +17 -70
- package/templates/skills/_shared/review-slice.md +106 -0
- package/templates/skills/_shared/smoke-gate.md +46 -28
- package/templates/skills/_shared/wait.md +1 -0
- package/templates/skills/context-combiner/SKILL.md +15 -44
- package/templates/skills/orc/README.md +2 -2
- package/templates/skills/orc/SKILL.md +35 -63
- package/templates/skills/orc/config.md +25 -27
- package/templates/skills/orc/examples/full-run-mock.md +2 -1
- package/templates/skills/orc/references/effort-and-mode.md +17 -17
- package/templates/skills/orc/references/pattern-gate.md +89 -89
- package/templates/skills/orc/references/phases/intake.md +41 -47
- package/templates/skills/orc/references/phases/integration.md +13 -19
- package/templates/skills/orc/references/preflight-report.md +11 -12
- package/templates/skills/orc/references/ultra-mode.md +9 -7
- package/templates/skills/orc/schemas/checkpoint.md +122 -122
- package/templates/skills/orc/subskills/orc-execution/SKILL.md +27 -73
- package/templates/skills/orc/subskills/orc-execution/core.md +12 -99
- package/templates/skills/orc/subskills/orc-execution/subagent.md +14 -13
- package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +12 -53
- package/templates/skills/orc/subskills/orc-review-verify/core.md +52 -135
- package/templates/skills/orc/subskills/orc-review-verify/subagent.md +7 -7
- package/templates/skills/orc/subskills/orc-testgen/SKILL.md +11 -22
- package/templates/skills/orc/subskills/orc-testgen/core.md +20 -59
- package/templates/skills/orc/subskills/orc-testgen/subagent.md +7 -7
- package/templates/skills/orc-advisor/SKILL.md +56 -60
- package/templates/skills/orc-analyze/SKILL.md +33 -67
- package/templates/skills/orc-analyze/schemas/report-audit.md +2 -1
- package/templates/skills/orc-analyze/schemas/report-prose.md +2 -1
- package/templates/skills/orc-analyze-mini/SKILL.md +35 -70
- package/templates/skills/orc-claude/SKILL.md +14 -14
- package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -65
- package/templates/skills/orc-diy/README.md +31 -0
- package/templates/skills/orc-diy/SKILL.md +27 -78
- package/templates/skills/orc-diy/references/blocks/pattern.md +18 -18
- package/templates/skills/orc-fast/SKILL.md +49 -75
- package/templates/skills/orc-fix/SKILL.md +110 -0
- package/templates/skills/orc-judge/SKILL.md +77 -82
- package/templates/skills/orc-mini/SKILL.md +64 -112
- package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -2
- package/templates/skills/orc-pattern/SKILL.md +27 -48
- package/templates/skills/orc-poly/SKILL.md +32 -61
- package/templates/skills/orc-pr-driver/SKILL.md +25 -51
- package/templates/skills/orc-pr-driver/references/green-gate.md +113 -105
- package/templates/skills/orc-pr-setup/SKILL.md +20 -45
- package/templates/skills/orc-quick/README.md +44 -3
- package/templates/skills/orc-quick/SKILL.md +77 -108
- package/templates/skills/orc-quick/references/dispatch-gate.md +18 -6
- package/templates/skills/orc-quick/references/gh-mode.md +50 -1
- package/templates/skills/orc-quick/references/look.md +3 -1
- package/templates/skills/orc-retro/SKILL.md +20 -19
- package/templates/skills/orc-retro/examples/retro-mock.md +17 -17
- package/templates/skills/orc-route/SKILL.md +25 -45
- package/templates/skills/orc-test/SKILL.md +16 -37
- package/templates/skills/orc-verify/SKILL.md +14 -32
- package/templates/skills/orc-wait/SKILL.md +156 -163
- package/templates/skills/orc-wiki/README.md +325 -325
- package/templates/skills/orc-wiki/SKILL.md +195 -195
- package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -37
- package/templates/skills/orc-wiki/references/extra.md +2 -2
- package/templates/skills/orc-wiki/references/partial-refresh.md +276 -271
- package/templates/skills/orc-wiki/references/phases/phase-0.md +2 -7
- package/templates/skills/orc-wiki/references/phases/phase-1.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-2.md +4 -9
- package/templates/skills/orc-wiki/references/phases/phase-3.md +1 -6
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +4 -8
- package/templates/agents/orc-claude-writer-opus-5-med.md +0 -55
- package/templates/agents/orc-reviewer-opus-5-med.md +0 -60
- package/templates/agents/orc-wiki-scanner-opus-5-med.md +0 -81
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Template — Analyst Report (AUDIT mode)
|
|
2
2
|
|
|
3
3
|
Human-readable source of truth. You review and confirm this; the machine spec
|
|
4
|
-
is derived from it. Written to
|
|
4
|
+
is derived from it. Written to `<analyzer_dir>/{analysis-name}/report.md`;
|
|
5
|
+
COPIED to `<report_out_dir>/{analysis-name}/` only on the stop-here branch.
|
|
5
6
|
|
|
6
7
|
```markdown
|
|
7
8
|
# Analysis Report — {analysis-name}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Template — Analyst Report (PROSE mode)
|
|
2
2
|
|
|
3
|
-
Human-readable source of truth. Written to
|
|
3
|
+
Human-readable source of truth. Written to `<analyzer_dir>/{analysis-name}/report.md`;
|
|
4
|
+
COPIED to `<report_out_dir>/{analysis-name}/` only on the stop-here branch.
|
|
4
5
|
|
|
5
6
|
```markdown
|
|
6
7
|
# Analysis Report — {analysis-name}
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orc-analyze-mini
|
|
3
3
|
description: >
|
|
4
|
-
Fast-lane System Analyst for ORC-MINI (Sonnet 5, high effort).
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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.
|
|
4
|
+
Fast-lane System Analyst for ORC-MINI (Sonnet 5, high effort). Use for
|
|
5
|
+
"/orc-analyze-mini", "quickly analyze this doc", "fast doc analysis", "quick
|
|
6
|
+
requirement check", "fast requirement analysis", or when orc-mini meets a
|
|
7
|
+
document or an ambiguous requirement. Writes a scope-bounded requirement
|
|
8
|
+
report with file:line evidence. ALWAYS single-pass — NO deep mode, NO scouts;
|
|
9
|
+
use /orc-analyze for depth.
|
|
17
10
|
---
|
|
18
11
|
|
|
19
12
|
# ORC-ANALYZE-MINI
|
|
@@ -39,48 +32,37 @@ for the formats; this skill does not duplicate them.
|
|
|
39
32
|
silently dropped.
|
|
40
33
|
- **No deep mode, no scouts.** Always single-pass.
|
|
41
34
|
- **Concrete escalation thresholds** (recommend the full `/orc-analyze`, Opus
|
|
42
|
-
|
|
35
|
+
5.5 high, and let the user choose — the boundary is not self-assessed vibes):
|
|
43
36
|
source doc > ~10 pages, OR > 12 in-scope requirements, OR > 3 conflict rows,
|
|
44
37
|
OR audit mode with > 5 stale-premise rows.
|
|
45
38
|
- **Model:** Sonnet 5, high effort.
|
|
46
39
|
|
|
47
40
|
## What's identical
|
|
48
41
|
|
|
42
|
+
The full analyst's **hard rules 2, 3, 3a, 4a, 5 and 6** apply unchanged
|
|
43
|
+
(`../orc-analyze/SKILL.md` §Hard rules): quote-anchored evidence-or-mark with
|
|
44
|
+
`searched:` on absence claims, the read ladder (`../_shared/read-ladder.md`),
|
|
45
|
+
recommended-option challenges, two perimeters with the **Additional context (do
|
|
46
|
+
not build)** section, and a spec derived from the confirmed report (with the Evidence column and the
|
|
47
|
+
Assumptions & Open Questions section). Anchored context is self-read (no
|
|
48
|
+
scouts). Also the same:
|
|
49
|
+
|
|
49
50
|
- **Doc-optional intake:** auto-detect + confirm mode — prose / audit
|
|
50
|
-
(documents) or **requirement** (NO doc; the
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
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.
|
|
51
|
+
(documents) or **requirement** (NO doc; the request is the source of truth).
|
|
52
|
+
- Same folder `orc/analyzer/{analysis-name}/` (internal; copied out only on
|
|
53
|
+
report-only). The spec is stamped with `git_head` + `dirty` for plan-time
|
|
54
|
+
staleness detection.
|
|
71
55
|
- Same branch: report-only, or take into build (hand both files to orc-mini,
|
|
72
|
-
which continues with the mini planner
|
|
73
|
-
|
|
56
|
+
which continues with the mini planner and runs the same evidence spot-check +
|
|
57
|
+
derivation lint gates).
|
|
74
58
|
|
|
75
59
|
## Behavior trace (always on)
|
|
76
60
|
|
|
77
|
-
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases`
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Nothing else about the protocol is restated here; a phase that ends with
|
|
83
|
-
`zero new trace lines is a protocol violation`.
|
|
61
|
+
`../_shared/phases/trace.md` (`core`, at run start; `orc lane phases orc-analyze-mini --json` →
|
|
62
|
+
`trace_grammar` gives the verbs). Lane token `analyze`, tier
|
|
63
|
+
**Single-dispatch**. At run start write `log_dir/.current` =
|
|
64
|
+
`run-analyze-<slug>-<DDMMYY>-<HHMMSS>.txt` AND `touch the trace file` of that name
|
|
65
|
+
in the SAME step. A phase that ends with `zero new trace lines is a protocol violation`.
|
|
84
66
|
|
|
85
67
|
## Workflow checkpoint (gate before deriving the spec)
|
|
86
68
|
|
|
@@ -108,29 +90,12 @@ survived. Return exactly:
|
|
|
108
90
|
|
|
109
91
|
Never build or spawn.
|
|
110
92
|
|
|
111
|
-
##
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
**ONE catalogue, and it is not you:** `orc lane calls orc-analyze-mini --json` names every
|
|
122
|
-
CLI call this lane makes, each with its exit-code contract, its cost, when to run
|
|
123
|
-
it, and what an EMPTY answer means. Never invent a spelling, never re-word an
|
|
124
|
-
exit code, and never re-derive a state word — the CLI's state words are the only
|
|
125
|
-
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
126
|
-
a failure**. A call the answer does not name is a call this lane does not make.
|
|
127
|
-
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
128
|
-
command you are about to run, out loud, before running it.
|
|
129
|
-
|
|
130
|
-
## Rules — the anti-slop card (`../_shared/phases/rules.md`)
|
|
131
|
-
|
|
132
|
-
`orc rules slice --lane orc-analyze-mini --json` is the ONLY assembler; never build
|
|
133
|
-
the card here. It rides under the house rules and above the task —
|
|
134
|
-
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
135
|
-
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
136
|
-
never a silent choice) and `rules_overridden[]`.
|
|
93
|
+
## Lane contract (`../_shared/lane-contract.md` — read it ONLY when a call exits ≠ 0)
|
|
94
|
+
|
|
95
|
+
- **Calls:** `orc lane calls orc-analyze-mini --json` names every call and its exit codes.
|
|
96
|
+
**An exit code is an ANSWER where it says so, not a failure.** Make no other call.
|
|
97
|
+
- **Config:** `orc lane config orc-analyze-mini --json`. Obey `effective`. Never merge
|
|
98
|
+
`.claude/orc.config.yaml` yourself (`../_shared/config-precedence.md`). Nothing
|
|
99
|
+
here is contested, gated or a stop: no preflight line, no gate to honour.
|
|
100
|
+
- **Rules:** `orc rules slice --lane orc-analyze-mini --json` is the ONLY assembler
|
|
101
|
+
(`../_shared/phases/rules.md`). Its `line` prints VERBATIM at preflight.
|
|
@@ -10,7 +10,7 @@ description: >
|
|
|
10
10
|
template the user fills in themself. Refresh regenerates ONLY stale sections
|
|
11
11
|
and bumps the file version by 0.0.1. Never trims user-authored content;
|
|
12
12
|
never touches the orc-wiki pointer block. The skill dispatches the pinned
|
|
13
|
-
orc-claude-writer-opus-
|
|
13
|
+
orc-claude-writer-opus-5-low agent — it never writes the file itself.
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# ORC-CLAUDE (standalone)
|
|
@@ -20,11 +20,11 @@ The target is ALWAYS `<repo root>/CLAUDE.md` of the current working directory
|
|
|
20
20
|
never `~/.claude/CLAUDE.md`, even if ORC is installed globally.
|
|
21
21
|
|
|
22
22
|
**Dispatch, don't do.** Whatever model this chat runs on, the skill itself only
|
|
23
|
-
selects the mode and spawns `orc-claude-writer-opus-
|
|
24
|
-
engine) — so the scan + writing always run at Opus
|
|
25
|
-
caller's tier.
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
selects the mode and spawns `orc-claude-writer-opus-5-low` (the pinned
|
|
24
|
+
engine) — so the scan + writing always run at Opus 5.5 low regardless of the
|
|
25
|
+
caller's tier. `opus5_only` does not change this role. The writer is already
|
|
26
|
+
Opus 5.5 low, so that mode has nothing to flip (see `../_shared/opus5-only.md`).
|
|
27
|
+
The writer needs an Opus 5.5 main session in both modes.
|
|
28
28
|
The one exception: the skill also writes the
|
|
29
29
|
trace pointer + a few markers around that spawn (behavior-trace logging is
|
|
30
30
|
permanent; see "Behavior trace"); that
|
|
@@ -70,18 +70,18 @@ set in "Behavior trace").
|
|
|
70
70
|
`touch the trace file` of that name in the SAME step, BEFORE the spawn (a
|
|
71
71
|
pointer to a file that does not exist reads as dangling — the hook rotates
|
|
72
72
|
away from it and the run splits across two files).
|
|
73
|
-
2. Spawn `orc-claude-writer-opus-
|
|
74
|
-
|
|
73
|
+
2. Spawn `orc-claude-writer-opus-5-low` (also under `opus5_only` — that mode
|
|
74
|
+
does not change this role) with: `mode`, `repo_root`,
|
|
75
75
|
`budget` (from a `budget=N` argument, else null), and the paths to
|
|
76
76
|
`references/template.md` + `references/refresh.md`. **Trace:** emit
|
|
77
|
-
`DISPATCH orc-claude-writer :: <mode> expect=opus-
|
|
78
|
-
spawn (
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
`DISPATCH orc-claude-writer :: <mode> expect=opus-5/low` just before the
|
|
78
|
+
spawn (the expectation is derived from the agent NAME you actually
|
|
79
|
+
dispatched, never from this line's default; the hook then adds
|
|
80
|
+
`SPAWN`/`RETURN` on its own).
|
|
81
81
|
3. On return, check `actual_model`/`actual_effort` against the pinned tier —
|
|
82
82
|
mismatch → prepend a tier-downgrade warning to the report. **Trace:** emit
|
|
83
83
|
`VERIFY writer actual=<model>/<effort> ✅ MATCH` (or
|
|
84
|
-
`⛔ DOWNGRADE expected=opus-
|
|
84
|
+
`⛔ DOWNGRADE expected=opus-5/low`).
|
|
85
85
|
4. Relay the Phase-3 report verbatim. **Trace:** emit
|
|
86
86
|
`FINISH :: <mode_ran> CLAUDE.md v<X.Y.Z>` (mode_ran may be `noop`), then
|
|
87
87
|
delete `log_dir/.current`. Then stop. The skill NEVER writes CLAUDE.md
|
|
@@ -175,7 +175,7 @@ Dispatch-only lane: emit ONLY the markers it can truthfully witness — **not**
|
|
|
175
175
|
`PHASE`/`SCORE`/`FINDING`/`VERDICT`, because scan/generate/report run INSIDE
|
|
176
176
|
the writer sub-agent and there is no scoring or review here. The marker set, in
|
|
177
177
|
order (actor `orc`, plus the hook's `SPAWN`/`RETURN`): `DISPATCH
|
|
178
|
-
orc-claude-writer :: <mode> expect=opus-
|
|
178
|
+
orc-claude-writer :: <mode> expect=opus-5/low` before the spawn (the mode
|
|
179
179
|
rides in this tail and in `FINISH`, so no separate mode marker) · `VERIFY writer
|
|
180
180
|
actual=<model>/<effort>` · `FINISH :: <mode_ran> CLAUDE.md v<X.Y.Z>`, where
|
|
181
181
|
`mode_ran` may be `noop`. A noop refresh still traces the full cycle.
|
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
# Worked example — orc-claude runs (mock; orient only, never execute from this)
|
|
2
|
-
|
|
3
|
-
## Run 1 — UPDATE (existing hand-written CLAUDE.md, 610 lines)
|
|
4
|
-
|
|
5
|
-
U: /orc-claude
|
|
6
|
-
C: CLAUDE.md exists, no orc-claude:meta header → UPDATE mode. Spawns
|
|
7
|
-
orc-claude-writer-opus-
|
|
8
|
-
W: Scans: pnpm monorepo (3 workspaces), turbo, eslint+prettier, vitest,
|
|
9
|
-
Postgres migrations under `packages/db/migrations`.
|
|
10
|
-
W: Copies CLAUDE.md → CLAUDE.md.bak. Injects meta header (v0.0.1, 12-07-2026,
|
|
11
|
-
line-budget: 400) + P0 placeholder at top, appends fenced sections:
|
|
12
|
-
commands, layout (ownership map), conventions, boundaries, workflow,
|
|
13
|
-
decisions, patterns, gotchas placeholder, testing, environment, glossary
|
|
14
|
-
placeholder. Skips `adr` (nothing scannable). Existing 610 lines: untouched.
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
ORC-CLAUDE — update → CLAUDE.md v0.0.1 (12-07-2026)
|
|
18
|
-
Sections written: p0*, commands, layout, conventions, boundaries, workflow,
|
|
19
|
-
decisions, patterns, gotchas*, testing, environment, glossary* (*=fill yourself)
|
|
20
|
-
Skipped (empty scan): adr, pointers
|
|
21
|
-
Preserved untouched: user content (610 lines), no wiki block found
|
|
22
|
-
Conflicts flagged (NOT auto-edited):
|
|
23
|
-
- existing line 42 says "run yarn test" — repo uses pnpm (pnpm test)
|
|
24
|
-
Backup: CLAUDE.md.bak written (add it to .gitignore)
|
|
25
|
-
NOTE: file is 802 lines total (budget covers generated content only) — trim
|
|
26
|
-
unused user content yourself for better instruction-following.
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Run 2 — REFRESH, one stale section
|
|
30
|
-
|
|
31
|
-
U: /orc-claude (weeks later; `test` script renamed to `test:unit` + `test:e2e`)
|
|
32
|
-
C: Header found → REFRESH → spawns the writer.
|
|
33
|
-
W: Recomputes fingerprints: only `commands` differs (e3f1a2 → 8c04b1). Writes
|
|
34
|
-
.bak, replaces the commands fence interior, bumps 0.0.1 → 0.0.2,
|
|
35
|
-
updated: 03-08-2026. User's edits outside fences + the wiki block:
|
|
36
|
-
byte-identical. Returns actual_model=claude-opus-4-8, actual_effort=high.
|
|
37
|
-
|
|
38
|
-
## Run 3 — REFRESH, noop
|
|
39
|
-
|
|
40
|
-
U: /orc-claude
|
|
41
|
-
W: All fingerprints match →
|
|
42
|
-
`CLAUDE.md up to date (v0.0.2, 03-08-2026)` — no write, no bump, no bak.
|
|
43
|
-
|
|
44
|
-
## Run 4 — behavior trace (permanent, always on)
|
|
45
|
-
|
|
46
|
-
Same dispatch as any run, plus the minimal one-dispatch trace. The skill writes
|
|
47
|
-
the run pointer (`run-claude-<slug>-<DDMMYY>-<HHMMSS>.txt` into `log_dir`)
|
|
48
|
-
FIRST, records these events as they happen, and — as a single-dispatch lane —
|
|
49
|
-
dispatches the trace writer ONCE at run end to append them (`SPAWN`/`RETURN`
|
|
50
|
-
come from the `orc-trace.js` hook as they occur):
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
[120726 09:14:02.110] writer DISPATCH orc-claude-writer :: refresh expect=opus-
|
|
54
|
-
[120726 09:14:02.230] hook SPAWN orc-claude-writer-opus-
|
|
55
|
-
[120726 09:15:47.900] hook RETURN
|
|
56
|
-
[120726 09:15:48.010] writer VERIFY writer actual=claude-opus-
|
|
57
|
-
[120726 09:15:48.120] writer FINISH :: refresh CLAUDE.md v0.0.3
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Then the writer packet returns and the run pointer is deleted (in that order).
|
|
61
|
-
A noop refresh traces the same shape, ending
|
|
62
|
-
`FINISH :: noop`. No phase/score/gate/finding/verdict markers — orc-claude
|
|
63
|
-
runs none of those phases (they live inside the writer). The `orc-trace.js` hook
|
|
64
|
-
bootstraps the pointer on the writer dispatch, so the SPAWN/RETURN skeleton is
|
|
65
|
-
captured even if the skill's run-start step is skipped.
|
|
1
|
+
# Worked example — orc-claude runs (mock; orient only, never execute from this)
|
|
2
|
+
|
|
3
|
+
## Run 1 — UPDATE (existing hand-written CLAUDE.md, 610 lines)
|
|
4
|
+
|
|
5
|
+
U: /orc-claude
|
|
6
|
+
C: CLAUDE.md exists, no orc-claude:meta header → UPDATE mode. Spawns
|
|
7
|
+
orc-claude-writer-opus-5-low (the skill never writes the file itself).
|
|
8
|
+
W: Scans: pnpm monorepo (3 workspaces), turbo, eslint+prettier, vitest,
|
|
9
|
+
Postgres migrations under `packages/db/migrations`.
|
|
10
|
+
W: Copies CLAUDE.md → CLAUDE.md.bak. Injects meta header (v0.0.1, 12-07-2026,
|
|
11
|
+
line-budget: 400) + P0 placeholder at top, appends fenced sections:
|
|
12
|
+
commands, layout (ownership map), conventions, boundaries, workflow,
|
|
13
|
+
decisions, patterns, gotchas placeholder, testing, environment, glossary
|
|
14
|
+
placeholder. Skips `adr` (nothing scannable). Existing 610 lines: untouched.
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
ORC-CLAUDE — update → CLAUDE.md v0.0.1 (12-07-2026)
|
|
18
|
+
Sections written: p0*, commands, layout, conventions, boundaries, workflow,
|
|
19
|
+
decisions, patterns, gotchas*, testing, environment, glossary* (*=fill yourself)
|
|
20
|
+
Skipped (empty scan): adr, pointers
|
|
21
|
+
Preserved untouched: user content (610 lines), no wiki block found
|
|
22
|
+
Conflicts flagged (NOT auto-edited):
|
|
23
|
+
- existing line 42 says "run yarn test" — repo uses pnpm (pnpm test)
|
|
24
|
+
Backup: CLAUDE.md.bak written (add it to .gitignore)
|
|
25
|
+
NOTE: file is 802 lines total (budget covers generated content only) — trim
|
|
26
|
+
unused user content yourself for better instruction-following.
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Run 2 — REFRESH, one stale section
|
|
30
|
+
|
|
31
|
+
U: /orc-claude (weeks later; `test` script renamed to `test:unit` + `test:e2e`)
|
|
32
|
+
C: Header found → REFRESH → spawns the writer.
|
|
33
|
+
W: Recomputes fingerprints: only `commands` differs (e3f1a2 → 8c04b1). Writes
|
|
34
|
+
.bak, replaces the commands fence interior, bumps 0.0.1 → 0.0.2,
|
|
35
|
+
updated: 03-08-2026. User's edits outside fences + the wiki block:
|
|
36
|
+
byte-identical. Returns actual_model=claude-opus-4-8, actual_effort=high.
|
|
37
|
+
|
|
38
|
+
## Run 3 — REFRESH, noop
|
|
39
|
+
|
|
40
|
+
U: /orc-claude
|
|
41
|
+
W: All fingerprints match →
|
|
42
|
+
`CLAUDE.md up to date (v0.0.2, 03-08-2026)` — no write, no bump, no bak.
|
|
43
|
+
|
|
44
|
+
## Run 4 — behavior trace (permanent, always on)
|
|
45
|
+
|
|
46
|
+
Same dispatch as any run, plus the minimal one-dispatch trace. The skill writes
|
|
47
|
+
the run pointer (`run-claude-<slug>-<DDMMYY>-<HHMMSS>.txt` into `log_dir`)
|
|
48
|
+
FIRST, records these events as they happen, and — as a single-dispatch lane —
|
|
49
|
+
dispatches the trace writer ONCE at run end to append them (`SPAWN`/`RETURN`
|
|
50
|
+
come from the `orc-trace.js` hook as they occur):
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
[120726 09:14:02.110] writer DISPATCH orc-claude-writer :: refresh expect=opus-5/low
|
|
54
|
+
[120726 09:14:02.230] hook SPAWN orc-claude-writer-opus-5-low
|
|
55
|
+
[120726 09:15:47.900] hook RETURN
|
|
56
|
+
[120726 09:15:48.010] writer VERIFY writer actual=claude-opus-5-5/low ✅ MATCH
|
|
57
|
+
[120726 09:15:48.120] writer FINISH :: refresh CLAUDE.md v0.0.3
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Then the writer packet returns and the run pointer is deleted (in that order).
|
|
61
|
+
A noop refresh traces the same shape, ending
|
|
62
|
+
`FINISH :: noop`. No phase/score/gate/finding/verdict markers — orc-claude
|
|
63
|
+
runs none of those phases (they live inside the writer). The `orc-trace.js` hook
|
|
64
|
+
bootstraps the pointer on the writer dispatch, so the SPAWN/RETURN skeleton is
|
|
65
|
+
captured even if the skill's run-start step is skipped.
|
|
@@ -98,6 +98,37 @@ installed orc skill, stitches `.claude/orc/diy/FLOW-COMPILED.md`, and stamps
|
|
|
98
98
|
`orc diy compile`, and offers the regular `/orc` lane for the request at
|
|
99
99
|
hand. `/orc-diy compile` in a session just runs the same CLI compiler.
|
|
100
100
|
|
|
101
|
+
### Where the compiled flow comes from (maintainer view)
|
|
102
|
+
|
|
103
|
+
You never read these; `orc diy compile` does, once, and stitches the result
|
|
104
|
+
into `FLOW-COMPILED.md`. The table is here so a maintainer can see the
|
|
105
|
+
provenance of a compiled phase without reading the compiler — `orc lane phases
|
|
106
|
+
orc-diy --json` is the authoritative version and marks every row below
|
|
107
|
+
`when: compile-time`.
|
|
108
|
+
|
|
109
|
+
Eleven phases come from the shared library, as that file's `composed` LAYER —
|
|
110
|
+
NOT its `full` layer, which is `/orc`'s procedure for the same phase:
|
|
111
|
+
`../_shared/phases/trace.md` · `../_shared/phases/planning.md` ·
|
|
112
|
+
`../_shared/phases/scoring.md` · `../_shared/phases/execution.md` ·
|
|
113
|
+
`../_shared/phases/review.md` · `../_shared/phases/security.md` ·
|
|
114
|
+
`../_shared/phases/verify.md` · `../_shared/phases/testgen.md` ·
|
|
115
|
+
`../_shared/phases/mock-example.md` · `../_shared/phases/ship.md` ·
|
|
116
|
+
`../_shared/phases/summary.md`.
|
|
117
|
+
|
|
118
|
+
Five have no counterpart anywhere else in the payload and stay this lane's own:
|
|
119
|
+
`references/blocks/header.md` (the tier self-gate), `wiki.md`, `analyze.md`,
|
|
120
|
+
`pattern.md` and `extra.md`. They are composition prose about a decision only a
|
|
121
|
+
composed flow makes, so there is nothing to share them WITH.
|
|
122
|
+
|
|
123
|
+
Four more are pointed at from inside those stitched layers rather than stitched
|
|
124
|
+
themselves: `../_shared/phases/intake.md`,
|
|
125
|
+
`../_shared/phases/wave-grouping.md`,
|
|
126
|
+
`../_shared/phases/security-checklist.md` and
|
|
127
|
+
`../_shared/phases/stop-resume.md`.
|
|
128
|
+
|
|
129
|
+
The stitch ORDER is the compiler's `order` array and is documented in
|
|
130
|
+
`references/compile.md`; a golden test holds the three lists together.
|
|
131
|
+
|
|
101
132
|
## 4. Run
|
|
102
133
|
|
|
103
134
|
```
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: orc-diy
|
|
3
3
|
description: >
|
|
4
|
-
User-composable ORC lane. Use for "/orc-diy" or "run my custom orc flow".
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
plain /orc instead. "/orc-diy compile" re-runs the deterministic CLI
|
|
11
|
-
compiler. See references/flow-schema.md and references/compile.md.
|
|
4
|
+
User-composable ORC lane. Use for "/orc-diy" or "run my custom orc flow". The
|
|
5
|
+
pipeline shape is configured ENTIRELY through the `orc diy` CLI and compiled
|
|
6
|
+
into a flow file — never configured in-session. HARD-GATED: no config or a
|
|
7
|
+
stale compile → this skill never runs the custom flow; it explains the CLI
|
|
8
|
+
steps and offers plain /orc instead. "/orc-diy compile" re-runs the
|
|
9
|
+
deterministic CLI compiler.
|
|
12
10
|
---
|
|
13
11
|
|
|
14
12
|
# ORC-DIY (stub — gate + dispatcher)
|
|
@@ -51,73 +49,31 @@ unavailable, apply the same checks manually from
|
|
|
51
49
|
|
|
52
50
|
## Step 2 — dispatch the compiled flow
|
|
53
51
|
|
|
52
|
+
First `orc lane config orc-diy --json`. **`habits{}` in it → print `habits.line`,
|
|
53
|
+
read `../_shared/habits.md` NOW**; none → ignore every `(H …)`. Then:
|
|
54
54
|
Read `.claude/orc/diy/FLOW-COMPILED.md` and follow it as your orchestrator
|
|
55
55
|
spine for this run — it is self-contained: tier self-check, locked rules,
|
|
56
56
|
phase sequence, and the references it cherry-picks from the installed orc
|
|
57
57
|
skill. Honor its generated header: if its own self-gate fails, stop exactly
|
|
58
|
-
as it says.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
orc
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
NOT its `full` layer, which is `/orc`'s procedure for the same phase:
|
|
72
|
-
`../_shared/phases/trace.md` · `../_shared/phases/planning.md` ·
|
|
73
|
-
`../_shared/phases/scoring.md` · `../_shared/phases/execution.md` ·
|
|
74
|
-
`../_shared/phases/review.md` · `../_shared/phases/security.md` ·
|
|
75
|
-
`../_shared/phases/verify.md` · `../_shared/phases/testgen.md` ·
|
|
76
|
-
`../_shared/phases/mock-example.md` · `../_shared/phases/ship.md` ·
|
|
77
|
-
`../_shared/phases/summary.md`.
|
|
78
|
-
|
|
79
|
-
Five have no counterpart anywhere else in the payload and stay this lane's own:
|
|
80
|
-
`references/blocks/header.md` (the tier self-gate), `wiki.md`, `analyze.md`,
|
|
81
|
-
`pattern.md` and `extra.md`. They are composition prose about a decision only a
|
|
82
|
-
composed flow makes, so there is nothing to share them WITH.
|
|
83
|
-
|
|
84
|
-
Four more are pointed at from inside those stitched layers rather than stitched
|
|
85
|
-
themselves: `../_shared/phases/intake.md`,
|
|
86
|
-
`../_shared/phases/wave-grouping.md`,
|
|
87
|
-
`../_shared/phases/security-checklist.md` and
|
|
88
|
-
`../_shared/phases/stop-resume.md`.
|
|
89
|
-
|
|
90
|
-
The stitch ORDER is the compiler's `order` array and is documented in
|
|
91
|
-
`references/compile.md`; a golden test holds the three lists together.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
## Config
|
|
95
|
-
|
|
96
|
-
**ONE resolver, and it is not you:** `orc lane config orc-diy --json`. Obey
|
|
97
|
-
`effective`, print every line in `announce[]` VERBATIM at preflight, and honour
|
|
98
|
-
`stops[]` before wave 1. Never re-derive a value, a precedence or an inertness
|
|
99
|
-
from `.claude/orc.config.yaml` — a key this lane does not read is not in the
|
|
100
|
-
answer, and a key another key shadows comes back already marked. Exit ≠ 0 → say
|
|
101
|
-
the CLI is unavailable and fall back to `../_shared/config-precedence.md`'s
|
|
102
|
-
documented defaults, out loud. Priorities and families:
|
|
103
|
-
`../_shared/config-precedence.md`.
|
|
58
|
+
as it says. Never consult this stub again this run, and never load orc's
|
|
59
|
+
SKILL.md as a spine — the flow names every subskill and schema it needs.
|
|
60
|
+
|
|
61
|
+
## Lane contract (`../_shared/lane-contract.md` — read it ONLY when a call exits ≠ 0)
|
|
62
|
+
|
|
63
|
+
- **Calls:** `orc lane calls orc-diy --json` names every call and its exit codes.
|
|
64
|
+
**An exit code is an ANSWER where it says so, not a failure.** Make no other call.
|
|
65
|
+
- **Config:** `orc lane config orc-diy --json`. Obey `effective`, print every line
|
|
66
|
+
in `announce[]` VERBATIM at preflight, and honour `stops[]` before wave 1.
|
|
67
|
+
Never merge `.claude/orc.config.yaml` yourself (`../_shared/config-precedence.md`).
|
|
68
|
+
- **Habits:** Step 2, first.
|
|
69
|
+
- **Rules:** `orc rules slice --lane orc-diy --json` is the ONLY assembler
|
|
70
|
+
(`../_shared/phases/rules.md`). Its `line` prints VERBATIM at preflight.
|
|
104
71
|
|
|
105
72
|
The flow SHAPE is not in that answer: it is compile-owned and lives in
|
|
106
73
|
`flow.lock.json`. The resolver answers for everything else this lane still
|
|
107
74
|
reads, and `extra` is the same split — the flow decides WHETHER, the resolver
|
|
108
75
|
still decides WHERE.
|
|
109
76
|
|
|
110
|
-
## Calls
|
|
111
|
-
|
|
112
|
-
**ONE catalogue, and it is not you:** `orc lane calls orc-diy --json` names every
|
|
113
|
-
CLI call this lane makes, each with its exit-code contract, its cost, when to run
|
|
114
|
-
it, and what an EMPTY answer means. Never invent a spelling, never re-word an
|
|
115
|
-
exit code, and never re-derive a state word — the CLI's state words are the only
|
|
116
|
-
state words, and **an exit code is an ANSWER wherever that contract says so, not
|
|
117
|
-
a failure**. A call the answer does not name is a call this lane does not make.
|
|
118
|
-
Exit ≠ 0 from the catalogue itself → say the CLI is unavailable and name the
|
|
119
|
-
command you are about to run, out loud, before running it.
|
|
120
|
-
|
|
121
77
|
## Hard rules
|
|
122
78
|
|
|
123
79
|
1. The compiled flow is a build artifact — NEVER edit
|
|
@@ -126,16 +82,9 @@ command you are about to run, out loud, before running it.
|
|
|
126
82
|
`orc diy set` + `orc diy compile`, both run by the user.
|
|
127
83
|
2. Fail closed: any gate ambiguity = STALE, with the reason shown.
|
|
128
84
|
3. The fallback ask is ONE question with two outcomes (`/orc` or stop) —
|
|
129
|
-
never a menu, never a silent fallback.
|
|
130
|
-
|
|
131
|
-
##
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
**house rules > your project's rules > ORC's own packs** — and its `line` prints
|
|
136
|
-
VERBATIM at preflight. Returns gain `rules_applied[]`, `rules_conflicts[]` (a gap,
|
|
137
|
-
never a silent choice) and `rules_overridden[]`.
|
|
138
|
-
## Waiting mid-run (`/orc-wait`)
|
|
139
|
-
|
|
140
|
-
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
141
|
-
Checkpoint **full** · safe point **compiled phase edge**. `soft` FORCES that checkpoint and does NOT stop if the write fails; `hard` skips it and can lose an in-flight return. Never begin a wait between a dispatch and its validated return, or before the smoke gate has reported.
|
|
85
|
+
never a menu, never a silent fallback.
|
|
86
|
+
|
|
87
|
+
## Waiting mid-run (`/orc-wait`)
|
|
88
|
+
|
|
89
|
+
Canonical: `../_shared/wait.md`. **`a lane that waits without a hand-back` has broken this contract.**
|
|
90
|
+
Checkpoint **full** · safe point **compiled phase edge**.
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
## Phase: Code-pattern findings
|
|
2
|
-
|
|
3
|
-
<!-- diy:when pattern=off -->
|
|
4
|
-
Code-pattern codification is OFF: executors run language-agnostic (security/
|
|
5
|
-
correctness invariants still enforced; conventions imitate neighbor files).
|
|
6
|
-
Never prompt about patterns. A cached pattern under `.claude/orc/patterns/`
|
|
7
|
-
is still injected if present — cache hits are always silent.
|
|
8
|
-
<!-- /diy:when -->
|
|
9
|
-
<!-- diy:when pattern=ask -->
|
|
10
|
-
On an FE/BE pattern-cache miss at dispatch time, ask the user once: learn the
|
|
11
|
-
house style via the `.claude/skills/orc-pattern/SKILL.md` flow, or proceed
|
|
12
|
-
language-agnostic. Cache hits are used silently.
|
|
13
|
-
<!-- /diy:when -->
|
|
14
|
-
<!-- diy:when pattern=on -->
|
|
15
|
-
On an FE/BE pattern-cache miss at dispatch time, auto-codify without asking:
|
|
16
|
-
run the `.claude/skills/orc-pattern/SKILL.md` flow, then inject the cached
|
|
17
|
-
pattern literally into executor slices. Cache hits are used silently.
|
|
18
|
-
<!-- /diy:when -->
|
|
1
|
+
## Phase: Code-pattern findings
|
|
2
|
+
|
|
3
|
+
<!-- diy:when pattern=off -->
|
|
4
|
+
Code-pattern codification is OFF: executors run language-agnostic (security/
|
|
5
|
+
correctness invariants still enforced; conventions imitate neighbor files).
|
|
6
|
+
Never prompt about patterns. A cached pattern under `.claude/orc/patterns/`
|
|
7
|
+
is still injected if present — cache hits are always silent.
|
|
8
|
+
<!-- /diy:when -->
|
|
9
|
+
<!-- diy:when pattern=ask -->
|
|
10
|
+
On an FE/BE pattern-cache miss at dispatch time, ask the user once (H `orc.phase-3.pattern`): learn the
|
|
11
|
+
house style via the `.claude/skills/orc-pattern/SKILL.md` flow, or proceed
|
|
12
|
+
language-agnostic. Cache hits are used silently.
|
|
13
|
+
<!-- /diy:when -->
|
|
14
|
+
<!-- diy:when pattern=on -->
|
|
15
|
+
On an FE/BE pattern-cache miss at dispatch time, auto-codify without asking:
|
|
16
|
+
run the `.claude/skills/orc-pattern/SKILL.md` flow, then inject the cached
|
|
17
|
+
pattern literally into executor slices. Cache hits are used silently.
|
|
18
|
+
<!-- /diy:when -->
|