Recall был правилом в CLAUDE.md. Сессия открывалась с пустой головой, а вспоминала, только если её попросить. Правило не падает, когда не сработало — поэтому никто не замечал.
SessionStart сегодня утром: computer_use_grant inbox_read <- МЁРТВ с 31.07 visible_sessions sync_conflict_watch <- МЁРТВ с 31.07 onair housekeeping брифа нет ни одного
Поправка 15:00. Утром я записал сюда шесть хуков как работающую точку отсчёта. Сессия-охотник в тот же день доказала: два из шести мертвы. 31.07 в 20:32 из ~/.claude/scripts\ пропал 31 файл, включая обёртки этих хуков — входящие из шины и sync-конфликты на старте не показываются почти неделю. Мой «до» был даже пустее, чем я написал.
Версия после чистки полос (Наташа усомнилась в пользе — проверил цифрами, она была права):
🧠 БРИФ НА СТАРТЕ (session_brief v1.0.0) 🧭 Прошлая сессия (13:42): закрой дыры в трекере и покажи мне дашборд со всеми данными 📌 Мои открытые задачи (3): P1 Вердикт по брифу на старте сессии (shadow до 13.08) · P1 Голосовые из чата 00 → посты: замер… · P2 Хвосты из комментов FB-поста про recall ❓ Хэндоффы (1): HANDOFF-alpha-recall-comments.md
Утренняя версия показывала ещё имена свежих файлов и чужие горящие задачи. Снято, см. ниже.
| источник | живой? | решение |
|---|---|---|
turnstate.db — база ходов |
МЁРТВ | 3 строки, все селф-тесты от 14.07. Хук возвращает exit 0 и не пишет. Не берём: это уже один «механизм», который умер молча — второй такой не строим. |
транскрипты сессий *.jsonl |
ЖИВЫЕ | Взят главным. Их пишет сам харнес: отдельного писателя, который может тихо сдохнуть, просто нет. 146 файлов, свежайшие — текущий час. |
задачи 10-Tasks\task-*.md |
ЖИВЫЕ | Взяты второй полосой: 614 файлов, 260 тронуты за неделю. Читается только YAML-шапка, не смысл. |
локальные drafts\, posting-chain\ |
СНЯТА | Печатала имена файлов, из которых не следует ни одного решения. Полоса убрана в тот же день. |
Оба бага были из тех, что не падают, а тихо врут — то есть именно те, ради которых тест и пишется.
sys.exit() стоял внутри try — каждый нормальный прогон дописывал в лог лишнюю строку «упал». Набежало 54 фантомных падения, медиана времени показывала 0 мс. Прибор врал бы в красную сторону на главном критерии. Починено, лог обнулён, чистый отсчёт с 13:58.Она посмотрела на живую выдачу: «не уверена, что наличие этой инфы даёт пользу». Проверил цифрами — права.
| полоса | замер | что сделано |
|---|---|---|
| имена свежих файлов | из 40-medium-en.md не следует ни одного решения | снята совсем |
| задачи P0/P1 | из 261 задачи за неделю owner=natalia — 1, с меткой её машины — 2 | фильтр по владельцу и машине: чужое молчит, даже если горит |
| прошлая сессия | сессии идут параллельно — полоса показывала обрывок из чужого живого окна | берём только завершённую сессию (не тронутую 20 мин) |
Тест №9 при этой правке покраснел сам — он держал старое поведение. Заменён на три проверки: своя задача видна, чужая нет, задача нашей машины видна.
Цена не спасает бесполезное. 188 токенов — это 0.2% старта, то есть дёшево. Но дешёвый шум остаётся шумом. Цена отвечает «можем ли позволить», а не «нужно ли».
Судить можно, только если набралось 7 дней и минимум 15 запусков. Меньше — продлеваем окно, а не выносим вердикт по трём точкам.
| # | что меряем | порог «оставить» | чем |
|---|---|---|---|
| 1 | старт сессии сломался | 0 случаев | --stats |
| 2 | медиана времени | < 500 мс | --stats |
| 3 | брифу было что сказать | ≥ 70% запусков | --stats |
| 4 | польза для человека | ≥ 3 раза за неделю | один вопрос Наташе в конце недели |
| 5 | холодные старты | справочно | решения не определяет — см. ниже |
Слабость метрики №5 названа заранее, а не после: baseline — всего 5 холодных стартов на 146 сессий за месяц. Это пол: за неделю такая метрика физически не сдвинется настолько, чтобы что-то доказать. Плюс 3 случая из 5 — точечный recall по конкретному лиду, который бриф и не должен убирать. Поэтому решение принимается по критериям 1–4, а №5 идёт справкой.
13.08 ровно один из трёх ответов: оставить (1,2,3 выполнены и 4 дал ≥3) · доработать (1,2 ок, но 3 или 4 не дотянули — значит полосы выбраны не те) · удалить (падения были, ИЛИ бриф не пригодился ни разу). Удаление = одна строка из settings.json и папка tools\.
python D:\!CLAUDE-NATALY-June26\tools\session_brief.py посмотреть бриф python D:\!CLAUDE-NATALY-June26\tools\session_brief.py --check всё ли живо python D:\!CLAUDE-NATALY-June26\tools\session_brief.py --stats статистика за неделю python D:\!CLAUDE-NATALY-June26\tools\session_brief.py --off выключить (--on включить)
Выключатель — обычный файл tools\SESSION-BRIEF-OFF.flag, как STOP-POSTING.flag в postbox. Лежит — бриф молчит, удалила — работает. Sqlite и json руками править не нужно нигде. Паспорт: D:\!CLAUDE-NATALY-June26\tools\_doc_session_brief.md
Канон-предложение _transit\canon-proposals\session-brief-20260806\ + сообщение в шину (dual-send OK, чат 03).
Главное там — не бриф, а находка: turnstate мёртв, и молчание узла тут ничего не значит — сломанный и живой выглядят одинаково. Просим проверить на каждом узле. Скилл /1 заявлен как «recall из TurnState» — на пустой базе он возвращает пустоту, но это 🤔 гипотеза: хаб отсюда мы не проверяли.