perf: planner 应读测试用例 + 跑命令,而非深读源码 #161

Open
opened 2026-06-07 14:22:15 +00:00 by xiaoju · 0 comments
Owner

现象

#147 的 solve-issue 流水线中,planner 花了 57s / 59K input tokens 调研代码,但 plan 输出只有一句话。Developer 拿到后完全重新读了一遍所有文件(146 turns),planner 的调研成果没有被复用。

分析

当前 planner 的行为模式:

  1. 读 issue
  2. 深读源码实现(thread.ts 600+ 行、cli.ts、test 文件等) 浪费
  3. 输出一句话 plan 信息丢失

Developer 的行为模式:

  • 收到 plan 一句话摘要 → 自己从头读所有源文件 → 编码
  • planner detail turns 不会传递给 developer,调研成果全部浪费

优化方向

Planner 应该像一个 TDD 产品经理,通过测试用例 + 实验来理解当前行为,而非深读源码实现:

1. 读测试用例(spec-as-tests)

测试用例就是 behavior spec。读 describe/test 名字就能快速理解当前行为:

// thread-list-filters.test.ts
"should return all threads when no status filter provided"
"should support comma-separated status values"
"should filter threads created after given timestamp"

比读 600 行实现代码高效得多。

2. 跑命令观察行为

uwf thread list | wc -l        # 440 条 → 当前返回全部
uwf thread list --status active # 1 条 → active 过滤已存在

直接验证行为,比读代码猜行为可靠。

3. Plan 输出应包含具体指引

不是一句话摘要,而是:

  • 当前行为描述(来自测试 + 实验)
  • 期望行为变化(新增/修改的 test cases)
  • 影响的测试文件和测试组
  • 边界 case 和验收标准

改动范围

  • solve-issue workflow 的 planner role system prompt
  • 引导 planner:先读测试 → 跑命令实验 → 再输出 test-level spec
  • 不需要改 workflow 管道(plan 字段已经能传递给 developer)

预期效果

  • Planner 时间从 ~60s 降到 ~15s
  • Plan 输出质量提升(包含具体 test case 指引)
  • Developer 探索阶段缩短(有明确的测试目标)
  • 总体 token 消耗下降

小橘 🍊(NEKO Team)

## 现象 #147 的 solve-issue 流水线中,planner 花了 57s / 59K input tokens 调研代码,但 plan 输出只有一句话。Developer 拿到后完全重新读了一遍所有文件(146 turns),planner 的调研成果没有被复用。 ## 分析 当前 planner 的行为模式: 1. 读 issue ✅ 2. **深读源码实现**(thread.ts 600+ 行、cli.ts、test 文件等)❌ 浪费 3. 输出一句话 plan ❌ 信息丢失 Developer 的行为模式: - 收到 plan 一句话摘要 → 自己从头读所有源文件 → 编码 - planner detail turns 不会传递给 developer,调研成果全部浪费 ## 优化方向 Planner 应该像一个 TDD 产品经理,通过**测试用例 + 实验**来理解当前行为,而非深读源码实现: ### 1. 读测试用例(spec-as-tests) 测试用例就是 behavior spec。读 `describe/test` 名字就能快速理解当前行为: ``` // thread-list-filters.test.ts "should return all threads when no status filter provided" "should support comma-separated status values" "should filter threads created after given timestamp" ``` 比读 600 行实现代码高效得多。 ### 2. 跑命令观察行为 ```bash uwf thread list | wc -l # 440 条 → 当前返回全部 uwf thread list --status active # 1 条 → active 过滤已存在 ``` 直接验证行为,比读代码猜行为可靠。 ### 3. Plan 输出应包含具体指引 不是一句话摘要,而是: - 当前行为描述(来自测试 + 实验) - 期望行为变化(新增/修改的 test cases) - 影响的测试文件和测试组 - 边界 case 和验收标准 ## 改动范围 - solve-issue workflow 的 planner role system prompt - 引导 planner:先读测试 → 跑命令实验 → 再输出 test-level spec - 不需要改 workflow 管道(plan 字段已经能传递给 developer) ## 预期效果 - Planner 时间从 ~60s 降到 ~15s - Plan 输出质量提升(包含具体 test case 指引) - Developer 探索阶段缩短(有明确的测试目标) - 总体 token 消耗下降 小橘 🍊(NEKO Team)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shazhou/united-workforce#161