@azure-id/orc 1.9.1 → 1.9.2

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 (107) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/README-id.md +38 -39
  3. package/README.md +36 -35
  4. package/bin/build-agents.js +109 -109
  5. package/bin/cli.js +35 -33
  6. package/bin/onboarding-content.js +4 -4
  7. package/bin/pricing.json +207 -200
  8. package/bin/verify-contracts.js +2 -2
  9. package/bin/verify-package.js +7 -7
  10. package/bin/webui/css/04-motion.css +162 -152
  11. package/bin/webui/css/panels/knowledge.css +563 -116
  12. package/bin/webui/fixtures/extra.js +2036 -2036
  13. package/bin/webui/fixtures/hookui.js +5 -5
  14. package/bin/webui/fixtures/settings.js +305 -305
  15. package/bin/webui/i18n/en/knowledge.json +117 -2
  16. package/bin/webui/i18n/id/knowledge.json +117 -2
  17. package/bin/webui/js/panels/knowledge.js +552 -7
  18. package/bin/webui/js/panels/overview.js +13 -4
  19. package/mock-run/context-combiner.md +100 -100
  20. package/mock-run/orc-budget.md +534 -534
  21. package/mock-run/orc-challenge-council.md +262 -262
  22. package/mock-run/orc-ultra.md +103 -103
  23. package/package.json +1 -1
  24. package/templates/agents/MODEL-MAPPING.md +43 -43
  25. package/templates/agents/orc-advisor-opus-5-xhigh.md +56 -56
  26. package/templates/agents/orc-analyze-mini-opus-5-med.md +60 -60
  27. package/templates/agents/orc-analyze-mini-sonnet-5-high.md +58 -58
  28. package/templates/agents/orc-challenge-advisor-opus-5-med.md +75 -75
  29. package/templates/agents/orc-challenge-contrarian-opus-5-high.md +110 -110
  30. package/templates/agents/orc-challenge-executor-opus-5-med.md +114 -114
  31. package/templates/agents/orc-challenge-expansionist-opus-5-med.md +112 -112
  32. package/templates/agents/orc-challenge-judge-opus-5-high.md +132 -132
  33. package/templates/agents/orc-challenge-outsider-opus-5-low.md +109 -109
  34. package/templates/agents/orc-challenge-principles-opus-5-high.md +109 -109
  35. package/templates/agents/orc-challenge-reader-opus-5-low.md +90 -90
  36. package/templates/agents/orc-claude-writer-opus-5-med.md +55 -55
  37. package/templates/agents/orc-context-combiner-opus-5-high.md +88 -88
  38. package/templates/agents/orc-doc-checker-opus-5-low.md +108 -108
  39. package/templates/agents/orc-doc-writer-opus-5-med.md +134 -134
  40. package/templates/agents/orc-executor-opus-5-high.md +2 -2
  41. package/templates/agents/orc-executor-opus-5-low.md +2 -2
  42. package/templates/agents/orc-executor-opus-5-med.md +2 -2
  43. package/templates/agents/orc-graph-noter-sonnet-4-6-med.md +1 -1
  44. package/templates/agents/orc-judge-opus-5-xhigh.md +85 -85
  45. package/templates/agents/orc-learn-writer-opus-5-low.md +73 -73
  46. package/templates/agents/orc-pattern-codifier-opus-5-med.md +65 -65
  47. package/templates/agents/orc-planner-mini-opus-5-med.md +4 -4
  48. package/templates/agents/orc-planner-mini-sonnet-5-high.md +1 -1
  49. package/templates/agents/orc-planner-opus-5-med.md +160 -160
  50. package/templates/agents/orc-recon-opus-5-low.md +3 -3
  51. package/templates/agents/orc-retro-opus-5-med.md +3 -3
  52. package/templates/agents/orc-reviewer-opus-5-med.md +60 -60
  53. package/templates/agents/orc-scout-opus-5-low.md +40 -40
  54. package/templates/agents/orc-system-analyst-opus-5-high.md +120 -120
  55. package/templates/agents/orc-test-author-opus-5-med.md +71 -71
  56. package/templates/agents/orc-test-designer-opus-5-high.md +158 -158
  57. package/templates/agents/orc-test-interpreter-opus-5-low.md +130 -130
  58. package/templates/agents/orc-verifier-opus-5-med.md +69 -69
  59. package/templates/agents/orc-wiki-scanner-opus-5-med.md +81 -81
  60. package/templates/commands/orc-ultra.md +17 -17
  61. package/templates/commands/orc-verify.md +11 -11
  62. package/templates/hooks/README.md +2 -2
  63. package/templates/hooks/orc-effort-guard.js +178 -178
  64. package/templates/hooks/orc-statusline.js +6 -6
  65. package/templates/skills/_shared/code-graph.md +1 -1
  66. package/templates/skills/_shared/config-precedence.md +198 -198
  67. package/templates/skills/_shared/extra-dispatch.md +1346 -1346
  68. package/templates/skills/_shared/opus5-only.md +8 -8
  69. package/templates/skills/_shared/phases/analyst-gates.md +136 -136
  70. package/templates/skills/_shared/phases/review.md +1 -1
  71. package/templates/skills/_shared/phases/trace.md +1 -1
  72. package/templates/skills/_shared/return-validation.md +1 -1
  73. package/templates/skills/context-combiner/SKILL.md +1 -1
  74. package/templates/skills/context-combiner/schemas/combined-report.md +78 -78
  75. package/templates/skills/orc/README.md +2 -2
  76. package/templates/skills/orc/SKILL.md +7 -7
  77. package/templates/skills/orc/config.md +9 -9
  78. package/templates/skills/orc/examples/full-run-mock.md +73 -73
  79. package/templates/skills/orc/references/effort-and-mode.md +222 -222
  80. package/templates/skills/orc/references/preflight-report.md +2 -2
  81. package/templates/skills/orc/references/ultra-mode.md +3 -3
  82. package/templates/skills/orc/subskills/orc-planner/SKILL.md +2 -2
  83. package/templates/skills/orc/subskills/orc-planner-mini/SKILL.md +121 -121
  84. package/templates/skills/orc/subskills/orc-review-verify/SKILL.md +76 -76
  85. package/templates/skills/orc/subskills/orc-testgen/SKILL.md +45 -45
  86. package/templates/skills/orc-analyze/SKILL.md +2 -2
  87. package/templates/skills/orc-analyze/examples/analyze-mock.md +42 -42
  88. package/templates/skills/orc-analyze/schemas/report-audit.md +83 -83
  89. package/templates/skills/orc-analyze/schemas/report-prose.md +63 -63
  90. package/templates/skills/orc-analyze/schemas/report-requirement.md +78 -78
  91. package/templates/skills/orc-challenge/README.md +142 -142
  92. package/templates/skills/orc-challenge/examples/council-full-roster.md +273 -273
  93. package/templates/skills/orc-challenge/references/council.md +315 -315
  94. package/templates/skills/orc-challenge/references/intake.md +171 -171
  95. package/templates/skills/orc-claude/SKILL.md +14 -14
  96. package/templates/skills/orc-diy/README.md +143 -143
  97. package/templates/skills/orc-diy/references/flow-schema.md +1 -1
  98. package/templates/skills/orc-doc/README.md +229 -229
  99. package/templates/skills/orc-doc/examples/orc-doc-prd-run.md +325 -325
  100. package/templates/skills/orc-doc/references/chunking.md +527 -527
  101. package/templates/skills/orc-fast/SKILL.md +1 -1
  102. package/templates/skills/orc-learn/SKILL.md +14 -14
  103. package/templates/skills/orc-learn/examples/learn-run-mock.md +61 -61
  104. package/templates/skills/orc-mini/SKILL.md +3 -3
  105. package/templates/skills/orc-verify/SKILL.md +15 -15
  106. package/templates/skills/orc-verify/examples/verify-mock.md +33 -33
  107. package/templates/skills/orc-wiki/references/extra.md +1 -1
package/bin/pricing.json CHANGED
@@ -1,200 +1,207 @@
1
- {
2
- "_readme": [
3
- "Dated price table for `orc budget`. Point `orc config set budget_price_table <path>`",
4
- "at your own copy to override it. Rates are USD per MILLION tokens.",
5
- "",
6
- "Four rates per model, never one: cache reads are usually the LARGEST token",
7
- "count in a run and the CHEAPEST per token, so a blended number hides",
8
- "whichever component is about to bite you. cache_write/cache_read are the",
9
- "multipliers this vendor publishes against `input` (1.25x / 0.1x) written out",
10
- "as absolute rates so nothing has to remember the ratio.",
11
- "",
12
- "`as_of` is load-bearing: a table older than 90 days makes every dollar",
13
- "figure print a staleness warning. Bump the date only when you have checked",
14
- "the published rates.",
15
- "",
16
- "`providers` (v0.50.0) is the same four-rate shape for a NON-CLAUDE endpoint",
17
- "reached through `orc extra`. Every `models` map SHIPS EMPTY, on purpose, and",
18
- "that is not an oversight: between this package's cutoff and any release the",
19
- "lineup moves (DeepSeek V3.2 -> V4, Kimi K2 -> K2.7, GLM 4.6 -> 5.2), several",
20
- "of these vendors price by PEAK/OFF-PEAK window or by tier, one is",
21
- "subscription-only, and one is a passthrough with a surcharge. A shipped",
22
- "figure that is wrong by 2x is worse than no figure, because a wrong figure",
23
- "gets believed. So ORC ships the MECHANISM and no dollar figure without a",
24
- "rate you put there yourself.",
25
- "",
26
- "Fill one in with `orc extra rates` — it lists every provider/model pair your",
27
- "own traces have actually used, prints the JSON to paste, and says which ones",
28
- "it has no rate for. A pair with no rate reports `usd: null` forever, never a",
29
- "guess and never a family fallback."
30
- ],
31
- "as_of": "2026-08-01",
32
- "currency": "USD",
33
- "unit": "per_million_tokens",
34
- "server_tools": {
35
- "web_search_requests": 0.01,
36
- "web_fetch_requests": 0.0
37
- },
38
- "models": {
39
- "claude-opus-5": {
40
- "input": 15,
41
- "cache_write": 18.75,
42
- "cache_read": 1.5,
43
- "output": 75
44
- },
45
- "claude-opus-4-8": {
46
- "input": 15,
47
- "cache_write": 18.75,
48
- "cache_read": 1.5,
49
- "output": 75
50
- },
51
- "claude-opus-4-7": {
52
- "input": 15,
53
- "cache_write": 18.75,
54
- "cache_read": 1.5,
55
- "output": 75
56
- },
57
- "claude-fable-5": {
58
- "input": 15,
59
- "cache_write": 18.75,
60
- "cache_read": 1.5,
61
- "output": 75
62
- },
63
- "claude-sonnet-5": {
64
- "input": 3,
65
- "cache_write": 3.75,
66
- "cache_read": 0.3,
67
- "output": 15
68
- },
69
- "claude-sonnet-4-6": {
70
- "input": 3,
71
- "cache_write": 3.75,
72
- "cache_read": 0.3,
73
- "output": 15
74
- },
75
- "claude-haiku-4-5": {
76
- "input": 1,
77
- "cache_write": 1.25,
78
- "cache_read": 0.1,
79
- "output": 5
80
- }
81
- },
82
- "families": {
83
- "opus": {
84
- "input": 15,
85
- "cache_write": 18.75,
86
- "cache_read": 1.5,
87
- "output": 75
88
- },
89
- "fable": {
90
- "input": 15,
91
- "cache_write": 18.75,
92
- "cache_read": 1.5,
93
- "output": 75
94
- },
95
- "sonnet": {
96
- "input": 3,
97
- "cache_write": 3.75,
98
- "cache_read": 0.3,
99
- "output": 15
100
- },
101
- "haiku": {
102
- "input": 1,
103
- "cache_write": 1.25,
104
- "cache_read": 0.1,
105
- "output": 5
106
- }
107
- },
108
- "_plans_readme": [
109
- "Quota view. A Pro/Max user does not pay per token — they burn a 5-hour",
110
- "session window and a weekly ceiling. These are WEIGHTED-token capacities",
111
- "(cache reads counted at their 0.1x weight), because that is the unit the",
112
- "forecast can actually produce. They are approximations of a published",
113
- "allowance, not a metered balance: the percentages are a magnitude, and the",
114
- "renderer says so."
115
- ],
116
- "plans": {
117
- "pro": {
118
- "label": "Pro",
119
- "window_weighted_tokens": 900000,
120
- "weekly_weighted_tokens": 9000000
121
- },
122
- "max5": {
123
- "label": "Max 5x",
124
- "window_weighted_tokens": 4500000,
125
- "weekly_weighted_tokens": 45000000
126
- },
127
- "max20": {
128
- "label": "Max 20x",
129
- "window_weighted_tokens": 18000000,
130
- "weekly_weighted_tokens": 180000000
131
- }
132
- },
133
- "context_windows": {
134
- "claude-opus-5": 200000,
135
- "claude-opus-4-8": 200000,
136
- "claude-opus-4-7": 200000,
137
- "claude-fable-5": 200000,
138
- "claude-sonnet-5": 200000,
139
- "claude-sonnet-4-6": 200000,
140
- "claude-haiku-4-5": 200000
141
- },
142
- "providers": {
143
- "_note": "Rates are USD per MILLION tokens, four per model, never one. `models` maps a provider's own model id EXACTLY as the endpoint reports it.",
144
- "deepseek": {
145
- "label": "DeepSeek",
146
- "caveat": "Prices differ by PEAK and OFF-PEAK window, so one number cannot be right for both. Record the window you actually run in.",
147
- "models": {}
148
- },
149
- "zai": {
150
- "label": "Z.ai / GLM",
151
- "caveat": "The current flagship is sold inside a Coding Plan subscription rather than per token, which a per-token table cannot express. Leave it empty and read your invoice.",
152
- "models": {}
153
- },
154
- "moonshot": {
155
- "label": "Moonshot / Kimi",
156
- "caveat": null,
157
- "models": {}
158
- },
159
- "minimax": {
160
- "label": "MiniMax",
161
- "caveat": null,
162
- "models": {}
163
- },
164
- "qwen": {
165
- "label": "Alibaba / Qwen",
166
- "caveat": "Tiered by request size, so a single rate is an average rather than a price.",
167
- "models": {}
168
- },
169
- "mimo": {
170
- "label": "Xiaomi / MiMo",
171
- "caveat": null,
172
- "models": {}
173
- },
174
- "stepfun": {
175
- "label": "StepFun",
176
- "caveat": null,
177
- "models": {}
178
- },
179
- "siliconflow": {
180
- "label": "SiliconFlow",
181
- "caveat": null,
182
- "models": {}
183
- },
184
- "openrouter": {
185
- "label": "OpenRouter",
186
- "caveat": "A PASSTHROUGH: the rate is the upstream provider's, plus a surcharge on credit purchase. It also reroutes between providers by default while preserving the model id, so the model id alone does not identify who you paid.",
187
- "models": {}
188
- },
189
- "ollama": {
190
- "label": "Ollama (local)",
191
- "caveat": "Local inference has no per-token price. Zero here would be true of the API bill and false of the electricity and the hardware, so it is left empty rather than asserted as free.",
192
- "models": {}
193
- },
194
- "custom": {
195
- "label": "Custom endpoint",
196
- "caveat": null,
197
- "models": {}
198
- }
199
- }
200
- }
1
+ {
2
+ "_readme": [
3
+ "Dated price table for `orc budget`. Point `orc config set budget_price_table <path>`",
4
+ "at your own copy to override it. Rates are USD per MILLION tokens.",
5
+ "",
6
+ "Four rates per model, never one: cache reads are usually the LARGEST token",
7
+ "count in a run and the CHEAPEST per token, so a blended number hides",
8
+ "whichever component is about to bite you. cache_write/cache_read are the",
9
+ "multipliers this vendor publishes against `input` (1.25x / 0.1x) written out",
10
+ "as absolute rates so nothing has to remember the ratio.",
11
+ "",
12
+ "`as_of` is load-bearing: a table older than 90 days makes every dollar",
13
+ "figure print a staleness warning. Bump the date only when you have checked",
14
+ "the published rates.",
15
+ "",
16
+ "`providers` (v0.50.0) is the same four-rate shape for a NON-CLAUDE endpoint",
17
+ "reached through `orc extra`. Every `models` map SHIPS EMPTY, on purpose, and",
18
+ "that is not an oversight: between this package's cutoff and any release the",
19
+ "lineup moves (DeepSeek V3.2 -> V4, Kimi K2 -> K2.7, GLM 4.6 -> 5.2), several",
20
+ "of these vendors price by PEAK/OFF-PEAK window or by tier, one is",
21
+ "subscription-only, and one is a passthrough with a surcharge. A shipped",
22
+ "figure that is wrong by 2x is worse than no figure, because a wrong figure",
23
+ "gets believed. So ORC ships the MECHANISM and no dollar figure without a",
24
+ "rate you put there yourself.",
25
+ "",
26
+ "Fill one in with `orc extra rates` — it lists every provider/model pair your",
27
+ "own traces have actually used, prints the JSON to paste, and says which ones",
28
+ "it has no rate for. A pair with no rate reports `usd: null` forever, never a",
29
+ "guess and never a family fallback."
30
+ ],
31
+ "as_of": "2026-08-01",
32
+ "currency": "USD",
33
+ "unit": "per_million_tokens",
34
+ "server_tools": {
35
+ "web_search_requests": 0.01,
36
+ "web_fetch_requests": 0.0
37
+ },
38
+ "models": {
39
+ "claude-opus-5-5": {
40
+ "input": 4,
41
+ "cache_write": 5,
42
+ "cache_read": 0.2,
43
+ "output": 20
44
+ },
45
+ "claude-opus-5": {
46
+ "input": 15,
47
+ "cache_write": 18.75,
48
+ "cache_read": 1.5,
49
+ "output": 75
50
+ },
51
+ "claude-opus-4-8": {
52
+ "input": 15,
53
+ "cache_write": 18.75,
54
+ "cache_read": 1.5,
55
+ "output": 75
56
+ },
57
+ "claude-opus-4-7": {
58
+ "input": 15,
59
+ "cache_write": 18.75,
60
+ "cache_read": 1.5,
61
+ "output": 75
62
+ },
63
+ "claude-fable-5": {
64
+ "input": 15,
65
+ "cache_write": 18.75,
66
+ "cache_read": 1.5,
67
+ "output": 75
68
+ },
69
+ "claude-sonnet-5": {
70
+ "input": 3,
71
+ "cache_write": 3.75,
72
+ "cache_read": 0.3,
73
+ "output": 15
74
+ },
75
+ "claude-sonnet-4-6": {
76
+ "input": 3,
77
+ "cache_write": 3.75,
78
+ "cache_read": 0.3,
79
+ "output": 15
80
+ },
81
+ "claude-haiku-4-5": {
82
+ "input": 1,
83
+ "cache_write": 1.25,
84
+ "cache_read": 0.1,
85
+ "output": 5
86
+ }
87
+ },
88
+ "families": {
89
+ "opus": {
90
+ "input": 15,
91
+ "cache_write": 18.75,
92
+ "cache_read": 1.5,
93
+ "output": 75
94
+ },
95
+ "fable": {
96
+ "input": 15,
97
+ "cache_write": 18.75,
98
+ "cache_read": 1.5,
99
+ "output": 75
100
+ },
101
+ "sonnet": {
102
+ "input": 3,
103
+ "cache_write": 3.75,
104
+ "cache_read": 0.3,
105
+ "output": 15
106
+ },
107
+ "haiku": {
108
+ "input": 1,
109
+ "cache_write": 1.25,
110
+ "cache_read": 0.1,
111
+ "output": 5
112
+ }
113
+ },
114
+ "_plans_readme": [
115
+ "Quota view. A Pro/Max user does not pay per token — they burn a 5-hour",
116
+ "session window and a weekly ceiling. These are WEIGHTED-token capacities",
117
+ "(cache reads counted at their 0.1x weight), because that is the unit the",
118
+ "forecast can actually produce. They are approximations of a published",
119
+ "allowance, not a metered balance: the percentages are a magnitude, and the",
120
+ "renderer says so."
121
+ ],
122
+ "plans": {
123
+ "pro": {
124
+ "label": "Pro",
125
+ "window_weighted_tokens": 900000,
126
+ "weekly_weighted_tokens": 9000000
127
+ },
128
+ "max5": {
129
+ "label": "Max 5x",
130
+ "window_weighted_tokens": 4500000,
131
+ "weekly_weighted_tokens": 45000000
132
+ },
133
+ "max20": {
134
+ "label": "Max 20x",
135
+ "window_weighted_tokens": 18000000,
136
+ "weekly_weighted_tokens": 180000000
137
+ }
138
+ },
139
+ "context_windows": {
140
+ "claude-opus-5-5": 200000,
141
+ "claude-opus-5": 200000,
142
+ "claude-opus-4-8": 200000,
143
+ "claude-opus-4-7": 200000,
144
+ "claude-fable-5": 200000,
145
+ "claude-sonnet-5": 200000,
146
+ "claude-sonnet-4-6": 200000,
147
+ "claude-haiku-4-5": 200000
148
+ },
149
+ "providers": {
150
+ "_note": "Rates are USD per MILLION tokens, four per model, never one. `models` maps a provider's own model id EXACTLY as the endpoint reports it.",
151
+ "deepseek": {
152
+ "label": "DeepSeek",
153
+ "caveat": "Prices differ by PEAK and OFF-PEAK window, so one number cannot be right for both. Record the window you actually run in.",
154
+ "models": {}
155
+ },
156
+ "zai": {
157
+ "label": "Z.ai / GLM",
158
+ "caveat": "The current flagship is sold inside a Coding Plan subscription rather than per token, which a per-token table cannot express. Leave it empty and read your invoice.",
159
+ "models": {}
160
+ },
161
+ "moonshot": {
162
+ "label": "Moonshot / Kimi",
163
+ "caveat": null,
164
+ "models": {}
165
+ },
166
+ "minimax": {
167
+ "label": "MiniMax",
168
+ "caveat": null,
169
+ "models": {}
170
+ },
171
+ "qwen": {
172
+ "label": "Alibaba / Qwen",
173
+ "caveat": "Tiered by request size, so a single rate is an average rather than a price.",
174
+ "models": {}
175
+ },
176
+ "mimo": {
177
+ "label": "Xiaomi / MiMo",
178
+ "caveat": null,
179
+ "models": {}
180
+ },
181
+ "stepfun": {
182
+ "label": "StepFun",
183
+ "caveat": null,
184
+ "models": {}
185
+ },
186
+ "siliconflow": {
187
+ "label": "SiliconFlow",
188
+ "caveat": null,
189
+ "models": {}
190
+ },
191
+ "openrouter": {
192
+ "label": "OpenRouter",
193
+ "caveat": "A PASSTHROUGH: the rate is the upstream provider's, plus a surcharge on credit purchase. It also reroutes between providers by default while preserving the model id, so the model id alone does not identify who you paid.",
194
+ "models": {}
195
+ },
196
+ "ollama": {
197
+ "label": "Ollama (local)",
198
+ "caveat": "Local inference has no per-token price. Zero here would be true of the API bill and false of the electricity and the hardware, so it is left empty rather than asserted as free.",
199
+ "models": {}
200
+ },
201
+ "custom": {
202
+ "label": "Custom endpoint",
203
+ "caveat": null,
204
+ "models": {}
205
+ }
206
+ }
207
+ }
@@ -1813,7 +1813,7 @@ const CONTRACTS = [
1813
1813
  binFiles: ["bin/cli.js"],
1814
1814
  files: [
1815
1815
  "agents/MODEL-MAPPING.md",
1816
- // v1.8.0 — the graph noter has no Opus 5 variant; under the mode a lane
1816
+ // v1.8.0 — the graph noter has no Opus 5.5 variant; under the mode a lane
1817
1817
  // skips notes. Both the agent and the canonical contract say so.
1818
1818
  "agents/orc-graph-noter-sonnet-4-6-med.md",
1819
1819
  "skills/_shared/code-graph.md",
@@ -3049,7 +3049,7 @@ const CONTRACTS = [
3049
3049
  {
3050
3050
  // The only notes writer, dispatched BY NAME. An unnamed dispatch cannot
3051
3051
  // enforce the Sonnet 4.6 pin and is invisible to the trace hook.
3052
- name: "graph noter (v1.8.0 — dispatched by name, no Opus 5 variant)",
3052
+ name: "graph noter (v1.8.0 — dispatched by name, no Opus 5.5 variant)",
3053
3053
  token: "orc-graph-noter-sonnet-4-6-med",
3054
3054
  files: [
3055
3055
  "agents/MODEL-MAPPING.md",
@@ -469,7 +469,7 @@ const required = [
469
469
  // v0.47.0 — the three /orc-challenge agents. All THREE must ship: a cycle that
470
470
  // cannot dispatch the reader silently loses D4, and one that cannot dispatch
471
471
  // the advisor turns a FAIL into a list with no order. All three are already
472
- // Opus 5, so `opus5_only` needs no twin for any of them.
472
+ // Opus 5.5, so `opus5_only` needs no twin for any of them.
473
473
  "templates/agents/orc-challenge-judge-opus-5-high.md",
474
474
  "templates/agents/orc-challenge-advisor-opus-5-med.md",
475
475
  "templates/agents/orc-challenge-reader-opus-5-low.md",
@@ -479,7 +479,7 @@ const required = [
479
479
  // first-principles thinker disputes the goal itself, and the expansionist is
480
480
  // the only lens not looking for a defect. All five must ship: a roster lens
481
481
  // that cannot be dispatched is a NOT-RUN row a user paid to select, and rule
482
- // 15 makes that loud rather than silent. All five are claude-opus-5, so
482
+ // 15 makes that loud rather than silent. All five are claude-opus-5-5, so
483
483
  // `opus5_only` adds NO pair and the floor moves by exactly five.
484
484
  "templates/agents/orc-challenge-contrarian-opus-5-high.md",
485
485
  "templates/agents/orc-challenge-outsider-opus-5-low.md",
@@ -489,7 +489,7 @@ const required = [
489
489
  // v0.48.0 — the two /orc-doc agents. BOTH must ship: a write wave that cannot
490
490
  // dispatch the writer has nothing to assemble, and a check wave that cannot
491
491
  // dispatch the checker silently turns the only judgment step into the free
492
- // lint. Both are already Opus 5, so `opus5_only` adds no twin for either.
492
+ // lint. Both are already Opus 5.5, so `opus5_only` adds no twin for either.
493
493
  "templates/agents/orc-doc-writer-opus-5-med.md",
494
494
  "templates/agents/orc-doc-checker-opus-5-low.md",
495
495
  // v1.5.0 - /orc-test's two agents, and they are two INSTRUMENTS rather than
@@ -498,7 +498,7 @@ const required = [
498
498
  // interpreter is `low` because a harder-thinking interpreter reasons its way
499
499
  // to why a leaked stack trace is probably fine in staging, which is exactly
500
500
  // the gap it exists to find. Nothing may ever upgrade the interpreter. Both
501
- // are claude-opus-5, so `opus5_only` adds NO pair and the floor moves by two.
501
+ // are claude-opus-5-5, so `opus5_only` adds NO pair and the floor moves by two.
502
502
  "templates/agents/orc-test-designer-opus-5-high.md",
503
503
  "templates/agents/orc-test-interpreter-opus-5-low.md",
504
504
  // v1.2.1 — the status line explained for the person reading it, in
@@ -569,7 +569,7 @@ const agentCount = walkCount(path.join(ROOT, "templates/agents"), ".md");
569
569
  // tier of the same one. The reader is `low` on purpose (a harder-thinking reader
570
570
  // papers over exactly the gaps D4 measures), the judge is `high` because D2 is
571
571
  // the only dimension no computer can reach, and the advisor is `medium` because
572
- // grouping findings is pattern work. All three are claude-opus-5, so `opus5_only`
572
+ // grouping findings is pattern work. All three are claude-opus-5-5, so `opus5_only`
573
573
  // adds NO pair and the floor moves by exactly three.
574
574
  // v0.48.0: +1 skill (orc-doc) and +2 agents. The split follows v0.47.0's rule —
575
575
  // an agent exists when it is a DIFFERENT INSTRUMENT, not a tier of the same one.
@@ -577,13 +577,13 @@ const agentCount = walkCount(path.join(ROOT, "templates/agents"), ".md");
577
577
  // LINE RANGE and has `Read` only. The checker is `low` on purpose (a
578
578
  // harder-thinking checker reasons its way past a gap a real reader would trip
579
579
  // on — the challenge cold reader's reasoning), so nothing may upgrade it. Both
580
- // are claude-opus-5, so `opus5_only` adds NO pair and the floor moves by two.
580
+ // are claude-opus-5-5, so `opus5_only` adds NO pair and the floor moves by two.
581
581
  // v0.49.1: +0 skills and +5 agents — THE COUNCIL. Same rule as v0.47.0, applied
582
582
  // five times: each of these is a DIFFERENT INSTRUMENT, not a tier of one. The
583
583
  // outsider is `low` and the contrarian is `high` for the same class of reason
584
584
  // the cold reader is `low` — effort here is a MEASUREMENT choice, not a cost
585
585
  // one, and a key that let either be tuned would be a key that let the
586
- // instrument be broken. All five are claude-opus-5, so `opus5_only` adds NO
586
+ // instrument be broken. All five are claude-opus-5-5, so `opus5_only` adds NO
587
587
  // pair and the floor moves by exactly five.
588
588
  // v1.0.0 W3: +0 skills and -5 agents — the Fable 5 role override is REMOVED.
589
589
  // It is the first time this floor has ever gone DOWN, and the reason it may is