Files
dotfiles/.scratch/proxy-client/token-ledger.md
T
ddadmin 6e431d875e refactor(proxy-client): переименован интерфейс прокси
- Зачем:
  - прежнее имя выпячивало Xray, хотя клиент поддерживает также внешний прокси, а два каталога конфигурации были неочевидны.
- Что:
  - пакет, CLI, конфигурация, состояние, тесты и документация переименованы в proxy-client.
  - машинный конфиг, профиль и два явных примера собраны в одном пользовательском каталоге.
  - свежая установка защищена от сворачивания каталога конфигурации внутрь репозитория.
- Проверка:
  - bash tests/test_proxy_client_full.sh.
  - bash tests/test_install.sh.
  - ручные start, status и xray run -test; незавершённая сетевая приёмка записана в handoff.
2026-07-21 09:31:21 -04:00

100 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Токен-леджер проекта proxy-client
Затраты по этапам конвейера, для калибровки эффорта и планирования лимитов
(5-часовые / недельные окна подписок). Прямое сравнение корректно внутри
провайдера; между Claude и Codex метрики разные (у Claude-субагентов
харнесс даёт один суммарный счётчик, у Codex — раздельные input/cached/
output/reasoning), кросс-сравнение — ориентировочное.
## Задача 06 — упрощение (baseline: реализация на HIGH)
| Этап | Агент / модель | Effort | Токены | Прочее |
|---|---|---|---|---|
| KISS-обход спеки и кода | Claude Opus (субагент) | default | 100 025 суммарно | 14 tool uses, 4.5 мин |
| Ревью постановки | Codex gpt-5.6-sol | high | in 1 263 557 (кэш 1 174 784 → свежих ~89k), out 16 862 (reasoning 12 817) | 82 команды |
| Реализация | Codex gpt-5.6-sol | high | in 6 680 053 (кэш 6 492 928 → свежих ~187k), out 29 064 (reasoning 8 280) | 84 команды, −331 строка |
| Саморевью | Codex (resume) | medium | инкремент: свежих in ~155k, out ~4.5k | 8 команд, found 2 fixed 2 |
| Слепое ревью «по задаче» | Claude Opus (субагент) | default | 75 216 суммарно | 26 tool uses, 4.3 мин; 1 NIT |
| Слепое ревью «по коду» | Codex gpt-5.6-sol (свежий тред) | high | in 2 336 162 (кэш 2 106 112 → свежих ~230k), out 12 434 (reasoning 7 033) | 48 команд; 1 MAJOR |
| Триаж/починка | Codex (resume) | medium | инкремент: свежих in ~26k, out ~7.3k | 18 команд; FIXED 1, REJECTED 1 |
| Перепроверка CODE-1 | Codex-ревьюер (resume) | medium | инкремент: свежих in ~137k (вкл. оборванный первый заход), out ~1.8k | FIXES_CONFIRMED |
Итог 06 (high-baseline): свежий input ~735k + output ~97k на весь конвейер
(обход, ревью постановки, реализация, саморевью, 2 слепых ревью, триаж,
перепроверка); Claude-доля — 175k суммарно (обход 100k + ревью 75k).
## Задача 03 / 04 (эксперимент: реализация на MEDIUM)
_Заполняется по ходу; сравнивать построчно с 06._
| Этап | Агент / модель | Effort | Токены | Прочее |
|---|---|---|---|---|
| 03: ревью постановки | Codex gpt-5.6-sol | high | in 1 126 384 (кэш 1 044 480 → свежих ~82k), out 15 830 (reasoning 9 567) | NEEDS_REWORK: 7 MAJOR + 3 MINOR |
| 03: реализация | Codex gpt-5.6-sol | **medium** | in 5 925 714 (кэш 5 678 080 → свежих ~248k), out 29 512 (reasoning 11 251)* | 88+6 команд; +657/−89; 44 OK + 8 PASS; процесс убит рестартом сессии перед отчётом, дописан через resume |
| 03: саморевью | Codex (resume) | medium | инкремент: свежих in ~53k, out ~11.6k (reasoning ~7k) | 38 команд; found 3 fixed 3; 45 OK + 8 PASS |
| 03: слепое ревью «по задаче» | Claude Opus (субагент) | default | 73 131 суммарно | 21 tool uses, 6.3 мин; 1 MINOR + 2 NIT |
| 03: слепое ревью «по коду» | Codex gpt-5.6-sol (свежий тред) | high | in 1 103 725 (кэш 1 019 136 → свежих ~85k), out 12 797 (reasoning 8 908) | 28 команд; 4 MAJOR + 1 MINOR |
| 03: триаж/починка | Codex (resume) | medium | инкремент: свежих in ~55.5k, out ~16.9k (reasoning ~7.8k) | 46 команд; FIXED 8, REJECTED 0; 49 OK + 8 PASS |
| 03: перепроверка TASK-1..3 | Claude Opus (резюм субагента) | default | инкремент ~7.4k (суммарно 80 560) | 8 tool uses, 1.7 мин; FIXES_CONFIRMED |
| 03: перепроверка CODE-1..5 | Codex-ревьюер (resume) | medium | инкремент: свежих in ~112k, out ~3.2k | 20 команд; FIXES_CONFIRMED |
| 04: ревью постановки | Codex gpt-5.6-sol | high | in 2 469 937 (кэш 2 352 896 → свежих ~117k), out 17 051 (reasoning 10 128) | 54 команды; NEEDS_REWORK: 5 MAJOR + 3 MINOR + 1 NIT |
| 04: реализация | Codex gpt-5.6-sol | **medium** | in 2 941 682 (кэш 2 828 288 → свежих ~113k), out 18 521 (reasoning 5 278) | 50 команд; +~600 строк; 63 OK (+14) + 8 PASS |
| 04: саморевью | Codex (resume) | medium | инкремент: свежих in ~50k, out ~17.2k (reasoning ~9.2k) | 38 команд; found 6 fixed 6; 72 OK + 8 PASS |
| 04: слепое ревью «по задаче» | Claude Opus (субагент) | default | 53 463 суммарно | 18 tool uses, 5.7 мин; 3 NIT |
| 04: слепое ревью «по коду» | Codex gpt-5.6-sol (свежий тред) | high | in 1 774 005 (кэш 1 676 288 → свежих ~98k), out 10 402 (reasoning 5 481) | 46 команд; 2 MAJOR + 2 MINOR (CODE-1 — дефект постановки: реальный формат .dgst) |
| 04: триаж/починка | Codex (resume) | medium | инкремент: свежих in ~237k, out ~58.9k (reasoning ~24k) | FIXED 7, REJECTED 0; 79 OK (+30 к baseline) + 8 PASS |
| 04: перепроверка TASK-1..3 | Claude Opus (резюм субагента) | default | инкремент ~7.7k (суммарно 61 135) | 6 tool uses, 1.7 мин; FIXES_CONFIRMED |
| 04: перепроверка CODE-1..4 | Codex-ревьюер (resume) | medium | инкремент: свежих in ~207k, out ~12.5k (reasoning ~6.3k) | FIXES_CONFIRMED |
Итог 03 (реализация на MEDIUM): Codex — свежий input ~636k + output ~77k
(ревью постановки 82k/16k, реализация ~248k/29.5k, саморевью 53k/11.6k,
CODE-ревью 85k/12.8k, триаж 55.5k/16.9k, перепроверка 112k/3.2k);
Claude-доля — 80.5k суммарно (TASK-ревью + перепроверка). Против 06
(high-baseline: ~735k + 97k Codex, 175k Claude) — дешевле, но качество
ниже: слепые ревью нашли 4 MAJOR (у 06 — 1), все — гонки
конкурентности/восстановления; конвейер их выловил и починил.
\* usage первого (убитого) хода не был зафиксирован (нет `turn.completed`); цифры — из resume-хода, по масштабу покрывают весь тред.
Итог 04 (реализация на MEDIUM): Codex — свежий input ~822k + output ~135k
(ревью постановки 117k/17k, реализация 113k/18.5k, саморевью 50k/17.2k,
CODE-ревью 98k/10.4k, триаж 237k/58.9k, перепроверка 207k/12.5k);
Claude-доля — 61k суммарно (TASK-ревью + перепроверка). Слепые ревью
нашли 2 MAJOR + 2 MINOR + 3 NIT, причём CODE-1 (MAJOR) — дефект
постановки (spec-review на high выдумал однострочный `SHA256=`), т.е.
на счету реализации-medium фактически 1 MAJOR (границы размеров).
Примечательно: 04-medium вышла ДОРОЖЕ 06-high по свежим токенам
(~822k+135k против ~735k+97k) — экономию реализации съели дорогой триаж
(7 находок, включая переделку под исправленный протокол) и перепроверки.
Сводка эксперимента (свежий input + output Codex; MAJOR от слепых ревью):
| Задача | Effort реализации | Codex токены | Claude | MAJOR |
|---|---|---|---|---|
| 06 | high (baseline) | ~735k + 97k | 175k | 1 |
| 03 | medium | ~636k + 77k | 80.5k | 4 (гонки) |
| 04 | medium | ~822k + 135k | 61k | 2 (1 — вина постановки) |
## Задача 05 — доставка пакета и приёмка
| Этап | Агент / модель | Effort | Токены | Прочее |
|---|---|---|---|---|
| 05: ревью постановки, попытки 1–2 (убиты) | Codex gpt-5.6-sol | high | расход токенов потерян (нет `turn.completed`) | обе умерли на `Quota exceeded (os error 122)`: набор `test_install.sh` заполнял `/tmp` тестовыми деревьями по ~1,8 ГБ; потеряно ~2 и ~10 мин работы, сеансы невосстановимы из-за сбоя журнала |
## Наблюдения
- Кэш у Codex покрывает ~93% входа ревью-этапа: длинные треды с большим
контекстом дешевле по лимитам, чем кажется по сырому input.
- Сравнивать этапы честнее по «свежий input + output (включая reasoning)»,
а не по валовому input.
- Итог эксперимента (решение пользователя 2026-07-21, детали — в
claude-subagent-playbook): реализация по отревьюированному тикету →
medium допустима, но экономию считать по конвейеру целиком (04-medium
дороже 06-high из-за триажа); Claude-субагентам effort задавать явно —
xhigh постановки/планы, high слепое ревью (ниже не опускать), medium
перепроверки; высокий effort не страхует от выдумки внешних фактов
(казус формата `.dgst`); смена effort у Codex при resume кэш не
сбрасывает (~93% кэша при high→medium).