简介
问题
AI 写代码的时代,一个人 + AI 就能独立完成一个服务。效率很高,但每一个设计决策——为什么选方案 A 不选 B、接受了什么 trade-off、否决了什么——都不在 repo 里。
存 context 的地方不缺:CLAUDE.md、SDD 系统、Notion、commit message、PR description、AI 聊天记录。问题不在存储,而在存储之后:
- 检索不行。 你在改一个函数,你需要的是跟 这个函数此刻 相关的决策。在一堆扁平文档里做关键词搜索不够用——你得先知道这个决策存在、大概在哪里,才能找到它。
- 知识是孤立的。 auth 中间件的一个决策和支付流程的一个决策可能深度相关(一个导致了另一个),但在扁平文档里它们只是两段不相干的文字,知识之间没有有机关联。
- 对人不友好。 原始 AI 对话记录太长,总结文档又丢失了细节。两种格式都无法帮助队友真正理解代码库为什么长成这样。
Context Chain 做什么
一个本地知识图谱,从代码库和 AI 编程对话中提取设计决策,存入 Memgraph,通过 MCP 协议喂给你的 coding AI。
现有的 context engineering 工具(OpenSpec、Git-AI、Dexicon)在 spec 或 repo 级别捕获知识。Context Chain 更深一层:
- 锚定到函数 — 每条决策绑在具体函数上(通过 Joern CPG),不是笼统地挂在 repo 层面
- 代码变了,决策跟着标记 — 改了代码,受影响的决策自动标为过期,不会悄悄烂掉
- 提取的是决策本身 — 不是 prompt 摘要,不是原始聊天记录,而是 选了什么、否了什么、为什么这样选
- 决策之间有关系 —
CAUSED_BY、DEPENDS_ON、CONFLICTS_WITH,图上的边把相关决策串起来 - 跑在你的订阅上 — 用
claude -p(Claude CLI),不花 API 钱。重活晚上跑,白天写代码时 coding AI 直接从图谱拿现成的 context,写代码速度更快
代码库 → Joern CPG → LLM 逐函数提取决策
→ Memgraph(图数据库)→ MCP Server(9 个工具)
→ Claude Code 写代码时自动获取上下文技术栈
| 组件 | 技术 |
|---|---|
| 图数据库 | Memgraph |
| 代码分析 | Joern(CPG) |
| 决策提取 | Claude CLI / Anthropic API |
| MCP Server | TypeScript + @modelcontextprotocol/sdk |
| Dashboard | Hono + 原生 HTML/JS |
| 容器 | Docker Compose |
当前状态
核心管线(analyze_function + 全量扫描 + MCP Server + Dashboard + session 摄入 + Joern CPG + 跨 repo 关联)已在多 repo TypeScript 项目上实战验证。语义向量搜索和精炼管线已完成开发。
路线图
| 方向 | 计划 |
|---|---|
| 消费层 | 沉浸式 KT 系统和团队知识地图——帮 人 理解代码库,不只是帮 AI |
| Agent 支持 | 目前支持 Claude Code;将接入 Cursor、Windsurf、Cline、Copilot 等 MCP 兼容 agent |
| 多源摄入 | Slack、Notion、会议记录——不只是代码和 AI 对话 |
| Spec 驱动工作流 | OpenSpec 风格:提案 → spec → 设计 → 实现,决策在实现后自动锚定 |