omnilane 0.10.2 → 0.10.3

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/README.md CHANGED
@@ -21,49 +21,30 @@ or any hosted model via OpenRouter — on the subscriptions you already pay for,
21
21
 
22
22
  ---
23
23
 
24
- ## 2026-07-25 update
24
+ ## 🤔 What is omnilane?
25
25
 
26
- - Added `claude-opus-5` to default routing: first choice for `hard-judgment` and `taste-final`, plus a fallback for the hardest coding work.
27
- - Expanded `omnilane configure` across all 13 providers: 106 selectable model entries, complete live catalogs for Codex, Claude Code, Grok Build, and Antigravity, plus verified OpenRouter/OpenCode shortcuts. Custom model IDs remain available through `c`.
26
+ **The problem.** You already drive an AI coding assistant Claude Code, Codex,
27
+ Cursor, Gemini CLI. Each one talks to a single model family. So every task you
28
+ give it runs on that one model, whether or not it is the right tool: a
29
+ throwaway file rename burns your most expensive model, and a genuinely hard
30
+ architecture question runs on whatever you happened to open.
28
31
 
29
- ---
30
- ## 👋 New here?
31
-
32
- You already drive an AI coding assistant **Claude Code, Codex, Cursor, Gemini
33
- CLI**, and the like. Each one talks to a single AI model, and picking the best
34
- model for each task is left to you.
32
+ **What omnilane does.** It gives your assistant a routing table. Work gets
33
+ sorted into **lanes** — hardest coding, bulk mechanical, triage, hard judgment,
34
+ final polish — and each lane names the model that is best (and cheapest) for
35
+ it. Your assistant keeps the lanes it is already good at and hands the rest to
36
+ another vendor's CLI in the background, using the logins you already have.
35
37
 
36
- **omnilane picks for you.** For every piece of work it routes the task to the
37
- model that is best (and cheapest) for it tough coding to a top coder, quick
38
- checks to a fast cheap model, long documents to a big-context model — all on the
39
- subscriptions and API keys you already pay for. Use the built-in defaults, or
40
- tweak one small file. Nothing new to babysit (it runs behind your existing tool),
41
- and `./install.sh --uninstall` removes it cleanly.
38
+ **What it is not.** Not a proxy, not a new subscription, not another service to
39
+ keep alive. It is a table plus a dispatch script that runs behind the tool you
40
+ already use. `./install.sh --uninstall` removes every trace.
42
41
 
43
- **[⬇ Jump to the 60-second start](#-60-second-start)**
44
-
45
- ## What's new in v0.10.0
42
+ **You do not need every vendor.** Each lane is a fallback chain. Install one
43
+ CLI or seven — dispatch picks the first candidate you actually have, and a lane
44
+ with nothing available simply turns off. The default table works on a single
45
+ subscription.
46
46
 
47
- - **Gemini 3.6 Flash defaults** the gemini candidates in `fast-agentic`,
48
- `triage`, and `bulk-mechanical` (and the `Gemini Flash` alias) now run
49
- Gemini 3.6 Flash (released 2026-07-21): fewer output tokens, a lower output
50
- price, and the fastest output speed measured by Artificial Analysis.
51
- - **Evidence re-audit** — routing comments, model capability notes, and the
52
- Gemini price table refreshed against official sources (2026-07-21/22).
53
-
54
- ## What's new in v0.9.1
55
-
56
- - **Fix:** `configure set` no longer deletes hand-written comments from
57
- `routing.local.yaml` — it rewrites only its own stamp header and the lane
58
- being replaced.
59
-
60
- ## What's new in v0.9.0
61
-
62
- - **Five OpenAI-compatible direct-API vendors** — `deepseek`, `zai` (GLM),
63
- `mistral`, `groq`, and `cerebras` join `openrouter` as CLI-free lanes (curl +
64
- a `<VENDOR>_API_KEY`). A one-line `lib/common.sh` registry entry adds each;
65
- see [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
66
- - **Fish shell completion** — `omnilane completion fish | source`.
47
+ **[⬇ Jump to the 60-second start](#-60-second-start)** · **[❓ Read the FAQ](#-faq)**
67
48
 
68
49
  ## ⚡ 60-second start
69
50
 
@@ -127,7 +108,10 @@ flowchart LR
127
108
 
128
109
  </div>
129
110
 
130
- ## 🛤️ Lanes (defaults — run `scripts/dispatch.sh --list` for your effective table)
111
+ ## 🛤️ Lanes
112
+
113
+ Defaults below — run `scripts/dispatch.sh --list` for the table your machine
114
+ actually resolves.
131
115
 
132
116
  | Lane | First choice | Backup | When |
133
117
  |---|---|---|---|
@@ -148,14 +132,6 @@ The **backup** is the next candidate in the lane's `routing.yaml` chain — what
148
132
  dispatch falls back to when the first-choice vendor CLI is not installed. Every
149
133
  lane is such a chain; when nothing in it is installed the lane degrades to `off`.
150
134
 
151
- > **Where is Claude Fable 5?** Deliberately not in the defaults: the top
152
- > Claude tier is usually the *main loop itself*, not a dispatched worker, and
153
- > it prices above Opus. This is a cost / guardrail / main-loop policy choice,
154
- > not a capability verdict; Anthropic positions Fable 5 above Opus 5. It is
155
- > offered in the configurator's model menu —
156
- > route to it if you disagree (e.g. `taste-final: claude claude-fable-5 high`
157
- > in `routing.local.yaml`).
158
-
159
135
  ### Natural-language consultation
160
136
 
161
137
  With the `omnilane` skill or `/route`, you can ask normally:
@@ -238,13 +214,15 @@ optional per-CLI **routing reminder**: a marked, reversible block appended to
238
214
  each CLI's instruction file (`~/.claude/CLAUDE.md`, `~/.codex/AGENTS.md`,
239
215
  `~/.grok/Agents.md`, `~/.gemini/GEMINI.md` — paths may vary across CLI
240
216
  versions) so the main loop remembers to consult the table; non-interactive
241
- installs can pass `OMNILANE_HOOKS=all|none|claude,codex`. Manual wiring:
217
+ installs can pass `OMNILANE_HOOKS=all|none|claude,codex`.
242
218
 
243
219
  Use `./install.sh --check` for a read-only drift report. Add `--dry-run` to an
244
220
  install or `--uninstall` to preview every checkout-owned file action.
245
221
  Rollback the installer-owned links and marked reminders with
246
222
  `./install.sh --uninstall`.
247
223
 
224
+ Manual wiring:
225
+
248
226
  - **Claude Code**: install as a plugin (ships the skill + `/route`,
249
227
  `/route-jobs` commands, and a `SessionStart` hook that auto-injects the
250
228
  routing reminder at session open — no CLAUDE.md edit needed), or drop
@@ -394,7 +372,7 @@ code passes through.
394
372
  non-Git work running through the existing per-call watchdog path, which emits
395
373
  its own warning if no watchdog tool exists.
396
374
  Expiry cleans the supervised process group and returns 124. For a deep audit
397
- of a fubon-autotrade-sized repository, start around 2–4 hours (7200–14400s)
375
+ of a large repository, start around 2–4 hours (7200–14400s)
398
376
  with a 30-minute per-call watchdog; these are recommendations, not defaults.
399
377
  - **Background lifecycle** — `--background` workers run in their own process
400
378
  group and survive the caller's exit; killed workers record an exit code, and
@@ -402,12 +380,144 @@ code passes through.
402
380
  - **Payload caps** — oversized task text is truncated head+tail before it can
403
381
  blow a worker's context.
404
382
 
383
+ ## ❓ FAQ
384
+
385
+ <details>
386
+ <summary><b>Do I need all of these subscriptions?</b></summary>
387
+
388
+ <br/>
389
+
390
+ No. Every lane is a fallback chain, and dispatch picks the first candidate
391
+ whose CLI is actually installed. With one subscription the whole table collapses
392
+ onto that vendor; lanes with nothing available turn off rather than failing.
393
+ `omnilane doctor` shows exactly what your machine can reach today, and
394
+ `routing.local.yaml.example` ships starter profiles for common situations
395
+ (Claude-only, Codex-heavy, no-Codex).
396
+
397
+ </details>
398
+
399
+ <details>
400
+ <summary><b>Does omnilane send my code somewhere new?</b></summary>
401
+
402
+ <br/>
403
+
404
+ No new destination. Dispatch shells out to vendor CLIs you already installed
405
+ and logged into, so your code reaches exactly the vendors you already use.
406
+ Runners strip API-key environment variables before invoking a subscription CLI,
407
+ so a stray key cannot silently switch you onto pay-per-token billing. The one
408
+ exception is the direct-API vendor family (`openrouter`, `deepseek`, `zai`,
409
+ `mistral`, `groq`, `cerebras`), which by definition calls that provider's API
410
+ with the key you set — those are advise-only and never edit files.
411
+
412
+ </details>
413
+
414
+ <details>
415
+ <summary><b>Where is Claude Fable 5? Why is it not in the default table?</b></summary>
416
+
417
+ <br/>
418
+
419
+ **Because the top Claude tier is usually the main loop itself, not a dispatched
420
+ worker.** Lanes exist to send work to a model *other than* the one you are
421
+ driving. If Fable 5 is your main loop, routing judgment and taste back to Fable 5
422
+ just adds a second call for no gain — which is why the "pick your main model"
423
+ list above gives Fable 5 its own row as a **driver**, self-executing
424
+ hard-judgment, taste-final, and the hardest correctness-critical fixes.
425
+
426
+ **The measurements do not argue for it as a worker either.** On the Artificial
427
+ Analysis Intelligence Index (2026-07-24) Opus 5 (max) scores 61 and Fable 5 (max)
428
+ scores 60 — Artificial Analysis calls them "effectively tied", and Epoch AI's
429
+ Capability Index ranks them the other way (Fable 5 161, Opus 5 159). Call it a
430
+ draw on general intelligence. Where they are not tied is agentic professional
431
+ output, and Opus 5 leads by a wide margin:
432
+
433
+ | Benchmark | Claude Opus 5 (max) | Claude Fable 5 | |
434
+ |---|---:|---:|---|
435
+ | AA-Briefcase (agentic knowledge work, Elo) | 1720 | 1574 | **+146** |
436
+ | GDPval-AA v2 (Elo) | 1861 | 1747 | **+114** |
437
+ | Cost per AA-Briefcase task | $17.79 | $22.30 | **-20%** |
438
+ | API price, input / output per 1M | $5 / $25 | $10 / $50 | **half** |
439
+
440
+ Opus 5's max, xhigh and high tiers sweep the top three AA-Briefcase places, and
441
+ its `high` tier still beats Fable 5 at under half the cost per task. So Fable 5
442
+ costs twice as much without buying an advantage on any axis a lane is defined
443
+ around.
444
+
445
+ **What Fable 5 is genuinely better at**: factual breadth. It stays ahead of
446
+ Opus 5 on AA-Omniscience, as its size class suggests, and Opus 5 answers more
447
+ readily when uncertain — its hallucination rate is 50%, up 14 points from
448
+ Opus 4.8. If your task is recall-heavy rather than execution-heavy, name
449
+ Fable 5 explicitly:
450
+
451
+ ```bash
452
+ dispatch.sh --vendor claude --model claude-fable-5 --effort high consult "…"
453
+ ```
454
+
455
+ **This is a cost / main-loop policy choice, not a capability verdict.** Fable 5
456
+ is in the configurator's model menu, and one line in `routing.local.yaml`
457
+ overrides the default if you disagree:
458
+
459
+ ```yaml
460
+ taste-final: claude claude-fable-5 high
461
+ ```
462
+
463
+ </details>
464
+
465
+ <details>
466
+ <summary><b>Why do the Claude lanes use <code>xhigh</code> instead of <code>max</code>?</b></summary>
467
+
468
+ <br/>
469
+
470
+ Because more effort is not monotonically better. Anthropic documents `xhigh` as
471
+ the starting point for coding and agentic work, `high` as the floor for other
472
+ intelligence-sensitive work, and `max` as the setting for cases where
473
+ correctness outweighs cost. Independent testing agrees: on Vals.ai's Vibe Code
474
+ Bench, Opus 5 scores 89.8% at `high` but only 88.3% at `xhigh` and 88.4% at
475
+ `max` — the top tiers produce more elaborate solutions that fail more often.
476
+ Raise any lane locally if your workload disagrees:
477
+
478
+ ```bash
479
+ omnilane configure set hard-judgment "claude claude-opus-5 max"
480
+ ```
481
+
482
+ </details>
483
+
484
+ <details>
485
+ <summary><b>What happens when a lane's first-choice CLI is missing?</b></summary>
486
+
487
+ <br/>
488
+
489
+ Dispatch walks the chain and uses the first vendor you have. Inspect the
490
+ decision without spending a call:
491
+
492
+ ```bash
493
+ scripts/dispatch.sh --explain hardest-coding # candidate-by-candidate trace
494
+ scripts/dispatch.sh --list # whole effective table
495
+ scripts/dispatch.sh --dry-run hardest-coding "…" # fully resolved plan, no provider call
496
+ ```
497
+
498
+ </details>
499
+
500
+ <details>
501
+ <summary><b>Can a dispatched worker edit my files?</b></summary>
502
+
503
+ <br/>
504
+
505
+ Only if you ask for it. Dispatch defaults to `advise`, a read-only mode enforced
506
+ per vendor (read-only sandbox, plan mode, or read-only tool set depending on the
507
+ CLI). Editing requires both `--mode work` and an explicit `--workdir`. Workers
508
+ also cannot dispatch again — the depth guard refuses nested fan-out with exit 86,
509
+ so one command can never spiral into a chain of agents spending your quota.
510
+
511
+ </details>
512
+
405
513
  ## 📊 Defaults and provenance
406
514
 
407
515
  Default lane assignments follow Artificial Analysis coding/intelligence data
408
516
  (2026-07 snapshot, cross-checked against AA site records and vendor pricing
409
517
  pages) plus published head-to-head reviews; they are opinions, not laws — the
410
- configurator and `routing.local.yaml` exist so you can disagree.
518
+ configurator and `routing.local.yaml` exist so you can disagree. The full
519
+ working notes, including per-benchmark caveats, live in
520
+ [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
411
521
 
412
522
  ## ⚠️ Known limitations
413
523
 
@@ -423,8 +533,71 @@ configurator and `routing.local.yaml` exist so you can disagree.
423
533
 
424
534
  ## 📜 Release history
425
535
 
536
+ ## What's new in v0.10.3
537
+
538
+ - **Restructured READMEs in all five languages** — the reader now meets a plain
539
+ "what is this and why would I want it" section first, version history is
540
+ consolidated at the bottom instead of interrupting the introduction, and a new
541
+ FAQ answers the questions that kept coming up: do I need every subscription,
542
+ where does my code go, why is Fable 5 not in the table, why `xhigh` and not
543
+ `max`, what happens when a CLI is missing, can a worker edit files.
544
+ - **Fixed: plugin manifests advertised a stale version** — `plugin.json` and
545
+ `.claude-plugin/plugin.json` still reported `0.10.0` after the 0.10.1 and
546
+ 0.10.2 releases, so plugin installs showed the wrong version.
547
+ - **Fixed: `routing.local.yaml.example` shipped retired models** — the starter
548
+ profiles still pointed at `claude-opus-4-8` and Gemini 3.5 Flash; they now use
549
+ Claude Opus 5 (with lane-appropriate effort) and Gemini 3.6 Flash.
550
+ - **Corrected the Intelligence Index figures** in
551
+ `docs/model-capabilities-2026-07.md` against the Artificial Analysis source
552
+ (index points, not percentages), added the AA-Briefcase / GDPval-AA v2
553
+ comparison, and recorded the two results that cut against the defaults:
554
+ Fable 5's lead on factual knowledge and Sol's lead on presentation quality.
555
+
556
+ ## What's new in v0.10.2
557
+
558
+ - **Claude effort on `hardest-coding` and `hard-judgment` moved from `max` to
559
+ `xhigh`**, matching Anthropic's documented guidance for Claude Opus 5: start
560
+ at `xhigh` for coding and agentic work, keep `high` as the floor for other
561
+ intelligence-sensitive work, and reserve `max` for cases where correctness
562
+ outweighs cost. Raise it back per lane with
563
+ `omnilane configure set <lane> "<spec>"`.
564
+ - **Fixed two dead CHANGELOG compare links** that pointed at a `v0.10.0` tag
565
+ which was never published.
566
+
567
+ ## What's new in v0.10.1
568
+
569
+ - **`claude-opus-5` joins the default table** as first choice for
570
+ `hard-judgment` and `taste-final`, plus a fallback for the hardest coding work.
571
+ - **`omnilane configure` covers all 13 providers** with 106 selectable model
572
+ entries — current native catalogs for Codex, Claude Code, Grok Build and
573
+ Antigravity, plus verified OpenRouter/OpenCode shortcuts. Custom model IDs
574
+ remain available through `c`.
575
+
426
576
  <details>
427
- <summary>Older releases (v0.8.3 and earlier)</summary>
577
+ <summary>Older releases (v0.10.0 and earlier)</summary>
578
+
579
+ ## What's new in v0.10.0
580
+
581
+ - **Gemini 3.6 Flash defaults** — the gemini candidates in `fast-agentic`,
582
+ `triage`, and `bulk-mechanical` (and the `Gemini Flash` alias) now run
583
+ Gemini 3.6 Flash: fewer output tokens, a lower output price, and the fastest
584
+ output speed measured by Artificial Analysis.
585
+ - **Evidence re-audit** — routing comments, model capability notes, and the
586
+ Gemini price table refreshed against official sources.
587
+
588
+ ## What's new in v0.9.1
589
+
590
+ - **Fix:** `configure set` no longer deletes hand-written comments from
591
+ `routing.local.yaml` — it rewrites only its own stamp header and the lane
592
+ being replaced.
593
+
594
+ ## What's new in v0.9.0
595
+
596
+ - **Five OpenAI-compatible direct-API vendors** — `deepseek`, `zai` (GLM),
597
+ `mistral`, `groq`, and `cerebras` join `openrouter` as CLI-free lanes (curl +
598
+ a `<VENDOR>_API_KEY`). A one-line `lib/common.sh` registry entry adds each;
599
+ see [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md).
600
+ - **Fish shell completion** — `omnilane completion fish | source`.
428
601
 
429
602
  ## What's new in v0.8.3
430
603
 
package/README.zh-CN.md CHANGED
@@ -21,41 +21,25 @@
21
21
 
22
22
  ---
23
23
 
24
- ## 2026-07-25 更新
24
+ ## 🤔 omnilane 是什么?
25
25
 
26
- - 默认路由加入 `claude-opus-5`:成为 `hard-judgment`、`taste-final` 第一顺位,也纳入最高难度编程任务的备选。
27
- - `omnilane configure` 已扩展全部 13 个提供商:共 106 个可选模型,完整收录 Codex、Claude Code、Grok Build、Antigravity 实时列表,并加入已验证的 OpenRouter/OpenCode 快捷项;仍可用 `c` 输入自定义模型 ID。
26
+ **问题在哪。** 你已经在用某个 AI 写代码助手——**Claude Code、Codex、Cursor、
27
+ Gemini CLI** 之类。每一个都只接一个模型家族,所以你交代的每件事都跑在那同一个
28
+ 模型上,不管它合不合适:随手改个文件名烧掉最贵的模型,真正难的架构问题却刚好落在
29
+ 你当下开着的那个。
28
30
 
29
- ---
30
- ## 👋 第一次用?
31
-
32
- 你已经在用某个 AI 写程式助手——**Claude Code、Codex、Cursor、Gemini
33
- CLI** 之类。每个一次只接一个 AI 模型,而「每件工作该用哪个模型最好」得你自己决定。
34
-
35
- **omnilane 帮你决定。** 每一件工作,它会自动派给对那件事最强(也最省)的模型——硬派程式
36
- 交给顶尖程式模型、随手的小检查交给又快又便宜的、长文件交给大脉络模型——全部用你本来就在
37
- 付费的订阅与 API 金钥。用内建预设值就好,或改一个小设定档就能微调。不用另外顾一套东西
38
- (它躲在你现有工具背后跑),`./install.sh --uninstall` 可干净移除。
39
-
40
- **[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
41
-
42
- ## v0.10.0 新功能
31
+ **omnilane 做什么。** 它给你的助手一张路由表。工作被分进**通道**——最难的实现、
32
+ 机械粗活、初筛、硬判断、文字终审——每条通道指名对那件事最强(也最省)的模型。
33
+ 助手保留自己本来就擅长的通道,其余用你既有的登录,在后台交给别家厂商的 CLI。
43
34
 
44
- - **Gemini 3.6 Flash 默认路由**——`fast-agentic`、`triage`、`bulk-mechanical`
45
- gemini 候选(与 `Gemini Flash` 别名)改用 2026-07-21 发布的 Gemini 3.6
46
- Flash:输出 token 更少、输出单价更低、Artificial Analysis 实测输出速度第一。
47
- - **证据重审计**——路由注释、模型能力笔记与 Gemini 价格表对官方来源刷新
48
- (2026-07-21/22)。
49
-
50
- ## v0.9.1 新功能
35
+ **它不是什么。** 不是 proxy、不是另一笔订阅、不是又一个要维护的服务。它就是一张表
36
+ 加一支派工脚本,躲在你现有工具背后跑。`./install.sh --uninstall` 可完全清除。
51
37
 
52
- - **修复**:`configure set` 不再删除 `routing.local.yaml` 中手写的注释——
53
- 只改写自身的戳记行与被替换的 lane。
38
+ **你不需要每一家订阅。** 每条通道都是候选链,派工时自动采用本机实际装了的第一个
39
+ 候选。装一家或七家都行,整条链都没有的通道就自动关闭,而不是报错。只有一份订阅
40
+ 时,整张默认表会收敛到那一家。
54
41
 
55
- ## v0.9.0 新功能
56
-
57
- - **新增 5 个 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、`mistral`、`groq`、`cerebras`,与 `openrouter` 同为免 CLI 通道(curl 加一把 `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一个。详见 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
58
- - **fish shell 补全** — `omnilane completion fish | source`。
42
+ **[⬇ 直接跳到 60 秒上手](#-60-秒上手)** · **[❓ 看常见问题](#-常见问题)**
59
43
 
60
44
  ## ⚡ 60 秒上手
61
45
 
@@ -132,13 +116,11 @@ flowchart LR
132
116
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 额度吃紧时的中量级编码溢流道;事实性声明须另行查证 |
133
117
  | 🗳️ arbitrate | off(可选评审团) | — | 内置意见评审团,重大决定用——默认关闭,要用在 `routing.local.yaml` 打开;每评审每轮烧一次额度 |
134
118
 
135
- **备选模型**是候选链的下一位——首选那家的厂商 CLI 没装时,派发就降到它。
119
+ **备选模型**是候选链的下一位——首选那家的厂商 CLI 没装时,派发就降到它。每条
120
+ 通道都是这样一条链;整条都没装时,通道自动降为 `off`。
136
121
 
137
- > **Claude Fable 5 去哪了?** 默认表刻意不放:Claude 顶级档通常就是*主循环本人*,
138
- > 不是被派发的工人,且定价高于 Opus。这是成本/护栏/主循环策略,不代表能力
139
- > 不如 Opus;Anthropic 将 Fable 5 定位在 Opus 5 之上。设置菜单的模型清单里有它——
140
- > 不同意就自己路由过去(例如在 `routing.local.yaml` 写
141
- > `taste-final: claude claude-fable-5 high`)。
122
+ > **Claude Fable 5 去哪了?** 默认表刻意不放——理由与完整数据见
123
+ > [常见问题](#-常见问题)。
142
124
 
143
125
  ### 自然语言咨询
144
126
 
@@ -343,6 +325,121 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 rou
343
325
  而不是永远显示 `running`。
344
326
  - **任务载荷上限** — 过大的任务文本自动头尾截断,防止撑爆工作端上下文。
345
327
 
328
+ ## ❓ 常见问题
329
+
330
+ <details>
331
+ <summary><b>这些订阅我全都要有吗?</b></summary>
332
+
333
+ <br/>
334
+
335
+ 不用。每条通道都是候选链,派工时采用本机实际装了的第一个候选。只有一份订阅时,
336
+ 整张表会收敛到那一家;整条链都没有的通道自动关闭,不会报错。运行
337
+ `omnilane doctor` 可以看到这台机器现在实际接得到什么,`routing.local.yaml.example`
338
+ 也附了常见情形的起手配置(只有 Claude、以 Codex 为主、没有 Codex)。
339
+
340
+ </details>
341
+
342
+ <details>
343
+ <summary><b>omnilane 会不会把我的代码送到新的地方?</b></summary>
344
+
345
+ <br/>
346
+
347
+ 不会多出新的去处。派工是调用你早就装好也登录过的厂商 CLI,所以代码只会到达
348
+ 你本来就在用的那几家。执行器在调用订阅制 CLI 前会剥掉 API 密钥环境变量,避免
349
+ 一把残留的密钥把你悄悄切到按 token 计费。唯一的例外是 direct-API vendor 家族
350
+ (`openrouter`、`deepseek`、`zai`、`mistral`、`groq`、`cerebras`),它们本来就是
351
+ 拿你配置的密钥直调该提供商的 API——这几家只做 advise,不会改文件。
352
+
353
+ </details>
354
+
355
+ <details>
356
+ <summary><b>Claude Fable 5 去哪了?为什么默认表不放它?</b></summary>
357
+
358
+ <br/>
359
+
360
+ **因为 Claude 顶级档通常就是主循环本人,不是被派发的工人。** 通道存在的意义,
361
+ 是把工作送给「你正在开的那个模型以外」的模型。如果 Fable 5 就是你的主循环,把
362
+ 判断和文字再路由回 Fable 5 只是多一次调用、毫无增益——所以上面那份「选你的主控
363
+ 模型」清单里,Fable 5 有自己独立的一行,身份是**主控**:自己做 hard-judgment、
364
+ taste-final、最吃正确性的硬修。
365
+
366
+ **测量数据也不支持把它当工人。** Artificial Analysis 智能指数(2026-07-24)
367
+ Opus 5(max)61 分、Fable 5(max)60 分——AA 自己的用词是「实质打平」,而 Epoch AI
368
+ 的能力指数排序还是反过来的(Fable 5 161、Opus 5 159)。综合智力就当它平手。真正
369
+ 拉开差距的是 agentic 专业产出,而且差很多:
370
+
371
+ | 评测 | Claude Opus 5 (max) | Claude Fable 5 | |
372
+ |---|---:|---:|---|
373
+ | AA-Briefcase(agentic 知识工作,Elo) | 1720 | 1574 | **+146** |
374
+ | GDPval-AA v2(Elo) | 1861 | 1747 | **+114** |
375
+ | AA-Briefcase 每任务成本 | $17.79 | $22.30 | **-20%** |
376
+ | API 单价,输入/输出 每 1M | $5 / $25 | $10 / $50 | **一半** |
377
+
378
+ Opus 5 的 max、xhigh、high 三个档位包揽 AA-Briefcase 前三名,连 `high` 档都在
379
+ 不到一半的每任务成本下赢过 Fable 5。也就是说,Fable 5 贵一倍,却换不到任何一条
380
+ 通道所在意的优势。
381
+
382
+ **Fable 5 真正更强的地方**:事实广度。它在 AA-Omniscience 上仍领先 Opus 5
383
+ (符合两者的规模差),而 Opus 5 在没把握时更倾向直接作答——幻觉率 50%,比
384
+ Opus 4.8 高 14 个百分点。任务偏「回想」而非「执行」时,直接点名它:
385
+
386
+ ```bash
387
+ dispatch.sh --vendor claude --model claude-fable-5 --effort high consult "…"
388
+ ```
389
+
390
+ **这是成本与主循环策略的选择,不是能力判决。** 设置菜单的模型清单里有 Fable 5,
391
+ 在 `routing.local.yaml` 写一行就能覆盖默认:
392
+
393
+ ```yaml
394
+ taste-final: claude claude-fable-5 high
395
+ ```
396
+
397
+ </details>
398
+
399
+ <details>
400
+ <summary><b>Claude 那几条通道为什么用 <code>xhigh</code> 而不是 <code>max</code>?</b></summary>
401
+
402
+ <br/>
403
+
404
+ 因为推理档位不是越高越好。Anthropic 官方把 `xhigh` 定为编码与 agentic 工作的
405
+ 起手档位,`high` 是其他吃智力任务的下限,`max` 保留给「正确性重于成本」的场合。
406
+ 第三方实测也一致:Vals.ai 的 Vibe Code Bench 上,Opus 5 在 `high` 拿 89.8%,
407
+ `xhigh` 只有 88.3%、`max` 88.4%——最高档倾向产出更繁复的解,反而更常出错。
408
+ 你的工作类型如果不同意,单条通道自己拉高:
409
+
410
+ ```bash
411
+ omnilane configure set hard-judgment "claude claude-opus-5 max"
412
+ ```
413
+
414
+ </details>
415
+
416
+ <details>
417
+ <summary><b>通道首选的 CLI 没装会怎样?</b></summary>
418
+
419
+ <br/>
420
+
421
+ 派工会沿着候选链往下走,用你手上有的第一家。不花任何额度就能先看决策:
422
+
423
+ ```bash
424
+ scripts/dispatch.sh --explain hardest-coding # 逐候选解释
425
+ scripts/dispatch.sh --list # 整张生效表
426
+ scripts/dispatch.sh --dry-run hardest-coding "…" # 完整解析后的计划,不调用模型
427
+ ```
428
+
429
+ </details>
430
+
431
+ <details>
432
+ <summary><b>被派工的模型会不会乱改我的文件?</b></summary>
433
+
434
+ <br/>
435
+
436
+ 除非你明说要它改。派工默认是 `advise` 只读模式,而且是逐厂商实现的(只读沙箱、
437
+ plan 模式,或只给只读工具集)。要改文件必须同时给 `--mode work` 和明确的
438
+ `--workdir`。工作端也不能再往外派——深度守卫会用退出码 86 拒绝嵌套派工,一道
439
+ 命令不可能失控变成一整串 AI 烧你的额度。
440
+
441
+ </details>
442
+
346
443
  ## 📊 默认值与数据来源
347
444
 
348
445
  默认通道配置依据 Artificial Analysis 2026-07 快照(已对 AA 站上原始记录与
@@ -350,7 +447,8 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 rou
350
447
  设置菜单和 `routing.local.yaml` 就是让你不同意用的。评审团(arbitrate)
351
448
  默认关闭;要用就在 `routing.local.yaml` 写
352
449
  `arbitrate: vote codex,claude,grok -`(从四家里任选 1-4 个评审),
353
- 或改用 `exec` 厂商指向你自己的多模型审查闸脚本。
450
+ 或改用 `exec` 厂商指向你自己的多模型审查闸脚本。完整工作笔记(含各评测的
451
+ 但书)见 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
354
452
 
355
453
  ## ⚠️ 已知限制
356
454
 
@@ -364,8 +462,58 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 rou
364
462
 
365
463
  ## 📜 版本历程
366
464
 
465
+ ## v0.10.3 新功能
466
+
467
+ - **五种语言的 README 全面重整**——文档开头改成先讲清楚「这是什么、我为什么会
468
+ 想要它」,版本历程全部收拢到最下方,不再打断开头的介绍;新增常见问题,回答
469
+ 一直被问到的几件事:是不是每家订阅都要有、代码会被送去哪、为什么默认表没有
470
+ Fable 5、为什么用 `xhigh` 而不是 `max`、首选 CLI 没装会怎样、被派工的模型会不会
471
+ 改文件。
472
+ - **修复:插件清单的版本号没跟上**——`plugin.json` 与
473
+ `.claude-plugin/plugin.json` 在 0.10.1、0.10.2 发布后仍写着 `0.10.0`,导致插件
474
+ 安装显示错误版本。
475
+ - **修复:`routing.local.yaml.example` 还指着已退场的模型**——起手配置里的
476
+ `claude-opus-4-8` 全数改为 `claude-opus-5`(并按通道给对应档位),Gemini 3.5
477
+ Flash 候选改为 3.6 Flash,与 0.10.0 以来的默认值一致。
478
+ - **对照原始资料修正智能指数数字**(`docs/model-capabilities-2026-07.md`):
479
+ 那是指数点数不是百分比;补上 AA-Briefcase / GDPval-AA v2 对照,并记下两项与
480
+ 默认值相反的结果:Fable 5 在事实知识领先、GPT-5.6 Sol 在呈现质量领先。
481
+
482
+ ## v0.10.2 新功能
483
+
484
+ - **`hardest-coding` 与 `hard-judgment` 的 Claude 档位由 `max` 降为 `xhigh`**,
485
+ 对齐 Anthropic 对 Claude Opus 5 的官方建议:编码与 agentic 工作从 `xhigh` 起跳,
486
+ `high` 是其他吃智力任务的下限,`max` 保留给正确性重于成本的场合。要拉回去用
487
+ `omnilane configure set <通道> "<配置>"`。
488
+ - **修掉两条死的 CHANGELOG 比较链接**——它们指向从未发布的 `v0.10.0` tag。
489
+
490
+ ## v0.10.1 新功能
491
+
492
+ - **默认路由加入 `claude-opus-5`**:成为 `hard-judgment`、`taste-final` 第一顺位,
493
+ 也纳入最高难度编程任务的备选。
494
+ - **`omnilane configure` 已扩展全部 13 个提供商**:共 106 个可选模型,完整收录
495
+ Codex、Claude Code、Grok Build、Antigravity 实时列表,并加入已验证的
496
+ OpenRouter/OpenCode 快捷项;仍可用 `c` 输入自定义模型 ID。
497
+
367
498
  <details>
368
- <summary>旧版本(v0.8.3 以前)</summary>
499
+ <summary>旧版本(v0.10.0 以前)</summary>
500
+
501
+ ## v0.10.0 新功能
502
+
503
+ - **Gemini 3.6 Flash 默认路由**——`fast-agentic`、`triage`、`bulk-mechanical`
504
+ 的 gemini 候选(与 `Gemini Flash` 别名)改用 Gemini 3.6 Flash:输出 token
505
+ 更少、输出单价更低、Artificial Analysis 实测输出速度第一。
506
+ - **证据重审计**——路由注释、模型能力笔记与 Gemini 价格表对官方来源刷新。
507
+
508
+ ## v0.9.1 新功能
509
+
510
+ - **修复**:`configure set` 不再删除 `routing.local.yaml` 中手写的注释——
511
+ 只改写自身的戳记行与被替换的 lane。
512
+
513
+ ## v0.9.0 新功能
514
+
515
+ - **新增 5 个 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、`mistral`、`groq`、`cerebras`,与 `openrouter` 同为免 CLI 通道(curl 加一把 `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一个。详见 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
516
+ - **fish shell 补全** — `omnilane completion fish | source`。
369
517
 
370
518
  ## v0.8.3 新功能
371
519