Об этом проекте

Lynchpin — это локальная платформа для сбора доказательств и анализа, предназначенная для одного оператора с долгосрочным локальным хранилищем данных. Она считывает данные, которые обычно находятся в отдельных системах — журналы активности, историю терминала, активность Git и GitHub, архивы ИИ-сессий, экспорт браузера и коммуникаций, медицинские записи и телеметрию машин — и превращает их в воспроизводимые наборы данных DuckDB, графы доказательств, аналитические продукты и ограниченные контекстные пакеты для людей и агентов. Сырые данные остаются в системе-владельце. Lynchpin строит модели чтения с явным охватом, свежестью и происхождением, чтобы результаты можно было проследить до захватов и экспортов, которые их поддерживают. Это не облачный сервис; публичное дерево содержит переиспользуемые парсеры, схемы, анализы, инструменты запросов, тесты и нейтральные фикстуры, в то время как приватные идентичности, словари, классификации, экспорты и сгенерированные нарративы предоставляются через внешнюю конфигурацию. Типичные вопросы, которые она решает: какие ИИ-сессии и терминальные команды предшествовали коммиту, что делала машина при сбое сборки или сервиса, как время и фокус различались между проектами, какие доказательства поддерживают утверждение о работе или здоровье, какие источники отсутствуют или устарели, и какой ограниченный контекст агент должен получить для проекта или временного окна. Инструменты, специфичные для источников, остаются авторитетными; Lynchpin делает их записи соединяемыми, не стирая границы источников. Конвейер работает от захватов, экспортов, репозиториев и служебных журналов через типизированные адаптеры источников в канонические наборы данных и манифесты, затем в DuckDB, из которого выводятся графы доказательств и аналитические продукты, питая контекстные пакеты, CLI и MCP. Планировщик материализации определяет, какие наборы данных отсутствуют или устарели, перестраивает их в порядке зависимостей и записывает манифест для каждого результата. Идентификаторы обновления связывают графы и отчеты с конкретным снимком DuckDB, сохраняя нарративный вывод ниже по потоку от доказательств. Текущие источники включают события приложений и фокуса ActivityWatch; команды Atuin и записи asciinema; репозитории Git, активность GitHub, снимки кода и детали обзора PR; профили сессий и рабочие события Polylogue; историю браузера, закладки, буфер обмена и экспорт коммуникаций; экспорт носимых устройств, здоровья, сна и медиа; а также метрики машин, состояние сервисов, бенчмарки и поколения систем. Адаптеры сохраняют оговорки, специфичные для источника: отсутствующие наблюдения не становятся нулями, а наборы данных, ограниченные экспортом, остаются отличимыми от непрерывного захвата. Слой DuckDB предлагает обычный SQL и стабильные читатели для коммитов, файлов, символов и истории обзоров; событий ИИ-работы и профилей сессий; сигналов активности, фокуса, здоровья и коммуникаций; состояния машины, нагрузки, сервисов и экспериментов; а также утверждений доказательств, ребер графа и готовности источников. Это слой соединения и ускорения, а не второй архив сырых данных. Слой графа соединяет проекты, коммиты, файлы, ИИ-работу, терминальную активность, интервалы фокуса, элементы GitHub, машинный контекст, личные сигналы и аналитические утверждения, поддерживая корреляцию проект/день, корреляцию сессия-коммит, цепочки закрытия issue/PR/коммит, перекрытие файлов и символов, матрицы готовности источников и уверенности, хронологические временные линии и контекстные пакеты Markdown/JSON с явными опциями слабых доказательств. Аналитический пакет охватывает скорость кода, поверхности изменений, карты зависимостей, кандидатов на рефакторинг, сравнение между проектами, рабочие ритмы, фрагментацию фокуса, эффективность ИИ-сессий, сигналы здоровья и сна, машинную нагрузку, перекрытие рабочей нагрузки, поведение сервисов и калиброванную атрибуцию. Канонические метрики несут временной интервал, единицу или знаменатель и путь артефакта. Сервер MCP предоставляет восемь публичных инструментов: lynchpin_status, lynchpin_catalog, lynchpin_query, lynchpin_evidence, lynchpin_project, lynchpin_personal, lynchpin_machine и lynchpin_ops. Пути чтения доступны только для чтения; операции, которые материализуют или удаляют локальное состояние, требуют явного решения на выполнение и создают квитанции. Разработка ориентирована на Nix (direnv allow или nix develop), тесты запускаются с pytest -q, а точки входа CLI материализуют продукты, продвигают временные окна, отображают контекстные пакеты текущего состояния и запускают stdio MCP сервер. Команды обнаруживают корни данных через LynchpinConfig и переменные окружения; клон без приватного профиля все еще может запускать тесты, проверять схемы и каталоги инструментов и использовать нейтральные фикстуры. Репозиторий организован в пакеты core, sources, ingest, substrate, graph, analysis, mcp и cli, с тестами и игнорируемой локальной директорией состояния .lynchpin/. Границы данных не позволяют адаптерам источников изменять сырые экспорты, держат конфигурацию оператора вне репозитория и назначают владение ingestion ИИ-сессий Polylogue, захватом событий Sinex и конфигурацией хоста Sinnix. Лицензия MIT.