omnilane 0.10.1 → 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.ko.md CHANGED
@@ -21,47 +21,29 @@
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
+ 이름 변경이 가장 비싼 모델을 소모하고, 정작 어려운 설계 문제는 마침 열어 둔
30
+ 모델에 걸립니다.
28
31
 
29
- ---
30
- ## 👋 처음이신가요?
31
-
32
- 이미 AI 코딩 어시스턴트——**Claude Code, Codex, Cursor, Gemini CLI** 같은——를 쓰고
33
- 계시죠. 각각은 번에 하나의 AI 모델과 대화하며, "어떤 작업에 어떤 모델이 최선인가"는
34
- 당신 몫으로 남습니다.
35
-
36
- **omnilane 이 대신 골라 줍니다.** 모든 작업을 그 일에 가장 강한(그리고 가장 저렴한) 모델로
37
- 자동 라우팅합니다——어려운 코딩은 최고 코더에게, 간단한 확인은 빠르고 싼 모델에게, 긴 문서는
38
- 큰 컨텍스트 모델에게——전부 이미 결제 중인 구독과 API 키로. 기본값 그대로 쓰거나, 작은 설정
39
- 파일 하나만 손보면 됩니다. 새로 관리할 대상이 늘지 않고(기존 도구 뒤에서 동작),
40
- `./install.sh --uninstall` 로 깔끔히 제거됩니다.
41
-
42
- **[⬇ 60초 시작으로](#-60초-시작)**
43
-
44
- ## v0.10.0 새 기능
32
+ **omnilane 이 하는 일.** 어시스턴트에게 라우팅 표를 줍니다. 작업은 **레인**——
33
+ 가장 어려운 코딩, 기계적인 물량, 분류, 어려운 판단, 최종 다듬기——으로 나뉘고,
34
+ 각 레인에는 그 일에 가장 강하고(그리고 가장 저렴한) 모델이 지정됩니다.
35
+ 어시스턴트는 자신이 잘하는 레인을 직접 처리하고, 나머지는 이미 가진 로그인으로
36
+ 다른 벤더의 CLI 백그라운드로 넘깁니다.
45
37
 
46
- - **Gemini 3.6 Flash 기본 라우팅** `fast-agentic`, `triage`,
47
- `bulk-mechanical` gemini 후보(그리고 `Gemini Flash` 별칭)를 2026-07-21
48
- 출시된 Gemini 3.6 Flash변경: 출력 토큰 감소, 출력 단가 인하, Artificial
49
- Analysis 측정 출력 속도 1위.
50
- - **근거 재감사** — 라우팅 주석, 모델 능력 노트, Gemini 가격표를 공식 소스에
51
- 맞춰 갱신 (2026-07-21/22).
52
-
53
- ## v0.9.1 새 기능
54
-
55
- - **수정**: `configure set` 이 더 이상 `routing.local.yaml` 의 수기 주석을
56
- 삭제하지 않습니다. 자체 스탬프 줄과 교체 대상 레인만 다시 씁니다.
38
+ **omnilane 아닌 것.** 프록시도, 구독도, 계속 돌봐야 할 서비스도 아닙니다.
39
+ 장과 디스패치 스크립트 하나가 기존 도구 뒤에서 돌아갈 뿐입니다.
40
+ `./install.sh --uninstall`흔적 없이 제거됩니다.
57
41
 
58
- ## v0.9.0 기능
42
+ **모든 구독이 필요하지는 않습니다.** 각 레인은 대체 체인이며, 실제로 설치된 첫
43
+ 후보가 선택됩니다. CLI 가 하나든 일곱이든 동작하고, 아무것도 없는 레인은 실패
44
+ 대신 그냥 꺼집니다. 구독이 하나여도 기본 표는 그 벤더로 수렴합니다.
59
45
 
60
- - **OpenAI 호환 direct-API 벤더 5개 추가** — `deepseek`, `zai` (GLM), `mistral`,
61
- `groq`, `cerebras` 가 `openrouter` 처럼 CLI 없는 레인으로 추가(curl 과
62
- `<VENDOR>_API_KEY` 만 필요). `lib/common.sh` 레지스트리에 한 줄로 추가되며,
63
- 모델 능력 비교는 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 참고.
64
- - **Fish 셸 자동완성** — `omnilane completion fish | source`.
46
+ **[⬇ 60초 시작으로](#-60초-시작)** · **[❓ FAQ 보기](#-faq)**
65
47
 
66
48
  ## ⚡ 60초 시작
67
49
 
@@ -128,10 +110,10 @@ flowchart LR
128
110
 
129
111
  | 레인 | 1순위 모델 | 백업 | 용도 |
130
112
  |---|---|---|---|
131
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (max) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
113
+ | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
132
114
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 리팩터링, 마이그레이션, 테스트, 대량 스윕 |
133
115
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 대량 1차 선별 |
134
- | ⚖️ hard-judgment | Claude Opus 5 (max) | GPT-5.6 Sol (max) | 아키텍처 중재, 깊은 추론, 세컨드 오피니언 |
116
+ | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 아키텍처 중재, 깊은 추론, 세컨드 오피니언 |
135
117
  | ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 대외 문장, prompt/문서 다듬기, 스타일 최종심 |
136
118
  | 💬 consult | 명시적으로 지정한 벤더/모델 | —(폴백 없음) | 자연어 직접 상담. `--vendor` 를 반드시 유지 |
137
119
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 디자인 시스템/참고 이미지가 있을 때의 UI 초안 |
@@ -142,15 +124,11 @@ flowchart LR
142
124
  | 🗳️ arbitrate | off(옵트인) | — | 내장 의견 패널(중대한 결정용)——기본 비활성. `routing.local.yaml` 에서 활성화;투표자×라운드마다 1콜 소모 |
143
125
 
144
126
  **백업**은 체인의 다음 후보입니다——1순위 벤더 CLI 가 설치되지 않았을 때
145
- 디스패치가 강등되는 대상입니다.
127
+ 디스패치가 강등되는 대상입니다. 모든 레인이 이런 체인이며, 체인에 아무것도
128
+ 설치되어 있지 않으면 레인은 `off` 로 강등됩니다.
146
129
 
147
- > **Claude Fable 5 는 어디에?** 의도적으로 기본 테이블에 넣지 않았습니다:
148
- > Claude 최상위 티어는 보통 *메인 루프 자신*이지 디스패치되는 워커가 아니며,
149
- > 가격도 Opus 보다 높습니다. 이는 비용/가드레일/메인 루프 정책이며 능력 평가가
150
- > 아닙니다. Anthropic 은 Fable 5 를 Opus 5 보다 상위에 둡니다. 설정 메뉴의
151
- > 모델 목록에는 있으니 원하면 직접
152
- > 라우팅하세요(예: `routing.local.yaml` 에
153
- > `taste-final: claude claude-fable-5 high`).
130
+ > **Claude Fable 5 는 어디에?** 의도적으로 기본 테이블에 넣지 않았습니다——
131
+ > 이유와 실측 데이터는 [FAQ](#-faq) 정리했습니다.
154
132
 
155
133
  ### 자연어 상담
156
134
 
@@ -365,12 +343,136 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
365
343
  `jobs.sh status` 가 `dead` 를 보고.
366
344
  - **페이로드 상한** — 과대한 태스크 텍스트는 머리/꼬리만 남기고 자동 절단.
367
345
 
346
+ ## ❓ FAQ
347
+
348
+ <details>
349
+ <summary><b>이 구독들이 전부 필요한가요?</b></summary>
350
+
351
+ <br/>
352
+
353
+ 아닙니다. 각 레인은 대체 체인이며 실제로 설치된 첫 후보가 사용됩니다. 구독이
354
+ 하나면 표 전체가 그 벤더로 수렴하고, 체인에 아무것도 없는 레인은 오류 대신 그냥
355
+ 꺼집니다. `omnilane doctor` 로 이 머신이 지금 실제로 닿을 수 있는 곳을 확인할 수
356
+ 있고, `routing.local.yaml.example` 에는 흔한 상황별 시작 프로필(Claude 만,
357
+ Codex 중심, Codex 없음)이 들어 있습니다.
358
+
359
+ </details>
360
+
361
+ <details>
362
+ <summary><b>omnilane 이 제 코드를 새로운 곳으로 보내나요?</b></summary>
363
+
364
+ <br/>
365
+
366
+ 새로운 목적지는 생기지 않습니다. 디스패치는 이미 설치하고 로그인해 둔 벤더 CLI 를
367
+ 호출할 뿐이라, 코드가 도달하는 곳은 원래 쓰던 벤더뿐입니다. 러너는 구독형 CLI 를
368
+ 호출하기 전에 API 키 환경 변수를 제거하므로, 남아 있던 키 때문에 토큰 종량제로
369
+ 조용히 전환되는 일도 없습니다. 유일한 예외는 direct-API 벤더군(`openrouter`,
370
+ `deepseek`, `zai`, `mistral`, `groq`, `cerebras`)으로, 이들은 정의상 당신이 설정한
371
+ 키로 해당 제공자의 API 를 호출합니다——모두 advise 전용이며 파일을 수정하지 않습니다.
372
+
373
+ </details>
374
+
375
+ <details>
376
+ <summary><b>Claude Fable 5 는 어디에? 왜 기본 테이블에 없나요?</b></summary>
377
+
378
+ <br/>
379
+
380
+ **Claude 최상위 티어는 보통 메인 루프 자신이지 디스패치되는 워커가 아니기
381
+ 때문입니다.** 레인은 "지금 당신이 몰고 있는 모델 이외"에 작업을 보내려고 존재합니다.
382
+ Fable 5 가 메인 루프라면 판단과 문장을 다시 Fable 5 로 라우팅하는 것은 호출만 한 번
383
+ 늘 뿐 얻는 것이 없습니다——그래서 위의 "메인 모델 고르기" 목록에서 Fable 5 는
384
+ **드라이버**로 독립된 줄을 가지며, hard-judgment, taste-final, 정확성이 핵심인
385
+ 가장 어려운 수정을 직접 처리합니다.
386
+
387
+ **측정 데이터도 워커로 쓰는 쪽을 지지하지 않습니다.** Artificial Analysis
388
+ Intelligence Index(2026-07-24)에서 Opus 5(max)는 61점, Fable 5(max)는 60점 ——
389
+ AA 자신이 "사실상 동점"이라 표현했고, Epoch AI 의 Capability Index 는 순위가
390
+ 반대입니다(Fable 5 161, Opus 5 159). 종합 지능은 무승부로 보면 됩니다. 실제로
391
+ 벌어지는 곳은 에이전트형 전문 산출물이며, 그 격차는 작지 않습니다:
392
+
393
+ | 벤치마크 | Claude Opus 5 (max) | Claude Fable 5 | |
394
+ |---|---:|---:|---|
395
+ | AA-Briefcase(에이전트형 지식 노동, Elo) | 1720 | 1574 | **+146** |
396
+ | GDPval-AA v2(Elo) | 1861 | 1747 | **+114** |
397
+ | AA-Briefcase 작업당 비용 | $17.79 | $22.30 | **-20%** |
398
+ | API 가격, 입력/출력 1M 당 | $5 / $25 | $10 / $50 | **절반** |
399
+
400
+ Opus 5 의 max, xhigh, high 세 티어가 AA-Briefcase 상위 세 자리를 차지하며,
401
+ `high` 티어조차 작업당 비용 절반 이하로 Fable 5 를 이깁니다. 즉 Fable 5 는 가격이
402
+ 두 배이면서 레인이 중시하는 어떤 축에서도 우위를 사지 못합니다.
403
+
404
+ **Fable 5 가 실제로 더 나은 지점**: 사실 지식의 폭입니다. AA-Omniscience 에서는
405
+ 여전히 Opus 5 를 앞서며(두 모델의 규모 차이를 감안하면 당연), 반대로 Opus 5 는
406
+ 확신이 없을 때도 답하는 경향이 있어 환각률이 50%(Opus 4.8 대비 +14 포인트)입니다.
407
+ 실행보다 회상이 중심인 작업이라면 명시적으로 지목하세요:
408
+
409
+ ```bash
410
+ dispatch.sh --vendor claude --model claude-fable-5 --effort high consult "…"
411
+ ```
412
+
413
+ **이는 비용과 메인 루프 정책의 선택이지 능력 평가가 아닙니다.** Fable 5 는 설정
414
+ 메뉴의 모델 목록에 있으며, `routing.local.yaml` 한 줄로 기본값을 덮어쓸 수 있습니다:
415
+
416
+ ```yaml
417
+ taste-final: claude claude-fable-5 high
418
+ ```
419
+
420
+ </details>
421
+
422
+ <details>
423
+ <summary><b>Claude 레인은 왜 <code>max</code> 가 아니라 <code>xhigh</code> 인가요?</b></summary>
424
+
425
+ <br/>
426
+
427
+ 노력 수준이 높을수록 좋은 것이 아니기 때문입니다. Anthropic 은 `xhigh` 를 코딩과
428
+ 에이전트 작업의 출발점, `high` 를 그 외 지능이 필요한 작업의 하한, `max` 를
429
+ 정확성이 비용보다 중요한 경우의 설정으로 문서화합니다. 제3자 측정도 일치합니다:
430
+ Vals.ai 의 Vibe Code Bench 에서 Opus 5 는 `high` 에서 89.8%, `xhigh` 에서 88.3%,
431
+ `max` 에서 88.4% —— 최상위 티어는 더 복잡한 해법을 내놓고 그만큼 더 자주 실패합니다.
432
+ 워크로드가 다르다면 레인 단위로 올리세요:
433
+
434
+ ```bash
435
+ omnilane configure set hard-judgment "claude claude-opus-5 max"
436
+ ```
437
+
438
+ </details>
439
+
440
+ <details>
441
+ <summary><b>레인의 1순위 CLI 가 없으면 어떻게 되나요?</b></summary>
442
+
443
+ <br/>
444
+
445
+ 디스패치가 체인을 따라 내려가며 보유한 첫 벤더를 사용합니다. 호출을 쓰지 않고도
446
+ 결정을 먼저 확인할 수 있습니다:
447
+
448
+ ```bash
449
+ scripts/dispatch.sh --explain hardest-coding # 후보별 추적
450
+ scripts/dispatch.sh --list # 전체 유효 테이블
451
+ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계획, 제공자 호출 없음
452
+ ```
453
+
454
+ </details>
455
+
456
+ <details>
457
+ <summary><b>디스패치된 워커가 제 파일을 수정할 수 있나요?</b></summary>
458
+
459
+ <br/>
460
+
461
+ 요청했을 때만 가능합니다. 디스패치의 기본값은 읽기 전용 `advise` 이며 벤더별로
462
+ 구현되어 있습니다(읽기 전용 샌드박스, plan 모드, 또는 읽기 전용 도구 집합).
463
+ 수정하려면 `--mode work` 와 명시적인 `--workdir` 가 모두 필요합니다. 워커는 다시
464
+ 디스패치할 수도 없습니다——깊이 가드가 종료 코드 86 으로 중첩 팬아웃을 거부하므로,
465
+ 명령 하나가 에이전트 연쇄로 번져 할당량을 태우는 일은 없습니다.
466
+
467
+ </details>
468
+
368
469
  ## 📊 기본값과 출처
369
470
 
370
471
  기본 레인 배치는 Artificial Analysis 2026-07 스냅샷(AA 사이트 원본 레코드와
371
472
  각사 공식 가격 페이지로 교차 검증)과 공개 비교 리뷰에 근거합니다.
372
473
  이는 의견이지 법칙이 아닙니다——설정 메뉴와 `routing.local.yaml` 이
373
- 그래서 존재합니다.
474
+ 그래서 존재합니다. 벤치마크별 단서를 포함한 작업 노트는
475
+ [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 에 있습니다.
374
476
 
375
477
  ## ⚠️ 알려진 제한
376
478
 
@@ -385,8 +487,67 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
385
487
 
386
488
  ## 📜 릴리스 기록
387
489
 
490
+ ## v0.10.3 새 기능
491
+
492
+ - **5개 언어 README 전면 재구성** — 문서 첫머리에서 "이게 무엇이고 왜 필요한가"를
493
+ 먼저 설명하고, 버전 기록은 도입부를 끊지 않도록 맨 아래로 모았습니다. 그리고
494
+ 반복해서 들어온 질문에 답하는 FAQ 를 새로 넣었습니다: 구독이 전부 필요한지,
495
+ 코드가 어디로 가는지, 왜 Fable 5 가 기본 테이블에 없는지, 왜 `max` 가 아니라
496
+ `xhigh` 인지, CLI 가 없으면 어떻게 되는지, 워커가 파일을 수정할 수 있는지.
497
+ - **수정: 플러그인 매니페스트가 옛 버전을 표시** — `plugin.json` 과
498
+ `.claude-plugin/plugin.json` 이 0.10.1, 0.10.2 릴리스 후에도 `0.10.0` 으로
499
+ 남아 있어 플러그인 설치 시 잘못된 버전이 표시되었습니다.
500
+ - **수정: `routing.local.yaml.example` 이 퇴역 모델을 가리킴** — 시작 프로필의
501
+ `claude-opus-4-8` 을 모두 `claude-opus-5`(레인에 맞는 노력 수준 포함)로,
502
+ Gemini 3.5 Flash 후보를 3.6 Flash 로 바꿔 0.10.0 이후 기본값과 맞췄습니다.
503
+ - **Intelligence Index 수치를 원본과 대조해 정정**
504
+ (`docs/model-capabilities-2026-07.md`): 퍼센트가 아니라 지수 점수입니다.
505
+ AA-Briefcase / GDPval-AA v2 비교를 추가하고, 기본값과 반대 방향인 두 결과도
506
+ 기록했습니다: 사실 지식은 Fable 5 가, 표현 품질은 GPT-5.6 Sol 이 앞섭니다.
507
+
508
+ ## v0.10.2 새 기능
509
+
510
+ - **`hardest-coding` 과 `hard-judgment` 의 Claude 노력 수준을 `max` 에서 `xhigh`
511
+ 로 변경**. Claude Opus 5 에 대한 Anthropic 의 문서화된 지침에 맞췄습니다:
512
+ 코딩과 에이전트 작업은 `xhigh` 에서 시작, 그 외 지능이 필요한 작업의 하한은
513
+ `high`, `max` 는 정확성이 비용보다 중요한 경우에 한합니다. 되돌리려면
514
+ `omnilane configure set <lane> "<spec>"` 을 쓰세요.
515
+ - **깨진 CHANGELOG 비교 링크 2건 수정** — 공개된 적 없는 `v0.10.0` 태그를
516
+ 가리키고 있었습니다.
517
+
518
+ ## v0.10.1 새 기능
519
+
520
+ - **기본 라우팅에 `claude-opus-5` 추가**. `hard-judgment` 와 `taste-final` 의
521
+ 첫 번째 선택이며, 가장 어려운 코딩 작업의 대체 경로로도 사용됩니다.
522
+ - **`omnilane configure` 를 13개 전체 제공자로 확장**. 선택 가능한 모델은
523
+ 106개이며 Codex, Claude Code, Grok Build, Antigravity 의 최신 카탈로그와
524
+ 검증된 OpenRouter/OpenCode 바로가기를 포함합니다. `c` 를 통한 사용자 지정
525
+ 모델 ID 입력도 계속 지원합니다.
526
+
388
527
  <details>
389
- <summary>이전 릴리스(v0.8.3 이하)</summary>
528
+ <summary>이전 릴리스(v0.10.0 이하)</summary>
529
+
530
+ ## v0.10.0 새 기능
531
+
532
+ - **Gemini 3.6 Flash 기본 라우팅** — `fast-agentic`, `triage`,
533
+ `bulk-mechanical` 의 gemini 후보(그리고 `Gemini Flash` 별칭)를 Gemini 3.6
534
+ Flash 로 변경: 출력 토큰 감소, 출력 단가 인하, Artificial Analysis 측정 출력
535
+ 속도 1위.
536
+ - **근거 재감사** — 라우팅 주석, 모델 능력 노트, Gemini 가격표를 공식 소스에
537
+ 맞춰 갱신.
538
+
539
+ ## v0.9.1 새 기능
540
+
541
+ - **수정**: `configure set` 이 더 이상 `routing.local.yaml` 의 수기 주석을
542
+ 삭제하지 않습니다. 자체 스탬프 줄과 교체 대상 레인만 다시 씁니다.
543
+
544
+ ## v0.9.0 새 기능
545
+
546
+ - **OpenAI 호환 direct-API 벤더 5개 추가** — `deepseek`, `zai` (GLM), `mistral`,
547
+ `groq`, `cerebras` 가 `openrouter` 처럼 CLI 없는 레인으로 추가(curl 과
548
+ `<VENDOR>_API_KEY` 만 필요). `lib/common.sh` 레지스트리에 한 줄로 추가되며,
549
+ 모델 능력 비교는 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md) 참고.
550
+ - **Fish 셸 자동완성** — `omnilane completion fish | source`.
390
551
 
391
552
  ## v0.8.3 새 기능
392
553
 
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,14 +108,17 @@ 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
  |---|---|---|---|
134
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (max) | Hardest implementation, deep root-cause debug, correctness-critical edits |
118
+ | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | Hardest implementation, deep root-cause debug, correctness-critical edits |
135
119
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | Refactors, migrations, tests, review sweeps — mechanical endurance |
136
120
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | High-volume scans, first-pass filtering |
137
- | ⚖️ hard-judgment | Claude Opus 5 (max) | GPT-5.6 Sol (max) | Architecture arbitration, deep reasoning, second opinions |
121
+ | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | Architecture arbitration, deep reasoning, second opinions |
138
122
  | ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | User-facing prose, prompt/doc polish, style arbitration |
139
123
  | 💬 consult | Explicit named vendor/model | — (no fallback) | Direct natural-language consultation; always keep `--vendor` |
140
124
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | UI drafts only WITH a design system / reference images |
@@ -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