Run a retrospective for an abandoned agent session (untouched for over 24 hours, never closed with a retro): rebuild context cold from the transcript, list what was built, sort Keep/Drop/Try and file the durable parts. Use from a nightly routine or on demand. Triggers: /retro-lost, retro for an abandoned session.
9 stars
0 votes
0 copies
0 views
Added September 25, 2026
ai-agentspythonbashnodegit
Works with
claude desktop
mcp
Security analysis
B75/100
criticalAccesses sensitive system or user directories
Installs into .claude/skills of the current project.
Are you the author of Retro Lost?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tonydzi-retro-lost)
---
name: retro-lost
description: "Run a retrospective for an abandoned agent session (untouched for over 24 hours, never closed with a retro): rebuild context cold from the transcript, list what was built, sort Keep/Drop/Try and file the durable parts. Use from a nightly routine or on demand. Triggers: /retro-lost, retro for an abandoned session."
license: MIT
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.