这个项目能做什么
Lynchpin 是一个面向单一操作者的本地优先证据与分析平台,配备长期运行的本地数据湖。它读取通常存在于独立系统中的数据——活动捕获、终端历史、Git 和 GitHub 活动、AI 会话存档、浏览器和通信导出、健康记录以及机器遥测——并将其转化为可复现的 DuckDB 数据集、证据图、分析产品,以及供人类和代理使用的有界上下文包。
原始数据保留在其所属系统中。Lynchpin 构建具有明确覆盖范围、新鲜度和来源的读取模型,因此结果可以追溯到支持它们的捕获和导出。它不是托管服务;公共树包含可复用的解析器、模式、分析、查询工具、测试和中性夹具,而私有身份、词汇表、分类、导出和生成的叙述则通过外部配置提供。
它解决的典型问题包括:哪些 AI 会话和终端命令先于一次提交;构建或服务失败时机器在做什么;不同项目间时间和专注度的差异;哪些证据支持关于工作或健康的声明;哪些来源缺失或过时;以及代理应针对项目或时间窗口接收哪些有界上下文。特定来源的工具仍具权威性;Lynchpin 使它们的记录可连接,而不抹除来源边界。
流水线从捕获、导出、仓库和服务账本开始,通过类型化源适配器进入规范数据集和清单,然后进入 DuckDB,从中派生证据图和分析产品,为上下文包、CLI 和 MCP 提供输入。物化规划器确定哪些数据集缺失或过时,按依赖顺序重建它们,并为每个结果记录清单。刷新 ID 将图和报告连接到特定的 DuckDB 快照,使叙述输出保持在证据下游。
当前来源包括 ActivityWatch 应用和专注事件;Atuin 命令和 asciinema 录制;Git 仓库、GitHub 活动、代码快照和 PR 审查细节;Polylogue 会话配置文件和工作事件;浏览器历史、书签、剪贴板和通信导出;可穿戴健康、睡眠和媒体导出;以及机器指标、服务状态、基准和系统代次。适配器保留来源特定的注意事项:缺失观察不会变为零,受导出限制的数据集仍可与连续捕获区分。
DuckDB 层提供普通 SQL 和稳定读取器,用于提交、文件、符号和审查历史;AI 工作事件和会话配置文件;活动、专注、健康和通信信号;机器状态、压力、服务和实验;以及证据声明、图边和来源就绪状态。它是连接和加速层,而非原始数据的第二存档。图层连接项目、提交、文件、AI 工作、终端活动、专注跨度、GitHub 项目、机器上下文、个人信号和分析声明,支持项目/日相关性、会话到提交相关性、问题/PR/提交关闭链、文件和符号重叠、来源就绪和置信度矩阵、时间线以及带显式弱证据选项的 Markdown/JSON 上下文包。
分析包涵盖代码速度、变更面、依赖图、重构候选、跨项目比较、工作节奏、专注碎片化、AI 会话效率、健康和睡眠信号、机器压力、工作负载重叠、服务行为和校准归因。规范指标带有时间范围、单位或分母以及工件路径。
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 和环境变量发现数据根;没有私有配置文件的检出仍可运行测试、检查模式和工具目录,并使用中性夹具。仓库组织为核心、来源、摄取、底层、图、分析、MCP 和 CLI 包,包含测试和忽略的 .lynchpin/ 本地状态目录。数据边界确保源适配器不修改原始导出,操作者配置保持在仓库之外,并将 AI 会话摄取所有权分配给 Polylogue,事件捕获分配给 Sinex,主机配置分配给 Sinnix。采用 MIT 许可证。
评论
0 评分人数达到10人后显示
登录后参与讨论。