一个代码仓库锐评工具 Repo-Roast
一个代码仓库锐评工具 Repo-Roast
最近整理了一个 Claude Code Skill,名字叫 Repo-Roast。
目标很直接:给一个仓库地址,出来一份有观点、带评分、有证据的锐评报告。
不是 lint,不是静态分析——是模拟一个写了 20 年代码、review 过 10000+ PR 的 Tech Lead,在认真看完你的仓库后说真话。
输入仓库地址 → Scout 侦察画像 → 5 个 Sub-Agent 并行审查 → Editor 汇总报告 |
为什么做这个
现有工具各管一摊,没人看全局:
- SonarQube 静态规则扫得快,但不会说人话,没有语义理解
- CodeScene 看热点,但不读代码内容
- ESLint/Prettier 管格式,只管对不对,不管好不好
缺一个能从架构、安全、性能、可读性、工程化五个维度做语义级审查,还带人格和观点的工具。
它怎么跑的
三阶段流水线:
Phase 1: Scout — 单 Agent,≤10 次工具调用,快速建立项目画像。读 README、目录结构、构建配置、CI 配置、Git 历史。不读实现代码,只建立画像 JSON。
Phase 2: Deep Dive — 5 个 Sub-Agent 并行启动,各负责一个维度:
- 架构审查:模块依赖、分层、循环依赖、扩展性
- 安全审查:硬编码密钥、注入点、输入校验、依赖漏洞
- 性能审查:N+1 查询、算法复杂度、资源泄漏、缓存策略
- 可读性审查:命名质量、函数长度、注释密度、风格一致性
- 工程化审查:测试覆盖、错误处理、文档、配置管理、Git 工作流
每个 Sub-Agent 独立上下文窗口,输出严格 JSON,互不干扰。
Phase 3: Editor — 单 Agent 汇总,计算综合评分,筛选 Top 10 问题,写成报告。
五条铁律
不是建议,是底线。违反任何一条视为审查失败:
- 有据可依 — 每个批评必须带文件名 + 行号。没有证据的批评是诽谤
- 有褒有贬 — 只喷不夸是情绪发泄。亮点必须认,烂处必须说
- 拒绝模糊 — 禁止"可能存在"“或许可以”。确认有问题就说,否则闭嘴
- 对事不对人 — 评代码,不评作者
- 给出路 — 指出问题必须附带修改建议,哪怕是方向性的
审查视角(Flavor)
同一个仓库,不同视角看到的问题不同:
- default — 老炮工程师:直率、有观点。过度设计?简历驱动开发?依赖膨胀?
- google — Google 工程文化:可读性优先、80%+ 覆盖率、style guide 合规
- startup — 硅谷创业公司:MVP 可交付性、技术债可不可控、上手成本
- oss-maintainer — 开源维护者:CONTRIBUTING 指南、社区友好度、onboarding 体验
评分体系
S/A/B/C/D 五级:
| 等级 | 含义 |
|---|---|
| S | 该维度几乎完美,可作为参考实现 |
| A | 优秀,偶有小瑕疵 |
| B | 良好,有明显改进空间 |
| C | 及格,问题较多 |
| D | 不及格,需要重构 |
综合评分由各维度按 Flavor 权重加权聚合。
大仓库自适应
不是所有仓库都值得逐文件扫描:
| 代码行数 | 深度 | 审查范围 |
|---|---|---|
| < 5,000 | deep | 全部源文件 |
| 5,000 – 50,000 | standard | 核心模块 |
| > 50,000 | quick | 热点文件 top 20 + 入口 + 配置 |
热点文件通过 git log --stat 分析高频改动文件得出。
用法
# 基础 |
技术实现
纯 Markdown/JSON,零代码依赖。跑在 Claude Code Agent 框架上,利用 Sub-Agent 并行能力。
关键设计决策:
- Sub-Agent 之间不通信,避免复杂度
- Sub-Agent 只输出 JSON,便于 Editor 解析
- Phase 1 严格限制工具调用次数(≤10),控制 Token 消耗
- 120 秒软超时,超时的维度标记为
timeout,不阻塞报告生成 - Editor 阶段抽查 issue 引用的文件是否存在,防幻觉
后续计划
- 历史对比:两次锐评的 diff,看质量是变好还是变差
- 自动修复:不只说问题,直接生成 patch
- CI 集成:push 代码自动生成锐评报告
- 飞书/Slack 集成:报告推送到频道
仓库地址:https://github.com/haodehaode378/ruiping-skill
如果你有想被锐评的仓库,欢迎丢过来。你提的 bug/建议,我会优先排进下一版。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 好的好的378的博客!
评论
