Skip to main content
Glama
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.sh | sh -s v1.2.0
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.sh
sh install.sh v1.2.0

# Or skip the script: the checkout it makes is one you can make yourself.
git clone --depth 1 --branch v1.2.0 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version

Он устанавливает закреплённую копию исходников и обёртку, которая запускает node <checkout>/dist/commitlore.mjs — без загрузки скомпилированного файла и без шага сборки.


Код выживает. Суждение — нет.

Агент предлагает подход. Ваша команда отклоняет его из-за неочевидного ограничения. Итоговый код сохраняет результат, но обычно не причину, по которой альтернатива была отклонена. Позже агент видит только код и снова предлагает ту же идею.

CommitLore сохраняет это суждение рядом с кодом.

Что делает CommitLore

Поведение

Путь продукта

Захват

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

commitlore capture

Сохранение

Хранит принятые записи в Git-трейлерах или заметках вместо облачной базы памяти.

commit hooks · refs/notes/commitlore

Отслеживание жизненного цикла

Различает активные, заменённые и истёкшие решения.

commitlore stale

Область действия

Выбирает решения для пути, который агент собирается редактировать.

commitlore context

Оценка доверия

Доставляет записи как директивы, утверждения или скрытый контент.

обычный / подписанный режим

Доставка

Даёт поддерживаемым агентам актуальный контекст перед редактированием.

плагин-хук · MCP

Большинство коммитов не должны нести записей. CommitLore предназначен для суждений, которые код не может сохранить, а не для описания каждого изменения.

Related MCP server: Hypermnesic

60 секунд до агентов, осознающих решения

1. Установите CLI

macOS и Linux:

curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.sh | sh -s v1.2.0

Windows:

& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.0/install.ps1))) v1.2.0

Требуется Node.js 22.23.2+ и Git. Скрипт проверяет оба перед тем, как что-либо записать.

2. Подключите своего агента

Claude Code:

/plugin marketplace add MongLong0214/commitlore
/plugin install commitlore@commitlore

Codex:

commitlore plugin install-codex

Плагин не добавляет commitlore в PATH, поэтому команды ниже также требуют установки CLI. Установщики также обнаруживают и подключают поддерживаемые MCP-хосты там, где это можно сделать безопасно; точная матрица приведена ниже.

3. Инициализируйте репозиторий

cd your-repository
commitlore init
commitlore context .

Начните новую сессию агента после установки или обновления плагина: работающая сессия сохраняет загруженную среду выполнения.

Затем работайте и коммитьте как обычно. В поддерживаемых интеграциях навыков CommitLore учитывается при обычных запросах на коммит и остаётся молчаливым, когда нечего сохранять. Вам не нужно называть CommitLore в каждом коммите.

Хотите, чтобы принятые записи попадали в коммит без отдельного запроса? Репозиторий может один раз согласиться с помощью commitlore auto on. Эта политика принадлежит репозиторию и применяется ко всей команде, поэтому она не включается молча на этой странице.

Что получает агент

Перед редактированием src/pricing.ts:

commitlore: active records for src/pricing.ts

Limit
  [claim] r-price01  calculatePrice owns final checkout pricing only

Ruled-out
  [claim] r-price01  Reuse it for admin quotes |
                     eligibility and rounding semantics differ

[claim] означает «взвесьте это как информацию». Репозиторий может согласиться на более строгий режим подписанного авторитета. Доставка даёт агенту контекст; она не блокирует редактирование.

Модель безопасности →

Почему Git?

Репозиторий должен владеть суждением, стоящим за его кодом.

CommitLore хранит записи в обычных Git-трейлерах и заметках, поэтому они ветвятся, сливаются, клонируются, рецензируются и переживают смену провайдера вместе с кодом, который они объясняют.

SQLite — это лишь перестраиваемый индекс. Удалите его, и Git всё равно сохранит запись.

Поиск старого решения — это не всё

Общая система памяти или поиска спрашивает:

Какой старый текст выглядит релевантным?

CommitLore спрашивает:

Какие записанные решения всё ещё применимы к этому пути сейчас?

Заменённое решение может быть очень релевантным и всё же ошибочным как текущее руководство. Релевантность и авторитет — разные вопросы.

Как это работает

  1. Захват — агент формулирует только тот контекст решения, который diff не может показать.

  2. Проверка — CommitLore сверяет черновик с сессией и подготовленным diff.

  3. Сохранение — принятая запись живёт в Git с идентичностью и жизненным циклом.

  4. Доставка — перед последующим редактированием возвращаются только активные записи для этого пути.

Большинство коммитов не несут записей. Хук коммита проверяет запись, когда она присутствует; он не выдумывает её.

Существующий хук не перезаписывается. commitlore init учитывает core.hooksPath, перемещает уже установленный хук в <hook>.commitlore-chained и вызывает его первым; commitlore hooks uninstall возвращает его обратно.

Что происходит автоматически

Хост

Доставка перед редактированием

Проверенный рабочий процесс захвата

Детерминированный захват каждого коммита

Claude Code

Автоматически через плагин

Доступно через навык плагина

Не сертифицировано

Codex

Автоматически через плагин

Доступно через навык плагина

Не сертифицировано

Hermes

Доступно после commitlore hermes install

Доступно после установки хоста

Не сертифицировано

Gemini CLI, Cursor, Windsurf, opencode

Доставка через MCP, где хост использует регистрацию

Процедура доступна через MCP

Нет

Хосты AGENTS.md

Только процедура

Только процедура

Нет

«Доступно» означает, что рабочий процесс подготовка → проверка → коммит существует. Это не означает, что каждый подходящий коммит оценивается автоматически.

Пользователям поддерживаемых хостов с навыками не нужно говорить «запиши это в CommitLore» в каждом коммите. Оставшееся ограничение — инициация хоста, а не обязательная команда пользователя для каждой записи.

Полевой отчёт, а не измерение

Один запуск, на несвязанном репозитории, человеком, впервые устанавливающим v1.2.0. Ничто здесь не измерялось, и ничего из этого нет в журналах доказательств. Это на этой странице, потому что абзац выше утверждает цикл, который не покрыт ни одной таблицей здесь.

Они попросили агента исправить ошибку округления, вскользь упомянули, что библиотека десятичных чисел уже рассматривалась и была отклонена, и закончили словами «закоммить». CommitLore ни разу не был назван. Часть того, что нёс коммит:

Ruled-out: adopting a decimal library such as Decimal.js | the backend is a
  number contract, so it is meaningless
Warn: do not revert the test file to console.assert: it exits 0 even on
  failure, so CI passes silently
Provenance: drafted

Warn не был продиктован агенту. Он наткнулся на ловушку во время работы и оставил её для следующего. Provenance: drafted фиксирует, что ни один человек не читал запись, что оценивает её как claim — доставляется как отчёт для взвешивания, а не приказ.

Позже сессия без общей истории получила задачу всё же принять библиотеку десятичных чисел. Она этого не сделала и назвала запись причиной. Она также прочитала оценку: claim — это не инструкция, поэтому она проверила указанную причину против кода, прежде чем согласиться с ней.

В отличие от хранилища памяти

Общая память / RAG

CommitLore

Основной вопрос

Какой старый текст релевантен?

Какие решения всё ещё применимы здесь сейчас?

Авторитет

Хранилище памяти или провайдер

Git

Область действия

Семантическое сходство

Пути репозитория

Жизненный цикл

Часто только добавление

Активно · заменено · истекло

Доверие

Извлечённый текст

Директива · утверждение · заблокировано

Захват

Стенограмма или хранение заметок

Проверенная по доказательствам запись решения

Переносимость

Зависит от бэкенда

Обычный Git

CommitLore намеренно уже. Это не общая система пользовательской памяти, архив разговоров или замена векторной базы данных.

Доказательства

Вопрос

Измеренный результат

Граница

Изменил ли контекст уровня заявки повторное предложение в зарегистрированном исследовании?

2,8% (16/580) с CommitLore против 18,8% (109/579) без

одна модель, один харнесс, сконструированные задачи

Доставляла ли фильтрация жизненного цикла выведенные из эксплуатации записи в измеряемой активной проекции?

0 выведенных из эксплуатации записей

заменённые записи присутствовали; истечение срока — нет

Масштабируется ли индексированный поиск?

496 мс p50 при 100 тыс. коммитов

резервный путь без индекса значительно медленнее

Время построения индекса зависит от количества записей, а не коммитов: дорогостоящий проход выполняется один раз на запись, поэтому длинная история с небольшим числом записей строится быстрее, чем короткая, насыщенная записями.

Ограничение пути — это то, что не позволяет большой истории достичь модели. В корпусе #167 только 2 из 10 002 записей достигли модели:

маршрут

записи, видимые модели

релевантные записи

токены, видимые модели

внедрить всё

10 002

2/2

1 004 554

лексический top-k

2

1/2

190

ограничение пути CommitLore

2

2/2

335

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

Исследование агента не устанавливает универсального эффекта модели. Доставка не является доказательством того, что модель прочитала или последовала записи.

Методы, полные таблицы, исключения и отрицательные результаты →

Ограничения, доверие и конфиденциальность

  • Захват — ассистируемый, а не детерминированный. Поддерживаемые навыки учитывают обычные запросы на коммиты, но ни один хост не сертифицирован для оценки каждого подходящего коммита.

  • Режим директивы по умолчанию — это не аутентификация. Он сопоставляет заголовок автора коммита, и любой, кто может написать коммит, может установить этот заголовок — поэтому [directive] в режиме по умолчанию является метаданными политики, а не доказательством личности. Режим подписи дополнительно требует статуса проверки Git и совпадения в локальном для репозитория списке разрешённых commitlore.trustedSigner; отсутствующий, пустой или нечитаемый список разрешённых подписантов не авторизует никого, поэтому режим отказывает в закрытом состоянии.

  • Guard — это экспериментальная рекомендация, а не страховочная сеть: точность 44,8% (95% доверительный интервал Уилсона 32,7%–57,5%), полнота 22,0% на корпусе из 417 решений. Пустой результат Guard не является вердиктом о безопасности.

  • Доставка тратит токены на каждый подходящий вызов инструмента. Хук перед редактированием срабатывает на Read, а также на Edit, Write, MultiEdit и NotebookEdit, поэтому он запускается гораздо чаще, чем агент редактирования делает коммиты. Каждое срабатывание тратит до бюджета полезной нагрузки — 800 токенов по умолчанию, изменяется с помощью --budget. Репозиторий без записей не тратит ничего, что означает, что это стоимость, которая появляется с внедрением, а не с установкой.

  • Ответ может быть частичным. Полнота раскрывается; отсутствие в частичном результате не является доказательством того, что записи не существует. Покрытие всего репозитория, символьные якоря и интерактивный конструктор записей остаются открытыми: #32, #33.

  • Трейлеры коммитов путешествуют с клоном; заметки — нет. Git не загружает refs/notes/* по умолчанию, поэтому запись в refs/notes/commitlore отсутствует в обычном клоне, пока commitlore init не настроит это зеркало.

  • Нет размещённого бэкенда. Но как только сервер или хук возвращает контекст, хост обрабатывает этот контекст в соответствии со своей собственной политикой; CommitLore не контролирует этот поток данных.

Безопасность · Совместимость · Доказательства

Записи не считаются доверенными, пока не оценены. Сопоставление автора по умолчанию — это метаданные политики, а не аутентификация. Режим подписанной директивы требует проверки Git и локального для репозитория списка разрешённых подписантов; отсутствующий или нечитаемый список не авторизует никого. Полезная нагрузка, имеющая форму инъекции, не передаётся на маршруты, читаемые моделью.

Полная модель безопасности →

Установщик CLI не может перезаписать хуки в репозиториях, о которых он не знает, а запущенные сессии хоста сохраняют загруженную среду выполнения. commitlore doctor называет оба состояния и их исправление, а commitlore upgrade сообщает, существует ли более новая версия.

Установка и обновления →

Записи — это обычные трейлеры или заметки Git. Протокол 2.0 определяет жизненный цикл, уровни доверия, валидацию и совместимость.

Руководство для человека → · Нормативная спецификация →

Репозиторий публикует методы, исключения, неудачные измерения и случаи, когда исходный бенчмарк или диагноз был ошибочным.

Доказательства → · Самоаудит →

Документация

Участие в разработке

CONTRIBUTING.md описывает протокол записей, которому следует этот репозиторий, шлюз выпуска и способы воспроизведения доказательств.

Лицензия

MIT — см. LICENSE.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
2hResponse time
1dRelease cycle
22Releases (12mo)
Commit activity
Issues opened vs closed

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first memory layer for AI coding agents — captures issues, attempts, fixes, and decisions, and warns at git commit before you repeat a mistake.
    15
    665
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Git-native long-term memory for AI agents: your markdown files are the source of truth, the search index is a disposable projection rebuilt from git, and every memory the agent writes is a reviewable git commit. Served over one OAuth-secured MCP endpoint with hybrid lexical+semantic recall and a gated, git-first commit_note write tool.
    7
    8
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    Local-first project memory for AI coding agents. Records failed attempts, fragile files, and decisions per repo, and warns the agent via hooks before it repeats a recorded mistake.
    6
    89
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Self-hosted decision memory for AI coding agents. Captures decisions with the alternatives you rejected, and warns before an agent re-proposes a rejected approach.
    4
    81
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Memory for coding agents: the decisions, the dead ends, and where the last session stopped.

  • Experience memory for coding agents: validated traps, fixes and dead-ends at decision time.

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MongLong0214/commitlore'

If you have feedback or need assistance with the MCP directory API, please join our Discord server