Auto Dream переписывает вашу память в Claude Code. Откатить нельзя. Поэтому я собрал cc-janitor

от автора

Продолжение серии. Предыдущие части: [антирегрессионный сетап](https://habr.com/ru/articles/1013330/) (топ-5 за сутки), [иерархический контекст](https://habr.com/ru/articles/1024878/)

Два месяца ежедневной работы в Claude Code оставляют свалку. Сотни старых сессий на гигабайты. Правила permissions, размазанные по пяти файлам settings.json — половина уже неактуальна. CLAUDE.md и memory-файлы, которые сами себе противоречат. Хуки, которые молча сломались неделю назад.

А потом Anthropic выкатил Auto Dream.

Auto Dream — это LLM, который между сессиями переписывает вашу проектную память. Консолидирует, сокращает, реорганизует. Агрессивно. Без отката. Без показа что именно изменилось. Рекомендация самого Anthropic: «сделайте бэкап ~/.claude/ перед включением». Инструмента, который делает этот бэкап — в экосистеме Claude Code не существовало.

Мне нужен был бэкап. Мне также нужна была чистка. За шесть дней я собрал cc-janitor — детерминированный TUI/CLI, который аудитирует, чистит и оборачивает Auto Dream наблюдаемыми, откатываемыми снапшотами.

## Почему «детерминированный» — ключевое слово

В пайплайне очистки cc-janitor нет LLM. Auto Dream использует LLM — именно поэтому он может перечистить, галлюцинировать противоречия или потерять провенанс. cc-janitor использует regex, подсчёт совпадений в транскриптах, парсинг frontmatter и SHA-256 отпечатки. Если правило неоднозначно — инструмент не действует, а показывает проблему. Решение принимаете вы.

Инвариант безопасности: ни одна мутация не достигает ~/.claude/ без env-var gate И подтверждения пользователя, и каждая мутация создаёт обратимый артефакт. Структурно невозможно случайно уничтожить данные — by design, а не by promise.

## Четыре фазы, шесть дней, 12 upstream-issues

Каждая фаза закрывает реальные, верифицированные баги в репозитории anthropics/claude-code:

Фаза 1 — Сессии, permissions, инспектор контекста. Обнаружение правил по всем 5 слоям settings.json. Детекция протухших правил через сканирование транскриптов. Калькулятор стоимости контекста: сколько токенов и долларов стоят ваши CLAUDE.md + memory + скиллы при каждом запросе. Soft-delete в корзину на 30 дней.

Фаза 2 — Редактор памяти, отладчик хуков, планировщик. Парсинг frontmatter и классификация memory-файлов (user/feedback/project/reference). Кросс-файловый детект дубликатов. Симулятор хуков для 9 типов событий с реалистичными payload — потому что хуки Claude Code ломаются молча, и до этого не было способа отладить их локально (закрывает issues #11544, #10401, #16564). Планировщик cron/schtasks с 6 шаблонами.

Фаза 3 — Monorepo, watcher, дашборд статистики. Обход рабочего пространства с классификацией каждого .claude/ как real/nested/junk. Фоновый демон для наблюдения за изменениями. Ежедневные снапшоты в дашборд. Экспорт/импорт конфигурации с SHA-256 манифестом.

Фаза 4 — Safety net для Auto Dream. Ради чего всё затевалось. Фоновый watcher поллит .consolidate-lock по каждому проекту. Pre-снапшот перед записью Dream, post-снапшот после. dream diff показывает что именно изменилось. dream rollback откатывает. dream doctor — 10 проверок здоровья: зависший lock, состояние autoDreamEnabled, отсутствующий .dream-log.md, количество memory-файлов, дубликаты, противоречащие записи.

12 upstream-issues закрыты по всем четырём фазам за 6 дней (v0.1.1 5 мая — v0.4.0 11 мая). Каждая запись в CHANGELOG ссылается на номер issue.

## Команды, с которых стоит начать

Эти только читают — нулевой риск:

«`

cc-janitor perms audit # какие правила протухли или дублируются

cc-janitor context cost # сколько стоит ваш контекст за запрос в $

cc-janitor dream doctor # 10 проверок здоровья Auto Dream

cc-janitor stats sleep-hygiene # метрики гигиены памяти

«`

Если context cost покажет что вы сжигаете больше токенов на запрос чем думали, или perms audit найдёт что 60% правил протухли — будете знать стоит ли переходить к чистке.

Мутирующие команды требуют CC_JANITOR_USER_CONFIRMED=1 и поддерживают --dry-run. Удалённое лежит в корзине 30 дней. Последнее действие откатывается через cc-janitor undo.

## Safety model — by design, не by hope

Семь уровней защиты: env-var gate на каждой мутации, soft-delete в корзину (30 дней), timestamped backup перед каждой записью в settings.json, append-only JSONL audit log (ротация на 10 МБ), reversible undo, pre/post снапшоты вокруг Dream, hard cap для scheduled-запусков (защита от runaway cron). Критический safety-фикс в 0.3.2: TUI ранее обходил env-var gate через os.environ.setdefault — исправлено через scoped context manager.

Если что-то из этого сломается так что данные потеряются — это P0. Safety model — это весь продукт.

## Установка

«`

uv tool install cc-janitor

# или

pipx install cc-janitor

«`

202 теста. CI на Linux/macOS/Windows. Python 3.11+. MIT.

## Полезные ссылки

— [Документация Claude Code: Memory](https://code.claude.com/docs/en/memory) — как работает Auto Dream

— [Issue #47959](https://github.com/anthropics/claude-code/issues/47959) — Auto Dream молча удаляет полезные записи памяти

— [Issue #50694](https://github.com/anthropics/claude-code/issues/50694) — зависший .consolidate-lock молча отключает Auto Dream

— [Matt Pocock’s skills repo](https://github.com/mattpocock/skills) — каноническая reference для Claude Code скиллов

— [Simon Willison’s Claude Code TILs](https://til.simonwillison.net/claude-code/) — практическая база знаний по Claude Code

ссылка на оригинал статьи https://habr.com/ru/articles/1034614/