sourcebook
捕捉 AI 代理遗漏修改的文件。
代码变更的安全层。sourcebook 通过分析 git diff 来确保完整性——标记出那些本应修改但未被修改的文件。结合基于规则的结构检测与 AI 驱动的语义分析。在干净的 diff 上实现零误报。
npx sourcebook init # sets up Claude Code hooks + generates CLAUDE.md
npx sourcebook check # check your current diff for missing files
npx sourcebook scan-history # see what you've been missing它能捕捉什么
你的 AI 代理修改了处理程序。它更新测试了吗?更新了关联模块吗?更新了引用旧值的配置吗?
sourcebook 根据仓库的实际结构检查你的 diff:
缺失的测试文件 — 源文件已更改,但测试文件未更改
关联模块 — 导入了你所修改内容或被其导入的文件
协同变更伴侣 — 在 git 提交历史中通常一起变更的文件
核心文件影响范围 — 你触碰了拥有 50 个以上依赖项的文件
使用 --ai 参数:跨模块语义关系、需要迁移的字段重命名、过时的验证逻辑。
Related MCP server: Carto MCP Server
关键统计数据
指标 | 结果 |
完整性门控 | 100% 准确 (30/30 diffs) |
误报率 | 0% (针对干净的 diff) |
测试文件检测 | 73% |
关联模块检测 | 71% |
AI 分析成本 | ~$0.012/次运行 |
四大应用场景
1. CLI
在任何 diff 上运行。无需设置。
npx sourcebook check # check staged/unstaged changes
npx sourcebook check --ai # add AI semantic analysis (requires ANTHROPIC_API_KEY)
npx sourcebook check --quiet # exit code only (for CI/scripts)
npx sourcebook check --branch main # compare vs a branch2. Claude Code 钩子
一条命令即可连接预提交钩子。代理编辑文件时,sourcebook 会检查 diff,代理会在提交落地前看到缺失的内容。
npx sourcebook init # generates CLAUDE.md + installs hooks3. MCP 服务器
已发布在官方 MCP 注册表中。代理可以按需查询仓库结构、影响范围、规范和协同变更数据。
npx sourcebook serve添加到你的 MCP 客户端:
{
"mcpServers": {
"sourcebook": {
"command": "npx",
"args": ["-y", "sourcebook", "serve", "--dir", "/path/to/your/project"]
}
}
}4. GitHub App (即将推出)
对每个拉取请求进行自动完整性检查。加入候补名单。
命令
命令 | 描述 |
| 分析当前 diff 的完整性 |
| 添加 AI 驱动的语义分析 (需要 ANTHROPIC_API_KEY) |
| 仅返回退出代码 — 发现问题返回 1,干净返回 0 |
| 结构化 JSON 输出 |
| 将 HEAD 与分支进行比较 |
| 自定义协同变更耦合阈值 (0-1) |
| 设置 Claude Code 钩子 + 生成 CLAUDE.md/AGENTS.md |
| 对近期提交进行回顾性扫描 |
| 安装或检查 Claude Code 钩子 |
| 生成仓库真值图 (2.5D 可视化) |
| 启动 MCP 服务器 |
| 在保留手动编辑的同时重新分析 |
| 显示将要变更的内容 (如果发现变更则退出代码为 1) |
| 在源文件变更时自动重新生成上下文文件 |
| 用自然语言查询代码库知识 |
工作原理
A 层 — 基于规则 (无 LLM,<1 秒)
协同变更分析 — 从 git 历史中挖掘一起变更的文件。如果你修改了
auth.ts,且它在 88% 的提交中与session.ts一起变更,sourcebook 会标记session.ts。测试文件检测 — 通过命名规范和协同变更历史将源文件映射到测试文件。
导入图 — 构建依赖图,并检查导入(或被导入)你所修改文件的文件是否也需要更新。
核心检测 — 当你修改了具有高扇入(大量依赖项)的文件时进行标记。这些变更具有影响范围。
B 层 — AI 驱动 (~$0.012/次运行)
将 diff 和依赖上下文发送给 Claude Sonnet。捕捉 A 层无法看到的语义关系——需要迁移的字段重命名、假设旧模式的验证逻辑、没有导入链接的跨模块依赖。
每个 AI 建议都需要依赖引用。幻觉产生的文件路径会被过滤掉。完整性门控确保零误报:如果 diff 实际上是完整的,B 层将保持静默。
配置
# Required for --ai flag only
export ANTHROPIC_API_KEY=sk-ant-...无需其他配置。sourcebook 直接读取你仓库的 git 历史和文件结构。
语言支持
语言 | 导入图 | Git 分析 | 规范检测 |
TypeScript / JavaScript | 完整 | 完整 | 完整 |
Python | 完整 | 完整 | 完整 |
Go | 完整 | 完整 | 完整 |
Rust | 完整 | 完整 | 部分 |
研究
基于真实基准测试,而非主观感受:
查看验证结果 — 方法论和准确性数据
基准测试:19 个任务,10 个仓库,4 种语言 — 受控的代理性能测试
为什么自动生成的上下文会让代理表现更差 — 苏黎世联邦理工学院的研究发现,塑造了我们的方法
许可证
BSL-1.1 — 源码可见,免费使用,不可作为托管服务提供。将于 2030-03-25 转换为 MIT 协议。详情请参阅 LICENSE。
sourcebook.run · GitHub · npm · @maroond_
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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/maroondlabs/sourcebook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
