1 · v1.0.0 · 2026-09-24 · sha256 afd3ab27043b3b87
1 v1.0.0B
Immutable. This exact content never changes and is served at /api/v1/blob/afd3ab27043b3b87.
--- name: 1 description: "Восстановление после ЖЁСТКОГО обрыва сессии (крэш / комп вырубился / контекст потерян посреди работы) — ОДНА сверхкороткая команда «где мы были + всё ли живо + верни историю». Триггеры: “/1“, “/!“, “восстановись“, “продолжаем“, “я вернулся“, “где мы остановились“, “проверь что всё работает“, “сделай recall и проверь систему“, “resume after crash“, “wake“" version: 1.0.0 --- # /1 — воскрешение после крэша («где мы были + всё ли работает») **Боль Антона:** сессия умерла посреди работы (крэш / комп выключился) → новая сессия пустая. Раньше: руками вспоминай, потом отдельно дёргай `/arch`, `/sync-check`, `/mcp`, потом думай «на чём остановились». Теперь — одно слово `/1` (или `/!`). **Чем это НЕ является:** `/retro` — для ЧИСТОГО конца сессии (инвентарь сделанного → раскладка по домам → /compact). После внезапного крэша упаковывать нечего, контекст уже потерян → нужен НЕ `/retro`, а воскрешение. Это разные инструменты. ## 4 шага (выполняй по порядку, отчитайся одной плашкой) ### Шаг 0 — СВЕРЬ ЧАСЫ (одна команда, до всего остального) ```bash date ``` Сравни с датой последней записи чёрного ящика (`turnstate_show.py --n 1`) и с датой в шапке контекста. **Разошлись — верь турнстейту и контексту, а не `date`.** Замер 18.08.2026 на [машина флота]: `date` отдал «Tue Aug 4», реальным было 18-е, и целая сессия успела сохранить ретро-ноту, две карточки задач и запись памяти с датой на две недели в прошлом. Если между «тогда» и «сейчас» разрыв больше суток — премисса задачи протухла ([[seed-premise-expires-measure-before-building]], [[resume-check-date-first]]): каждое «не сделано» из прошлой сессии **перепроверь живым замером**, прежде чем чинить. Замер 18.08: P0 «флот разлогинен» был закрыт ещё 13.08, оставался один узел из трёх. ### Шаг 1 — RECALL: где мы были (0 токенов, детерминированно) TurnState-чёрный-ящик пишет КАЖДЫЙ ход в SQLite (Stop-хук), переживает любой крэш. Прочитай последние ходы: ```bash python "$IMPORTS_ROOT/turnstate/turnstate_show.py" --n 12 ``` Из вывода вытяни: что Антон просил последним · какие файлы трогали · какие РЕШЕНИЯ приняли · следующий шаг. Это и есть «на чём оборвались». (Флаги: `--stats`, `--session <id>`, `--n N`.) ⛳ **И сразу — вопрос-рефлекс на входе** (anton hub:5090; единственный источник текста и формата — `/skill-gap` §⛳): «что из этой задачи уже должно быть скиллом — а если скилл есть, чего ему не хватило?» Ответ ОДНОЙ строкой идёт в плашку ниже; «не тянет» — валидный ответ, молчание — нет. **⚠️ Фолбэк, если ящик ПУСТ** (`turnstate_show.py --stats` показывает `turns: 0` — бывает, если Stop-хук ещё не активировался после рестарта Claude Code; см. [[crash-recovery-command]]): НЕ говори «данных нет». Деривируй «где мы были» из ПОСЛЕДНЕЙ сессии — её полный seed уже собран в шаге 3 (`_Dashboards/sessions-md/_continue/<cli>.seed.md`): прочитай ХВОСТ этого файла (последние 1–2 обмена «человек→ассистент») и вытяни из них задачу + последний шаг. То есть шаг 1 при пустом ящике опирается на результат шага 3. **📅 Шире одного хода — вчерашний день целиком** (0 токенов, читает готовый файл): ```bash python "$IMPORTS_ROOT/day_ledger.py" --recall ``` TurnState помнит ХОДЫ, леджер помнит ДЕНЬ: коммиты, ретро, решения, ДР — то, что случилось между сессиями и в чужих сессиях. После долгого перерыва бери `--recall 7`. Дверь целиком — `/ledger`. ### Шаг 2 — ПИНГ здоровья: всё ли живо (зелёный/красный) Три быстрых детерминированных проверки: ```bash python "$IMPORTS_ROOT/arch/arch_status.py" powershell -NoProfile -ExecutionPolicy Bypass -File "$IMPORTS_ROOT/sync_check\sync_check.ps1" ``` **MCP — ТОЛЬКО внутрисессионно** (⚠️ НЕ `claude mcp list` и НЕ второй Telethon-клиент → `AUTH_KEY_DUPLICATED` разлогинит аккаунт; память [[mcp-health-check]]): дёрни по одному дешёвому read-вызову у живых серверов — Telegram `mcp__telegram__get_me` (ждём Tony/@[рабочий аккаунт]), WhatsApp `mcp__whatsapp__get_my_profile`, n8n `mcp__n8n__n8n_health_check`. Если инструментов сервера нет в сессии — он не загрузился (диагностика — в `/mcp`). ⭐ **Шаг 2-бис — RED, НАЗВАВШИЙ ЛЕКАРСТВО, ЛЕЧИШЬ ТЫ, В ЭТОМ ЖЕ ЗАХОДЕ** (добавлено 15.09.2026; память [[alert-ownership-routing]] §Поправка 15.09). Пинг выше — не «посмотреть и пойти дальше». Если прибор вернул RED/WARN **и напечатал команду лечения**, эта команда **запускается сразу**, без спроса и без записи в бэклог, когда лечение обратимо (карантин/перемещение/переиндекс/перезапуск сервиса). Молча пройти мимо красного с названным лекарством = нарушение. ⛔ Не запускать и вместо этого написать строку Антону: необратимое удаление · Tier-2 · чужой узел · команда НЕ названа. ⚠️ Это НЕ «паразитная активность» §10.0: тот суточный потолок про профилактические сканы по своей инициативе, а тут — реакция на КОНКРЕТНЫЙ красный сигнал, который прибор уже предъявил. ⚠️ Замер, из-за которого шаг появился: `sync_check` печатал `oldest is 48.6 days (threshold 3), 64 live` и рядом — `resolve_conflicts.py --quarantine`; порог был превышен в 16 раз, потому что вызывателей у движка НЕ БЫЛО НИ ОДНОГО (`grep -rl` по scripts/skills/scheduled-tasks = 0), а каждая сессия считала, что лечит кто-то другой. 7-й случай семьи с 14.08. ### Шаг 3 — ПОЛНЫЙ ПОДХВАТ: вся история в буфер Собери прошлую человеческую сессию этой машины в seed → буфер (движок `/resume-last`): ```bash python "$IMPORTS_ROOT/claude_sessions/continue_session.py" --last ``` Скажи Антону: **«Открой New session и нажми Ctrl+V — вернёшь весь разговор целиком».** Если `clipboard: FAILED` — seed лежит файлом `_Dashboards/sessions-md/_continue/<cli>.seed.md`. ## Что ответить (одна плашка + 🧒) ``` 🔄 Воскрешение 🕒 Часы: <date == турнстейт ✅ | РАЗОШЛИСЬ: date=<X>, реально <Y> → премиссы перепроверены> 📂 Кабинет: <родной ✅ | ЧУЖОЙ: сессия в <папке>, родная <родная-папка> → память здесь чужая, стройку вести из родной (сигнал = SessionStart-хук home-dir-guard; реестр home_dirs.json)> 📍 Где были: <1-2 строки из TurnState — задача, последний файл/решение, следующий шаг> 💚 Система: arch <✅/⚠️/🔴> · sync <✅/⚠️/🔴> · mcp <tg ✅ / wa ✅ / n8n ✅> 📋 Полная история прошлой сессии — в буфере (New session → Ctrl+V). ⛳ Скилл: <нет скилла, не тянет | нет скилла, тянет → ДО→ПОСЛЕ | есть /X, не хватило <чего> → апгрейд> ➤ Продолжаем с: <следующий шаг>? ``` Затем 🧒 «Простыми словами» (память [[eli5-always]]). ## Если окно Claude вообще не поднимается (класс `app-in-session-0`, Windows) Симптом: окно не открывается ни ярлыком, ни из Пуска, трей пуст, а процессы живые. Прибор: ``` Get-Process claude | Select Id,SessionId,MainWindowHandle ``` `SessionId=0` и `MainWindowHandle=0` = приложение стартовало в СЛУЖЕБНОЙ сессии Windows, где нет рабочего стола; single-instance замок не даёт создать окно в интерактивной сессии. **Перезагрузка машины НЕ нужна.** Лечение — кнопка `Починить Claude` на рабочем столе (хаб: стоит с 22.08.2026; пиры — посылка `fix-claude-button-260822`), она же `%USERPROFILE%\.claude\scripts\fix_claude_app.cmd`: гасит все `claude.exe` и стартует приложение заново. По ssh шаг СТАРТА бесполезен — ssh это та же сессия 0 (скрипт это ловит и говорит вслух). После подъёма сверить аккаунт узла (память `claude-account-per-node`). Память `claude-app-session-0-restart`. ## Границы - **READ-ONLY.** Ничего не отправляет, не правит живые данные и не чинит синк/MCP — только ЧИТАЕТ чёрный ящик, статус-скрипты и пишет seed-файл + буфер. Лечение красного — это уже `/arch` / `/sync-check` / `/mcp` отдельно. - Имя скилла = `1`, поэтому `/1` работает нативно; `/!` — алиас-триггер (спецсимвол нельзя сделать именем папки): увидев `/!`, запускай этот же скилл. - На Маках: `python3`; при нестандартном пути волта — env `CLAUDE_VAULT_ROOT=<...>`. ## Канон Память [[crash-recovery-command]]. Кирпичи: [[turnstate-ledger]] (чёрный ящик), [[claude-desktop-sessions-per-account]] (continue_session), [[system-architect]] (/arch), `syncthing-desktop-laptop-sync` (/sync-check), [[mcp-health-check]] (/mcp). Пара к SessionStart-хуку `session_resume_hook` (тот показывает прошлую сессию сам на старте — этот собирает recall+здоровье+полную историю по команде).