@azure-id/orc 2.1.0 → 2.2.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 +374 -0
- package/README.md +49 -36
- package/bin/build-agents.js +7 -5
- package/bin/cli.js +1006 -235
- package/bin/fix.js +21 -18
- package/bin/graph-extract.js +314 -6
- package/bin/graph-gain.js +83 -2
- package/bin/graph-map.js +23 -1
- package/bin/graph-notes.js +1 -1
- package/bin/graph-query.js +1362 -37
- package/bin/graph-resolve.js +1 -1
- package/bin/graph-shard.js +29 -6
- package/bin/graph-signals.js +5 -3
- package/bin/graph.js +7 -3
- package/bin/habit.js +1 -1
- package/bin/pricing.json +8 -1
- package/bin/trace-write.js +40 -11
- package/bin/verify-contracts.js +169 -60
- package/bin/verify-package.js +3 -3
- package/bin/webui/api.js +8 -0
- package/bin/webui/fixtures/extra.js +9 -9
- package/bin/webui/fixtures/flow.js +1 -1
- package/bin/webui/fixtures/index.js +2 -2
- package/bin/webui/fixtures/knowledge.js +8 -1
- package/bin/webui/fixtures/pact.js +112 -111
- package/bin/webui/fixtures/stats.js +2 -2
- package/bin/webui/i18n/en/knowledge.json +2 -0
- package/bin/webui/i18n/id/knowledge.json +2 -0
- package/bin/webui/js/panels/knowledge.js +17 -0
- package/guides/code-graph-benefit.md +116 -0
- package/guides/configuration.md +150 -0
- package/guides/documents.md +262 -0
- package/guides/extra-models.md +448 -0
- package/guides/habits-and-gotchas.md +152 -0
- package/guides/knowledge-reads.md +190 -0
- package/guides/model-selection.md +186 -0
- package/guides/rules.md +305 -0
- package/guides/status-line.md +344 -0
- package/mock-run/a-normal-day.md +2 -2
- package/mock-run/extra-slots.md +177 -177
- package/mock-run/orc-cli.md +3 -2
- package/mock-run/orc-doc.md +452 -448
- package/mock-run/orc-fast.md +2 -2
- package/mock-run/orc-quick.md +146 -146
- package/mock-run/orc.md +4 -4
- package/package.json +2 -1
- package/templates/agents/MODEL-MAPPING.md +12 -12
- package/templates/agents/{orc-executor-haiku-4-5.md → orc-executor-haiku-5-high.md} +21 -8
- package/templates/agents/orc-executor-opus-4-7-high.md +17 -5
- package/templates/agents/orc-executor-opus-4-7-med.md +17 -5
- package/templates/agents/orc-executor-opus-4-8-high.md +17 -5
- package/templates/agents/orc-executor-opus-5-high.md +17 -5
- package/templates/agents/orc-executor-opus-5-low.md +17 -5
- package/templates/agents/orc-executor-opus-5-med.md +17 -5
- package/templates/agents/orc-executor-sonnet-4-6-high.md +17 -5
- package/templates/agents/orc-executor-sonnet-5-high.md +17 -5
- package/templates/agents/orc-executor-sonnet-5-low.md +17 -5
- package/templates/agents/orc-executor-sonnet-5-med.md +17 -5
- package/templates/agents/{orc-graph-noter-sonnet-4-6-med.md → orc-graph-noter-haiku-5-high.md} +4 -4
- package/templates/agents/orc-planner-mini-opus-5-med.md +3 -1
- package/templates/agents/orc-planner-mini-sonnet-5-high.md +3 -1
- package/templates/agents/orc-planner-opus-5-med.md +3 -1
- package/templates/agents/{orc-recon-sonnet-4-6-med.md → orc-recon-sonnet-5-med.md} +4 -4
- package/templates/agents/{orc-trace-writer-haiku-4-5.md → orc-trace-writer-haiku-5-high.md} +4 -3
- package/templates/commands/orc-doc.md +128 -128
- package/templates/commands/orc-export.md +51 -46
- package/templates/commands/orc-fast.md +10 -10
- package/templates/hooks/README.md +8 -3
- package/templates/hooks/orc-effort-guard.js +105 -27
- package/templates/hooks/orc-graph-hook.js +252 -4
- package/templates/hooks/orc-statusline.js +13 -6
- package/templates/hooks/orc-trace.js +1 -1
- package/templates/skills/_shared/README.md +2 -2
- package/templates/skills/_shared/code-graph.md +185 -251
- package/templates/skills/_shared/extra-dispatch.md +4 -4
- package/templates/skills/_shared/lane-contract.md +7 -3
- package/templates/skills/_shared/opus5-only.md +3 -3
- package/templates/skills/_shared/phases/execution.md +13 -11
- package/templates/skills/_shared/phases/planning.md +27 -9
- package/templates/skills/_shared/phases/preflight.md +3 -3
- package/templates/skills/_shared/phases/review.md +4 -3
- package/templates/skills/_shared/phases/ship.md +7 -10
- package/templates/skills/_shared/phases/summary.md +2 -3
- package/templates/skills/_shared/phases/trace-verbs.md +21 -16
- package/templates/skills/_shared/phases/trace.md +3 -3
- package/templates/skills/_shared/phases/wiki-consult.md +2 -2
- package/templates/skills/_shared/pr-templates.md +108 -106
- package/templates/skills/_shared/read-ladder.md +8 -2
- package/templates/skills/_shared/return-validation.md +10 -6
- package/templates/skills/_shared/review-slice.md +1 -1
- package/templates/skills/_shared/stack-plan.md +135 -135
- package/templates/skills/_shared/wait.md +14 -2
- package/templates/skills/context-combiner/SKILL.md +2 -2
- package/templates/skills/orc/SKILL.md +7 -7
- package/templates/skills/orc/config.md +2 -2
- package/templates/skills/orc/examples/full-run-mock.md +7 -7
- package/templates/skills/orc/references/effort-and-mode.md +222 -222
- package/templates/skills/orc/schemas/planning-output.md +3 -0
- package/templates/skills/orc-aftermath/SKILL.md +15 -15
- package/templates/skills/orc-analyze/SKILL.md +2 -2
- package/templates/skills/orc-analyze-mini/SKILL.md +2 -2
- package/templates/skills/orc-boundary/SKILL.md +15 -15
- package/templates/skills/orc-boundary/references/card.md +81 -78
- package/templates/skills/orc-boundary/references/gate.md +113 -113
- package/templates/skills/orc-brainstorm/SKILL.md +15 -15
- package/templates/skills/orc-budget/SKILL.md +15 -15
- package/templates/skills/orc-challenge/README.md +1 -1
- package/templates/skills/orc-challenge/SKILL.md +16 -16
- package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
- package/templates/skills/orc-claude/SKILL.md +4 -4
- package/templates/skills/orc-claude/examples/claude-run-mock.md +1 -1
- package/templates/skills/orc-diy/SKILL.md +2 -2
- package/templates/skills/orc-diy/references/blocks/wiki.md +26 -26
- package/templates/skills/orc-diy/references/flow-schema.md +2 -2
- package/templates/skills/orc-doc/README.md +2 -2
- package/templates/skills/orc-doc/SKILL.md +501 -490
- package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +12 -1
- package/templates/skills/orc-doc/references/chunking.md +6 -4
- package/templates/skills/orc-doc/references/gates.md +311 -311
- package/templates/skills/orc-doc/references/resume-protocol.md +229 -228
- package/templates/skills/orc-explain/SKILL.md +88 -88
- package/templates/skills/orc-export/SKILL.md +190 -187
- package/templates/skills/orc-fast/SKILL.md +17 -14
- package/templates/skills/orc-grill/SKILL.md +16 -16
- package/templates/skills/orc-grill/references/grill-doc.md +1 -1
- package/templates/skills/orc-handoff/SKILL.md +11 -11
- package/templates/skills/orc-learn/SKILL.md +13 -13
- package/templates/skills/orc-learn/examples/learn-run-mock.md +2 -2
- package/templates/skills/orc-mini/SKILL.md +12 -12
- package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -5
- package/templates/skills/orc-pact/SKILL.md +15 -15
- package/templates/skills/orc-pact/references/gate.md +70 -70
- package/templates/skills/orc-pattern/SKILL.md +3 -3
- package/templates/skills/orc-poly/SKILL.md +4 -4
- package/templates/skills/orc-poly/examples/poly-run-mock.md +51 -51
- package/templates/skills/orc-pr-driver/SKILL.md +4 -3
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +108 -99
- package/templates/skills/orc-pr-setup/SKILL.md +2 -2
- package/templates/skills/orc-quick/README.md +11 -12
- package/templates/skills/orc-quick/SKILL.md +29 -32
- package/templates/skills/orc-quick/references/context-doc.md +5 -5
- package/templates/skills/orc-quick/references/dispatch-gate.md +10 -10
- package/templates/skills/orc-quick/references/gh-mode.md +2 -1
- package/templates/skills/orc-quick/references/look.md +34 -12
- package/templates/skills/orc-retro/SKILL.md +2 -2
- package/templates/skills/orc-retro/examples/retro-mock.md +2 -2
- package/templates/skills/orc-route/SKILL.md +2 -2
- package/templates/skills/orc-test/SKILL.md +6 -3
- package/templates/skills/orc-verify/SKILL.md +2 -2
- package/templates/skills/orc-wait/SKILL.md +10 -2
- package/templates/skills/orc-wiki/SKILL.md +4 -4
- package/templates/skills/orc-wiki/references/pattern-prewarm.md +19 -19
- package/templates/agents/orc-executor-sonnet-4-6-med.md +0 -155
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,380 @@ Format: `### v<version> — <title> _(<date>)_`.
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
+
### v2.2.0 — one graph contract for every coding lane, a graph that reads Vue, and Haiku 5.5 _(2026-10-11)_
|
|
14
|
+
|
|
15
|
+
**Still on the unscoped `orc` package?** Do this once first - your `orc upgrade`
|
|
16
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
17
|
+
the top of this file.
|
|
18
|
+
|
|
19
|
+
- **Step 1 - release the command from the old package:** `npm uninstall -g orc`
|
|
20
|
+
- **Step 2 - install the current package:** `npm i -g @azure-id/orc`
|
|
21
|
+
- **Step 3 - re-apply it to your project:** `orc update`
|
|
22
|
+
|
|
23
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
24
|
+
|
|
25
|
+
This is a minor release. The code graph changes its index shape. Every project
|
|
26
|
+
rebuilds its graph ONE time (cold). Three agents get new names.
|
|
27
|
+
|
|
28
|
+
EVAL: real company Vue 2.7 repo, /orc-quick, graph OFF vs ON, medians. RMT2
|
|
29
|
+
(change one helper and every caller, N=3/3): cost −2.0 %, time −8.6 %, tokens
|
|
30
|
+
−4.2 %, grade equal (86). RMT1 (build step 1 of a create-transaction flow from a
|
|
31
|
+
requirement, N=3 ON / 5 OFF): cost −9.6 %, time −28.4 %, tokens −15.8 %, grade
|
|
32
|
+
equal (84), e2e 12/12 in every run. RMT3 (build step 2 on the built step 1, N=2/2, means): cost −8.9 %, tokens −14.0 %, time +4.0 %. RMT4 (a cross-file change inside the built page, stored notes on ON, N=2/2, means): no gain — cost +7.7 %, time +45.5 %, tokens +4.4 %; the executor explored only about 4 calls in either arm, so the graph and the stored notes had nothing to save. Details: guides/code-graph-benefit.md.
|
|
33
|
+
|
|
34
|
+
When the code graph helps, with live numbers: [guides/code-graph-benefit.md](guides/code-graph-benefit.md)
|
|
35
|
+
|
|
36
|
+
- **New guide:** `guides/code-graph-benefit.md` tells when the code graph helps, with live OFF / ON numbers.
|
|
37
|
+
|
|
38
|
+
**1. Code graph quality on Vue / JS**
|
|
39
|
+
|
|
40
|
+
- The `@/` alias resolves. The order is: `jsconfig` / `tsconfig` `paths` (and
|
|
41
|
+
`baseUrl`) nearest the importer, then the `'@'` alias in the vue / webpack /
|
|
42
|
+
vite config, then the nearest `src/`, then the repo-root `src/`.
|
|
43
|
+
- The template of a Vue SFC makes edges. Handlers, bindings and component tags
|
|
44
|
+
are callers. One `<Comp>.template` symbol owns them.
|
|
45
|
+
- `props`, `emits` and `inject` are symbols (`prop`, `emit`, `inject`). A card
|
|
46
|
+
shows the contract of the component.
|
|
47
|
+
- `() => import('x')` is an import, not a function. SPA route records are
|
|
48
|
+
`route` symbols (`VIEW /path`). `$router.push({ name })` and
|
|
49
|
+
`router-link :to` make a route-name edge.
|
|
50
|
+
- `this.$x` built-ins (`$t`, `$router`, …) make no edge.
|
|
51
|
+
- A caller that is not a test never resolves into a test file.
|
|
52
|
+
- `orc graph map --focus`: no word is dropped (IDF weight). Path segments
|
|
53
|
+
match first. Hubs are damped. Every file is ranked.
|
|
54
|
+
- `orc graph ctx` accepts a bare file name.
|
|
55
|
+
- `orc graph path` can end at a file.
|
|
56
|
+
- `orc graph impact` shows a tests row.
|
|
57
|
+
|
|
58
|
+
**2. One graph contract for every coding lane**
|
|
59
|
+
|
|
60
|
+
- Every coding lane uses the same four touchpoints: consult (probe) · orient
|
|
61
|
+
one time · anchors per code dispatch · affected tests with `changes`.
|
|
62
|
+
- The `graph-status` probe of `orc lane config` has a new field
|
|
63
|
+
`update_step` (`none` · `hook` · `lane` · `preflight`). A lane runs
|
|
64
|
+
`orc graph update` only when it is `lane`.
|
|
65
|
+
- Lanes do not call `orc graph gain`.
|
|
66
|
+
- New: `orc graph ctx --for-slice … --anchors`. It gives up to 12
|
|
67
|
+
`path:a-b` lines and ONE `read all:` command. The slice carries it as
|
|
68
|
+
`graph_anchors`. The executor runs that command first. This replaces the
|
|
69
|
+
card in the slice.
|
|
70
|
+
- Declared files can be joined with commas. `ctx --for-slice a.js,b.vue` is
|
|
71
|
+
the same as `ctx --for-slice a.js b.vue`. A wrong path prints
|
|
72
|
+
`not found: <path>` on the anchors line. Before, the full list was one
|
|
73
|
+
missing path, and the slice got no anchors.
|
|
74
|
+
- Focus callees. When a focus word names an exported function or method of a
|
|
75
|
+
declared file, the anchors are its definition and up to 8 call sites
|
|
76
|
+
(declared files included). Callers of other exports are dropped. One-word
|
|
77
|
+
member hits are dropped. A Vue component is never a focus callee.
|
|
78
|
+
- One look-time card. `orc graph ctx <symbol>` also lists the tests that reach
|
|
79
|
+
a caller (by call, import or name) and a coverage verdict. With `--anchors`
|
|
80
|
+
it also gives the slice anchors (`anchors_card`). One call replaces grep,
|
|
81
|
+
the test search, `coverage` and a separate `--for-slice` call. The
|
|
82
|
+
lane-config announce lines 2/4 and 3/4 name this path.
|
|
83
|
+
- The graph hook speaks to the main session (graph `on` only). (a) A
|
|
84
|
+
main-session Grep, Glob or shell search of a known symbol gets the ctx card.
|
|
85
|
+
Compound commands are included. The hook uses the matched name with the
|
|
86
|
+
highest fan-in, and never a name with fan-in 0. It gives one card per name
|
|
87
|
+
and 3 cards per run at most. (b) When an ORC executor returns, a new
|
|
88
|
+
PostToolUse(Task|Agent) hook entry injects the `changes` card (affected
|
|
89
|
+
tests and risk). The lane then does not call `orc graph changes`.
|
|
90
|
+
`orc init` and `orc update` add the new hook entry. `orc doctor` counts 6
|
|
91
|
+
hook entries.
|
|
92
|
+
- `--pack=` stays for users. No lane uses it.
|
|
93
|
+
|
|
94
|
+
**3. New: `code_graph: semi`**
|
|
95
|
+
|
|
96
|
+
- The preflight heal and the SubagentStop hook keep the graph current.
|
|
97
|
+
- Every lane read with `--if-enabled` exits 3 (the same as `off`). The trace
|
|
98
|
+
says `mode=semi`. No hint goes into a context.
|
|
99
|
+
- A read that you type without `--if-enabled` answers from the index.
|
|
100
|
+
- The status line and `orc doctor` show `semi`. The `orc ui` Code graph tab
|
|
101
|
+
shows a `SEMI` chip.
|
|
102
|
+
|
|
103
|
+
**4. Gain meter fixes**
|
|
104
|
+
|
|
105
|
+
- The run match is normalised.
|
|
106
|
+
- `changes` prices only old symbols with callers outside the diff, one time
|
|
107
|
+
per diff.
|
|
108
|
+
- Every ledger row has an `outcome` field.
|
|
109
|
+
- The heal line is correct.
|
|
110
|
+
- `cochange` says when the history is too short.
|
|
111
|
+
- The parse coverage line uses clearer words.
|
|
112
|
+
|
|
113
|
+
**5. Trace friction**
|
|
114
|
+
|
|
115
|
+
- `orc lane phases <lane> --json` has `trace_grammar` and `ask_ids` at the
|
|
116
|
+
top level.
|
|
117
|
+
- A refused packet names PHASE / NOTE / ASK and the verbs of the lane.
|
|
118
|
+
- A parse error quotes the bad line and shows an example packet.
|
|
119
|
+
|
|
120
|
+
**6. Models**
|
|
121
|
+
|
|
122
|
+
- `orc-executor-haiku-4-5` and `orc-executor-sonnet-4-6-med` become ONE
|
|
123
|
+
agent: `orc-executor-haiku-5-high` (`claude-haiku-5-5`, high).
|
|
124
|
+
- `orc-trace-writer-haiku-4-5` → `orc-trace-writer-haiku-5-high`.
|
|
125
|
+
- `orc-graph-noter-sonnet-4-6-med` → `orc-graph-noter-haiku-5-high`.
|
|
126
|
+
- An old name in your config still works. ORC prints ONE line:
|
|
127
|
+
`agent <old> is now <new> (2.2.0)`.
|
|
128
|
+
- `bin/pricing.json` has a `claude-haiku-5-5` row (input 0.1, cache write
|
|
129
|
+
0.125, cache read 0.01, output 0.5; context 1M).
|
|
130
|
+
|
|
131
|
+
**7. Executor coverage rule**
|
|
132
|
+
|
|
133
|
+
- The executor runs coverage one time for its own files, with a text report.
|
|
134
|
+
It does not probe lcov, the jest cache or the transformer. It runs a second
|
|
135
|
+
time at most. The rest goes to `unmet[]`.
|
|
136
|
+
|
|
137
|
+
**8. Engine `graph@7`**
|
|
138
|
+
|
|
139
|
+
- `graph@7` / `heuristic@7` / `RESOLVE_SCHEMA 4`. The first `orc graph update`
|
|
140
|
+
after the upgrade rebuilds the index cold, one time.
|
|
141
|
+
|
|
142
|
+
**What you have to do:** run `orc update` once. Then run `orc graph update`
|
|
143
|
+
one time if `code_graph` is `on` or `semi`.
|
|
144
|
+
|
|
145
|
+
### v2.1.2 — a typed /orc meets the effort guard, and the budget uses each model's price _(2026-10-03)_
|
|
146
|
+
|
|
147
|
+
**Still on the unscoped `orc` package?** Do this once first - your `orc upgrade`
|
|
148
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
149
|
+
the top of this file.
|
|
150
|
+
|
|
151
|
+
- **Step 1 - release the command from the old package:** `npm uninstall -g orc`
|
|
152
|
+
- **Step 2 - install the current package:** `npm i -g @azure-id/orc`
|
|
153
|
+
- **Step 3 - re-apply it to your project:** `orc update`
|
|
154
|
+
|
|
155
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
156
|
+
|
|
157
|
+
This is a fix release. It closes gaps between what the lanes say and what the
|
|
158
|
+
CLI does. It adds two commands (`orc wait start`, `orc wait end`) and two flags
|
|
159
|
+
(`orc doc parts --checked`, `--findings`).
|
|
160
|
+
|
|
161
|
+
**1. The effort guard for a typed `/orc`**
|
|
162
|
+
|
|
163
|
+
- The effort guard did not run when you typed `/orc` or `/orc-diy`. A typed
|
|
164
|
+
command does not cause a `PreToolUse` Skill call. Now a second event,
|
|
165
|
+
`UserPromptExpansion`, runs the same guard. A session below the necessary
|
|
166
|
+
effort is stopped at $0.
|
|
167
|
+
- `orc update` and `orc doctor --fix` add ONE `settings.json` entry:
|
|
168
|
+
`hooks.UserPromptExpansion`, matcher `orc|orc-diy`. A hand-edited matcher is
|
|
169
|
+
repaired.
|
|
170
|
+
- `orc doctor` shows `typed /orc + /orc-diy gate wired`. It warns
|
|
171
|
+
`typed-gate-unwired` or `typed-gate-matcher`. The fix for each is `orc update`.
|
|
172
|
+
- A typed `/orc-diy` with no compiled flow is refused at $0.
|
|
173
|
+
- The status-line bridge (`session-model.json`) has a new `session_id` field. A
|
|
174
|
+
bridge that v2.1.1 wrote still gives the `PreToolUse` medium allowance. A
|
|
175
|
+
bridge from a different session does not.
|
|
176
|
+
- **Limits you must know.** The guard fails open on each error. The typed gate
|
|
177
|
+
reads the bridge that the ORC status line writes. Where the ORC status line
|
|
178
|
+
does not run, the typed gate lets the prompt through. This is possible in the
|
|
179
|
+
desktop app Code tab, and it is not checked yet. The behaviour on an older
|
|
180
|
+
Claude Code build that does not know the `UserPromptExpansion` event is not
|
|
181
|
+
verified. If you change the model or the effort with a key shortcut, a false
|
|
182
|
+
block is possible until the status line shows again.
|
|
183
|
+
|
|
184
|
+
**2. Budget pricing**
|
|
185
|
+
|
|
186
|
+
- `orc budget` priced each token at the Opus 4.8 rate. Now each row uses the
|
|
187
|
+
rate of its pinned model. The USD figures for forecast and actual are lower.
|
|
188
|
+
Tokens, weighted tokens and quota do not change.
|
|
189
|
+
- `bands[]` and `fixed_roles[]` have a new `model` field.
|
|
190
|
+
- With `extra_enabled` on and an empty provider rate table, USD is `null` in
|
|
191
|
+
`--json` and "unavailable" in the text.
|
|
192
|
+
- Calibration now joins a point release to its family (`opus-5/low` and
|
|
193
|
+
`claude-opus-5-5`). The `unattributed` figure is lower.
|
|
194
|
+
- The pinned model id is correct for each shipped agent. This moves the context
|
|
195
|
+
window figure, the `orc wiki plan` price and the document cost.
|
|
196
|
+
- `orc budget forecast` with no plan exits 3 (it exited 1) and prints one
|
|
197
|
+
`--json` object.
|
|
198
|
+
|
|
199
|
+
**3. `orc wait start` and `orc wait end`**
|
|
200
|
+
|
|
201
|
+
- No command recorded a wait that started. Two new commands do:
|
|
202
|
+
`orc wait start <spec> --mode <safe|soft|hard> [--trigger user|gate] [--run <slug>] [--hop] [--max-hops] [--json]`
|
|
203
|
+
and
|
|
204
|
+
`orc wait end [<slug>] --reason <elapsed|recovered|cancelled|max-hops> [--json]`.
|
|
205
|
+
- `orc wait start` exits 0 when it records the wait, and also when there is no
|
|
206
|
+
run (`recorded:false reason:no-run`). It exits 1 for `no-mode`, `bad-trigger`,
|
|
207
|
+
`already-waiting` or a spec it cannot parse. It exits 2 for `no-reading`.
|
|
208
|
+
- `orc wait end` exits 0. It exits 1 for `no-run`, `no-wait` or `no-reason`.
|
|
209
|
+
- The trace has the lines
|
|
210
|
+
`WAIT mode=… requested=…m start=HH:MM end=HH:MM hops=<planned>/<max> trigger=…`
|
|
211
|
+
and `WAIT end :: done=k/n reason=…`. A block writes
|
|
212
|
+
`WAIT block :: reason=… by=user`, and its end writes `WAIT unblock`.
|
|
213
|
+
- `orc wait status --json` has a new `stale` field. `waiting` and `hops_done`
|
|
214
|
+
come from the clock. `orc wait cancel` refuses a stale wait.
|
|
215
|
+
- An old `wait.json` that holds only a block reads as "not waiting".
|
|
216
|
+
- **Known limits.** A wait that `max_hops` cuts short keeps its full `ends_at`,
|
|
217
|
+
so `status` shows `waiting` until `orc wait end` runs. A spec token that is
|
|
218
|
+
equal to a `--mode`, `--trigger` or `--run` value is ambiguous.
|
|
219
|
+
|
|
220
|
+
**4. orc-doc: `--checked` and `--findings`**
|
|
221
|
+
|
|
222
|
+
- No CLI path marked a section as checked, so `orc doc next` named the paid
|
|
223
|
+
check again. Two new flags record the check:
|
|
224
|
+
`orc doc parts <slug> --checked <ids>` and `--findings <id>=<n>,…`.
|
|
225
|
+
- A refusal exits 1 with `not-confirmed`, `no-such-section` or `bad-findings`,
|
|
226
|
+
and writes nothing.
|
|
227
|
+
- `orc doc parts --json` has new fields: `checked[]`,
|
|
228
|
+
`flagged[{id,findings}]` and `edit_rounds`. In `doc.json`, a section has
|
|
229
|
+
`checked_cycle` and `edit_rounds`.
|
|
230
|
+
- `orc doc next` has a new action, `plan-edit`. After 2 edit rounds on one
|
|
231
|
+
section it stops and asks you.
|
|
232
|
+
- The lane text says that a checker reads only the bounded part files of one
|
|
233
|
+
slice. The request log runs after the slug exists. An edit does not leave the
|
|
234
|
+
section as `user-edited`.
|
|
235
|
+
- **Known limits.** `edit_rounds` does not reset. `--confirm` and `--checked`
|
|
236
|
+
in one call are not atomic.
|
|
237
|
+
|
|
238
|
+
**5. The graph word focus**
|
|
239
|
+
|
|
240
|
+
- `orc graph map --focus <word>` ignored a plain word and said
|
|
241
|
+
"focus not in the graph". Now a word resolves to the files that hold it.
|
|
242
|
+
- `orc graph map --json` has new fields: `focus_words` and `focus_common`.
|
|
243
|
+
- The trace says `repo` when nothing resolved. `focus=` shows a maximum of 8
|
|
244
|
+
files, then `,+N`.
|
|
245
|
+
|
|
246
|
+
**6. `/orc-fix`: the host run and the FIX source**
|
|
247
|
+
|
|
248
|
+
- A stale `.current` (older than 6 hours), or a bootstrap `.current` with no
|
|
249
|
+
lane, was read as a host run. Now it gives `mode: may-fix`, `host: null`, no
|
|
250
|
+
`FIX` line and no `fix_run`.
|
|
251
|
+
- The classify JSON has a new `open_run` field.
|
|
252
|
+
- The `FIX` trace line and the stored row now show the same source.
|
|
253
|
+
|
|
254
|
+
**7. Boundary block lists**
|
|
255
|
+
|
|
256
|
+
- `orc boundary status` read only inline lists. It now reads block lists
|
|
257
|
+
(`- item` lines) also.
|
|
258
|
+
- A REFUSE card that uses a block list exits 2. It exited 3 (MALFORMED).
|
|
259
|
+
- Staleness counts only the commits that touch an anchored file.
|
|
260
|
+
- A field that is not a list gives this text:
|
|
261
|
+
"`<field>` is not a list — write `- item` lines or [a, b]".
|
|
262
|
+
- The header parser: ` #` inside quotes is text, and a comma inside quotes does
|
|
263
|
+
not split an inline item. The wiki documents use the same parser.
|
|
264
|
+
|
|
265
|
+
**8. Pact, aftermath and stack status**
|
|
266
|
+
|
|
267
|
+
- `orc pact`: the DRIFTED reason counted each anchor. Now it reads
|
|
268
|
+
"N commits since X touched K of M anchored files (a, b)". Each row has a new
|
|
269
|
+
`touched_files` field.
|
|
270
|
+
- `orc aftermath status` graded the open trace of its own lane. The open run
|
|
271
|
+
now has no row. A project that has only the open run exits 3 with `shallow`.
|
|
272
|
+
- `orc pr stack status`: `<n>` and `<m>`, a hole of 120 characters or less, and
|
|
273
|
+
a paragraph that is only a placeholder count as not filled. Comments, code
|
|
274
|
+
fences, generics and inline tags do not count. **A plan that v2.1.1 showed as
|
|
275
|
+
READY can show NOT READY.**
|
|
276
|
+
- The PR split does not pull. It runs
|
|
277
|
+
`git merge-base --is-ancestor <trunk> $SNAPSHOT` and stops when the trunk
|
|
278
|
+
moved. A pull that moved the trunk caused a silent revert.
|
|
279
|
+
|
|
280
|
+
**9. The call catalogue and the trace verbs**
|
|
281
|
+
|
|
282
|
+
- `orc lane calls`: the catalogue rows that listed only exit 0 now list each
|
|
283
|
+
exit code. The `budget-forecast` row has the correct codes. The catalogue
|
|
284
|
+
gaps are closed.
|
|
285
|
+
- The trace accepts three more verbs: `DOC`, `WAIT` and `GRAPH-COVERAGE`. The
|
|
286
|
+
`orc-mini` and `orc-fast` trace grammar includes the `GRAPH-*` verbs.
|
|
287
|
+
- `orc-learn` and `orc-poly` do not write a `WIKI-CONSULT` head that is not
|
|
288
|
+
declared.
|
|
289
|
+
|
|
290
|
+
**10. Small text and CLI fixes**
|
|
291
|
+
|
|
292
|
+
- Four refusals for a human reader crashed because a status mark was not
|
|
293
|
+
defined. They print the refusal now.
|
|
294
|
+
- The lexicon escape does not insert a stray comment line.
|
|
295
|
+
- `orc_wiki_pattern_findings`: the skills and the CLI use the same value.
|
|
296
|
+
- The `/orc-fast` text names the executor that it dispatches,
|
|
297
|
+
`orc-executor-sonnet-5-med`. Its `opus5_only` twin is `orc-executor-opus-5-low`
|
|
298
|
+
in the CLI also.
|
|
299
|
+
- `/orc-test`: the text names the server that `orc test env up` leaves running.
|
|
300
|
+
- `/orc-challenge` does not point its intake at the build-lane intake file.
|
|
301
|
+
- `/orc-export`: the text is correct for the challenge cycle source, for
|
|
302
|
+
`--check` with a hand-written `AGENTS.md`, and for the import of commands.
|
|
303
|
+
- The code-graph text says that the gain meter cannot see `graph_used: none`
|
|
304
|
+
yet, so `avoided` still counts that card.
|
|
305
|
+
- 9 `expect=` spellings in the templates changed to the pinned model ids.
|
|
306
|
+
|
|
307
|
+
**Changed behaviour**
|
|
308
|
+
|
|
309
|
+
- `orc budget forecast` with no plan: exit 3 (was 1).
|
|
310
|
+
- `orc budget`: lower USD figures; `model` in `bands[]` and `fixed_roles[]`;
|
|
311
|
+
USD `null` / "unavailable" with `extra_enabled` and no provider rates.
|
|
312
|
+
- `orc boundary status`: a block-list REFUSE card exits 2 (was 3); the new
|
|
313
|
+
"is not a list" text; staleness counts anchored-file commits only.
|
|
314
|
+
- `orc pact`: new DRIFTED `why` text; `touched_files` in each row.
|
|
315
|
+
- `orc pr stack status`: a READY plan from v2.1.1 can show NOT READY.
|
|
316
|
+
- `orc aftermath status`: no row for the open run; exit 3 `shallow` when that
|
|
317
|
+
is the only run.
|
|
318
|
+
- `/orc-fix`: `mode: may-fix` and `host: null` for a stale or lane-less
|
|
319
|
+
`.current`; `open_run` in the classify JSON.
|
|
320
|
+
- `orc graph map --focus <word>`: a word now focuses; `focus_words` and
|
|
321
|
+
`focus_common` in `--json`.
|
|
322
|
+
- `orc wait status --json`: `stale`; `cancel` refuses a stale wait; an old
|
|
323
|
+
block-only `wait.json` reads as not waiting.
|
|
324
|
+
- `orc doc parts --json`: `checked[]`, `flagged[]`, `edit_rounds`; `orc doc
|
|
325
|
+
next` can return `plan-edit`.
|
|
326
|
+
- `session-model.json`: `session_id`.
|
|
327
|
+
|
|
328
|
+
**What you have to do:** run `orc update` once. It adds the
|
|
329
|
+
`UserPromptExpansion` entry to `settings.json`.
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
### v2.1.1 — the quick and fast lanes move to Sonnet 5 _(2026-10-02)_
|
|
334
|
+
|
|
335
|
+
**Still on the unscoped `orc` package?** Do this once first - your `orc upgrade`
|
|
336
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
337
|
+
the top of this file.
|
|
338
|
+
|
|
339
|
+
- **Step 1 - release the command from the old package:** `npm uninstall -g orc`
|
|
340
|
+
- **Step 2 - install the current package:** `npm i -g @azure-id/orc`
|
|
341
|
+
- **Step 3 - re-apply it to your project:** `orc update`
|
|
342
|
+
|
|
343
|
+
**Do not use `npm i -g -f`.** Full detail in v0.56.0 below.
|
|
344
|
+
|
|
345
|
+
This release changes the models that `/orc-quick`, `/orc-fast` and `orc extra`
|
|
346
|
+
use. Sonnet 4.6 leaves the coding lanes. Sonnet 5 (`claude-sonnet-5-5`) replaces it.
|
|
347
|
+
|
|
348
|
+
**1. The quick dispatch gate**
|
|
349
|
+
|
|
350
|
+
- Code entries: `orc-executor-sonnet-5-med` or `orc-executor-opus-5-low`. The
|
|
351
|
+
default suggestion for a mechanical edit is `orc-executor-sonnet-5-med`.
|
|
352
|
+
- Read-only entries: `orc-recon-sonnet-5-med` or `orc-recon-opus-5-low`.
|
|
353
|
+
- An agent's model change is a rename:
|
|
354
|
+
`orc-recon-sonnet-4-6-med` → `orc-recon-sonnet-5-med`. The agent count stays 51.
|
|
355
|
+
|
|
356
|
+
**2. orc extra**
|
|
357
|
+
|
|
358
|
+
- The `quick-executor` slot uses `orc-executor-sonnet-5-med`.
|
|
359
|
+
- `extra_fallback_agent` options and the fallback menu show
|
|
360
|
+
`orc-executor-sonnet-5-high`. They showed `orc-executor-sonnet-4-6-high`. A
|
|
361
|
+
config that names the old agent is still accepted.
|
|
362
|
+
|
|
363
|
+
**3. /orc-fast**
|
|
364
|
+
|
|
365
|
+
- The one executor is `orc-executor-sonnet-5-med`. It was
|
|
366
|
+
`orc-executor-sonnet-4-6-high`. The `fast-executor` extra slot, `orc budget`
|
|
367
|
+
and the `opus5_only` table use the new name. Under `opus5_only` it is still
|
|
368
|
+
`orc-executor-opus-5-low`.
|
|
369
|
+
- Run the lane from a Sonnet 5 (or higher) main session. A Sonnet 4.6 session is
|
|
370
|
+
below the executor's pin.
|
|
371
|
+
|
|
372
|
+
**4. Text and examples**
|
|
373
|
+
|
|
374
|
+
- `/orc`: the "even the smallest task gets a cheap subagent" rule names Sonnet 5
|
|
375
|
+
low. The examples dispatch Sonnet 5 high for scores 31–40.
|
|
376
|
+
- `/orc-grill`: the recon line names `claude-sonnet-5-5 / medium`.
|
|
377
|
+
|
|
378
|
+
**Not changed:** Sonnet 4.6 stays for the graph noter, the scout, the `orc diy`
|
|
379
|
+
choices and the opt-in executors (`orc-executor-sonnet-4-6-med`,
|
|
380
|
+
`orc-executor-sonnet-4-6-high`).
|
|
381
|
+
|
|
382
|
+
**What you have to do:** `orc update --prune`. If a script names
|
|
383
|
+
`orc-recon-sonnet-4-6-med`, change it to `orc-recon-sonnet-5-med`.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
13
387
|
### v2.1.0 — the review counts, the score table moves up, and old logs can go _(2026-10-02)_
|
|
14
388
|
|
|
15
389
|
**Still on the unscoped `orc` package?** Do this once first - your `orc upgrade`
|
package/README.md
CHANGED
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
*Intake → analyze → plan → score → parallel subagents → review → verify → ship.*
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|

|
|
14
14
|

|
|
15
15
|

|
|
16
16
|
|
|
17
|
-
**Latest: v2.
|
|
17
|
+
**Latest: v2.2.0** · updated 11-10-2026 · [full changelog](CHANGELOG.md)
|
|
18
18
|
|
|
19
19
|
**On npm: [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc)** — `npm i -g @azure-id/orc`
|
|
20
20
|
|
|
@@ -266,7 +266,7 @@ ORC have terminal hook to see: Context Window %, 5 Hour usage %, Weekly usage %
|
|
|
266
266
|
| **`/orc-grill`** | You have one idea and it is still vague. It asks rounds of questions, **looks facts up itself** instead of making you recite your own codebase, and never answers its own question. Ends when *you* say the idea matches what you meant. | [see it](mock-run/orc-grill.md) |
|
|
267
267
|
| **`/orc-analyze`** | A document or a request → a scope-bounded, code-grounded spec. Every claim carries `file:line` evidence or becomes a question. Deep mode adds parallel scouts. | [see it](templates/skills/orc-analyze/examples/analyze-mock.md) |
|
|
268
268
|
| **`/orc-plan`** | A request or a spec → a real task plan: grounded files, dependencies, facets, and a test disposition per task. | [see it](mock-run/orc-plan.md) |
|
|
269
|
-
| **`/orc-doc`** | Writes the long document — a PRD, a TSD, a cross-team agreement, a status report or a runbook — as portable Markdown that imports cleanly into Notion, Obsidian, Docs, Coda, Craft and GitHub. **ORC never reads the document body**: each section is its own file under `sections/`, each writer owns exactly one of them, each checker reads
|
|
269
|
+
| **`/orc-doc`** | Writes the long document — a PRD, a TSD, a cross-team agreement, a status report or a runbook — as portable Markdown that imports cleanly into Notion, Obsidian, Docs, Coda, Craft and GitHub. **ORC never reads the document body**: each section is its own file under `sections/`, each writer owns exactly one of them, each checker reads only the bounded part files of one slice, and `document.md` is a build artifact rebuilt for free. Every wave is a stop you can walk away from, and it resumes months later without you explaining anything twice. | [see it](mock-run/orc-doc.md) |
|
|
270
270
|
| **`/orc-route`** | You have a plan — which lane should build it? It names one lane, the runners-up with what each costs you, and any lane that is impossible with the condition blocking it. **It refuses to route a sentence**, because that would be guessing. | [see it](mock-run/orc-route.md) |
|
|
271
271
|
| **`/orc-explain`** | "Wait, what?" It says the last message again: the point first, then the background it assumed, then every ORC-only word defined in your project's terms. | [see it](mock-run/orc-explain.md) |
|
|
272
272
|
| **`/orc-poly`** | One change across two or more repos, without drift. Peer source is read-only; it freezes the shared boundary into a contract and writes one plan per repo. It never builds. | [see it](templates/skills/orc-poly/examples/poly-run-mock.md) |
|
|
@@ -387,7 +387,7 @@ and its headings become the outline.
|
|
|
387
387
|
A local map of how your code is connected. It is **off by default**.
|
|
388
388
|
|
|
389
389
|
```bash
|
|
390
|
-
orc config set code_graph on # code lanes build and use the map (free)
|
|
390
|
+
orc config set code_graph on # code lanes build and use the map (free); `semi` = keep it current, no lane reads it
|
|
391
391
|
orc config set code_graph_notes wave # optional: one-sentence notes (costs tokens)
|
|
392
392
|
orc graph map # the repository ranked, before you know a file name
|
|
393
393
|
orc graph ctx OrderService.create # a card: callers, calls, SQL/HTTP/env effects
|
|
@@ -419,8 +419,8 @@ orc graph gain # what the map put in, and an estimate of
|
|
|
419
419
|
prints only the OUTSIDE view of a file an agent is about to read in full.
|
|
420
420
|
`--format tree` names each column once instead of on every row.
|
|
421
421
|
- **`orc graph map` answers "which files matter here"** before you know a file
|
|
422
|
-
name, inside a budget. `--focus` re-ranks the whole repository around the files
|
|
423
|
-
or
|
|
422
|
+
name, inside a budget. `--focus` re-ranks the whole repository around the files,
|
|
423
|
+
names or plain words your request already mentioned. **Rank is a hint about where to look
|
|
424
424
|
first**, never proof that a file matters to a change.
|
|
425
425
|
- **It shows where code is. It does not replace reading it.** Agents still read
|
|
426
426
|
the line range before they act. A card header says `coverage partial 327-466`
|
|
@@ -698,6 +698,7 @@ Some lanes ship a full how-to next to the skill, in plain language:
|
|
|
698
698
|
| [Rules](guides/rules.md) | you want the 65 anti-slop rules, the precedence ladder and the lint |
|
|
699
699
|
| [Configuration](guides/configuration.md) · [Model selection](guides/model-selection.md) | you want every key, or the scoring bands |
|
|
700
700
|
| [Habits and gotchas](guides/habits-and-gotchas.md) | you want to know how a habit is proposed, how to import Sonar, SARIF or PR history, and how to undo |
|
|
701
|
+
| [Code graph benefit](guides/code-graph-benefit.md) | you want to know when the code graph helps, with live numbers |
|
|
701
702
|
| [Other AI models](guides/extra-models.md) | you want part of the ladder to run somewhere other than Claude |
|
|
702
703
|
|
|
703
704
|
Every skill also ships its own `SKILL.md` and `references/`. The guides above are
|
|
@@ -741,39 +742,51 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
|
|
|
741
742
|
**Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
|
|
742
743
|
only what is newer than the version you have.
|
|
743
744
|
|
|
744
|
-
### v2.
|
|
745
|
-
|
|
746
|
-
- **
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
- **
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
**
|
|
771
|
-
|
|
772
|
-
|
|
745
|
+
### v2.2.0 — one graph contract for every coding lane, a graph that reads Vue, and Haiku 5.5 _(2026-10-11)_
|
|
746
|
+
|
|
747
|
+
- **The code graph reads Vue / JS.** The `@/` alias, template edges, props /
|
|
748
|
+
emits / inject, lazy imports, SPA routes and route-name edges. `$` built-ins
|
|
749
|
+
make no edge. A test file never takes a non-test caller.
|
|
750
|
+
- **One graph contract for every coding lane.** Four touchpoints. The new
|
|
751
|
+
`update_step` probe field says who updates the graph. Lanes do not call
|
|
752
|
+
`gain`. The slice gets `graph_anchors` (`ctx --for-slice --anchors`): up to
|
|
753
|
+
12 ranges and one `read all:` command. Declared files can be joined with
|
|
754
|
+
commas. A focus word that names an exported function gives its definition
|
|
755
|
+
and up to 8 call sites.
|
|
756
|
+
- **One look-time card.** `orc graph ctx <symbol>` also lists the tests that
|
|
757
|
+
reach a caller and a coverage verdict. With `--anchors` it also gives the
|
|
758
|
+
slice anchors. One call replaces grep, the test search, `coverage` and
|
|
759
|
+
`--for-slice`.
|
|
760
|
+
- **The graph hook speaks to the main session** (graph `on` only). A search
|
|
761
|
+
of a known symbol gets its card (3 per run at most). When an executor
|
|
762
|
+
returns, a new hook entry gives the `changes` card. `orc doctor` counts 6
|
|
763
|
+
hook entries.
|
|
764
|
+
- **New: `code_graph: semi`.** The graph stays current. No lane reads it.
|
|
765
|
+
- **Gain meter fixes:** run match, `changes` pricing, the `outcome` field, the
|
|
766
|
+
heal line, short `cochange` history.
|
|
767
|
+
- **Trace friction:** `orc lane phases --json` gives `trace_grammar` and
|
|
768
|
+
`ask_ids`. A refused or bad packet tells you what to correct.
|
|
769
|
+
- **Haiku 5.5.** The Haiku 4.5 and Sonnet 4.6-medium agents become
|
|
770
|
+
`*-haiku-5-high`. An old name in your config still works, with one notice.
|
|
771
|
+
- **Engine `graph@7`.** The index rebuilds cold one time.
|
|
772
|
+
|
|
773
|
+
EVAL: real company Vue 2.7 repo, /orc-quick, graph OFF vs ON, medians. RMT2
|
|
774
|
+
(change one helper and every caller, N=3/3): cost −2.0 %, time −8.6 %, tokens
|
|
775
|
+
−4.2 %, grade equal (86). RMT1 (build step 1 of a create-transaction flow from a
|
|
776
|
+
requirement, N=3 ON / 5 OFF): cost −9.6 %, time −28.4 %, tokens −15.8 %, grade
|
|
777
|
+
equal (84), e2e 12/12 in every run. RMT3 (build step 2 on the built step 1, N=2/2, means): cost −8.9 %, tokens −14.0 %, time +4.0 %. RMT4 (a cross-file change inside the built page, stored notes on ON, N=2/2, means): no gain — cost +7.7 %, time +45.5 %, tokens +4.4 %; the executor explored only about 4 calls in either arm, so the graph and the stored notes had nothing to save. Details: guides/code-graph-benefit.md.
|
|
778
|
+
|
|
779
|
+
When the code graph helps, with live numbers: [guides/code-graph-benefit.md](guides/code-graph-benefit.md)
|
|
780
|
+
|
|
781
|
+
**What you have to do:** run `orc update` once. Then run `orc graph update`
|
|
782
|
+
one time if `code_graph` is `on` or `semi`.
|
|
773
783
|
|
|
774
784
|
<details>
|
|
775
|
-
<summary><strong>Earlier releases</strong> —
|
|
785
|
+
<summary><strong>Earlier releases</strong> — 130 of them, titles only. Full text in <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
|
|
776
786
|
|
|
787
|
+
- **v2.1.2** — a typed /orc meets the effort guard, and the budget uses each model's price · _2026-10-03_
|
|
788
|
+
- **v2.1.1** — the quick and fast lanes move to Sonnet 5 · _2026-10-02_
|
|
789
|
+
- **v2.1.0** — the review counts, the score table moves up, and old logs can go · _2026-10-02_
|
|
777
790
|
- **v2.0.4** — design the status line to the last cell · _2026-09-30_
|
|
778
791
|
- **v2.0.3** — the status line you designed is the status line you see · _2026-09-30_
|
|
779
792
|
- **v2.0.2** — the lanes record what you answered, and the reviewer always gets the card · _2026-09-28_
|
package/bin/build-agents.js
CHANGED
|
@@ -36,7 +36,7 @@ const OUT_DIR = path.join(ROOT, "templates", "agents");
|
|
|
36
36
|
//
|
|
37
37
|
// v1.0.0 W4 — the table was SIX bands, not eight, and the `opus5_only` ladder is
|
|
38
38
|
// TWO, not three. v2.1.0 made the table FIVE bands (Sonnet 5 low/med/high, then
|
|
39
|
-
// Opus 5.5 low/med).
|
|
39
|
+
// Opus 5.5 low/med). Six of these agents are named by NO default row:
|
|
40
40
|
// names them, and they ship anyway (D14). They stay reachable through
|
|
41
41
|
// `rubric_bands_override`, `orc diy` `fixed_executor` and `extra_fallback_agent`,
|
|
42
42
|
// and deleting a generated file that no row happens to name today would be a
|
|
@@ -52,8 +52,10 @@ const VARIANTS = [
|
|
|
52
52
|
// NAMED BY NO BAND since v1.0.0 W4 / v2.1.0 (D14) — kept on disk, dispatched
|
|
53
53
|
// only when a user names one explicitly.
|
|
54
54
|
{ name: "orc-executor-sonnet-4-6-high", model: "claude-sonnet-4-6", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
// v2.2.0 — `haiku-4-5` and `sonnet-4-6-med` were RENAMED into this one row
|
|
56
|
+
// (an identical twin would have been the result). cli.js LEGACY_AGENTS maps
|
|
57
|
+
// the old names for configs that still write them.
|
|
58
|
+
{ name: "orc-executor-haiku-5-high", model: "claude-haiku-5-5", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
|
|
57
59
|
{ name: "orc-executor-opus-5-high", model: "claude-opus-5-5", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
|
|
58
60
|
{ name: "orc-executor-opus-4-8-high", model: "claude-opus-4-8", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
|
|
59
61
|
{ name: "orc-executor-opus-4-7-high", model: "claude-opus-4-7", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
|
|
@@ -87,8 +89,8 @@ const TWINS = [
|
|
|
87
89
|
desc: "ORC Pattern Codifier — claude-opus-5-5, medium effort. Dispatched by orc-pattern, instead of orc-pattern-codifier-sonnet-5-high when `opus5_only: true`." },
|
|
88
90
|
] },
|
|
89
91
|
{ family: "recon", variants: [
|
|
90
|
-
{ name: "orc-recon-sonnet-
|
|
91
|
-
desc: "ORC Recon — claude-sonnet-
|
|
92
|
+
{ name: "orc-recon-sonnet-5-med", model: "claude-sonnet-5-5", effort: "medium", who: "Sonnet 5, medium",
|
|
93
|
+
desc: "ORC Recon — claude-sonnet-5-5, medium effort. Dispatched by /orc-quick at the dispatch gate, for a read-only question. It never edits." },
|
|
92
94
|
{ name: "orc-recon-opus-5-low", model: "claude-opus-5-5", effort: "low", who: "Opus 5.5, low",
|
|
93
95
|
desc: "ORC Recon — claude-opus-5-5, low effort. Dispatched by /orc-quick at the dispatch gate, for a WIDE or SUBTLE read-only question. It never edits." },
|
|
94
96
|
] },
|