@azure-id/orc 2.0.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.
Files changed (121) hide show
  1. package/CHANGELOG.md +401 -0
  2. package/README-id.md +52 -23
  3. package/README.md +50 -22
  4. package/bin/build-agents.js +24 -25
  5. package/bin/clear-logs.js +620 -0
  6. package/bin/cli.js +1155 -158
  7. package/bin/fix.js +459 -0
  8. package/bin/gotcha.js +288 -8
  9. package/bin/habit.js +1538 -1453
  10. package/bin/mockrun-catalog.js +3 -0
  11. package/bin/onboarding-content.js +2 -1
  12. package/bin/pricing.json +28 -21
  13. package/bin/trace-write.js +869 -657
  14. package/bin/verify-contracts.js +108 -27
  15. package/bin/verify-package.js +17 -6
  16. package/bin/webui/api.js +125 -6
  17. package/bin/webui/css/panels/hookui.css +79 -0
  18. package/bin/webui/fixtures/behaviour.js +30 -0
  19. package/bin/webui/fixtures/extra.js +9 -9
  20. package/bin/webui/fixtures/flow.js +81 -81
  21. package/bin/webui/fixtures/hookui.js +506 -431
  22. package/bin/webui/fixtures/index.js +32 -3
  23. package/bin/webui/fixtures/knowledge.js +2 -2
  24. package/bin/webui/fixtures/maintenance.js +123 -42
  25. package/bin/webui/fixtures/rules.js +1007 -1002
  26. package/bin/webui/fixtures/settings.js +6 -7
  27. package/bin/webui/fixtures/stats.js +9 -6
  28. package/bin/webui/fixtures/wait.js +98 -97
  29. package/bin/webui/i18n/en/behaviour.json +13 -0
  30. package/bin/webui/i18n/en/hookui.json +290 -194
  31. package/bin/webui/i18n/en/maintenance.json +71 -52
  32. package/bin/webui/i18n/en/settings.json +60 -60
  33. package/bin/webui/i18n/id/behaviour.json +13 -0
  34. package/bin/webui/i18n/id/hookui.json +290 -194
  35. package/bin/webui/i18n/id/maintenance.json +71 -52
  36. package/bin/webui/i18n/id/settings.json +60 -60
  37. package/bin/webui/js/05-banners.js +181 -172
  38. package/bin/webui/js/06-edit.js +193 -183
  39. package/bin/webui/js/panels/behaviour.js +77 -12
  40. package/bin/webui/js/panels/hookui.js +2196 -1691
  41. package/bin/webui/js/panels/maintenance.js +336 -235
  42. package/bin/webui/js/panels/settings.js +726 -719
  43. package/mock-run/INDEX.md +1 -0
  44. package/mock-run/extra-slots.md +1 -1
  45. package/mock-run/habits.md +1 -1
  46. package/mock-run/orc-aftermath.md +392 -392
  47. package/mock-run/orc-budget.md +29 -33
  48. package/mock-run/orc-cli.md +200 -200
  49. package/mock-run/orc-explain.md +86 -86
  50. package/mock-run/orc-extra.md +389 -392
  51. package/mock-run/orc-fix.md +87 -0
  52. package/mock-run/orc-pattern.md +112 -112
  53. package/mock-run/orc.md +157 -157
  54. package/package.json +1 -1
  55. package/templates/agents/MODEL-MAPPING.md +32 -29
  56. package/templates/agents/orc-analyze-mini-sonnet-5-high.md +2 -2
  57. package/templates/agents/{orc-claude-writer-opus-5-med.md → orc-claude-writer-opus-5-low.md} +4 -4
  58. package/templates/agents/orc-executor-haiku-4-5.md +1 -1
  59. package/templates/agents/orc-executor-opus-5-low.md +1 -1
  60. package/templates/agents/orc-executor-sonnet-4-6-high.md +1 -1
  61. package/templates/agents/orc-executor-sonnet-4-6-med.md +1 -1
  62. package/templates/agents/orc-executor-sonnet-5-high.md +2 -2
  63. package/templates/agents/orc-executor-sonnet-5-low.md +155 -0
  64. package/templates/agents/orc-executor-sonnet-5-med.md +155 -0
  65. package/templates/agents/orc-pattern-codifier-sonnet-5-high.md +2 -2
  66. package/templates/agents/orc-planner-mini-sonnet-5-high.md +2 -2
  67. package/templates/agents/orc-retro-sonnet-5-high.md +2 -2
  68. package/templates/agents/{orc-reviewer-opus-5-med.md → orc-reviewer-opus-5-low.md} +4 -4
  69. package/templates/agents/{orc-wiki-scanner-opus-5-med.md → orc-wiki-scanner-opus-5-low.md} +3 -3
  70. package/templates/agents/orc-wiki-scanner-sonnet-5-high.md +2 -2
  71. package/templates/commands/orc-fix.md +18 -0
  72. package/templates/commands/orc-wiki.md +64 -64
  73. package/templates/hooks/README.md +75 -7
  74. package/templates/hooks/orc-session-hook.js +78 -3
  75. package/templates/hooks/orc-statusline-render.js +317 -23
  76. package/templates/hooks/orc-statusline.js +162 -49
  77. package/templates/hooks/orc-subagent-line.js +23 -5
  78. package/templates/hooks/orc-weather-fetch.js +123 -0
  79. package/templates/skills/_shared/extra-dispatch.md +5 -5
  80. package/templates/skills/_shared/gotchas.md +27 -7
  81. package/templates/skills/_shared/habits.md +2 -2
  82. package/templates/skills/_shared/opus5-only.md +14 -14
  83. package/templates/skills/_shared/phases/review.md +2 -2
  84. package/templates/skills/_shared/phases/trace-verbs.md +17 -3
  85. package/templates/skills/_shared/phases/trace.md +136 -136
  86. package/templates/skills/_shared/review-slice.md +28 -1
  87. package/templates/skills/_shared/wait.md +1 -0
  88. package/templates/skills/orc/README.md +2 -2
  89. package/templates/skills/orc/SKILL.md +1 -1
  90. package/templates/skills/orc/config.md +25 -27
  91. package/templates/skills/orc/examples/full-run-mock.md +2 -1
  92. package/templates/skills/orc/references/effort-and-mode.md +17 -17
  93. package/templates/skills/orc/references/preflight-report.md +3 -3
  94. package/templates/skills/orc/references/ultra-mode.md +1 -1
  95. package/templates/skills/orc/schemas/checkpoint.md +122 -122
  96. package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +3 -3
  97. package/templates/skills/orc/subskills/orc-review-verify/core.md +1 -1
  98. package/templates/skills/orc-analyze/SKILL.md +4 -2
  99. package/templates/skills/orc-claude/SKILL.md +14 -14
  100. package/templates/skills/orc-claude/examples/claude-run-mock.md +65 -65
  101. package/templates/skills/orc-diy/SKILL.md +5 -5
  102. package/templates/skills/orc-fast/SKILL.md +8 -6
  103. package/templates/skills/orc-fix/SKILL.md +110 -0
  104. package/templates/skills/orc-mini/SKILL.md +4 -4
  105. package/templates/skills/orc-mini/examples/mini-run-mock.md +4 -2
  106. package/templates/skills/orc-quick/README.md +1 -1
  107. package/templates/skills/orc-quick/SKILL.md +2 -2
  108. package/templates/skills/orc-quick/references/dispatch-gate.md +3 -2
  109. package/templates/skills/orc-quick/references/gh-mode.md +4 -2
  110. package/templates/skills/orc-retro/SKILL.md +1 -1
  111. package/templates/skills/orc-retro/examples/retro-mock.md +16 -16
  112. package/templates/skills/orc-wiki/README.md +325 -325
  113. package/templates/skills/orc-wiki/SKILL.md +195 -195
  114. package/templates/skills/orc-wiki/examples/wiki-run-mock.md +37 -37
  115. package/templates/skills/orc-wiki/references/extra.md +2 -2
  116. package/templates/skills/orc-wiki/references/partial-refresh.md +276 -271
  117. package/templates/skills/orc-wiki/references/phases/phase-0.md +1 -1
  118. package/templates/skills/orc-wiki/references/phases/phase-2.md +3 -3
  119. package/templates/skills/orc-wiki/references/phases/phase-3c.md +3 -2
  120. package/templates/agents/orc-claude-writer-opus-4-8-high.md +0 -48
  121. package/templates/agents/orc-wiki-scanner-opus-4-8-high.md +0 -74
package/README.md CHANGED
@@ -7,14 +7,14 @@
7
7
  *Intake → analyze → plan → score → parallel subagents → review → verify → ship.*
8
8
 
9
9
  ![npm](https://img.shields.io/npm/v/%40azure-id%2Forc?style=for-the-badge&color=cb3837&logo=npm)
10
- ![Version](https://img.shields.io/badge/version-2.0.2-blue.svg?style=for-the-badge)
10
+ ![Version](https://img.shields.io/badge/version-2.1.0-blue.svg?style=for-the-badge)
11
11
  ![License](https://img.shields.io/badge/license-MIT-green.svg?style=for-the-badge)
12
12
  ![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg?style=for-the-badge)
13
13
  ![Claude Code](https://img.shields.io/badge/Claude_Code-Skills-purple.svg?style=for-the-badge)
14
14
  ![Dependencies](https://img.shields.io/badge/dependencies-zero-lightgrey.svg?style=for-the-badge)
15
15
  ![GitHub stars](https://img.shields.io/github/stars/azure-id/orc?style=for-the-badge&color=yellow)
16
16
 
17
- **Latest: v2.0.2** · updated 28-09-2026 · [full changelog](CHANGELOG.md)
17
+ **Latest: v2.1.0** · updated 02-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
 
@@ -255,6 +255,7 @@ ORC have terminal hook to see: Context Window %, 5 Hour usage %, Weekly usage %
255
255
  | **`/orc-fast`** | The fastest lane. Needs a fresh wiki **and** a cached code pattern; then it skips the analyst and planner entirely. A missing prerequisite falls back to `/orc-mini` — the chat never stops. | [see it](mock-run/orc-fast.md) |
256
256
  | **`/orc-quick`** | Ask for anything: a fix, a question, a defect hunt, a dependency bump, PR comments. Look → ask once → do. **It always asks which agent to dispatch**, and no setting can change that. A defect is **reproduced red before it is fixed**. | [see it](mock-run/orc-quick.md) |
257
257
  | **`/orc-wait`** | Wall-clock pause without losing the run. You see the window is nearly full, type `/orc-wait 30`, and ORC hands the run back to disk, waits in detached hops that **cost zero tokens**, and picks up where it stopped. Three modes decide how much finishes first: `safe` · `soft` (forces the checkpoint) · `hard` (fastest, can lose an in-flight return). `/orc-wait block <reason>` tells it not to stop you at all. | — |
258
+ | **`/orc-fix`** | Fix one thing after a review: a Sonar issue, a red CI, a bug someone found. Inside a paused run it only **records** the fix (one observation and one `FIX` line in that run's trace), so the review that missed it is counted. With no run open, it fixes like `/orc-quick` and asks which agent to use. | [see it](mock-run/orc-fix.md) |
258
259
  | **`/orc-diy`** | Your own lane, composed in the terminal with `orc diy` and compiled. Unconfigured or stale → it refuses and offers plain `/orc`. | [see it](mock-run/orc-diy.md) |
259
260
 
260
261
  ### Work out what to build
@@ -617,8 +618,18 @@ fixed published formula turns them into a number. A cited risk forces a floor of
617
618
  70. The score maps through a published table to a **named, model-pinned agent**,
618
619
  so what ran is inspectable rather than requested in prose.
619
620
 
621
+ The default table (since v2.1.0):
622
+
623
+ | Score | Agent | Model · effort |
624
+ |---|---|---|
625
+ | `[0,21)` | `orc-executor-sonnet-5-low` | Sonnet 5 · low |
626
+ | `[21,31)` | `orc-executor-sonnet-5-med` | Sonnet 5 · medium |
627
+ | `[31,41)` | `orc-executor-sonnet-5-high` | Sonnet 5 · high |
628
+ | `[41,90)` | `orc-executor-opus-5-low` | Opus 5.5 · low |
629
+ | `[90,100]` | `orc-executor-opus-5-med` | Opus 5.5 · medium |
630
+
620
631
  > **The rule that catches everyone:** a subagent's model can never be higher than
621
- > your main session's. Run your session on Opus 5.
632
+ > your main session's. Every band from score 41 needs an Opus 5.5 main session.
622
633
 
623
634
  **Full detail — the bands, `opus5_only`, and the tier guard `orc init` installs:
624
635
  [guides/model-selection.md](guides/model-selection.md).**
@@ -649,13 +660,13 @@ clobbers. `orc ui` ▸ Settings edits the same keys through the same validators.
649
660
 
650
661
  ```
651
662
  templates/
652
- ├── skills/ 31 skill folders, 38 SKILL.md files (a lane may ship subskills) —
663
+ ├── skills/ 34 skill folders, 41 SKILL.md files (a lane may ship subskills) —
653
664
  │ the lanes above, plus the ones with no command of their own:
654
665
  │ context-combiner, orc-advisor, orc-judge, orc-analyze-mini,
655
666
  │ and _shared/ (cross-lane contract prose)
656
- ├── commands/ 29 slash commands
667
+ ├── commands/ 33 slash commands
657
668
  ├── hooks/ effort guard (PreToolUse) · statusline warning · behavior trace
658
- └── agents/ 48 model-pinned subagents + MODEL-MAPPING.md
669
+ └── agents/ 50 model-pinned subagents + MODEL-MAPPING.md
659
670
  bin/cli.js installer, config editor, flow composer, run-state reader, and
660
671
  the deterministic half of every lane. Every read speaks --json
661
672
  bin/graph*.js the code graph: store, extraction, resolution + its cache and
@@ -730,25 +741,42 @@ a current audit: [EVAL-REPORT.md](EVAL-REPORT.md).
730
741
  **Full history: [CHANGELOG.md](CHANGELOG.md)** — or `orc changelog`, which prints
731
742
  only what is newer than the version you have.
732
743
 
733
- ### v2.0.2 — the lanes record what you answered, and the reviewer always gets the card _(2026-09-28)_
734
-
735
- **A patch from the live evals.** Habits now really work in a live run, and the reviewer
736
- always gets its card:
737
-
738
- - **Your answers are recorded correctly.** `orc trace write` checks every answer as it
739
- arrives and hands a wrong one back with the right ids. At the end of a run it names
740
- any question nobody recorded.
741
- - **The reviewer always gets the gotcha card.** A hook hands it to every reviewer,
742
- verifier and judge, so a lane that forgets it cannot lose it.
743
- - **A run that writes no trace is stopped once** and told how to fix it.
744
- - **`/orc-quick` always takes the undo snapshot.**
745
- - **The compact rules card is on by default for `/orc-mini` and `/orc-fast`** (eval E4 passed).
746
-
747
- **What you have to do:** `orc update`.
744
+ ### v2.1.0 — the review counts, the score table moves up, and old logs can go _(2026-10-02)_
745
+
746
+ - **A new score table with five bands.** Scores 0–40 go to Sonnet 5 (low,
747
+ medium, high). Scores 41–89 go to Opus 5.5 low, and 90–100 to Opus 5.5 medium.
748
+ Haiku is no longer in the table. **Every band from 41 needs an Opus 5.5 main
749
+ session.**
750
+ - **Sonnet 5 runs on `claude-sonnet-5-5`.** The price table is correct again.
751
+ - **The reviewer is `orc-reviewer-opus-5-low`.** In the live eval, low effort
752
+ found every seeded defect that was still in the diff.
753
+ - **The wiki scanner and the CLAUDE.md writer use Opus 5.5 low** (they used Opus
754
+ 4.8).
755
+ - **Review quality no longer says "0 so far" after real reviews.** It counts
756
+ reviews from the traces. A clean review counts too.
757
+ - **Your project's own review rule.** When CLAUDE.md or AGENTS.md asks for a
758
+ different review (for example `/code-review`), the lanes ask "ORC review, that
759
+ review, or skip". `orc review policy` shows what ORC found.
760
+ - **New lane `/orc-fix`.** It records a fix after a review (Sonar, a red CI, a
761
+ bug) and who added the bug. The reviewer card shows it, and the panel shows
762
+ "Fixes after review".
763
+ - **`orc clear logs`** shows old traces and run folders. `--apply` deletes them.
764
+ Nothing is deleted automatically unless you set `log_retention_auto: on`.
765
+ - **The status line timer:** 1, 2, 3, 5 or 10 seconds. Below 1 second is refused,
766
+ because Claude Code does not support it.
767
+ - **Behaviour tab fixes:** with `habits: off` you still see Review quality and
768
+ Gotchas, `/orc-fast` records your answers, and the answer log shows the question.
769
+
770
+ **What you have to do:** `orc update`. If you compiled an `orc diy` flow, run
771
+ `orc diy compile`. If a script names `orc-reviewer-opus-5-med`, change it to
772
+ `orc-reviewer-opus-5-low`. The cost changes: read the CHANGELOG.
748
773
 
749
774
  <details>
750
- <summary><strong>Earlier releases</strong> — 124 of them, titles only. Full text in <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
775
+ <summary><strong>Earlier releases</strong> — 127 of them, titles only. Full text in <a href="CHANGELOG.md">CHANGELOG.md</a>.</summary>
751
776
 
777
+ - **v2.0.4** — design the status line to the last cell · _2026-09-30_
778
+ - **v2.0.3** — the status line you designed is the status line you see · _2026-09-30_
779
+ - **v2.0.2** — the lanes record what you answered, and the reviewer always gets the card · _2026-09-28_
752
780
  - **v2.0.1** — the trace keeps the gate name, and the lanes find the habits rule · _2026-09-27_
753
781
  - **v2.0.0** — the coding lanes remember what you fixed and how you work · _2026-09-27_
754
782
  - **v1.9.2** — the code graph gets its own tab, and Opus 5 becomes Opus 5.5 · _2026-09-23_
@@ -34,8 +34,9 @@ const OUT_DIR = path.join(ROOT, "templates", "agents");
34
34
  // together). `effort: null` = a model with NO effort ladder (haiku): the
35
35
  // generator omits the `effort:` frontmatter line entirely.
36
36
  //
37
- // v1.0.0 W4 — the table is SIX bands, not eight, and the `opus5_only` ladder is
38
- // TWO, not three. Four of these agents are named by NO default row:
37
+ // v1.0.0 W4 — the table was SIX bands, not eight, and the `opus5_only` ladder is
38
+ // TWO, not three. v2.1.0 made the table FIVE bands (Sonnet 5 low/med/high, then
39
+ // Opus 5.5 low/med). Seven of these agents are named by NO default row:
39
40
  // names them, and they ship anyway (D14). They stay reachable through
40
41
  // `rubric_bands_override`, `orc diy` `fixed_executor` and `extra_fallback_agent`,
41
42
  // and deleting a generated file that no row happens to name today would be a
@@ -44,13 +45,15 @@ const OUT_DIR = path.join(ROOT, "templates", "agents");
44
45
  // lies is worse than one that admits it is unreachable by default.
45
46
  const VARIANTS = [
46
47
  { name: "orc-executor-opus-5-med", model: "claude-opus-5-5", effort: "medium", band: "highest-complexity [90,100]" },
47
- { name: "orc-executor-opus-5-low", model: "claude-opus-5-5", effort: "low", band: "upper-complexity [65,90)" },
48
- { name: "orc-executor-sonnet-5-high", model: "claude-sonnet-5", effort: "high", band: "mid-complexity [55,65)" },
49
- { name: "orc-executor-sonnet-4-6-high", model: "claude-sonnet-4-6", effort: "high", band: "low-mid-complexity [40,55)" },
50
- { name: "orc-executor-sonnet-4-6-med", model: "claude-sonnet-4-6", effort: "medium", band: "low-complexity [30,40)" },
51
- { name: "orc-executor-haiku-4-5", model: "claude-haiku-4-5", effort: null, band: "lowest-complexity [0,30)" },
52
- // NAMED BY NO BAND since v1.0.0 W4 (D14) — kept on disk, dispatched only when a
53
- // user names one explicitly.
48
+ { name: "orc-executor-opus-5-low", model: "claude-opus-5-5", effort: "low", band: "upper-complexity [41,90)" },
49
+ { name: "orc-executor-sonnet-5-high", model: "claude-sonnet-5-5", effort: "high", band: "mid-complexity [31,41)" },
50
+ { name: "orc-executor-sonnet-5-med", model: "claude-sonnet-5-5", effort: "medium", band: "low-complexity [21,31)" },
51
+ { name: "orc-executor-sonnet-5-low", model: "claude-sonnet-5-5", effort: "low", band: "lowest-complexity [0,21)" },
52
+ // NAMED BY NO BAND since v1.0.0 W4 / v2.1.0 (D14) — kept on disk, dispatched
53
+ // only when a user names one explicitly.
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
+ { name: "orc-executor-sonnet-4-6-med", model: "claude-sonnet-4-6", effort: "medium", band: "none (opt-in only, see MODEL-MAPPING.md)" },
56
+ { name: "orc-executor-haiku-4-5", model: "claude-haiku-4-5", effort: null, band: "none (opt-in only, see MODEL-MAPPING.md)" },
54
57
  { name: "orc-executor-opus-5-high", model: "claude-opus-5-5", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
55
58
  { name: "orc-executor-opus-4-8-high", model: "claude-opus-4-8", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
56
59
  { name: "orc-executor-opus-4-7-high", model: "claude-opus-4-7", effort: "high", band: "none (opt-in only, see MODEL-MAPPING.md)" },
@@ -66,20 +69,20 @@ const VARIANTS = [
66
69
  const TWIN_DIR = path.join(ROOT, "agents-src", "twins");
67
70
  const TWINS = [
68
71
  { family: "analyze-mini", variants: [
69
- { name: "orc-analyze-mini-sonnet-5-high", model: "claude-sonnet-5", effort: "high", who: "Sonnet 5, high",
70
- desc: "ORC mini System Analyst — claude-sonnet-5, high effort. Dispatched by /orc-mini and /orc-analyze-mini at analysis: single pass, no deep mode, no scouts." },
72
+ { name: "orc-analyze-mini-sonnet-5-high", model: "claude-sonnet-5-5", effort: "high", who: "Sonnet 5, high",
73
+ desc: "ORC mini System Analyst — claude-sonnet-5-5, high effort. Dispatched by /orc-mini and /orc-analyze-mini at analysis: single pass, no deep mode, no scouts." },
71
74
  { name: "orc-analyze-mini-opus-5-med", model: "claude-opus-5-5", effort: "medium", who: "Opus 5.5, medium",
72
75
  desc: "ORC mini System Analyst — claude-opus-5-5, medium effort. Dispatched by /orc-mini and /orc-analyze-mini, instead of orc-analyze-mini-sonnet-5-high when `opus5_only: true`." },
73
76
  ] },
74
77
  { family: "planner-mini", variants: [
75
- { name: "orc-planner-mini-sonnet-5-high", model: "claude-sonnet-5", effort: "high", who: "Sonnet 5, high",
76
- desc: "ORC mini Requirement Planner — claude-sonnet-5, high effort. Dispatched by /orc-mini at planning." },
78
+ { name: "orc-planner-mini-sonnet-5-high", model: "claude-sonnet-5-5", effort: "high", who: "Sonnet 5, high",
79
+ desc: "ORC mini Requirement Planner — claude-sonnet-5-5, high effort. Dispatched by /orc-mini at planning." },
77
80
  { name: "orc-planner-mini-opus-5-med", model: "claude-opus-5-5", effort: "medium", who: "Opus 5.5, medium",
78
81
  desc: "ORC mini Requirement Planner — claude-opus-5-5, medium effort. Dispatched by /orc-mini at planning, instead of orc-planner-mini-sonnet-5-high when `opus5_only: true`." },
79
82
  ] },
80
83
  { family: "pattern-codifier", variants: [
81
- { name: "orc-pattern-codifier-sonnet-5-high", model: "claude-sonnet-5", effort: "high",
82
- desc: "ORC Pattern Codifier — claude-sonnet-5, high effort. Dispatched by orc-pattern (lazy /orc miss, eager orc-wiki, or manual /orc-pattern) for ONE language." },
84
+ { name: "orc-pattern-codifier-sonnet-5-high", model: "claude-sonnet-5-5", effort: "high",
85
+ desc: "ORC Pattern Codifier — claude-sonnet-5-5, high effort. Dispatched by orc-pattern (lazy /orc miss, eager orc-wiki, or manual /orc-pattern) for ONE language." },
83
86
  { name: "orc-pattern-codifier-opus-5-med", model: "claude-opus-5-5", effort: "medium",
84
87
  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`." },
85
88
  ] },
@@ -90,8 +93,8 @@ const TWINS = [
90
93
  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." },
91
94
  ] },
92
95
  { family: "retro", variants: [
93
- { name: "orc-retro-sonnet-5-high", model: "claude-sonnet-5", effort: "high", who: "Sonnet 5, high",
94
- desc: "ORC Retro miner — claude-sonnet-5, high effort. Dispatched by /orc-retro to mine the behavior traces. Read-only, report-only." },
96
+ { name: "orc-retro-sonnet-5-high", model: "claude-sonnet-5-5", effort: "high", who: "Sonnet 5, high",
97
+ desc: "ORC Retro miner — claude-sonnet-5-5, high effort. Dispatched by /orc-retro to mine the behavior traces. Read-only, report-only." },
95
98
  { name: "orc-retro-opus-5-med", model: "claude-opus-5-5", effort: "medium", who: "Opus 5.5, medium",
96
99
  desc: "ORC Retro miner — claude-opus-5-5, medium effort. Dispatched by /orc-retro, instead of orc-retro-sonnet-5-high when `opus5_only: true`. Read-only." },
97
100
  ] },
@@ -102,16 +105,12 @@ const TWINS = [
102
105
  desc: "ORC Code Scout — claude-opus-5-5, low effort. Dispatched by orc in the analyst's DEEP mode, instead of orc-scout-sonnet-4-6-high when `opus5_only: true`." },
103
106
  ] },
104
107
  { family: "claude-writer", variants: [
105
- { name: "orc-claude-writer-opus-4-8-high", model: "claude-opus-4-8", effort: "high", who: "Opus 4.8, high",
106
- desc: "ORC CLAUDE.md Writer — claude-opus-4-8, high effort. Dispatched by /orc-claude to create, update or refresh the repo-root CLAUDE.md." },
107
- { name: "orc-claude-writer-opus-5-med", model: "claude-opus-5-5", effort: "medium", who: "Opus 5.5, medium",
108
- desc: "ORC CLAUDE.md Writer — claude-opus-5-5, medium effort. Dispatched by /orc-claude, instead of orc-claude-writer-opus-4-8-high when `opus5_only: true`." },
108
+ { name: "orc-claude-writer-opus-5-low", model: "claude-opus-5-5", effort: "low", who: "Opus 5.5, low",
109
+ desc: "ORC CLAUDE.md Writer — claude-opus-5-5, low effort. Dispatched by /orc-claude to create, update or refresh the repo-root CLAUDE.md." },
109
110
  ] },
110
111
  { family: "wiki-scanner", variants: [
111
- { name: "orc-wiki-scanner-opus-4-8-high", model: "claude-opus-4-8", effort: "high",
112
- desc: "ORC Wiki Scanner — claude-opus-4-8, high effort. Dispatched by orc-wiki per scan-task (DEEP tier), ONE coverage area each." },
113
- { name: "orc-wiki-scanner-opus-5-med", model: "claude-opus-5-5", effort: "medium",
114
- desc: "ORC Wiki Scanner — claude-opus-5-5, medium effort. Dispatched by orc-wiki per scan-task, for BOTH tiers when `opus5_only: true`." },
112
+ { name: "orc-wiki-scanner-opus-5-low", model: "claude-opus-5-5", effort: "low",
113
+ desc: "ORC Wiki Scanner — claude-opus-5-5, low effort. Dispatched by orc-wiki per scan-task (DEEP tier), ONE coverage area each." },
115
114
  ] },
116
115
  ];
117
116