gsd:workflow gsd:meta tw-benchmark tw-benchmark、评分、score、评估 Read, Bash, Glob, Grep, Write manifest 加载完成 评估执行完成 评分报告生成 不修改任何业务代码 评分必须基于可量化的标准 失败时必须生成 feedback.md 指导下一轮修复
gsd:goal产出 score.json。通过 → 结束;未通过 → 产出 feedback.md 触发重试
<gsd:phase name="load" order="1"> gsd:step读取 execute/manifest.json gsd:step读取 plan/PLAN.md 了解预期变更 gsd:step更新 workflow.json: scorer.status = "in_progress" gsd:checkpointmanifest 加载完成
<gsd:phase name="evaluate" order="2"> gsd:step运行测试套件(vitest run) gsd:step运行 TypeScript 类型检查(tsc --noEmit) gsd:step检查 manifest 中声称修改的文件是否确实变更 gsd:step收集每个维度的通过/失败数据 gsd:checkpoint评估执行完成
<gsd:phase name="score" order="3"> gsd:step计算综合分数 gsd:step写入 score/score.json gsd:step如未通过,写入 score/feedback.md gsd:step更新 workflow.json: scorer.status = "completed" gsd:checkpoint评分报告生成
tw-benchmark
评分维度
| 维度 | 权重 | 评估方式 | 通过标准 |
|---|---|---|---|
| 测试 | 50% | vitest run |
新增/修改的测试全部通过,无回归 |
| 类型 | 20% | tsc --noEmit |
无新增 TS 错误 |
| 文件覆盖 | 15% | 比对 manifest vs 实际 git diff | PLAN 中列出的文件均已变更 |
| 代码质量 | 15% | 检查空 catch、console.log、TODO | 无明显低质量代码 |
通过线:总分 ≥ 80 分
评分计算
总分 = (测试通过率 × 0.50) + (类型检查 × 0.20) + (文件覆盖 × 0.15) + (代码质量 × 0.15)
每个维度为 0-100 分:
- 测试:
passed / total × 100 - 类型:
无错误 = 100, 有错误 = 0 - 文件覆盖:
已覆盖文件数 / 计划文件数 × 100 - 代码质量:
100 - (issues × 20),最低 0
执行流程
Phase 1: 加载
- 读取
execute/manifest.json获取变更清单 - 读取
plan/PLAN.md了解预期变更范围 - 更新
workflow.json
Phase 2: 评估
- 测试:运行
npx vitest run --reporter=verbose,收集通过/失败数 - 类型:运行
npx tsc --noEmit,检查新增错误(忽略预存的) - 文件覆盖:
git diff --name-only对比 PLAN 中列出的文件 - 代码质量:Grep 检查新增代码中的
console.log、空 catch、TODO 等
Phase 3: 评分
score.json 模板:
{
"taskId": "{slug}",
"scoredAt": "{ISO-8601}",
"totalScore": 85,
"passed": true,
"dimensions": {
"tests": { "score": 100, "detail": "12/12 passed" },
"types": { "score": 100, "detail": "No new errors" },
"fileCoverage": { "score": 80, "detail": "4/5 files covered" },
"codeQuality": { "score": 60, "detail": "2 issues found" }
},
"retryCount": 0
}
feedback.md 模板(仅未通过时生成):
# 评分反馈 - 第 {N} 轮
## 未通过原因
{总结主要问题}
## 详细问题
### 测试失败
- {具体失败的测试和原因}
### 类型错误
- {具体的 TS 错误}
### 文件遗漏
- {未覆盖的文件}
### 代码质量
- {具体问题}
## 建议修复方向
1. {具体修复建议}
2. {具体修复建议}
产出文件
| 文件 | 条件 | 消费者 |
|---|---|---|
score/score.json |
始终 | 编排器 |
score/feedback.md |
未通过时 | tw-planner(重试时) |
workflow.json |
始终 | 编排器 |