repowise-dev/repowise
Codebase intelligence for AI and humans: code health scores, auto-generated docs, git analytics, dead code detection, and architectural decisions via MCP.
Repowise – 基于证据的代码库智能
是什么 – Repowise 是一个基于 Python 的工具,可构建本地、持续更新的仓库索引。该索引整合了语言无关的调用图、Git 历史、测试覆盖率信息、文档以及记录的架构决策。从这一单一事实源出发,它为开发者或 AI 驱动的编码代理通常需要通过 grep、阅读代码或运行昂贵模型提示来发现的问题,提供 确定性(无需 LLM 调用)的答案。
为何重要 – 现代 AI 编码助手在每次请求时都会花费大量时间“重新发现”代码库的结构,这会增加 token 使用量、降低代理速度,并可能导致上下文丢失。Repowise 一次性完成繁重工作,然后以远少的工具调用和大幅减小的负载(例如,典型提交上下文从 13,984 个 token 减少到 393 个 token)提供 带引用 的、图感知的结果。该项目还提供具体、可操作的重构建议和每个文件的健康评分,所有计算均在本地完成且开源。
核心功能
| 领域 | Repowise 提供的内容 |
|---|---|
| 代码图 | 支持 25 种语言的 AST 解析依赖关系,带置信度标记的调用解析,社区检测,中心性度量,执行流追踪。 |
| Git 信号 | 热点检测、所有权、共变更统计、巴士因子、缺陷修复历史 – 全部源自仓库自身的提交日志。 |
| 文档维基 | 为每个模块/文件自动生成、增量式维基页面;可选择性地为每页添加 LLM 编写的段落。 |
| 架构决策 | 从五个来源(如提交信息、代码注释)确定性提取,加上手动捕获;每个决策均链接到证据。 |
| 代码健康分析 | 49 个确定性检测器(复杂度、内聚性、克隆检测、未测试热点、变更熵等)为每个文件生成 1–10 的健康评分,并提供具体重构计划(提取类/方法、移动方法、拆分文件等)。 |
| 测试智能 | 通过调用图找出哪些测试 触及 一个文件(当覆盖率报告缺失时的回退方案),并可列出差分所触发的最小测试集。 |
| 变更风险 | 使用图和 Git 信号对差分或 PR 进行 0–10 分的评分,返回可操作指令如 may_break 或 missing_tests。 |
| MCP 工具 | 十个任务型“模型-控制-协议”端点(图、Git、文档、决策、健康、风险、受影响测试、提炼等),任何 MCP 兼容代理(Claude Code、Codex、Cursor、VS Code 等)均可调用。 |
| 提炼 | 在命令输出(如长 pytest 日志)到达代理前进行压缩,保留错误和退出码的同时,将 token 使用量减少 60–90 %。 |
| PR 机器人 | GitHub 应用,为每个 PR 发布一条持续更新的评论,包含影响范围、测试影响、风险评分、健康警报以及详细分析页面链接。 |
典型工作流程
- 安装 –
pip install repowise。 - 初始化 – 在目标仓库内运行
repowise init --no-prose -y。此操作解析代码、构建图、提取 Git 信号、创建维基,并运行健康检测器。 - 服务 –
repowise serve启动本地 HTTP 端点,暴露 MCP 工具。 - 连接 – 将你的编码代理(Claude Code、Codex、Cursor 等)指向该端点,或打开内置仪表板探索健康评分、变更风险和重构建议。
- 迭代 – 随着仓库变化,Repowise 会增量更新索引,无需重新运行完整分析即可保持所有答案最新。
适用人群
| 使用场景 | Repowise 如何帮助 |
|---|---|
| AI 辅助开发 | 代理通过单次调用即可获得预计算、带引用的上下文(例如“谁调用了 auth.validate?”),减少 token 消耗和延迟。 |
| 安全的拉取请求审查 | 自动风险评分、测试影响列表和影响范围图直接显示在 PR 评论中,让审查者专注于真实破坏风险。 |
| 持续代码健康改进 | 健康评分揭示缺陷高发文件;具体重构计划可输入代理或手动应用。 |
| 大型多仓库工作区 | 单个 MCP 端点可服务多个仓库,支持跨服务契约检查和架构强制。 |
| 企业部署 | 核心分析完全在本地运行,无需 API 密钥,AGPL-3.0 许可,企业可选付费支持、安全扩展和 SLA 保证。 |
安装与快速入门
pip install repowise # 获取 CLI 和库
cd /path/to/your/repo
repowise init --no-prose -y # 构建索引(无需 LLM)
repowise serve # 启动本地 MCP 服务器
# 示例查询
repowise risk main..HEAD # 当前 PR 的变更风险评分
repowise health --refactoring-targets # 列出低健康文件及具体修复方案
repowise impacted-tests main..HEAD # 差分的最小测试集
完整说明见 docs/start/QUICKSTART.md。
证据与基准测试
- 代理效率 – 在
django/django仓库上对 43 个问题的研究显示,Repowise 将代理输出减少 31.6 %,工具调用次数从 7.2 → 3.8(p < 0.0001)。 - 负载减少 – 典型提交上下文从 13,984 → 393 个 token(减少 97.2 %)。
- 缺陷预测 – 健康引擎的 49 个检测器基于真实缺陷语料库校准;仓库内验证显示,最低健康文件中最近缺陷的富集度为 3.3×。
- 图准确性 – 在 37,853 个 Oracle 边上与 5 个其他工具对比;Repowise 在所有 7 个编译器评分单元中均达到最高精度。
- 所有基准数据、方法和局限性均在
docs/BENCHMARKS.md中公开。
许可与可用性
- 开源 – AGPL-3.0(源码在 GitHub,PyPI 包
repowise)。 - 自托管 – 核心分析在本地运行,无需外部 API 密钥或云服务。
- 商业选项 – 企业可选付费支持、安全扩展和 SLA 保证。
学习更多
- 实时演示 – https://repowise.dev(无需登录)。
- 文档 – https://docs.repowise.dev
- GitHub 仓库 – https://github.com/repowise-dev/repowise
- PR 机器人安装 – https://github.com/apps/repowise-bot
总结 – Repowise 将仓库转变为一个确定性知识库,AI 代理和开发者可即时查询,降低 token 成本,提升安全性,并在不向远程 LLM 发送代码的情况下提供具体、可执行的修复方案。
相关
- 项目
- 项目
- 项目
- 项目
- 项目