Внедрить Lore Protocol как систему long-term memory для агентов через git commit messages
Контекст
Сейчас скилы /task, /plan, /do, /review работают как изолированные сессии — каждый запуск начинается с нуля, без знания о предыдущих решениях, отвергнутых подходах и активных ограничениях проекта. При этом каждый коммит, сделанный /do, теряет Decision Shadow — контекст решений, который существовал в голове агента в момент написания кода, но не попал в историю.
Lore Protocol ([arXiv:2603.15566](https://arxiv.org/html/2603.15566v1)) предлагает использовать git commit messages с нативными git trailers как структурированный канал знаний между агентами. Это даёт нам long-term memory с нулевой инфраструктурой — только git.
См. также:
Цель
Сделать git-историю проекта основным источником институциональной памяти для всех скилов SP. Каждый скил, который читает или модифицирует код, должен:
- Читать Lore-контекст из истории перед началом работы (read side)
- Писать Lore-enriched коммиты по завершении работы (write side)
Архитектура решения
Два слоя: плагин (distributable) + project rule (scaffolded)
sp/ (плагин — распространяется через маркетплейс)
├── skills/
│ ├── lore/ # NEW — Lore read/write скил
│ │ ├── SKILL.md # Основной скил с агрессивным description
│ │ └── reference/
│ │ ├── lore-commit-guide.md # Write side: формат, трейлеры, примеры
│ │ └── lore-reading-guide.md # Read side: команды, паттерны, стратегии
│ │
│ ├── lore-init/ # NEW — scaffolder для project rules
│ │ ├── SKILL.md
│ │ └── templates/
│ │ └── lore-protocol.rule.md # Шаблон для .claude/rules/
│ │
│ ├── do/
│ │ ├── SKILL.md # MODIFY — добавить Lore read + write шаги
│ │ └── reference/
│ │ └── commit-convention.md # REPLACE — заменить на ссылку к lore-commit-guide
│ ├── task/
│ │ └── SKILL.md # MODIFY — добавить Lore read на этапе исследования
│ ├── plan/
│ │ └── SKILL.md # MODIFY — добавить Lore read на этапе дизайна
│ └── review/
│ └── SKILL.md # MODIFY — добавить Lore read для контекста решений
│
└── commands/
└── gca.md # MODIFY — заменить формат на Lore Protocol
<user-project>/ (создаётся через /lore-init — не часть плагина)
└── .claude/
└── rules/
└── lore-protocol.md # Always-on триггеры (~40 строк)
Почему два слоя
Проблема дистрибуции: .claude/rules/ загружается always-on при старте сессии — идеально для read-side триггеров ("перед модификацией файла проверь Lore-историю"). Но плагин не может записать файлы в .claude/rules/ пользователя.
Решение: graceful degradation.
- Без
/lore-init (free tier) — скилы SP сами читают/пишут Lore по своей внутренней логике. Работает когда пользователь явно вызывает /sp:task, /sp:do и т.д.
- С
/lore-init (full install) — project rule гарантирует что Lore-контекст проверяется ВСЕГДА, даже при ручной работе вне SP-скилов. Один раз вызвал — команда получает always-on memory через git.
Компоненты
1. skills/lore/ — основной Lore скил
SKILL.md description (агрессивный, для максимального триггеринга):
name: lore
description: >
Lore Protocol — structured long-term memory through git commits.
Use BEFORE modifying any file to read decision history (constraints,
rejected alternatives, directives). Use AFTER completing work to write
Lore-enriched commits. Triggers: any code modification, git commit,
refactoring, bug investigation, understanding unfamiliar code,
"why was this done", "what was tried before", code archaeology.
reference/lore-commit-guide.md (write side):
- Формат Lore atom: intent line → body → trailers
- Trailer vocabulary (Table 1 из paper):
Constraint:, Rejected:, Confidence:, Scope-risk:, Reversibility:, Directive:, Tested:, Not-tested:, Related:
- Процедура рефлексии Decision Shadow перед коммитом
- One-shot примеры (полный + минимальный)
- Anti-patterns
reference/lore-reading-guide.md (read side):
- Git команды для чтения Lore:
git log -n 20 --format="%h %s" -- <path> — быстрый обзор intent lines
git log -n 10 -- <path> — полные сообщения с трейлерами
git log --all --trailer=Constraint: -- <path> — активные ограничения
git log --all --trailer=Directive: -- <path> — предупреждения
git log --all --trailer=Rejected: -- <path> — отвергнутые подходы
git blame <file> + git show <hash> — line-level контекст
git log --all --grep="keyword" — поиск по всей истории
git log --follow -- <path> — история с переименованиями
- Стратегии чтения: когда какую команду использовать
- Интерпретация: как использовать
Rejected: чтобы не повторять dead ends, как учитывать Directive: при модификации
2. skills/lore-init/ — scaffolder
При вызове /sp:lore-init:
- Создаёт
.claude/rules/lore-protocol.md из шаблона
- Опционально: добавляет
commit-msg git hook для валидации Lore-трейлеров
- Опционально: добавляет строку в корневой CLAUDE.md проекта
- Выводит инструкцию: "Lore Protocol initialized. All agents will now read decision history before modifying code."
templates/lore-protocol.rule.md (~40 строк, always-on):
# Lore Protocol
This project uses Lore Protocol for institutional memory via git commits.
## Before modifying any file
1. Run `git log -n 10 -- <path>` to read recent Lore context
2. Check `Constraint:` trailers — these are active rules you must respect
3. Check `Directive:` trailers — these are warnings from previous authors
4. Check `Rejected:` trailers — do NOT re-propose rejected approaches without new evidence
## Before proposing an approach
Run `git log --all --trailer=Rejected: -- <path>` to see what was already tried and dismissed.
## When encountering unfamiliar code
Run `git blame <file>`, pick the relevant commit hash, run `git show <hash>` to read the full Lore atom.
## When committing
For full format instructions, read the Lore commit guide from the sp plugin.
Write intent (why, not what) as the first line. Add Lore trailers: Constraint, Rejected, Confidence, Scope-risk, Reversibility, Directive, Tested, Not-tested.
3. Интеграция в существующие скилы
/task — добавить Lore read в исследование
В task-explorer agent: перед анализом кодовой базы запустить Lore context harvest для релевантных файлов. Включить найденные Constraint: и Directive: в секцию constraints task-файла. Включить Rejected: в секцию "previously attempted approaches".
/plan — добавить Lore read в design decisions
В plan-designer agent: перед принятием design decisions проверить Lore-историю затрагиваемых модулей. Использовать Rejected: из истории для обоснования выбора подходов — "approach X was rejected in commit abc1234 because of Y, we use approach Z instead". Включить активные Constraint: в ограничения плана.
/do — Lore read + write
- Read:
task-executor agent перед модификацией каждого файла проверяет Lore-контекст (constraints, directives). Если находит конфликт между планом и Lore-constraint — останавливается и докладывает.
- Write: заменить текущий
commit-convention.md на ссылку к lore-commit-guide.md. Агент, выполнивший работу, сам пишет Lore-enriched коммит (НЕ делегирует сабагенту — Decision Shadow теряется на границе агентов).
/review — Lore read для контекста
При анализе изменений подтягивать Lore-контекст коммитов для объяснения в review-файле: "This approach was chosen because constraint X exists (see commit abc1234), alternative Y was rejected due to Z".
commands/gca — заменить формат
Текущий формат коммитов заменить на Lore Protocol. Команда /gca должна:
- Прочитать
lore-commit-guide.md
- Проанализировать staged changes
- Провести рефлексию Decision Shadow
- Сформировать Lore-enriched commit message с трейлерами
Порядок реализации
Phase 1: Write side (фундамент)
Phase 2: Read side (чтение)
Phase 3: Distribution (дистрибуция)
Критерии успеха
- Write: каждый коммит через
/do или /gca содержит минимум Confidence: + Scope-risk: + один Constraint: или Directive:
- Read:
/task включает Lore-constraints в output, /plan учитывает Rejected: из истории при design decisions
- Feedback loop: агент, запускающий
/do на задаче, обнаруживает через Lore что определённый подход уже был отвергнут, и не повторяет его
- Distribution:
/lore-init корректно создаёт project rule, after which даже ручная работа вне SP-скилов получает Lore awareness
Ссылки
Внедрить Lore Protocol как систему long-term memory для агентов через git commit messages
Контекст
Сейчас скилы
/task,/plan,/do,/reviewработают как изолированные сессии — каждый запуск начинается с нуля, без знания о предыдущих решениях, отвергнутых подходах и активных ограничениях проекта. При этом каждый коммит, сделанный/do, теряет Decision Shadow — контекст решений, который существовал в голове агента в момент написания кода, но не попал в историю.Lore Protocol ([arXiv:2603.15566](https://arxiv.org/html/2603.15566v1)) предлагает использовать git commit messages с нативными git trailers как структурированный канал знаний между агентами. Это даёт нам long-term memory с нулевой инфраструктурой — только git.
См. также:
Цель
Сделать git-историю проекта основным источником институциональной памяти для всех скилов SP. Каждый скил, который читает или модифицирует код, должен:
Архитектура решения
Два слоя: плагин (distributable) + project rule (scaffolded)
Почему два слоя
Проблема дистрибуции:
.claude/rules/загружается always-on при старте сессии — идеально для read-side триггеров ("перед модификацией файла проверь Lore-историю"). Но плагин не может записать файлы в.claude/rules/пользователя.Решение: graceful degradation.
/lore-init(free tier) — скилы SP сами читают/пишут Lore по своей внутренней логике. Работает когда пользователь явно вызывает/sp:task,/sp:doи т.д./lore-init(full install) — project rule гарантирует что Lore-контекст проверяется ВСЕГДА, даже при ручной работе вне SP-скилов. Один раз вызвал — команда получает always-on memory через git.Компоненты
1.
skills/lore/— основной Lore скилSKILL.md description (агрессивный, для максимального триггеринга):
reference/lore-commit-guide.md (write side):
Constraint:,Rejected:,Confidence:,Scope-risk:,Reversibility:,Directive:,Tested:,Not-tested:,Related:reference/lore-reading-guide.md (read side):
git log -n 20 --format="%h %s" -- <path>— быстрый обзор intent linesgit log -n 10 -- <path>— полные сообщения с трейлерамиgit log --all --trailer=Constraint: -- <path>— активные ограниченияgit log --all --trailer=Directive: -- <path>— предупрежденияgit log --all --trailer=Rejected: -- <path>— отвергнутые подходыgit blame <file>+git show <hash>— line-level контекстgit log --all --grep="keyword"— поиск по всей историиgit log --follow -- <path>— история с переименованиямиRejected:чтобы не повторять dead ends, как учитыватьDirective:при модификации2.
skills/lore-init/— scaffolderПри вызове
/sp:lore-init:.claude/rules/lore-protocol.mdиз шаблонаcommit-msggit hook для валидации Lore-трейлеровtemplates/lore-protocol.rule.md (~40 строк, always-on):
3. Интеграция в существующие скилы
/task— добавить Lore read в исследованиеВ
task-exploreragent: перед анализом кодовой базы запустить Lore context harvest для релевантных файлов. Включить найденныеConstraint:иDirective:в секцию constraints task-файла. ВключитьRejected:в секцию "previously attempted approaches"./plan— добавить Lore read в design decisionsВ
plan-designeragent: перед принятием design decisions проверить Lore-историю затрагиваемых модулей. ИспользоватьRejected:из истории для обоснования выбора подходов — "approach X was rejected in commit abc1234 because of Y, we use approach Z instead". Включить активныеConstraint:в ограничения плана./do— Lore read + writetask-executoragent перед модификацией каждого файла проверяет Lore-контекст (constraints, directives). Если находит конфликт между планом и Lore-constraint — останавливается и докладывает.commit-convention.mdна ссылку кlore-commit-guide.md. Агент, выполнивший работу, сам пишет Lore-enriched коммит (НЕ делегирует сабагенту — Decision Shadow теряется на границе агентов)./review— Lore read для контекстаПри анализе изменений подтягивать Lore-контекст коммитов для объяснения в review-файле: "This approach was chosen because constraint X exists (see commit abc1234), alternative Y was rejected due to Z".
commands/gca— заменить форматТекущий формат коммитов заменить на Lore Protocol. Команда
/gcaдолжна:lore-commit-guide.mdПорядок реализации
Phase 1: Write side (фундамент)
skills/lore/reference/lore-commit-guide.mdskills/lore/SKILL.md(write-only на первом этапе)commands/gca— переключить на Lore formatskills/do/— заменитьcommit-conventionна LorePhase 2: Read side (чтение)
skills/lore/reference/lore-reading-guide.mdskills/lore/SKILL.md— добавить read instructionsskills/task/(task-explorer)skills/plan/(plan-designer)skills/review/skills/do/(task-executor, перед модификацией)Phase 3: Distribution (дистрибуция)
skills/lore-init/с шаблоном project rulecommit-msghook для валидации трейлеровКритерии успеха
/doили/gcaсодержит минимумConfidence:+Scope-risk:+ одинConstraint:илиDirective:/taskвключает Lore-constraints в output,/planучитываетRejected:из истории при design decisions/doна задаче, обнаруживает через Lore что определённый подход уже был отвергнут, и не повторяет его/lore-initкорректно создаёт project rule, after which даже ручная работа вне SP-скилов получает Lore awarenessСсылки