提交整理基准测试工具

该项目用于测试编码代理在将未暂存的更改整理为范围明确、原子性提交方面的能力,并衡量其原子性准确性、令牌和时间效率。

  • by benhuckvale
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 benhuckvale/commit-curation-benchmarking

使用说明

承诺治疗基准

该项目对编码代理进行了基准测试,事实上,这些代理得到了有益的增强 上下文或MCP工具,它们组织混乱的工作树的能力 将未声明的更改转换为范围良好的原子提交。

目标

  • 度量原子性准确性(预期提交的覆盖率)
  • 衡量令牌和时间效率
  • 跨场景比较真实和模拟候选工具
  • 帮助证明及时的策略或MCP工具针对问题进行了调整 提供利益。

快速开始

pdm install

# Step 1: run each candidate tool into a named session
pdm run benchmark-run --session sessions/baseline scenarios/s01_easy tools/mock_perfect.sh
pdm run benchmark-run --session sessions/baseline scenarios/s01_easy tools/mock_one_big_commit.sh
pdm run benchmark-run --session sessions/baseline scenarios/s01_easy tools/mock_wrong_split.sh

# Step 2: evaluate the session (score against spec)
pdm run benchmark-eval sessions/baseline

# Step 3: generate HTML report
pdm run benchmark-report --out report_site/index.html

open report_site/index.html

结构

  • scenarios/ --可复制的凌乱仓库生成器,每个都有 setup.sh 和 spec.json
  • tools/ --候选工具脚本(模拟或真实代理包装器)
  • harness/ --跑步者、评估者和记者
  • sessions/ --累计运行输出(每次运行git repos+meta.json,每次会话eval.json)
  • report_site/ --生成的HTML报告

评分

每个场景的 spec.json 声明 intended_commits 随着 line_matchers.评估员 检查哪些添加的行出现在每个实际提交的差异中,并构建严格的1:1匹配:

工具 预期覆盖范围
模拟完美 1.0
mock_one_big_comit 0.0
mock_wrong_split 0.5

添加新场景

  1. 创建 scenarios/sNN_name/setup.sh --使用初始提交初始化git仓库,然后在工作树中留下混乱的更改。
  2. 创建 scenarios/sNN_name/spec.json --声明 intended_commits 随着 line_matchers.

添加新工具

创建 tools/my_tool.sh。脚本在cwd设置为准备好的仓库的情况下运行,应生成一个或多个 git commits