@azure-id/orc 0.56.0 → 1.0.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 +228 -0
- package/README-id.md +143 -53
- package/README.md +124 -103
- package/bin/build-agents.js +18 -11
- package/bin/cli.js +4139 -315
- package/bin/onboarding-content.js +0 -3
- package/bin/test-run.js +491 -0
- package/bin/verify-contracts.js +4256 -3277
- package/bin/verify-package.js +563 -498
- package/bin/webui/api.js +1186 -1163
- package/bin/webui/app.html +9 -0
- package/bin/webui/css/06-responsive.css +120 -108
- package/bin/webui/css/panels/extra.css +29 -0
- package/bin/webui/css/panels/lanes.css +134 -0
- package/bin/webui/css/panels/settings.css +79 -3
- package/bin/webui/fixtures/extra.js +2036 -1934
- package/bin/webui/fixtures/flow.js +2 -2
- package/bin/webui/fixtures/index.js +503 -486
- package/bin/webui/fixtures/lanes.js +218 -0
- package/bin/webui/fixtures/settings.js +261 -34
- package/bin/webui/fixtures/stats.js +3 -3
- package/bin/webui/i18n/TERMS.md +135 -134
- package/bin/webui/i18n/en/extra.json +345 -313
- package/bin/webui/i18n/en/lanes.json +29 -0
- package/bin/webui/i18n/en/nav.json +1 -0
- package/bin/webui/i18n/en/overview.json +2 -0
- package/bin/webui/i18n/en/settings.json +16 -5
- package/bin/webui/i18n/id/extra.json +345 -313
- package/bin/webui/i18n/id/lanes.json +29 -0
- package/bin/webui/i18n/id/nav.json +1 -0
- package/bin/webui/i18n/id/overview.json +2 -0
- package/bin/webui/i18n/id/settings.json +15 -4
- package/bin/webui/js/01-i18n.js +1 -0
- package/bin/webui/js/panels/extra.js +3199 -3011
- package/bin/webui/js/panels/lanes.js +259 -0
- package/bin/webui/js/panels/overview.js +10 -0
- package/bin/webui/js/panels/settings.js +149 -3
- package/package.json +3 -3
- package/templates/agents/MODEL-MAPPING.md +23 -35
- package/templates/agents/orc-executor-opus-4-7-high.md +1 -1
- package/templates/agents/orc-executor-opus-4-7-med.md +1 -1
- package/templates/agents/orc-executor-opus-4-8-high.md +1 -1
- package/templates/agents/orc-executor-opus-5-high.md +1 -1
- package/templates/agents/orc-executor-opus-5-low.md +1 -1
- package/templates/agents/orc-executor-opus-5-med.md +1 -1
- package/templates/agents/orc-retro-opus-5-med.md +73 -73
- package/templates/agents/orc-retro-sonnet-5-high.md +72 -72
- package/templates/agents/orc-trace-writer-haiku-4-5.md +107 -107
- package/templates/commands/orc-route.md +1 -1
- package/templates/commands/orc.md +1 -1
- package/templates/skills/_shared/README.md +7 -3
- package/templates/skills/_shared/config-precedence.md +198 -0
- package/templates/skills/_shared/drift-recovery.md +1 -1
- package/templates/skills/_shared/extra-dispatch.md +292 -6
- package/templates/skills/_shared/interview.md +1 -1
- package/templates/skills/_shared/opus5-only.md +9 -7
- package/templates/skills/_shared/phases/README.md +82 -0
- package/templates/skills/{orc/references → _shared/phases}/analyst-gates.md +15 -3
- package/templates/skills/_shared/phases/execution.md +143 -0
- package/templates/skills/{orc/references → _shared/phases}/house-rules.md +13 -1
- package/templates/skills/{orc/references → _shared/phases}/intake.md +15 -2
- package/templates/skills/_shared/phases/mock-example.md +56 -0
- package/templates/skills/{orc/references → _shared/phases}/plan-handoff.md +16 -3
- package/templates/skills/_shared/phases/planning.md +135 -0
- package/templates/skills/_shared/phases/preflight.md +76 -0
- package/templates/skills/_shared/phases/review.md +53 -0
- package/templates/skills/_shared/phases/scoring.md +65 -0
- package/templates/skills/{orc/references → _shared/phases}/security-checklist.md +12 -1
- package/templates/skills/_shared/phases/security.md +55 -0
- package/templates/skills/_shared/phases/ship.md +88 -0
- package/templates/skills/{orc/references/stop-and-resume.md → _shared/phases/stop-resume.md} +169 -160
- package/templates/skills/_shared/phases/summary.md +48 -0
- package/templates/skills/_shared/phases/testgen.md +51 -0
- package/templates/skills/{orc/references/trace-protocol.md → _shared/phases/trace.md} +49 -6
- package/templates/skills/_shared/phases/verify.md +70 -0
- package/templates/skills/{orc/references → _shared/phases}/wave-grouping.md +14 -2
- package/templates/skills/{orc/references → _shared/phases}/wiki-consult.md +13 -1
- package/templates/skills/_shared/read-ladder.md +48 -0
- package/templates/skills/context-combiner/SKILL.md +214 -187
- package/templates/skills/orc/README.md +148 -150
- package/templates/skills/orc/SKILL.md +70 -358
- package/templates/skills/orc/config.md +137 -389
- package/templates/skills/orc/examples/full-run-mock.md +1 -1
- package/templates/skills/orc/references/effort-and-mode.md +16 -18
- package/templates/skills/orc/references/phases/intake.md +47 -0
- package/templates/skills/orc/references/phases/integration.md +19 -0
- package/templates/skills/orc/references/preflight-report.md +4 -4
- package/templates/skills/orc/references/ultra-mode.md +117 -123
- package/templates/skills/orc/schemas/planning-output.md +279 -279
- package/templates/skills/orc/subskills/orc-planner/SKILL.md +260 -264
- package/templates/skills/orc/subskills/orc-pr/stack-gate.md +4 -1
- package/templates/skills/orc-aftermath/SKILL.md +153 -136
- package/templates/skills/orc-analyze/SKILL.md +247 -220
- package/templates/skills/orc-analyze/references/branching.md +51 -51
- package/templates/skills/orc-analyze/references/thin-input.md +1 -1
- package/templates/skills/orc-analyze-mini/SKILL.md +128 -112
- package/templates/skills/orc-boundary/SKILL.md +244 -208
- package/templates/skills/orc-brainstorm/SKILL.md +372 -339
- package/templates/skills/orc-budget/SKILL.md +243 -225
- package/templates/skills/orc-challenge/README.md +1 -1
- package/templates/skills/orc-challenge/SKILL.md +293 -255
- package/templates/skills/orc-challenge/examples/council-full-roster.md +1 -1
- package/templates/skills/orc-claude/SKILL.md +216 -199
- package/templates/skills/orc-diy/README.md +2 -1
- package/templates/skills/orc-diy/SKILL.md +129 -70
- package/templates/skills/orc-diy/references/blocks/analyze.md +1 -1
- package/templates/skills/orc-diy/references/compile.md +21 -7
- package/templates/skills/orc-diy/references/flow-schema.md +2 -2
- package/templates/skills/orc-doc/SKILL.md +44 -7
- package/templates/skills/orc-explain/SKILL.md +19 -0
- package/templates/skills/orc-export/SKILL.md +26 -5
- package/templates/skills/orc-fast/SKILL.md +215 -187
- package/templates/skills/orc-grill/SKILL.md +233 -207
- package/templates/skills/orc-handoff/SKILL.md +223 -204
- package/templates/skills/orc-learn/SKILL.md +176 -156
- package/templates/skills/orc-mini/SKILL.md +41 -23
- package/templates/skills/orc-pact/SKILL.md +250 -218
- package/templates/skills/orc-pattern/SKILL.md +149 -124
- package/templates/skills/orc-poly/SKILL.md +237 -216
- package/templates/skills/orc-poly/references/gather.md +1 -1
- package/templates/skills/orc-pr-driver/SKILL.md +196 -167
- package/templates/skills/orc-pr-driver/references/orc-run-split.md +1 -1
- package/templates/skills/orc-pr-setup/SKILL.md +212 -184
- package/templates/skills/orc-quick/README.md +2 -2
- package/templates/skills/orc-quick/SKILL.md +346 -313
- package/templates/skills/orc-quick/references/dispatch-gate.md +12 -4
- package/templates/skills/orc-retro/SKILL.md +244 -222
- package/templates/skills/orc-retro/examples/retro-mock.md +171 -171
- package/templates/skills/orc-route/SKILL.md +183 -165
- package/templates/skills/orc-verify/SKILL.md +100 -86
- package/templates/skills/orc-wiki/SKILL.md +55 -206
- package/templates/skills/orc-wiki/references/phases/phase-0.md +71 -0
- package/templates/skills/orc-wiki/references/phases/phase-1.md +35 -0
- package/templates/skills/orc-wiki/references/phases/phase-2.md +52 -0
- package/templates/skills/orc-wiki/references/phases/phase-3.md +57 -0
- package/templates/skills/orc-wiki/references/phases/phase-3c.md +36 -0
- package/templates/agents/orc-advisor-fable-5.md +0 -50
- package/templates/agents/orc-analyst-fable-5.md +0 -115
- package/templates/agents/orc-judge-fable-5.md +0 -79
- package/templates/agents/orc-planner-fable-5.md +0 -152
- package/templates/agents/orc-reviewer-fable-5.md +0 -57
- package/templates/skills/_shared/fable5-override.md +0 -56
- package/templates/skills/orc-diy/references/blocks/execution.md +0 -42
- package/templates/skills/orc-diy/references/blocks/mock-example.md +0 -22
- package/templates/skills/orc-diy/references/blocks/planning.md +0 -34
- package/templates/skills/orc-diy/references/blocks/review.md +0 -18
- package/templates/skills/orc-diy/references/blocks/scoring.md +0 -16
- package/templates/skills/orc-diy/references/blocks/security.md +0 -25
- package/templates/skills/orc-diy/references/blocks/ship.md +0 -25
- package/templates/skills/orc-diy/references/blocks/summary.md +0 -18
- package/templates/skills/orc-diy/references/blocks/testgen.md +0 -17
- package/templates/skills/orc-diy/references/blocks/trace.md +0 -28
- package/templates/skills/orc-diy/references/blocks/verify.md +0 -25
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:
|
|
17
|
+
**Latest: v1.0.0** · updated 2026-08-30 · [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
|
|
|
@@ -359,6 +359,8 @@ orc ui --stop # shut this project's server down
|
|
|
359
359
|
| Crosslink | **Design** (the boundary as a graph) and **Settings** (each peer's freshness) | `crosslink add` / `remove` |
|
|
360
360
|
| Promises · Boundary · Self-serve | the pact ledger, the boundary cards, and the surfaces a non-developer can change | `pact check`, `pact sync`, `handoff set` |
|
|
361
361
|
| **Docs** | every `/orc-doc` document as a **ribbon** — one block per section, sized by its length and coloured by its state — plus the section files with their sub-parts, the wave strip, the lint health card and the wave preview | `doc compile` · `doc migrate` |
|
|
362
|
+
| **Extra** | **six tabs**: the connection setup, the local tools and their state, the band ladder and the six positions, spending per profile per band, and **Recovery** — every dispatch that never reported back, with what it left on disk | `extra add` / `ping` / `route` / `role` |
|
|
363
|
+
| **Challenge** | every `/orc-challenge` cycle: the frozen goal, the council roster and what each lens raised, the findings with their dispositions, and whether the pass is computed or blocked | `challenge record` · `accept` · `rebut` |
|
|
362
364
|
| **Mocked Skill Use** | every mocked run that ships with ORC, grouped and searchable, with a reading pane | — |
|
|
363
365
|
| Learn | the `orc onboarding` walkthrough, one section at a time | — |
|
|
364
366
|
| Experiment | every lane with a copy button; opens a Claude session in a terminal | — |
|
|
@@ -384,6 +386,77 @@ CSS.
|
|
|
384
386
|
|
|
385
387
|
---
|
|
386
388
|
|
|
389
|
+
## Running part of the ladder somewhere else — `orc extra`
|
|
390
|
+
|
|
391
|
+
**The orchestrator is always Claude.** What Extra changes is *who executes a
|
|
392
|
+
slice*: a score band you own, or one of six named positions, can point at
|
|
393
|
+
DeepSeek, GLM, Kimi, MiniMax, Qwen, a local Ollama, or a coding CLI you already
|
|
394
|
+
have signed in (opencode, codex). Everything downstream — the smoke gate, the TDD
|
|
395
|
+
gate, the reviewer, the worktree-delta check — is engine-blind, so nothing learns
|
|
396
|
+
the work was foreign.
|
|
397
|
+
|
|
398
|
+
**Off by default, and it cannot be armed until something has actually answered.**
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
orc extra providers # the shipped, dated catalog — providers, never models
|
|
402
|
+
orc extra tools # local CLIs: absent · outdated · unauthenticated · ready
|
|
403
|
+
orc extra add ds --provider deepseek --engine api --env-key DEEPSEEK_API_KEY
|
|
404
|
+
orc extra ping ds # the connection gate: a ladder, and nothing reads stronger than it is
|
|
405
|
+
orc extra models ds --test <id> # a LISTED model can still be dead upstream
|
|
406
|
+
orc extra health ds --model <id> # …and a working model is not one that FINISHES
|
|
407
|
+
orc extra route set 40-55 ds/deepseek-chat # a score band
|
|
408
|
+
orc extra role set doc-writer ds/deepseek-chat # or a named position
|
|
409
|
+
orc config set extra_enabled true
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
- **The catalog ships providers and never models.** A shipped model id is wrong
|
|
413
|
+
within a quarter and wrong *silently* — a 404 mid-wave. `orc extra ping` reads
|
|
414
|
+
the live list and caches it; nothing invents a name. Same for price: a cost
|
|
415
|
+
figure ORC did not price itself is never printed, it reads as an em dash.
|
|
416
|
+
- **Every armed run says so before wave 1.** Routing work off Claude silently is
|
|
417
|
+
the failure this whole subsystem is shaped around.
|
|
418
|
+
- **Two hard hold-backs**: a task with a cited `risk[]` (auth, money, migration,
|
|
419
|
+
security, concurrency, data-integrity) stays on Claude unless you say
|
|
420
|
+
otherwise, and a `/orc-boundary` REFUSE area holds even in `warn`.
|
|
421
|
+
- **A foreign return is foreign input.** It is the only foreign class that edits
|
|
422
|
+
your worktree, so what it says it did is a *claim*, checked against the tree.
|
|
423
|
+
- **Your key never reaches a command line.** It travels on stdin into an
|
|
424
|
+
encrypted vault, or it stays in an environment variable, or the tool holds its
|
|
425
|
+
own — and the passphrase is a **deadline**, not a second factor.
|
|
426
|
+
- **Six positions for the lanes that pin an agent instead of scoring a task**:
|
|
427
|
+
`quick-executor` · `fast-executor` · `doc-writer` · `doc-checker` ·
|
|
428
|
+
`wiki-scanner-deep` · `wiki-scanner-light`. A position with no row keeps its
|
|
429
|
+
slot and reads as its pinned Claude agent — "I left the checker on Claude on
|
|
430
|
+
purpose" and "there is no checker" must never look the same.
|
|
431
|
+
|
|
432
|
+
**When a foreign worker fails, it is a position and not a blank page.** ORC
|
|
433
|
+
journals the baseline *before the first byte leaves the machine*, so a worker cut
|
|
434
|
+
off mid-write is **reconciled and resumed** — never re-dispatched from scratch
|
|
435
|
+
onto a file that is already two-thirds written.
|
|
436
|
+
|
|
437
|
+
- **`extra_stall_s` (default 180)** stops a worker that has produced nothing for
|
|
438
|
+
that long. It is reset by observable progress — the worker's stream, its
|
|
439
|
+
stderr, or a declared file that changed on disk — so it never fires on one that
|
|
440
|
+
is merely slow. `stalled` is retryable, which is what makes the resume ORC's
|
|
441
|
+
own spelling of typing `continue`.
|
|
442
|
+
- **`extra_fallback_agent` (default `band`)** decides who picks the task up.
|
|
443
|
+
`ask` stops and puts the menu to you; any installed agent name pins one. It
|
|
444
|
+
changes *who*, never the score, the declared files or the acceptance criteria.
|
|
445
|
+
- **Every dispatch writes its own spend record**, so a cost report never depends
|
|
446
|
+
on a run remembering to narrate what it spent. `orc extra stats` merges the
|
|
447
|
+
spend log, the traces and saved returns, and always says how many rows came
|
|
448
|
+
from each.
|
|
449
|
+
|
|
450
|
+
**`/orc-quick` is inert here** and announces it — that lane asks which agent
|
|
451
|
+
before every dispatch, so no setting may pre-answer it. **`/orc-challenge` never
|
|
452
|
+
routes foreign**: swapping a lens for a different model does not make the lane
|
|
453
|
+
cheaper, it changes what is being measured.
|
|
454
|
+
|
|
455
|
+
**The whole subsystem, with every command and key:
|
|
456
|
+
[guides/extra-models.md](guides/extra-models.md).**
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
387
460
|
## How the model is picked
|
|
388
461
|
|
|
389
462
|
Each task is scored 0–100 by **arithmetic, not judgement**: the planner reports
|
|
@@ -424,12 +497,13 @@ clobbers. `orc ui` ▸ Settings edits the same keys through the same validators.
|
|
|
424
497
|
|
|
425
498
|
```
|
|
426
499
|
templates/
|
|
427
|
-
├── skills/
|
|
428
|
-
│
|
|
429
|
-
│ orc-analyze-mini,
|
|
430
|
-
|
|
500
|
+
├── skills/ 31 skill folders, 38 SKILL.md files (a lane may ship subskills) —
|
|
501
|
+
│ the lanes above, plus the ones with no command of their own:
|
|
502
|
+
│ context-combiner, orc-advisor, orc-judge, orc-analyze-mini,
|
|
503
|
+
│ and _shared/ (cross-lane contract prose)
|
|
504
|
+
├── commands/ 29 slash commands
|
|
431
505
|
├── hooks/ effort guard (PreToolUse) · statusline warning · behavior trace
|
|
432
|
-
└── agents/
|
|
506
|
+
└── agents/ 51 model-pinned subagents + MODEL-MAPPING.md
|
|
433
507
|
bin/cli.js installer, config editor, flow composer, run-state reader, and
|
|
434
508
|
the deterministic half of every lane. Every read speaks --json
|
|
435
509
|
bin/webui/ `orc ui` — the local control panel: css/ + js/ + i18n/<lang>/ +
|
|
@@ -500,102 +574,49 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
|
|
|
500
574
|
**Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
|
|
501
575
|
only what is newer than the version you have.
|
|
502
576
|
|
|
503
|
-
###
|
|
504
|
-
|
|
505
|
-
**
|
|
506
|
-
v0.56.0
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
- **Step 1
|
|
510
|
-
- **Step 2
|
|
511
|
-
- **Step 3
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
**The
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
- **orc-quick Q0 gains one PROBE** - `orc extra resolve --slot quick-executor
|
|
547
|
-
--json`, the single exception to "read no other key" - so the menu can render
|
|
548
|
-
line 3. Still an option: never a default, never sticky.
|
|
549
|
-
- **orc-fast F0 gains gate `d`** - `orc extra resolve --slot fast-executor
|
|
550
|
-
--json` - and prints the P0 `extra:` line where the prose always said it
|
|
551
|
-
would, naming the agent it displaces.
|
|
552
|
-
- **`/orc-doc` was never affected**: `orc doc next` resolves its targets in the
|
|
553
|
-
CLI, which is the shape the other two now borrow.
|
|
554
|
-
|
|
555
|
-
### v0.55.1 — ORC is on npm _(2026-08-27)_
|
|
556
|
-
|
|
557
|
-
**ORC is published as [`@azure-id/orc`](https://www.npmjs.com/package/@azure-id/orc).**
|
|
558
|
-
The GitHub tarball still works and nothing about the payload changed — this is
|
|
559
|
-
the install path getting a name.
|
|
560
|
-
|
|
561
|
-
- **`npm i -g @azure-id/orc`** is the install, and
|
|
562
|
-
**`npm i -g @azure-id/orc@latest`** is the update. `orc upgrade` already did
|
|
563
|
-
both steps for you and continues to; `--from @azure-id/orc` names npm
|
|
564
|
-
explicitly.
|
|
565
|
-
- **The GitHub tarball is now the fallback**, not the headline — it is kept in
|
|
566
|
-
the Quick start behind a fold for forks and for anyone pinning a branch.
|
|
567
|
-
|
|
568
|
-
### v0.55.0 — a score is what a band needs, and four lanes do not have one _(2026-08-26)_
|
|
569
|
-
|
|
570
|
-
**`/orc-quick`, `/orc-fast`, `/orc-doc` and `/orc-wiki` pin an agent to a
|
|
571
|
-
position instead of scoring a task. `orc extra` routed them by reading that
|
|
572
|
-
agent's score band — arithmetic on a number nobody chose. It was wrong twice and
|
|
573
|
-
dead once.**
|
|
574
|
-
|
|
575
|
-
- **`orc extra role` holds six POSITIONS** — `quick-executor` · `fast-executor` ·
|
|
576
|
-
`doc-writer` · `doc-checker` · `wiki-scanner-deep` · `wiki-scanner-light`. One
|
|
577
|
-
connection and one model each, and a row's presence is the arming. All six are
|
|
578
|
-
always listed: an unrouted one keeps its slot and reads as the Claude agent it
|
|
579
|
-
falls back to.
|
|
580
|
-
- **`orc extra resolve --slot` never touches a band**, and the Claude answer it
|
|
581
|
-
carries is a pinned NAME rather than an interval. Nine hold-backs, each named.
|
|
582
|
-
- **Precedence, one sentence:** extra decides *whether* a Claude agent runs at
|
|
583
|
-
all; `opus5_only` and the score tables only decide *which* one runs where extra
|
|
584
|
-
did not take it. Under a taken position `opus5_only` is not consulted — and it
|
|
585
|
-
stays fully live for every position with no row.
|
|
586
|
-
- **The bridge accepts a slot** (`band` becomes `slot:<slot>`, so cost reporting
|
|
587
|
-
splits per position for free) with **zero new engines, zero new dispatch paths
|
|
588
|
-
and zero new agents**. A doc checker now resolves its OWN position, `/orc-wiki`
|
|
589
|
-
can route at all, and `/orc-quick` gets a THIRD OPTION on its menu — never a
|
|
590
|
-
default, never sticky, re-asked after a failure.
|
|
591
|
-
- **A second ladder in `orc ui ▸ Extra ▸ Routing`**, and **zero config keys
|
|
592
|
-
added**.
|
|
593
|
-
|
|
594
|
-
Before that: **v0.54.0 — a failed dispatch is a POSITION, not a blank page**,
|
|
595
|
-
**v0.53.4 — the reload that dropped its own token**, **v0.53.3 — the key it never
|
|
596
|
-
sent**, **v0.53.2 — the cost that was paid and never written down**, and
|
|
597
|
-
**v0.53.1 — "up to date" now names what it checked**.
|
|
598
|
-
[Read them in the changelog](CHANGELOG.md).
|
|
577
|
+
### v1.0.0 - config, phases and calls stop being prose _(2026-08-30)_
|
|
578
|
+
|
|
579
|
+
**Still on the unscoped `orc` package?** Do this once first — your `orc upgrade`
|
|
580
|
+
is the pre-v0.56.0 one and cannot install itself. Full detail in the CAUTION at
|
|
581
|
+
the top of this file.
|
|
582
|
+
|
|
583
|
+
- **Step 1 — release the command from the old package:** `npm uninstall -g orc`
|
|
584
|
+
- **Step 2 — install the current package:** `npm i -g @azure-id/orc`
|
|
585
|
+
- **Step 3 — re-apply it to your project:** `orc update`
|
|
586
|
+
|
|
587
|
+
**Nothing you configure changes meaning, and no command you run is renamed.**
|
|
588
|
+
Three things actually change behaviour; everything else is ORC finally reading
|
|
589
|
+
its own payload the way it has been telling you to read yours.
|
|
590
|
+
|
|
591
|
+
- **The score to model table ends `opus-5-low [65,90)` · `opus-5-med [90,100]`.**
|
|
592
|
+
Two bands in six now want an Opus 5 main session where one in eight did.
|
|
593
|
+
- **A foreign worker that stalls twice in one run steps aside** for the rest of
|
|
594
|
+
that run. Two clocks, never merged; it writes no new measurement and never
|
|
595
|
+
writes your config; a promote is a watermark, not a mute, and needs a reason.
|
|
596
|
+
- **`orc diy init` defaults to `opus-5-high`.** The old default silently
|
|
597
|
+
collapsed the top third of your ladder onto one agent before you chose
|
|
598
|
+
anything.
|
|
599
|
+
|
|
600
|
+
The structural half - **config, phases and calls stop being prose**:
|
|
601
|
+
|
|
602
|
+
- **`orc lane config <lane>`** answers what a lane's config resolved to, with
|
|
603
|
+
every shadow already worded. A lane never merges the config file itself again,
|
|
604
|
+
and **a rank below a resolved rank is not read at all**.
|
|
605
|
+
- **`orc lane phases <lane>`** and **`orc lane calls --all`** do the same for the
|
|
606
|
+
shared phase library and the CLI call catalogue - one canonical copy each,
|
|
607
|
+
where there were 14-59 restatements per call.
|
|
608
|
+
- **`orc ui` renders all of it**: a rank ladder showing which setting ANSWERED,
|
|
609
|
+
the lanes that read each key, a Lanes panel, and Extra ▸ Recovery's demotion
|
|
610
|
+
row with Promote. `orc doctor` gains `lane-keys-drifted`.
|
|
611
|
+
|
|
612
|
+
**It did not make the payload smaller** - 208 files became 291, 26,507 lines
|
|
613
|
+
became 33,204. Most waves measured as correctness, not deduplication. What
|
|
614
|
+
changed is that there is now one place to fix each of these, and a lint that
|
|
615
|
+
fails when a copy grows back. Two planned deletions were **measured and
|
|
616
|
+
refused**, and the test suite's four-wave flake was diagnosed - with the honest
|
|
617
|
+
caveat that three green runs are the gate and not proof.
|
|
618
|
+
|
|
619
|
+
**Full entry: [CHANGELOG.md](CHANGELOG.md).**
|
|
599
620
|
|
|
600
621
|
---
|
|
601
622
|
|
package/bin/build-agents.js
CHANGED
|
@@ -22,24 +22,31 @@ const TEMPLATE = path.join(ROOT, "agents-src", "executor.template.md");
|
|
|
22
22
|
const OUT_DIR = path.join(ROOT, "templates", "agents");
|
|
23
23
|
|
|
24
24
|
// Score→model bands mirror templates/agents/MODEL-MAPPING.md and the single
|
|
25
|
-
//
|
|
25
|
+
// score→model table in skills/orc/config.md (documented drift — change
|
|
26
26
|
// together). `effort: null` = a model with NO effort ladder (haiku): the
|
|
27
27
|
// generator omits the `effort:` frontmatter line entirely.
|
|
28
|
+
//
|
|
29
|
+
// v1.0.0 W4 — the table is SIX bands, not eight, and the `opus5_only` ladder is
|
|
30
|
+
// TWO, not three. Four of these agents are named by NO default row:
|
|
31
|
+
// names them, and they ship anyway (D14). They stay reachable through
|
|
32
|
+
// `rubric_bands_override`, `orc diy` `fixed_executor` and `extra_fallback_agent`,
|
|
33
|
+
// and deleting a generated file that no row happens to name today would be a
|
|
34
|
+
// rename-shaped migration for what is only a table change. Their `band` string
|
|
35
|
+
// says so rather than naming a range that no longer exists — a band label that
|
|
36
|
+
// lies is worse than one that admits it is unreachable by default.
|
|
28
37
|
const VARIANTS = [
|
|
29
|
-
{ name: "orc-executor-opus-5-
|
|
30
|
-
{ name: "orc-executor-opus-
|
|
31
|
-
{ name: "orc-executor-opus-4-7-high", model: "claude-opus-4-7", effort: "high", band: "high-complexity [70,80)" },
|
|
32
|
-
{ name: "orc-executor-opus-4-7-med", model: "claude-opus-4-7", effort: "medium", band: "upper-mid-complexity [65,70)" },
|
|
38
|
+
{ name: "orc-executor-opus-5-med", model: "claude-opus-5", effort: "medium", band: "highest-complexity [90,100]" },
|
|
39
|
+
{ name: "orc-executor-opus-5-low", model: "claude-opus-5", effort: "low", band: "upper-complexity [65,90)" },
|
|
33
40
|
{ name: "orc-executor-sonnet-5-high", model: "claude-sonnet-5", effort: "high", band: "mid-complexity [55,65)" },
|
|
34
41
|
{ name: "orc-executor-sonnet-4-6-high", model: "claude-sonnet-4-6", effort: "high", band: "low-mid-complexity [40,55)" },
|
|
35
42
|
{ name: "orc-executor-sonnet-4-6-med", model: "claude-sonnet-4-6", effort: "medium", band: "low-complexity [30,40)" },
|
|
36
43
|
{ name: "orc-executor-haiku-4-5", model: "claude-haiku-4-5", effort: null, band: "lowest-complexity [0,30)" },
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
{ name: "orc-executor-opus-
|
|
42
|
-
{ name: "orc-executor-opus-
|
|
44
|
+
// NAMED BY NO BAND since v1.0.0 W4 (D14) — kept on disk, dispatched only when a
|
|
45
|
+
// user names one explicitly.
|
|
46
|
+
{ name: "orc-executor-opus-5-high", model: "claude-opus-5", effort: "high", band: "no default band — reachable via rubric_bands_override, orc diy fixed_executor, or extra_fallback_agent" },
|
|
47
|
+
{ name: "orc-executor-opus-4-8-high", model: "claude-opus-4-8", effort: "high", band: "no default band — reachable via rubric_bands_override, orc diy fixed_executor, or extra_fallback_agent" },
|
|
48
|
+
{ name: "orc-executor-opus-4-7-high", model: "claude-opus-4-7", effort: "high", band: "no default band — reachable via rubric_bands_override, orc diy fixed_executor, or extra_fallback_agent" },
|
|
49
|
+
{ name: "orc-executor-opus-4-7-med", model: "claude-opus-4-7", effort: "medium", band: "no default band — reachable via rubric_bands_override, orc diy fixed_executor, or extra_fallback_agent" },
|
|
43
50
|
];
|
|
44
51
|
|
|
45
52
|
function render(template, v) {
|