retro-lost · v1.0.0 · 2026-10-03 · sha256 5c21e7729a0ca572

retro-lost v1.0.0A

Immutable. This exact content never changes and is served at /api/v1/blob/5c21e7729a0ca572.

---
name: retro-lost
description: "Ретро для БРОШЕННОЙ сессии (>24ч без касания = потеряшка, anton 02.09; ретро не делалось) — переработанный /retro под холодный контекст. Триггеры: “/retro-lost“, “ретро брошенной сессии“, “догони ретро“, “закрой хвост сессии <id>“, а также рутина auto-hub-260811-retro-lost-nightly (10 сессий/ночь, Opus)"
consumer: "рутина auto-hub-260811-retro-lost-nightly · Антон/агент по команде /retro-lost · /retro шаг 6a-бис"
version: 1.0.0
---

# /retro-lost — ретро потерянных сессий

## ⭐ ОСЬ ВОЗРАСТА: когда сессия — потеряшка и какое ретро ей положено (anton 02.09.2026)
Потеряшка = сессия без касания **>24 часов** (было 5 дней; сканер `retro_lost_scan.py`,
`MIN_AGE_DAYS=1`). Возраст решает ГЛУБИНУ ретро — поле `retro_mode` в строке кандидата:

- **1–5 дней (`classic`)** — контекст ещё тёплый, мир не успел далеко уйти → **классическое
  качественное ретро**: полный набор шагов профиля узла (см. таблицу профилей ниже),
  включая контрибьют-тест, тесты панелью и docstring-паспорта на хабе.
- **>5 дней (`lite`)** — поезд ушёл (в другом или том же направлении — неважно, догонять
  дорого) → **облегчённое ретро**: шаги 0/0-бис/1/2/3/7/8, БЕЗ шагов 4/5/6/7-бис/9.
  RECALL при этом ПОЛНЫЙ — это не то, что режется (опасность №1 никуда не делась).

Ось возраста ⊥ оси профилей (хаб/пир): сначала возраст выбирает classic/lite, потом профиль
узла режет своё. Итог = ПЕРЕСЕЧЕНИЕ (пир-лайт + classic всё равно без панели ломателей —
она хабовая рельса; хаб + lite не делает панель даже при живой рельсе). MAX_AGE_DAYS=30
(амнистия) не тронут.

## Чем отличается от живого /retro и почему
Сессия брошена дни назад: контекст холодный, автора нет, мир УШЁЛ ВПЕРЁД. Отсюда три сдвига:
1. **RECALL — главный шаг, а не разминка.** Опасность №1 (Антон: «чтобы не суммаризировать
   старьё»): торжественно записать урок, который соседняя сессия уже записала, или судить
   артефакт, который с тех пор переписан/удалён. Каждый вывод сверяется с СЕГОДНЯШНИМ
   состоянием: память + MEMORY.md, grep волта, реестр задач, git log затронутых файлов
   ПОСЛЕ даты сессии. Урок уже записан → строка «уже в домах, дубль не создаю». Артефакт
   переписан позже → судим текущую версию, не сессионную.
2. **Часть живого ритуала НЕ нужна.** Compact-блок Антону — некому жать. Growth-log — только
   если в сессии был реальный спор/решение. Биты дня — протухли (сюжетно ценное → черновик
   в content-mine, не в канон задним числом). Drift-audit с подъёмом дочерних сессий — только
   если RECALL доказал, что направление ещё живо и не подхвачено.
3. **Сессия не отвечает** — все вердикты со степенью уверенности; «зачем это строили» без
   улики в транскрипте = 🤔 гипотеза, не факт.

## Шаги (на одну сессию-кандидата)
0-пре. **ВЗЯТЬ кандидата ДО разбора** (иначе вторая ночная сессия возьмёт того же):
   ```bash
   python -B "$HOME/.claude/scripts/retro_lost_scan.py" take <sessionId> --holder "<taskId>" --json --receipt-out "<absolute-receipt.json>"
   ```
   Путь receipt обязан быть абсолютным и вне репозитория. `rc=0` доверяй только когда durable
   receipt exists и JSON содержит непустые `question_id`, `session_id`, `logical_file_id`,
   `holder` и `epoch` как positive integer. Receipt сохрани до подтверждённого DONE для replay
   после crash. `exit 7` — **его разбирают прямо сейчас**, бери следующего. `exit 3` — уже
   закрыт. Захват снимается сам в `mark-done`; умерла сессия — протухает за 3 часа и кандидат
   возвращается в очередь. `list` занятых больше не показывает и пишет их число в stderr.
   Зачем: маркер done ставится только В КОНЦЕ, а разбор идёт минуты — между «взял из списка»
   и «пометил» две сессии спокойно брали один sessionId и правили одни файлы (§7.7). Класс
   «дедуп покрывает прошлое, но не летящее», `Breakage-Journal` 13.08 / 22.08 / 22.08.
   ⚠️ В БАТЧЕ (шаг 0-бис) захватывать НАДО КАЖДОГО участника батча, а не только первого.
   ⚠️ **ТОЛЬКО ПОЛНЫЙ sessionId** (замер 13.09): `take` принимает ОБРЕЗАННЫЙ id из 8 символов,
   печатает «взял: cd8e196d» и отдаёт `exit 0` — захват ложится на несуществующий ключ, а
   реальный кандидат остаётся свободным для соседней ночной сессии. Списки и группировки
   удобно печатать короткими id, но в `take`/`mark-done` подставляй полный — резолви его
   из выдачи `list` (`sessionId`), а не из своей таблички.
0. **Вход**: строка кандидата от сканера (path, project, sessionId, hint). Прочитать транскрипт
   ЭКОНОМНО (§6.1) готовым прибором: `python ~/.claude/scripts/retro_lost_extract.py <path> [N]`
   — отдаёт первый промпт, стройку, bash-команды и хвост, файл в контекст не тянет. Точечное
   дознание — grep. Транскрипт >2 МБ целиком не читать никогда; свой экстрактор не переизобретать
   (грабля «сид назвал цель, не назвал рельсу», журнал 21.08 строка 876).
   ⭐ **0-бис — БАТЧ ОДНОЙ РУТИНЫ (anton 22.08, «переработай рутину»):** у кандидатов теперь
   есть `hint` (первые слова первого промпта). Кандидаты с одинаковым hint = прогоны ОДНОЙ
   рутины → разбирать ОДНИМ батчем: один инвентарь по образцу + сверка судьбы находок каждого
   прогона, ОДНА ретро-заметка на батч (source_sessions списком), mark-done КАЖДОМУ участнику.
   Причина цифрой: очередь 640 при 10/ночь и окне 25 дней = большинство сессий выпадает из окна
   неразобранными; батч рутинных прогонов закрывает 20-30 за ночь без потери качества
   (прогон 22.08: 10 сессий легли в 3 батч-заметки).
   ⚠️ **ЛОЖНЫЙ БАТЧ ПО СЛУЖЕБНОМУ ПРЕФИКСУ (находка 11.09.2026):** `hint` — это первые ~55 символов
   первого промпта, и у части сессий там стоит ОБЩАЯ служебная строка, а не суть работы. Известные
   склейки: `Base directory for this skill: [путь владельца]` (одинакова у ВСЕХ скиллов —
   11.09 склеила триаж, полосу тизеров и подачу на вакансии в один «батч» из 6 сессий),
   `--- name: <рутина> description:` (сид рутины — тут склейка ЧЕСТНАЯ, это правда одна рутина),
   `Use the Write tool to create ...` (однострочные пробы). Проверка перед разбором дешёвая: у
   истинного батча совпадает не только hint, но и ПРОЕКТ плюс набор тронутых файлов из экстрактора.
   Не совпало — разбирай по отдельности внутри одной заметки, единица при этом остаётся одна.
   ⭐ **0-тер — ОДИН И ТОТ ЖЕ БАТЧ ТРЕТЬЮ НОЧЬ ПОДРЯД = ДЕФЕКТ ПРИБОРА, А НЕ ЕДИНИЦА РАБОТЫ
   (оплачено 23.09.2026, [машина флота]).** Перед разбором батча посмотри заголовки своих же
   последних заметок (`ls -t .../Retros/retro-lost-*<узел>* | head -6`). Тот же батч в них
   третий раз → ⛔ НЕ тратить на него единицу снова: единица уходит на вопрос **«почему этот
   шум вообще доезжает до очереди»**, и корень чинится в том же заходе.
   Замер, породивший правило: батч «8 проб `Reply with exactly: ok`» брался 14, 15, 16, 17,
   19 и 21.09 — шесть ночей, шесть раз честно записан как «шум, не работа», шесть съеденных
   единиц из десяти. Корень лежал в одной строке сканера: `BUILD_PAT` считал стройкой
   `"name":"Write"` из ОПИСАНИЯ ТУЛОВ, которое едет в каждом транскрипте, поэтому условие
   «>=100 КБ И есть стройка» было на деле просто «>=100 КБ» (16% очереди — сессии без единого
   `tool_use`). Свой `selftest` дефект не ловил: его фикстура «стройки» была той же формой
   объявления — [[red-first-or-the-test-is-fake]].
   Мораль шире одного бага: **прибор рутины — такой же claim, как вывод** ([[instrument-is-a-claim-too]]).
   Повторяющаяся «находка» — это не находка, а счётчик собственной слепоты.
   Границы лайта это НЕ нарушает: чинится СВОЙ инструмент рутины, а не код брошенной сессии,
   и не канон-дома. Починка закрывается красным тестом и уезжает посылкой на флот (гейт
   `deploy_register` требует verify-ПРОБУ, а не тест: тест пишет state, проба только читает).
1. **ИНВЕНТАРЬ**: какие файлы сессия создала/правила → существуют ли СЕЙЧАС, кто их трогал
   после (git log/mtime). Исчез/переписан → в отчёт строкой, не в работу.
   ⭐ **ЧЕК-ЛИСТ ПРИБОРОВ (урок 22.08: кривой прибор чуть не записал в дома ложное «всё
   сгнило», поправка в журнале):** судьба пункта/просьбы = по РЕЕСТРУ `10-Tasks` (grep по
   ключевым словам) и git log, НЕ по mtime перевалочных файлов (план шины — перевалка, работа
   уезжает в карточки); установка MCP = конфиг Claude Desktop, НЕ `.claude.json`; «рутина
   жива» = хартбит `_cron_heartbeat/` И свежий ВЫХОД у потребителя, не одно из двух. Прибор —
   такой же claim, как вывод (§5.4): удобный вывод «брошено/сгнило» проверяется вторым прибором.
   ⚠️ **ИНВЕНТАРЬ ПИШИ ФАЙЛОМ, А НЕ HEREDOC'ОМ (оплачено 20.09.2026, три отбитых вызова подряд).**
   `constitution_guard` отбивает bash-вызов за одно УПОМИНАНИЕ лизованного каталога в тексте
   команды — даже когда команда ничего туда не пишет (считает mtime, обходит каталог, пишет
   строку в журнал про сам гейт). Пока сосед держит lease на общий каталог, любой инвентарь
   через heredoc мёртв. Рабочий путь: скрипт инвентаря создать `Write`-тулом в скретчпаде и
   запустить одной командой, а корни путей внутри собирать из кусков в рантайме
   (`"[путь владельца]" + "_imports"`). В тексте строки журнала лизованный путь не называть.
   Класс: `gejt-lizinga-blokiruet-chtenie-po-upominaniyu-puti`.

   ⭐ **ПРОГОНИ ТЕСТ, КОТОРЫЙ НАПИСАЛА САМА БРОШЕННАЯ СЕССИЯ (находка 16.09.2026).** Сессия оставила
   `_test_*.py` рядом со своим артефактом — запусти его ПЕРВЫМ, до любого чтения кода: это самая
   дешёвая дверь к находке (один вызов, 0 токенов на чтение). Красный тест у брошенной сессии почти
   никогда не значит «сессия сделала плохо» — значит, мир уехал ПОСЛЕ неё. 16.09 красный
   `_test_people_value_tester.py` вывел на откат 491 файла в `~/.claude/scripts`, который шесть часов
   лежал молча; ни одна другая проверка инвентаря его бы не показала. Зелёный тест — тоже улика:
   он подтверждает Keep без панели ломателей.
2. **RECALL-сверка** (см. выше) по каждому потенциальному выводу.
3. **КЛАССИФИКАЦИЯ** уцелевшего: Keep-&-reuse / one-off / брошено-навсегда.
4. **Контрибьют-тест 4🌍** для каждого Keep (3 вопроса; канон в rep-reply § «Пополнение
   карты») → строка в карту rep-reply / кандидат release-slice.
5. **ТЕСТЫ — внешними LLM** (Антон 11.08): живой непокрытый артефакт → панель ломателей
   `secondop.py panel` (Codex+Grok+Gemini), НЕ свой полный /tt — своих токенов на 10 сессий
   за ночь не напасёшься, и внешняя пара глаз на холодном коде честнее. Панель мертва →
   явный log-skip, артефакт в отчёт с ⚠️.
6. **ДОКА — только В КОД** (Антон, дважды: 07.08 и 11.08): живому непокрытому артефакту —
   docstring-паспорт в сам файл (что · вход/выход · кто дёргает · как чинить). Отдельные
   .md-паспорта НЕ создавать.
7. **Хвосты**: недоделанное и ценное → карточка в реестр задач (10-Tasks) со ссылкой на
   sessionId; недоделанное и мёртвое → строка в отчёте, без карточки.
   ⭐ **7-бис — законнектить с решателем (anton 21.08, грань 6 Connect):** карточка без
   копателя = жалоба. На КАЖДУЮ созданную карточку в том же заходе поднять видимую
   сессию-копателя (taskId=`auto-<узел>-<ГГММДД>-dig-<суть>`, не «в чёрную»).
   ⚠️ **ЧЕМ поднимать — решает, кто тебя позвал (CLAUDE.md §9.2, канон бьёт этот скилл):**
   живая сессия (человек за клавиатурой) → `create_scheduled_task`; **РУТИННЫЙ прогон
   (тебя позвал scheduled-task — это обычный случай ночной догонялки) → ТОЛЬКО
   `python ~/.claude/scripts/spawn_queue.py add --task-id … --prompt-file …`**.
   Из рутинной сессии `create/update_scheduled_task` = принудительное апрув-окно Антону,
   нажать некому, сессия виснет посреди хода и держит слот часами (93 из 101 блока апрува —
   эти вызовы; 02.09 три зависшие сессии остановили спавн на 6ч42м).
   ПЕРЕД подъёмом: `selfheal.py repairs --json` — класс уже queued/raised
   → копателя НЕ плодить (решатель существует). ⚠️ Проверяй не только НАЛИЧИЕ строки, но и
   её ВОЗРАСТ: `repairs` печатает «⚠️ДВЕРЬ МОЛЧИТ» у починок, поднятых и не побежавших
   (замер 08.09: `bash-tool-eats-windows-backslashes` — 238.9ч молчания, класс тем временем
   дошёл до 5/3). Молчащий решатель — не решатель: пиши это строкой в отчёт, дубль всё равно не плоди.
   ПОСЛЕ подъёма зарегистрируй его:
   `python ~/.claude/scripts/selfheal.py repairs --commit <класс> --task <taskId> --why "..."`.
   Мандат в сид: (1) проверить реальность проблемы уликами с диска; не подтвердилась →
   карточка dropped + опровержение в журнал; (2) счёт класса <3 → только статистировать,
   корень НЕ чинить; (3) счёт ≥3 → та же сессия чинит корень, сперва суммировав все
   предыдущие кейсы серии (5почему→ТРИЗ→АК-47). Все строки журнала — ТОЛЬКО дверью
   `selfheal.py journal --class ... --what ...` (опровержение — с `--status "опровергнуто: <чем>"`);
   рукописная строка НЕВИДИМА счётчику §5.10 и не заводит починку. Финал копателя:
   счёт <3 → `selfheal.py repairs --close <класс> --why "копатель: статистировано, счёт <3"`
   (иначе висячий raised подавит будущую починку); строка исхода dig_closed в
   `~/.claude/scripts/_dig_usage.jsonl` (ts·node·actor·event·outcome·class·taskId, §5.8).
   Tier-2 внутри копания → аск в 02.
   Канон: `reglament-pravilo-connect-esafeta-otvetstvennosti` грань 6,
   память `problem-connects-to-solver-session`.
8. **ФИНИШ**: короткая ретро-заметка в волт (шаблон живого /retro, секции пустых шагов
   опускать) → `python -B "$HOME/.claude/scripts/retro_lost_scan.py" mark-done "<receipt.session_id>" --question-id "<receipt.question_id>" --logical-file-id "<receipt.logical_file_id>" --holder "<receipt.holder>" --epoch "<receipt.epoch>" --note "<retro-note>"`.
   Передавай значения дословно; do not recompute identity по пути или sessionId. Wrong/missing
   identity обязана завершиться fail-closed без DONE/release; точный replay идемпотентен.
9. ⭐ **ЛИЧИНКА: СПОТЫКАНИЯ СВОЕГО ЖЕ ПРОГОНА → В ЖУРНАЛ ДВЕРЬЮ (shadow с 22.08, урожай
   29.08, Shadow-First-Queue).** Перед финишем всего прогона вспомни СВОИ спотыкания за ночь
   (упавшая команда · кривой флаг · кривой путь · права · лимит · обход) — каждой СЕМЬЕ одна
   строка дверью `python ~/.claude/scripts/selfheal.py journal --class <семантический-класс>
   --what "..."`. 0 спотыканий = ничего не писать, не выдумывай. Дверь сама считает и сама
   заводит починку на 3-й строке — это и есть «рутина, которая чинит рутину», новых роботов
   не плодим. ⚠️ Дедуп двери: exit 3 + печать «СТРОКА НЕ ЗАПИСАНА» = класс уже журналился
   недавно, это штатно. Свой скрипт по ходу ретро всё равно не чинить (границы ниже) — чинит
   сессия починки от двери.

## Бюджет ночного прогона (рутина)
10 ЕДИНИЦ работы за ночь **на КАЖДОМ узле** (Антон 11.08 «по 10, три маловато»; 02.09:
«оставил бы десять сессий за ночь» — пир-лайтовые 5 подняты до 10; лимиты узла не тянут →
честно меньше, с числом в отчёте). Порядок ВНУТРИ ночи (Антон 02.09): приоритет — самым
СВЕЖИМ потеряшкам (25ч назад, потом 26ч, потом 27ч…) — сканер уже сортирует так; но
старьё не бросаем: **≥2 единицы из 10 — хвосту очереди** (lite-старьё; доля моя, не
Антона — по замеру можно двигать).
⚠️ **ДЕСЯТКУ СОБИРАЙ ДО `take`, а не после** (грабля 09.09): `list` умеет только
`--top N` (свежие первыми), а `release` для уже взятого НЕ имеет — взял top-10, и квота
хвоста на эту ночь стала недостижима. Порядок: `list --top 200` → глазами выбрать
8 свежих + 2 с хвоста → и только теперь `take` каждого. 22.08: батч одной рутины по hint = ОДНА единица,
mark-done всем её сессиям — так ночь закрывает 20-30 сессий. На единицу: чтение ≤
экстрактор+греп, вердикты Opus. Не уложился в 10 до 06:00 — остановиться, очередь подождёт
(сканер отдаст завтра). Отчёт рутины: одна строка в 03 «retro-lost: закрыто N, очередь M»
— по правилу §7.4 суточного ритма, без спама.

## Границы
- ⛔ Не чинить код брошенной сессии по ходу ретро (это отдельная задача с владельцем) —
  исключение: карв-ауты Breakage-Journal (потеря данных/безопасность/секреты) → сразу.
- ⛔ Не поднимать дочерние сессии без RECALL-доказательства «ещё нужно и никем не подхвачено» (сессия-копатель по 7-бис — не исключение: её RECALL-доказательство = сама карточка, созданная в этом прогоне; на чужие/старые карточки копателей не плодим — дедуп по taskId).
- ⛔ Не переписывать историю: ретро-заметка судит, что вышло, а не редактирует сессию.
- Tier-2 находки (секрет в транскрипте открытым текстом и т.п.) → аск в 02 немедленно.

## ⭐ ДВА ПРОФИЛЯ: ХАБ-ПОЛНЫЙ и ПИР-ЛАЙТ (anton 22.08, голосовые hub:5697+hub:5699)
Приказ дословно: «рутина, которая обязана быть на КАЖДОМ пире… она действительно должна быть
на каждом компьютере, потому что на каждом компьютере свои юзеры, свои пиры… не централизовано
на хабе, а у каждого… 5-10 потеряшек в сутки… по упрощённому варианту… но полное рекол».

**Почему децентрализация вообще возможна и обязана быть — ЗАМЕР 22.08:** транскрипты
`~/.claude/projects/*/*.jsonl` НЕ синкаются между узлами (строка `/projects` в `~/.claude/.stignore`;
проверено — в общих project-папках на хабе и на Маяке по 0 `.jsonl`), маркеры done в
`~/.claude/logs/` тоже не в whitelist синка. Значит: узел физически видит ТОЛЬКО свои сессии,
хаб чужие потеряшки разобрать не может НИКОГДА, два узла не подерутся за одну сессию и общий
реестр маркеров не нужен (single-writer-shard не требуется — шард и так один на узел).
Очереди на 22.08: хаб 627, Маяк 88 при 0 маркеров (то есть 88 сессий Маяка не разбирал никто).

⚠️ **ИСКЛЮЧЕНИЕ, найдено 10.09.2026 (хаб, прогон ночной догонялки): проекты `ssh-*` видны ДВУМ
узлам.** Сессия `b1398d37` работала на Маяке в `/root/Obsidian/…`, а её транскрипт лежит на хабе
в проекте `ssh-b1398d37-…`, потому что ssh-сессию открыли отсюда. Маяк разобрал её 23.08 и
поставил СВОЙ локальный маркер, хаб об этом маркере не знает и получил её в очередь снова
17 дней спустя. Значит утверждение «два узла не подерутся» верно для обычных проектов и НЕВЕРНО
для `ssh-*`: там от дубля спасает только RECALL (шаг 2), поэтому у кандидата с проектом `ssh-*`
RECALL по слову из первого промпта в `01-Conversations/Claude/Retros` обязателен ДО разбора, а не
после. Строка класса в журнале: `ssh-sessii-vidny-dvum-uzlam-dedup-tolko-recall`.

**Какой профиль сейчас работает — говорит РУТИНА, а не хостнейм.** Гейт явный: сид рутины
пишет «профиль ПИР-ЛАЙТ» или «профиль ХАБ-ПОЛНЫЙ». Нет строки профиля в сиде → ПИР-ЛАЙТ
(безопасный дефолт: дешевле и ничего не пишет в канон), но **ВСЛУХ**: первая строка отчёта =
«⚠️ профиль не назван в сиде → взял ПИР-ЛАЙТ». Молчаливый дефолт = тихая деградация хаба, если
строка профиля из его сида когда-нибудь пропадёт (находка панели ломателей 22.08, Grok #1).
⛔ Не угадывать профиль по hostname — неизвестный узел молча получил бы дорогой профиль.

| | ХАБ-ПОЛНЫЙ (`auto-hub-260811-retro-lost-nightly`) | ПИР-ЛАЙТ (каждый узел) |
|---|---|---|
| объём | 10 единиц/ночь | **10 единиц/сутки** (anton 02.09: «оставил бы десять»; было 5) |
| шаги 0, 0-бис, 1, 2, 3 | да | **да, без урезания — RECALL полный** («полное реку») |
| 4 контрибьют-тест | да | ⛔ нет |
| 5 тесты панелью ломателей | да | ⛔ нет (панель — хабовая рельса) |
| 6 docstring-паспорта | да | ⛔ нет (правка чужого кода = не задача лайта) |
| 7 хвост → карточка | да | да |
| 7-бис сессия-копатель | да | ⛔ нет — только карточка со ссылкой на sessionId |
| 8 заметка + mark-done | да | да |
| 9 личинка спотыканий | да | ⛔ нет (shadow хаба) |
| модель | Opus | Opus (вердикт уезжает в библиотеку = суждение, §6.2) |
| рельса | подписка узла | **подписка ЭТОГО узла** — на пирах баки простаивают, §6.3 «жги оплаченное» |

**Что лайт НЕ режет:** RECALL (иначе получаем пересказ старья — та самая опасность №1),
проверку судьбы артефакта по реестру и git, честное «🤔 гипотеза» без улики.

### Имя файла заметки лайта — с КЛЮЧОМ УЗЛА, иначе sync-conflict
`01-Conversations/Claude/Retros/retro-lost-<ГГГГ-ММ-ДД>-<MACHINE_KEY>-<слаг>.md`.
Причина: волт общий на 6 узлов, у всех своя пятёрка потеряшек в один день; имя без ключа узла
= драка Syncthing за файл (три ломателя из трёх назвали это первым риском 22.08).
То же для карточек `10-Tasks`: слаг несёт узел. Хаб пишет как раньше (его имя уже уникально).

### Ветка «это была КНИГА / длинный текст» (anton hub:5699)
Дословно: «может, книгу даже не дописали нужную… это была важная книга, нужно хотя бы сделать
саммари, о чём она была, и поставить точку… и сложить в нашу гигантскую библиотеку, возможно
эти куски книги понадобятся». Признак: сессия писала главы/лонгрид/книгу и оборвалась.
Действие лайта: ⛔ не дописывать. Саммари «о чём это было + где куски лежат + почему встало»
+ точка с запятой (что нужно, чтобы продолжить) → в библиотеку волта, и строка в отчёте.
Механизм для этой ветки держит сессия-сестра `auto-hub-260822-lost-retro-decentralized-scale`
(голосовая hub:5699) — если она уже отдала прибор, лайт зовёт ЕГО, а не изобретает свой.

### Границы лайта (сверх общих)
- ⛔ Не писать в канон-дома (CLAUDE.md, Библия, MEMORY.md) — правило из чужой брошенной
  сессии проходит через хаб; лайт только кладёт заметку и карточку.
- ⛔ Узел коллеги разбирает СВОИ сессии; чужое личное в общий волт не выносить (обобщённо).
- Ноутбук ночью спит → слот дневной (Антон: «или там днём, учитывая, что в ноутбуке у кого-то
  ночью спят»). Слот выбирает узел под своего человека, не хаб.


<!--kit-footer-->

---

**Like this skill?** It is one of 100 in [second-brain-starter-kit](https://github.com/tonydzi/second-brain-starter-kit): the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with `npx skills add tonydzi/second-brain-starter-kit`. Everything is open source and free, so take what you need.

Flagships worth a look on their own: [secondop-panel](https://github.com/tonydzi/secondop-panel) (a second opinion from a panel of external models), [claude-memory-tidy](https://github.com/tonydzi/claude-memory-tidy) (stop your agent's memory from rotting), [telegram-mcp-kit](https://github.com/tonydzi/telegram-mcp-kit) (your own Telegram over MCP in about 15 minutes).

Author: **Anton Dziatkovskii**, Palo Alto AI Research Lab. Telegram [@tonydzi](https://t.me/tonydzi) - WhatsApp [+1 341 222 9178](https://wa.me/13412229178) - X [@Tony_Stef_](https://x.com/Tony_Stef_)

**Engineers: want to test-drive this setup?** Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.