⌂ все дашборды/Качество и аудиты← Vault-Core-Audit-2026-08-21 · n8n-Robots-Audit →

🔬 Watcher Token Audit

Правило Артура Арсёнова (Soul Daemon, $0.08→$0.002/день): сначала Python, потом LLM. LLM зовётся только на СУЖДЕНИИ; сбор/фильтр/транспорт = код (0 токенов). Аудит 2026-07-02, машина ZBOOKG8 (laptop-HP17), сессия B (implementer).
19
watcher'ов в инвентаре
11
уже 0 токенов (Python-only)
6
LLM только на суждении (норм)
3
починено/построено в этой сессии
~51k
ИЗМЕРЕННЫЙ балласт одного headless claude -p (30,360 создание кэша + 20,813 чтение — json usage)
СкриптГде зовёт LLMСбор или суждение?ЧастотаОценка токенов/деньСтатус
creator-watcher\cw_gate.py claude -p --model sonnet на КАЖДЫЙ STRIPPED-элемент (по одному) Суждение, но без 0-токен префильтра — очевидный мусор тоже ехал в Sonnet ночной прогон (пока on-demand) ~51k/вызов измерено × очередь (29 элементов ≈ 1.5M за прогон; кэш 1ч смягчает) 🔧 ПОЧИНЕНО: префильтр
chatgpt\chatgpt_freshness_check.cmd headless claude -p только чтобы ОТПРАВИТЬ фикс-текст в TG Транспорт (= сбор): текст фиксированный + 2 числа из json, суждения ноль ежедневно, при STALE ~25k за срабатывание → 0 🔧 ПОЧИНЕНО: nag_send.py
creator-watcher\cw_translate.pyclaude -p sonnet, батчами по 8Язык (легитимный LLM), идемпотентен (кириллица = скип)on-demandмалая, батчед✅ ок
claude_sessions\judge_sessions_llm.pyclaude -p sonnet на ambiguous-хвостСуждение; детектор отсеивает ~95% бесплатно, вердикты кэшируются навсегданочьюsteady-state ≈ 0✅ образец
foxpod\foxpod_weekly_judge.py1 вызов Sonnet на недельный дайджестСуждение; сбор = regex-вены + BANTER-фильтр (0 ток.)еженедельно~4k/день в среднем✅ образец
alpha\judge_nightly.cmd1 headless Sonnet-сессия судит 10 майнеровСуждение; все 10 детекторов 0-токенныеПн 05:001 сессия/нед✅ ок
dispatcher\signal_dispatcher.pyroute:wake → claude -pСуждение; wake ЗАБЛОКИРОВАН по умолчанию (--allow-wake opt-in)по событию0 (гейт закрыт)🚪 за гейтом
C:\mcp\tg-watch-daemon (вне _imports)1 claude -p на whitelist-сообщениеСуждение (черновик ответа); событийный, не поллингпо событиюпо трафику✅ ок
— 0 LLM ТОКЕНОВ (Python-only, проверено grep'ом всего _imports): —
watchers\watch_run.py (/watch-channel ночной)сбор Telethon + детектор mine_channelночью00 ток.
alpha\alpha_scan / bets / bridge / contradictions_scan.pyдетекторы (regex/SQL), дайджест для судьиночью/еженед.00 ток.
content-factory\voice_triage.pyклассификация в сессии, стор детерминирован3×/день00 ток.
cowork\cowork_loop.py + cowork_watchрегистрация/маячки, 0 LLM15 мин00 ток.
foxpod\foxpod_digest.pyдетектор венежедн.00 ток.
cw_detect / cw_fetch / cw_strip / cw_eval / cw_renderсбор/стрип/дашбордночью00 ток.
chatgpt_freshness_check.py, sync\conflict_sweeper.py, syncthing_watchdog*, tg_daemon\guard.py+status.py, airtable_watch.py, server_watchdog.pywatchdog'и: сравнение дат/портов/файлов = кодразные00 ток.

🔧 Фикс 1 — cw_gate.py: 0-токенный префильтр перед Sonnet

ДО: каждый STRIPPED-транскрипт (даже 504 символа «What if plants could talk?») ехал в Sonnet — ~25k токенов на вызов.
ПОСЛЕ: prefilter() режет транскрипты <2000 символов до LLM. Калибровка на 29 реальных вердиктов: ловит 6/29 (21%), ложных срабатываний 0 (минимальный PROMOTED = 14 258 символов, запас 7×). ≈300k токенов на прогон очереди 30 шт. (по измеренным 51k/вызов) /tt: 12/12 ✅ (живой прогон на копии базы, Sonnet замокан «взорваться если позовут» — 0 вызовов).

🔧 Фикс 2 — chatgpt freshness nag: LLM-транспорт → nag_send.py (0 токенов)

ДО: при застое ChatGPT→волт поднимался ЦЕЛЫЙ headless claude -p (грузит весь CLAUDE.md+MEMORY.md — измерено ~51k токенов), чтобы отправить фиксированный текст с двумя числами из _freshness.json.
ПОСЛЕ: nag_send.py шлёт тот же текст детерминированно через bus_ping.py --post → чат 03 (канон cc-alerts-to-chat-03). Старый LLM-путь остался закомментированным fallback'ом при падении рельса. /tt: живой прогон на реальном STALE (4 дня) → PING OK → group 03, LLM не вызван; края (нет json / битый json / нет рельса) деградируют кодом 1. ✅

🔧 Фикс 3 — lint-гейт «LLM на сборе» в ночной /arch (Anton «++», 2026-07-02)

arch\lint_llm_collection.py: детерминированный скан всего _imports (.py/.cmd/.ps1) на LLM-вызовы (claude -p / api.anthropic / claude_run.py), baseline = сегодняшний аудит (29 known sites), НОВЫЙ незаревьюенный вызов → RED-флаг к утру. Вшит в run_architect.cmd после lint_print_encoding. /tt: подсадной фейк → RED exit 1 + флаг; удалил → GREEN, флаг очищен. ✅ Правило стало сторожем: класс «LLM тихо вписали в watcher» закрыт.
После адверсариального ревью (APPROVE-WITH-NITS) дочинено: флаги обоих линтов вшиты в sys_check (chk-lint-flags, daily/critical → RED.flag → утренний пинг) — «тревога без звонка» закрыта, причём для соседнего lint_encoding тоже; линты подняты выше sys_check в пайплайне; регекс расширен (claude_exe(), --print, Start-Process) + задокументированы известные слепые зоны; nag_send при занятом рельсе делает 1 ретрай и скипает БЕЗ дорогого LLM-fallback (fallback только на реальный фейл). Бонус ревью: звонок сразу поймал живое нарушение в cofounder_watch.py (· без stdout-guard) — починено. Сквозной /tt: фейк → lint RED → chk-lint-flags FAIL → RED.flag; чисто → 8 checks 0 fail.

⛔ Проверено и отклонено (делали eval, не внедрили)

1. Батчинг cw_gate (8/вызов) — eval на 16 реальных вердиктов: совпадение survive-вердикта всего 62% (10/16), включая 2 потери сигнала (одиночный HELD → батч drop). Гейт качества главнее экономии → остаёмся на поштучном судействе. Скрипт eval: scratchpad _eval_gate_batch.py.
2. Микропрофиль headless (--bare) — измерено: --bare НЕ читает OAuth-keychain («Not logged in») = работал бы только на платном API (нарушение «сначала лимиты подписки»); --setting-sources project экономит ~1k из 51k (бессмысленно). Смягчение уже встроено: 30k балласта кэшируются на 1 час → последовательные вызовы судьи в одном прогоне платят в основном чтение кэша.
3. ChatGPT-синк: токен 401 (мёртв), на ноуте Chrome-расширение не подключено → self-heal задиспатчен ХАБУ (владелец синка) по шине; при провале хаб эскалирует Антону.
🧒 Простыми словами: у нас есть роботы-сторожа. Раньше двое из них звали дорогого умного помощника даже для глупой работы: один — чтобы «прочитать» заведомо пустые бумажки, второй — просто чтобы отнести записку. Теперь пустые бумажки выкидывает бесплатное сито, а записку относит бесплатный курьер. Умного помощника зовём только думать. Остальные 17 сторожей уже так и работали.
Источники: grep всего E:\Obsidian\_imports\**\*.py|.cmd по claude -p / api.anthropic / ANTHROPIC_API_KEY · watcher.db (29 вердиктов) · system.db · /tt-прогоны. Оценка «25k/вызов headless» = CLAUDE.md+MEMORY.md+системный промпт (confidence: med). Статус: artifact.proposed (сессия B, implementer) — ревью и «done» за координатором.