Memory Architecture · Claude Code

Многоуровневая
система памяти

Как контекст рождается в сессии, дистиллируется в долговременное знание и поднимается на уровень организации. Четыре квадранта, живой жизненный цикл данных — от хаоса диалога к упорядоченному знанию.

Проект × {кратко · долго} Организация × {кратко · долго} Данные текут вживую
↓ листай — данные придут в движение
00 / Карта

Четыре квадранта памяти

Две оси: проект ↔ организация и кратко ↔ долго. В каждой ячейке — движок, путь хранилища и тип триггера (цветом слева).

quadrant-matrix 2 × 2 · scope × horizon
Краткосрочная
(горячий контекст)
Долгосрочная
(дистиллят знания)
Проект
Q1 · проект × кратко Рабочая память claude-memory-compiler · авто flush/inject через хуки .claude/memory_short/ авто-событийный (хуки)
Q2 · проект × долго Wiki-LLM проекта compile → _private · курируемые raw ↔ wiki, [[ссылки]] .claude/memory_long/ ручной + авто-compile
Организация
Q3 · орг × кратко Роллап проектов детерминированный свод План-факта · без LLM cerebro/ · registry.json → rollup.md плановый (Task Scheduler)
Q4 · орг × долго Институц. знание промпт-команды org_ingest/query/lint · Wiki-LLM cerebro/memory_long/ ручной (команды)
Нижний слой (кратко) ловит контекст автоматически; верхний (долго) — курируемое знание. По вертикали данные поднимаются от проекта к организации.

Простыми словами. Общая память — два блока, раздельные, но связанные: память проекта и память организации. На каждом блоке — два уровня: краткосрочная (что происходит сейчас) и долгосрочная (накопленное знание). Блоки не изолированы: орг-роллап (Q3) читает План-факт проектов, а кейсы из проектной долгосрочной памяти переносятся в организационную вручную.

Индексация работает в долгосрочной памяти: каталог index.md + граф связей [[wikilink]] (навигация по графу, а не полнотекстовым поиском), плюс SCHEMA.md с правилами. Внутри файлов — разметка ([[ссылки]] + тип во frontmatter), задающая взаимосвязи; граф наглядно виден, если открыть папку как Obsidian-vault. У краткосрочной памяти индекса нет — там хронология по дням и подгрузка по свежести.

Память проекта

Краткосрочная · Q1

  • хранит контекст переписки — дистиллят диалога (плана работ тут нет);
  • обновляется автоматически по ходу сессии при 12 000 символах ИЛИ 20 репликах (реплика = каждое сообщение user/assistant, срабатывает по «ИЛИ»);
  • добивается в конце сессии; тривиальные сессии (< 4 реплик) не сохраняются;
  • файл на каждый день (daily/ГГГГ-ММ-ДД.md); в начале новой сессии конспект подгружается обратно (inject).

Долгосрочная · Q2

  • важное знание: статус работ (План-факт.md, логика из workflow_global_plan, локально), материалы — курируется через /ingest;
  • дополняется дистиллятом из краткосрочной памяти (compile, вручную и редко) в приватный wiki/_private/; «закрытые» дни переезжают в daily/_archive/ (перемещение, не удаление);
  • кейсы переносятся в орг-память вручную (/org_ingest) — авто-перетекания нет, роллап лишь подсказывает кандидатов.
Память организации

Краткосрочная орг-память — это два потока: машинная сводка по проектам (Q3) и собственная рабочая память самого пульта cerebro.

Краткосрочная · Q3 — роллап

  • детерминированно (без LLM) раз в день обходит реестр и собирает дашборд rollup.md по всем зарегистрированным незавершённым проектам (реестр registry.json; регистрация при /memory_long_active on). Завершённые показываются ≤ 7 дней и скрываются;
  • по каждому проекту читает машинный План-факт.md«план vs факт»: этап, статус плана, что дальше, блокеры, выжимка;
  • свежесть памяти проекта — activity_state (fresh/stale/unknown/unreachable, порог 14 дн), несвежие помечаются ⚠;
  • секции «Недавно завершённые (≤ 7 дн)» с пометкой «кандидат в Q4-кейс» и «Diagnostics» (нет План-факт, нет контракта frontmatter, ошибки) — заодно сторожит целостность; опц. repo-активность при --with-git;
  • служебное: cache/<id>.json, rollup.log, registry.json. Запуск плановый (Task Scheduler) — единственный планировщик; вручную — /org_rollup. Проекты только читаются, всё приватно.

Краткосрочная · Q1 пульта cerebro

  • у самого cerebro как «пульта» включена своя краткосрочная память: контекст сессий управления (/org_dashboard, /org_rollup, заведение кейсов) авто-флашится в cerebro/.claude/memory_short/daily/ — про операторскую работу, а не про сводку проектов.

Долгосрочная · Q4 — институциональное знание

Тот же Wiki-LLM (SCHEMA + raw + wiki, граф [[ссылок]]), полностью курируется человеком через /org_ingest, /org_query, /org_lint (движок не зовётся). Шарибельная часть, без секретов/PII. Семь типов страниц:

  • кейс — проект-история с уроками (переносится из Q2 вручную);
  • регламент — как устроен рабочий процесс;
  • подход — методологический приём / плейбук «как мы это делаем»;
  • инструмент — каталожная страница-указатель (не интеграция);
  • тип-работ — класс задач/проектов и типовой результат;
  • moc — карта-хаб; source — конспект внешнего файла из raw/ (сюда же статьи, заметки по дизайну).

Структурное: SCHEMA.md, index.md, Карта оргзнания.md (хаб), raw/ (+ _large/), log.md, .trash/; на каждой странице — frontmatter и обязательная ## Связи. Состояния: черновик (draft) и устаревшее (deprecated). Чего нет: секретов/PII, роллапа и реестра (они приватны в memory_short/), авто-дистиллята диалогов (это Q2 _private).

01 / Поток

Жизненный цикл краткосрочной памяти

Контекст сессии непрерывно дистиллируется и возвращается в следующую сессию. Зелёные пакеты — данные в движении; подписи на стрелках — хуки, которые их толкают.

q1-lifecycle 3 хука · flush → daily → inject
по ходу сессии Stop · инкрем. flush SessionEnd / PreCompact · добор SessionStart · inject новый цикл Сессия живой диалог сегмент дистилляция daily/*.md конспект дня новая сессия контекст подгружен
Stop делает дешёвый инкрементальный flush по ходу сессии → daily-конспект; на SessionEnd/PreCompact — терминальный добор; на SessionStart следующей сессии конспект инжектится обратно. Цикл замкнут — середина длинной сессии не теряется.
02 / Знание

Wiki-LLM — граф знания (Q2 · Q4)

Долгосрочная база — атомарные страницы со связями [[wikilink]]. Навигация идёт от index.md по рёбрам вглубь, а не полнотекстовым поиском — «накапливать, а не переоткрывать». Зелёные пакеты — навигация по ссылкам.

wiki-llm-graph index · [[ссылки]] · raw → wiki → _private
ingest [[ ссылки ]] compile · дистиллят raw/ источники · иммут. index.md каталог · MOC Карта проекта хаб (moc) План-факт type: plan_fact материал type: source материал type: source _private/ дистиллят · 🔒 gitignore
Один субстрат — три типа контента (поле type): план-факт, материалы (source), дистиллят. raw/ иммутабелен; _private/ — приватный дистиллят из диалогов (gitignore). Целостность графа держит /lint (битые ссылки, сироты). Та же модель работает и в Q4 (орг-знание).
03 / Сводка

Орг-роллап (Q3) — без LLM

Раз в день планировщик обходит реестр, читает машинный frontmatter План-факта каждого проекта и собирает сводный дашборд. Оранжевый — единственный плановый триггер во всей системе.

org-rollup-q3 детерминированно · read-only · ежедневно 09:00
детерминированно · без LLM · проекты только читаются плановый Task Scheduler ежедневно · 09:00 registry.json реестр проектов проект · План-факт stage / next / blocked проект · План-факт plan_status / progress проект · План-факт activity_state rollup.md таблица + diagnostics
Без LLM — намеренно: надёжно, бесплатно, нет проблемы фоновой авторизации. Завершённые (status=done) пропускаются. activity_state (fresh/stale/…) — вычисляемая свежесть памяти, в реестр не пишется. Это единственный планировщик системы.
04 / Перенос

Из краткосрочной в долгосрочную

Контекст оседает автоматически, а превращается в знание — точечно и под контролем человека. Чем правее по трубе, тем «дороже» и реже шаг.

short-to-long-pipe авто → compile (редко, $) → ручной перенос
compile · редко · $ закрытые дни → _archive ручной · /org_ingest не авто · подсказка Q1 · daily/ сессии · авто (хуки) Q2 · wiki/_private дистиллят + ретеншн Q4 · кейсы/регламенты курируется человеком ● авто-событийно ○ ручной запуск движка ○ ручная курация
Q1→Q2 — операция compile (движок): редко и платно (~$0.45–0.65), потом «закрытые» дни переезжают в daily/_archive. Q2→Q4ручной перенос кейсов через /org_ingest. Авто-трубы «кратко→долго» на орг-уровне нет — только подсказка кандидатов, чтобы в общий шар не утекло сырое/приватное.
05 / Триггеры

Что и чем запускается

Проектная краткосрочная (Q1) — на хуках; долгосрочная (Q2/Q4) — ручные команды; орг-краткосрочная (Q3) — единственный планировщик.

trigger-map событийные · плановый · ручные
СлойЧто делаетТриггерТип
Q1 · injectподгрузка конспекта в начале сессии хук SessionStart авто · событийный
Q1 · flush (по ходу)дистилляция новых кусков → daily/ хук Stop авто · событийный
Q1 · flush (хвост)добор остатка сессии SessionEnd / PreCompact авто · событийный
Q2 · ingest/query/lintвнести / спросить / проверить вики /ingest /query /lint ручной
Q2 · compileдистиллят daily → wiki/_private запуск движка ручной · редко
Q3 · роллапсводка по всем проектам → rollup.md Task Scheduler · 09:00 авто · плановый
Q3 · регистрациядобавить проект в реестр /memory_long_active on авто · при подключении
Q4 · ingest/query/lintорг-знание /org_ingest /query /lint ручной
06 / Хранилища

Где что лежит

Приватное (🔒 gitignore) — сырые куски диалога, реестр, роллап. Шарится только 🌐 memory_long — рафинированное знание без секретов.

storage-map 🔒 приватно (gitignore) · 🌐 в git
Проект · <project>/.claude/
<project>/.claude/ ├─ settings.json хуки Q1 ├─ memory_short/🔒 gitignore │ └─ daily/ГГГГ-ММ-ДД.md └─ memory_long/ ├─ SCHEMA.md log.md raw/ └─ wiki/ index.md ├─ Карта проекта.md ├─ План-факт.md └─ _private/🔒
Организация · 00_01_cerebro/
…/00_01_cerebro/ ├─ .gitignore прячет приватное ├─ registry.json🔒 Q3 реестр ├─ memory_short/🔒 rollup.md + cache/ ├─ tools/ install_task.ps1 └─ memory_long/ └─ wiki/ index.md └─ Карта оргзнания.md
Движок один на всё — ~/.claude/tools/memory-compiler/ (flush/inject/compile + org_*); указатель ~/.claude/org-memory.json хранит, где лежит cerebro (org_root).
07 / Реестр

Реестр проектов

Единый registry.json. Завершённость — только поле status (меняется вручную, by design). Подключение проекта само регистрирует его.

project-registry регистрация · active / paused / done
авто register /memory_long_active on в корне проекта org_registry register (идемпот.) registry.json + правильный План-факт
СтатусЗначениеКак показывает роллап
active в работе (незавершён)основная таблица
paused приостановленосновная таблица, флаг
done завершён«недавно завершённые» ≤7 дн, потом скрыт
При done добавляется q4_case_candidate: true — подсказка «можно завести кейс в Q4». Завершённость определяет только status; вычисляемый activity_state (fresh/stale/…) в реестр не пишется.
08 / Пульт

cerebro — центр управления

Открой Claude Code в папке cerebro — CLAUDE.md сориентирует, и команды под рукой. Слева — сводка/реестр (Q3), справа — знание (Q4).

cerebro-console рабочее место оператора орг-памяти
Сводка / реестр · Q3 Знание · Q4 cerebro пульт · CLAUDE.md /org_dashboard /org_rollup /org_projects /org_register /org_done /org_pause /org_ingest /org_query /org_lint /org_delete
У cerebro включена своя Q1-память — сессии управления запоминаются. Авторитетный документ пульта — cerebro/CLAUDE.md; команды — в cerebro/.claude/commands/.
— / Легенда

Как читать схемы

Scope

проект
организация

Триггер

авто-событийный (хук)
плановый (scheduler)
ручной (команда)

Приватность

🔒 приватное (gitignore)
🌐 шарибельное (в git)

Поток

пакет данных в движении
Система памяти Claude Code · черновик визуализации §13 MEMORY_SYSTEM_GUIDE
дизайн-язык портирован из лендинга Wexus · JetBrains Mono · #00ff41
← Все кейсы