Skip to content

ReSkin-Games/memorybank-plus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MemoryBank+ — расширенная система памяти для AI-ассистентов

MemoryBank+

MemoryBank+ — стек для вайб-кодинга: память, workflow, граф кода и companion-плагины для AI-агентов (Claude Code, Cursor, Codex, Windsurf) в одном инсталляторе.

Это форк vanzan01/cursor-memory-bank (он же «Memory Bank 2.0»), адаптированный под практику реального проекта. Само ядро-слой по-прежнему называется «Memory Bank» — + означает «плюс остальные слои сверху» (см. таблицу ниже).


Что это

MemoryBank+ — это стек инструментов для вайб-кодинга, компактный набор слоёв, которые превращают AI-агента из «забывчивого помощника» в дисциплинированного коллегу с долговременной памятью о проекте, точной навигацией по коду и подключённой companion-инфраструктурой.

Стек будет постоянно дополняться по мере того, как реальная практика выявляет новые проблемы — то, что доказало пользу в реальных задачах, попадает сюда и раздаётся как часть бандла.

Сейчас MemoryBank+ состоит из пяти независимых, но взаимодополняющих слоёв:

Слой Что делает Откуда берётся
1. Memory Bank (ядро) Структурированная память + 6-фазный workflow задачи (VAN → PLAN → CREATIVE → BUILD → REFLECT → ARCHIVE) Форк vanzan01/cursor-memory-bank + расширения
2. codegraph Локальный граф кода «где определён символ / кто его вызывает» — точечная навигация без блуждания @colbymchenry/codegraph через MCP
3. Companion skills & plugins claude-mem (кросс-сессионная память), debug-agent (доказательная отладка), supabase (MCP-плагин) Подтягиваются автоматически
4. Status line (Claude Code) Многострочная панель в Claude Code: модель, git, контекст, токены, стоимость, лимиты, накопленные траты Кастомный bash-скрипт, опт-ин при установке
5. Multi-target installer Один скрипт ставит весь стек в Claude Code / Cursor / Codex / Windsurf / generic Этот репозиторий (install.sh)

Дальше — про каждый слой подробнее.


1. Memory Bank (ядро)

Система папок, файлов и slash-команд, которая даёт агенту долговременную память о проекте и дисциплинированный workflow задачи.

Что даёт

  • Постоянная память между сессиями — агент знает, что было сделано вчера, какие решения приняты, какие уроки получены.
  • Структурированный workflow задачи — 6 фаз: VAN → PLAN → CREATIVE → BUILD → REFLECT → ARCHIVE. Каждая отвечает за своё.
  • Накопление знаний — рефлексии после каждой задачи + реестр уроков (reflection/lessons-registry.md), который инкрементально накапливает повторяющиеся уроки и продвигает дозревшие в always-loaded память.
  • Защита от хаоса при параллельной работе — HTML-маркеры <!-- TASK #NNNN BEGIN/END --> позволяют нескольким агентам одновременно работать в одних shared-файлах.
  • Экономия токенов — карта компонентов (docs/component-map.md) маршрутизирует «файл → назначение», агент не блуждает по кодовой базе.

Какие проблемы решает

Проблема Решение
«Каждый раз пересказываю агенту, что за проект» projectbrief.md, productContext.md, techContext.md
«Агент каждый раз ищет одни и те же файлы» docs/component-map.md
«Один и тот же баг чиним по третьему разу» reflection/ + reflection/lessons-registry.md
«AI выдумывает паттерны вместо использования существующих» system-patterns/ + style-guide/
«Большой проект не помещается в контекст» Дисциплина чтения через _index.md
«Два агента сломали друг другу правки» HTML BEGIN/END блоки с Owner
«Не помню, фиксили мы уже это или нет» archive/ + tasks.md с ARCHIVED-маркерами (TTL 7 дней)
«Баг вернулся — это новая задача или старая?» Round/Iteration система в BEGIN-блоке

Workflow одной задачи

        ┌─────────────────────────────────────────────────────────┐
        │  /van — оценка сложности (L1/L2/L3/L4), детект round   │
        └─────────────────────────────────────────────────────────┘
                                  ↓
        ┌─────────────────────────────────────────────────────────┐
        │  /plan — план реализации (для L2+), creative phases    │
        └─────────────────────────────────────────────────────────┘
                                  ↓
        ┌─────────────────────────────────────────────────────────┐
        │  /creative — дизайн-решения (для L3+, при необходимости)│
        └─────────────────────────────────────────────────────────┘
                                  ↓
        ┌─────────────────────────────────────────────────────────┐
        │  /build — реализация по плану, тесты, прогресс         │
        └─────────────────────────────────────────────────────────┘
                                  ↓
        ┌─────────────────────────────────────────────────────────┐
        │  /reflect — рефлексия, обновление component-map        │
        └─────────────────────────────────────────────────────────┘
                                  ↓
        ┌─────────────────────────────────────────────────────────┐
        │  /archive — финализация, ARCHIVED-маркер, TTL-чистка   │
        └─────────────────────────────────────────────────────────┘

   Уроки: /reflect (шаг 3a) инкрементально пополняет reflection/lessons-registry.md

Уровни сложности

Уровень Описание Workflow
L1 Быстрый багфикс, опечатка /van → /build → /reflect → /archive
L2 Простое улучшение /van → /plan → /build → /reflect → /archive
L3 Новая фича с дизайн-решениями /van → /plan → /creative → /build → /reflect → /archive
L4 Системное изменение Полный цикл + фазная реализация

Дисциплина работы со стеком

Стек работает ровно настолько хорошо, насколько строго ты следуешь дисциплине. Без неё это просто папка с шаблонами.

Настоятельно рекомендуем:

  • Одна задача = одна сессия = весь цикл фаз. Каждая задача начинается с /van и заканчивается на /archive. Не смешивать две темы в одном диалоге — Memory Bank, реестр уроков и Round/Iteration опираются на чёткое разделение «что мы делали в этой задаче».
  • Не пропускать /reflect и /archive. Это шаги, которые окупаются с задержкой — через недели, когда lessons-registry.md начнёт ловить повторяющиеся паттерны и предлагать продвижение в always-loaded память. Пропустишь — будешь чинить тот же баг заново через месяц.
  • Уровень сложности определяется в /van, не задним числом. Если в процессе оказалось, что задача больше — лучше прерваться и заново оценить, чем тащить L1-workflow на L3-задачу.

Исключение — batch для мелочи. Если у тебя 3-5 однотипных тривиальных правок (опечатки, переименование переменной, обновление импортов), их можно собрать в одну задачу #NNNN с пометкой batch в названии. Один /van, один /build со списком, один /reflect на всю пачку. Что-то большее — уже отдельные задачи, каждая через свой цикл.

Команды

Команда Что делает
/mb-init Инициализирует пустой Memory Bank (для совсем чистого старта; обычно делает install.sh)
/mb-bootstrap Сканирует существующий проект и заполняет Memory Bank кодом-производным контекстом
/van VAN — оценка сложности задачи, детект round N+1, чтение реестра уроков
/plan PLAN — детальный план реализации, identify creative phases
/creative CREATIVE — дизайн-решения, 2-4 варианта, обоснование выбора
/build BUILD — пошаговая реализация по плану, тесты, итерации
/reflect REFLECT — рефлексия, обновление component-map и system-patterns
/archive ARCHIVE — финализация, ARCHIVED-маркер, TTL-чистка старых указателей

Структура папок (после установки)

memory-bank/
├── README.md              ← Этот файл для будущих агентов
├── tasks.md               ← Активные задачи + ARCHIVED-маркеры
├── activeContext.md       ← Текущий фокус
├── progress.md            ← История реализаций
├── projectbrief.md        ← Что за проект
├── productContext.md      ← Продуктовый контекст
├── techContext.md         ← Стек и зависимости
│
├── archive/               ← archive-NNNN-*.md (по одной на завершённую задачу)
├── reflection/            ← reflection-NNNN-*.md
│   └── lessons-registry.md ← реестр уроков (пополняется в /reflect, шаг 3a)
├── creative/              ← creative-NNNN-*.md (дизайн-решения)
│
├── plans/                 ← Большие планы фич (см. WHEN_TO_USE.md)
├── backlog/               ← Парковка отложенной работы (см. WHEN_TO_USE.md)
├── audit-sql/             ← SQL-чеки перед миграциями (см. WHEN_TO_USE.md)
│
├── docs/
│   ├── component-map.md   ← Маршрутизатор «файл → назначение»
│   └── codex-*.md         ← Адаптеры для Codex CLI
│
├── system-patterns/
│   ├── _index.md          ← Таблица «паттерн → файл»
│   └── *.md               ← По одному файлу на паттерн
│
└── style-guide/
    ├── _index.md          ← Таблица «тема → файл»
    └── *.md               ← По одному файлу на тему

2. codegraph (граф кода)

Локальный граф «где определён символ / кто его вызывает» — позволяет агенту находить нужное место в коде без блуждания по файлам и grep'а вслепую. Сильно экономит токены и точнее, чем поиск по имени.

Ставится автоматически, если в проекте есть код.

Что попадает в проект:

  • scripts/codegraph-snapshot.mjs — скрипт пересборки графа.
  • .mcp.json — добавляется MCP-сервер @colbymchenry/codegraph@0.9.1 (если файла нет — создаётся; существующий не трогается; при коллизии — предупреждение).
  • memory-bank/codegraph/README.md — правила работы с графом для агента.
  • npm run codegraph:snapshot — добавляется в package.json (если есть npm).
  • .codegraph/ — добавляется в .gitignore (индекс — локальный, по машине).
  • .codegraph/codegraph.db — сам индекс строится сразу при установке (если есть Node ≥ 22; иначе — собрать вручную через npm run codegraph:snapshot).

3. Companion-скиллы и плагины

Внешние инструменты, на которые опирается workflow и которые подтягиваются вместе со стеком (только для Claude Code — у остальных сред нет CLI для авто-установки плагинов).

Что Откуда Зачем Когда ставится
claude-mem claude plugin install claude-mem@thedotmack Кросс-сессионная память на уровне Claude Code; backstop для сверки уроков в /reflect (шаг 3a) всегда, если найден CLI claude
debug-agent в комплекте (template/skills/debug-agent/) копируется в ~/.claude/skills/ Доказательная отладка по runtime-логам (NDJSON); правила в шаблоне и /reflect ссылаются на неё всегда (даже без CLI claude); если скилл уже стоит — пропускается
supabase claude plugin install supabase@claude-plugins-official Официальный MCP-плагин Supabase (DB, миграции, Edge Functions) только если в проекте есть папка supabase/

Пропустить всю эту секцию: bash install.sh --no-skills. Поставить вручную позже: claude plugin install claude-mem@thedotmack · claude plugin install supabase@claude-plugins-official.

Для Cursor / Codex / Windsurf / generic companion-секция не запускается. codegraph и Memory Bank ставятся одинаково для всех сред.


4. Status line (Claude Code)

Кастомная многострочная статус-панель внизу Claude Code. Заменяет встроенную однострочную дефолтную панель.

Зачем нужна. Дефолтная панель показывает 2-3 поля. Эта — десять самостоятельных строк, каждая отвечает за свой кусок ситуации: «где я», «что делаю», «сколько потратил», «сколько осталось до лимита». Полезно, когда работаешь с агентами часами и хочешь держать всё под глазами без переключений.

Опт-ин. Установщик спросит при --target claude. По умолчанию — НЕ ставится. Принудительно: --statusline (поставить без вопроса) / --no-statusline (пропустить без вопроса).

Кросс-платформа. macOS, Linux, WSL и Git Bash на Windows. Native cmd / PowerShell на Windows не поддерживаются (нужен bash). OS определяется автоматически.

Что попадает в систему:

  • ~/.claude/statusline.sh — сам bash-скрипт.
  • ~/.claude/settings.json — патчится блоком statusLine через jq merge (остальные ключи не трогаются).
  • ~/.claude/.session-names/ — кэш auto-генерируемых имён сессий (создаётся при первом рендере).
  • ~/.claude/cache/metrics/ — baselines и spend-индекс (создаётся при первом рендере).

Зависимости:

  • bash (везде, кроме native Windows shells — там нужен Git Bash или WSL)
  • jq (обязательно; установщик проверит и подскажет, если нет)
  • git — опционально, без него секция git просто пропадает
  • claude CLI — опционально, нужен только для авто-генерации имён сессий через Haiku

Что показывает (по строкам)

Панель выводит вертикальный borderless-список из 2-12 строк. Пустые секции автоматически скрываются.

Строка Пример Что показывает Зачем
title Sonnet 4.6 · ~/proj · sub Модель · текущая директория (с ~) · auth-режим (sub = подписка, api = ANTHROPIC_API_KEY в env) Сразу видно, в каком режиме платишь и на какой модели работаешь
name #0427 Toast-уведомления Имя сессии. Автоматически генерируется в фоне через Haiku 4.5 по первому промпту юзера (3-4 слова) и кэшируется на диск Чтобы спустя 2 часа понять, о чём была эта сессия — без скроллинга вверх
id 1e786b41-d6ea-… UUID сессии Для claude --resume <id> — копируется в одно движение
git myorg/myrepo · main ↑2 ✓ repo · branch · ↑ahead ↓behind · ●dirty / ✓clean Полная картина git-состояния без git status
arch #0427 In-app toast notification Последняя архивированная задача из memory-bank/archive/archive-NNNN-*.md Видно, на чём остановились в прошлой задаче. Появляется только если у тебя установлен Memory Bank
ctx ▰▰▰▱▱▱▱▱ 38% (76k/200k) Прогресс-бар окна контекста + used/max токенов. Цвет: зелёный <50% / жёлтый 50-80% / красный ≥80% Видно, насколько близко к /compact
tok in 12k · out 3k · cache 87% (r 105k w 8k) Суммарные токены за сессию: input / output / cache (hit rate %, read, write). Цвет hit rate: ≥70% зелёный / 40-70% жёлтый / <40% красный Видно cache efficiency — если hit rate просел, время /compact или новой сессии
ses $0.85 · 23m · +142 -38 Стоимость · длительность · diff-статистика (+lines added / -lines removed). Сбрасывается на /clear через baseline-вычитание Видно цену текущей задачи отдельно от общей
api / equiv 1d $2.40 · 7d $14 · 30d $42 · 90d $108 · 180d $215 · 365d $410 Накопленные траты за 1/7/30/90/180/365 дней. Это две связанные строки: какая активна — зависит от auth-режима (см. ниже под таблицей). Цвет: жёлтый — активный счётчик (сейчас тратишь сюда), серый — историческая ветка (тратил раньше или гипотетический эквивалент) Тренд расходов и сравнение «подписка vs API»
lim 5h ▰▰▰▱▱▱▱▱ 42% (3h 12m) ¦ 7d ▰▰▱▱▱▱▱▱ 18% (4d 22h) Прогресс-бары лимитов Anthropic 5h и 7d + время до сброса. Тот же цветовой код, что в ctx Видно, когда упрёшься в лимит — заранее можно притормозить

Подробнее про api / equiv

Это две независимые строки, которые могут отображаться одновременно. Какая активна — определяется по наличию ANTHROPIC_API_KEY в окружении:

  • Если работаешь по API-ключу (auth = api): строка api — твои реальные деньги, жёлтая. Строка equiv — серая история (что бы ты потратил, работая по подписке).
  • Если работаешь по подписке (auth = sub): строка equivAPI-эквивалент, жёлтая. Это сколько ты бы потратил, если бы платил по pay-as-you-go вместо подписки. Строка api — серая история твоих прошлых реальных API-списаний.

Зачем это нужно: на подписке ты платишь фикс, а Claude Code считает токены так же, как на API. Строка equiv показывает «теневой счётчик» — окупает ли подписка себя. Если equiv на 30d значительно больше цены подписки — она в плюсе. Если меньше — дешевле перейти на API.

Счётчики раздельные: переключение между API-ключом и подпиской не смешивает суммы.

Что НЕ ставится автоматически

  • На Cursor / Codex / Windsurf / generic — статус-панель пропускается, это фича только Claude Code.
  • Если у тебя уже есть ~/.claude/statusline.sh или statusLine блок в settings.json — установщик их не трогает (предупреждение + инструкция).

Как удалить

rm ~/.claude/statusline.sh
# затем в ~/.claude/settings.json удалить блок "statusLine"

После удаления Claude Code вернётся к дефолтной однострочной панели.


5. Installer (установщик)

Один bash-скрипт, который раскатывает весь стек в проект.

Самый простой способ — попросить агента

Открой Claude Code / Cursor / Codex / Windsurf в корне своего проекта и скажи агенту:

Установи мне MemoryBank+ из этого репозитория: https://github.com/ReSkin-Games/memorybank-plus — следуй README.

Агент склонирует репозиторий, прочитает README, запустит install.sh и сам ответит на интерактивные вопросы (либо переспросит у тебя). Это работает, потому что весь установщик идемпотентен и описан в этом README — агенту достаточно его прочитать.

Установка вручную

Если хочешь сделать сам:

# 1. Склонируй установщик (один раз)
git clone https://github.com/ReSkin-Games/memorybank-plus.git ~/memorybank-plus

# 2. Из корня твоего проекта запусти install.sh
cd /path/to/your/project
bash ~/memorybank-plus/install.sh

Флаги:

  • --lang ru|en — язык команд
  • --target claude|cursor|codex|generic — целевая среда
  • --dry-run — показать что будет сделано без изменений
  • --no-skills — пропустить companion-плагины (claude-mem / debug-agent / supabase)
  • --statusline — поставить статус-панель без интерактивного вопроса
  • --no-statusline — пропустить статус-панель без вопроса

Что делает скрипт (8 шагов)

  1. Спросит язык (русский / English) и среду (Claude Code / Cursor / Codex / Windsurf / generic). Среду пытается определить сам по наличию ~/.claude, ~/.codex, .cursor/ или CLI cursor — спросит только при неоднозначности.
  2. Создаст memory-bank/ в текущей директории (если уже есть — не перезапишет, пропустит).
  3. Положит 8 slash-команд в нужное место для среды (для Claude — в ~/.claude/commands/, для Cursor — в .cursor/commands/ проекта и т.д.).
  4. Создаст или дополнит rules-файл (CLAUDE.md / .cursorrules / AGENTS.md). Если файл существует — припишет блок <!-- MEMORY-BANK RULES BEGIN/END --> в конец, не трогая остальное.
  5. Базово заполнит techContext.md по package.json / Cargo.toml / pyproject.toml / go.mod / Gemfile / composer.json / Vite / Next.js / папка supabase/.
  6. Настроит codegraph слой (если в проекте есть код) — см. секцию 2.
  7. Поставит companion-скиллы и плагины (только для Claude Code) — см. секцию 3.
  8. Спросит про статус-панель и поставит, если согласились (только для Claude Code) — см. секцию 4.

В конце скрипт сам поймёт, пустой проект или с кодом, и подскажет следующий шаг — /van <задача> или /mb-bootstrap.

Поддерживаемые среды

Среда Куда устанавливаются команды Файл правил
Claude Code ~/.claude/commands/*.md CLAUDE.md
Cursor .cursor/commands/*.md (или .cursor/rules/*.mdc) .cursorrules
Codex CLI ~/.codex/prompts/*.md (используются docs/codex-*.md адаптеры) AGENTS.md
Windsurf .windsurfrules (правила) + ручной запуск команд AGENTS.md
Generic AGENTS.md универсальный fallback AGENTS.md

После установки

Новый проект (пусто или почти пусто):

В Claude/Cursor:  /van <описание твоей первой задачи>

Существующий проект (уже есть код):

В Claude/Cursor:  /mb-bootstrap

Команда /mb-bootstrap запустит агента, который:

  • Прочитает README.md, package.json, корневые конфиги.
  • Обойдёт src/ (или аналог), сэмплирует 5-15 ключевых файлов.
  • Заполнит projectbrief.md, productContext.md, techContext.md.
  • Создаст первичные таблицы в docs/component-map.md.
  • Посеет 2-3 первых паттерна в system-patterns/_index.md.
  • Спросит уточнения там, где не уверен.

FAQ

Q: Коммитить memory-bank/ в git? A: Да, рекомендуется. Это часть документации проекта. Если работаете в команде — выигрыш огромный: все агенты на разных машинах видят один контекст.

Q: А auto-memory (~/.claude/projects/.../memory/)? A: Это отдельный слой Claude Code — user-specific. Не часть инсталлятора. Накапливается органически из ваших диалогов.

Q: Что если работают несколько агентов параллельно (например, Claude и Cursor)? A: HTML-маркеры <!-- TASK #NNNN BEGIN/END --> с полем Owner защищают чужие блоки. Команды учат каждого агента не трогать чужие блоки.

Q: Можно ли использовать только часть фаз (например, без CREATIVE)? A: Да. Для L1 достаточно van → build → archive. CREATIVE — только при необходимости дизайн-решений. Полный цикл — для L3+.

Q: Как накапливаются повторяющиеся уроки? A: Инкрементально. На /reflect (шаг 3a) каждый урок задачи сверяется с reflection/lessons-registry.md; повторившийся ≥2 раз и глобально-применимый предлагается к продвижению в always-loaded память (auto-memory / правила). Отдельной команды-дайджеста больше нет — это убрало «мёртвый» артефакт, который никто не перечитывал.

Q: Чем MemoryBank+ отличается от Memory Bank 2.0? A: Базовая идея и 6-фазный workflow (VAN → PLAN → CREATIVE → BUILD → REFLECT → ARCHIVE) — из vanzan01/cursor-memory-bank v0.8. MemoryBank+ выкручен под практику реального продакшен-проекта и добавляет:

  • Карта компонентов (docs/component-map.md) — маршрутизатор «файл → назначение», агент не блуждает по src/.
  • System patterns + style guide (system-patterns/_index.md, style-guide/_index.md) — паттерны и стилевые правила с дисциплиной чтения через _index.md.
  • Реестр уроков (reflection/lessons-registry.md) — инкрементальное накопление повторяющихся уроков с порогом продвижения в always-loaded память. Заменил «мёртвый» дайджест-артефакт.
  • Concurrency-safety — HTML-маркеры <!-- TASK #NNNN BEGIN/END --> с полем Owner для параллельной работы нескольких агентов в одних shared-файлах.
  • Round / Iteration — повторный баг = round N+1 одной задачи, не новая задача.
  • TTL для ARCHIVED-маркеров — указатели в tasks.md живут 7 дней, чистка в /archive.
  • /mb-bootstrap — отдельная фаза, сканирующая существующий проект и заполняющая Memory Bank кодом-производным контекстом.
  • codegraph layer — локальный граф кода (@colbymchenry/codegraph + MCP) для точечной навигации по символам/вызовам.
  • Multi-target installer — Claude Code / Cursor / Codex / Windsurf / generic из одного скрипта.
  • Companion-плагиныclaude-mem, debug-agent, supabase подтягиваются автоматически.

Q: Откуда взялись эти добавки? A: Из практики реального проекта — каждое расширение появилось как ответ на конкретную проблему: пропавшие правки между агентами → BEGIN/END блоки; повторные баги одной природы → Round/Iteration; забытые ARCHIVED-указатели → TTL; «агент не знает, где что лежит» → component-map; «уроки не перечитываются» → lessons-registry.

Q: MemoryBank+ будет расширяться? A: Да. То, что доказывает пользу в реальных задачах, попадает в стек как новый слой или новый companion-инструмент и раздаётся всем установкам через git pull + повторный install.sh (идемпотентный — не сломает существующие настройки). Версионирование идёт через v0.X теги, обратная совместимость сохраняется.


Вопросы и обратная связь

Вопросы, баг-репорты, идеи для новых слоёв стека — пишите автору в Threads: @mr.reskin

Можно про что угодно: непонятки в установке, что не сработало, что хочется добавить, как адаптировать под вашу среду.

Лицензия

MIT.

About

MemoryBank+ — стек для вайб-кодинга: память, workflow, граф кода и companion-плагины для AI-агентов в одном инсталляторе

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors