xiwuqi/scopediff

GitHub: xiwuqi/scopediff

ScopeDiff 是一个面向 Pull Request 的 AI agent 权限和工具面差异比对工具,帮助在合并前发现 MCP 服务器、工作流权限、Agent 指令等配置变更带来的潜在风险。

Stars: 0 | Forks: 0

# ScopeDiff [![npm version](https://img.shields.io/npm/v/scopediff.svg)](https://www.npmjs.com/package/scopediff) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8e9d315c46160747.svg)](https://github.com/xiwuqi/scopediff/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) 用于 Pull Request 审查的 AI agent 权限和工具面差异比对。 [翻译](#translations):[简体中文](docs/i18n/README.zh-CN.md) · [日本語](docs/i18n/README.ja-JP.md) · [Español](docs/i18n/README.es.md) · [Français](docs/i18n/README.fr.md) · [Português (Brasil)](docs/i18n/README.pt-BR.md) · [Deutsch](docs/i18n/README.de.md) ScopeDiff 帮助维护者发现针对 MCP 服务器、agent 指令、GitHub Actions 权限、包生命周期脚本、Docker 设置以及其他可能改变 AI agent 或自动化行为能力的文件变更。 它是一个审查辅助工具,而不是一个完整的安全审计、漏洞扫描器或运行时保护系统。 ![ScopeDiff 功能概览,展示了 MCP、workflow、审查证据和本地优先检查](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4c90a0784e160753.png) ## 为什么选择 ScopeDiff - 在合并前查看 agent/工具的权限变更。 - 在本地或 CI 中运行,无需上传代码。 - 获取带有证据和建议审查步骤、可直接用于 PR 的 Markdown 和 JSON 报告。 ## 为什么开发这个工具 AI agent 的配置开始驻留在代码库中:MCP 服务器、`AGENTS.md`、Cursor 规则、Claude 技能、GitHub Actions 权限和包生命周期脚本。现在,一个 Pull Request 不仅能更改应用程序代码,还能更改 agent 可以运行哪些工具、它期望哪些 token,以及哪些自动化路径可以发布或部署。 ScopeDiff 使这些边界变更在人工审查时变得清晰可见。 ## 快速安装 ``` npx scopediff@latest scan ``` 在项目中安装: ``` npm install -D scopediff ``` 从源码运行: ``` npm install npm run build node dist/cli.js scan ``` ## 30 秒快速入门 ![ScopeDiff 快速启动命令](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4508eceb31160800.png) 扫描当前代码库: ``` npx scopediff@latest scan ``` 将你的分支与 `main` 进行比较: ``` npx scopediff@latest diff --base main ``` 生成 Markdown: ``` npx scopediff@latest report --format markdown ``` 在 CI 中运行,遇到高风险发现时失败: ``` npx scopediff@latest ci --fail-on high ``` ## 示例报告 ![ScopeDiff 终端演示,展示了高风险差异报告](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/413f1c0468160805.png) 此截图是根据针对临时演示代码库的真实 ScopeDiff CLI 输出生成的。完整的演示报告可在 [docs/demo/scopediff-report.md](docs/demo/scopediff-report.md) 中找到。 ``` ## ScopeDiff 报告 Risk: High New agent capability detected: - MCP server added: github - Command: npx -y @modelcontextprotocol/server-github - Env required: GITHUB_TOKEN - Possible scope: repository read/write depending on token permissions Review notes: - Pin package version instead of using latest - Prefer a read-only token for first setup - Document why this server is needed - Check whether this PR also changed workflow permissions ``` ## ScopeDiff 检查什么 - MCP 服务器的添加以及 command/args/env 的变更。 - 类似凭证的环境变量名,如 `GITHUB_TOKEN` 或 `API_KEY`。 - 未固定版本的 `npx`、`uvx`、`pipx` 以及使用 Docker `latest` 标签的情况。 - GitHub Actions 权限扩大、敏感触发器、secrets 以及未固定版本的 action。 - `package.json` 生命周期脚本,如 `postinstall` 和 `prepare`。 - 增加了读取、写入、shell、网络、发布、部署、推送或删除行为的 Agent 指令。 - Docker 特权模式、主机网络、root 用户或 Docker socket 访问。 - 远程脚本执行模式,例如 `curl | bash`。 ## GitHub Actions 使用已发布的 GitHub Action: ``` name: ScopeDiff on: pull_request: permissions: contents: read jobs: scopediff: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-node@v4 with: node-version: 20 - name: Run ScopeDiff uses: xiwuqi/scopediff@v0.1.0 with: base: origin/${{ github.base_ref }} fail-on: high ``` 默认情况下,ScopeDiff 会写入 GitHub Step Summary,并且不会对 Pull Request 发表评论。 ![ScopeDiff GitHub Step Summary 布局模型](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6c0340c087160810.png) 上图是基于 ScopeDiff Markdown 输出的布局模型。添加 workflow 后,从你的代码库中捕获真实的 Step Summary。 你也可以直接运行 npm 包: ``` - name: Run ScopeDiff run: npx scopediff@0.1.0 ci --base origin/${{ github.base_ref }} --fail-on high ``` 为长期使用的 CI 固定 action 标签或 npm 版本。请勿使用未固定版本的分支(如 `main`)。 ## 适用场景 - 使用 MCP 服务器的代码库。 - 包含 `AGENTS.md`、Cursor 规则、Claude 技能或 Copilot 指令的项目。 - 正在审查自动化变更的开源项目维护者。 - 将 AI 编码 agent 添加到现有工作流中的团队。 ## 不适用的场景 - 完整的恶意软件检测。 - 运行时阻断或沙箱强制执行。 - 对真实 `.env` 文件的 Secret 扫描。 - 漏洞数据库检查。 - 未经明确启用的自动 PR 评论。 ## 安全与隐私 ScopeDiff 是本地优先的: - 无遥测。 - 无代码上传。 - 默认无网络访问。 - 默认不读取 `.env`。 - 无 token 存储。 - 不执行发现的命令。 ## 文档 - [产品规范](docs/product-spec.md) - [风险模型](docs/risk-model.md) - [扫描范围](docs/scanning-scope.md) - [CLI 设计](docs/cli-design.md) - [报告 Schema](docs/report-schema.md) - [评分机制](docs/scoring.md) - [架构](docs/architecture.md) - [MVP 验收标准](docs/mvp-acceptance.md) - [测试计划](docs/test-plan.md) ## 翻译 英文是关于行为、限制和发布状态的权威信息来源。提供本地化的 README 摘要是为了方便国际用户发现,并应保持严谨保守: - [简体中文](docs/i18n/README.zh-CN.md) - [日本語](docs/i18n/README.ja-JP.md) - [Español](docs/i18n/README.es.md) - [Français](docs/i18n/README.fr.md) - [Português (Brasil)](docs/i18n/README.pt-BR.md) - [Deutsch](docs/i18n/README.de.md) ## 路线图 - 针对特定客户端配置文件的 JSONC 支持。 - 为 YAML 和 JSON 发现提供更好的行映射。 - 一流的 GitHub Action 包装器。 - 可选的、明确配置的 PR 评论。 - 规则贡献指南和规则文档页面。 ## 贡献 欢迎提交 Issue 和 Pull Request。误报报告尤其有用,因为 ScopeDiff 应该保持严谨保守且具备良好的可解释性。 请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 MIT 如果 ScopeDiff 能帮助你更清晰地审查 agent/工具的变更,欢迎点个 Star。
标签:DevSecOps, Docker, GitHub Actions, GNU通用公共许可证, MCP, MITM代理, Node.js, 上游代理, 云安全监控, 人工智能代理, 代码安全, 代码审查, 安全审查, 安全防御评估, 工具安全, 开源, 拉取请求, 文档结构分析, 暗色界面, 权限变更, 漏洞枚举, 自动化攻击, 自动笔记, 软件开发工具包, 静态分析