已有代码库 × Coding Agent — 在实现之前

Coding Agent 能把​改动做完,也会​顺手做掉​没人批准过的​决定。

Forge 在 Coding Agent 修改已有系统之前,找出代码无法替人回答的取舍,让有权限的人先做决定。交给 Agent 的,只有已经批准的实现边界。

面向用 Coding Agent 维护、修改已有系统的开发者、Tech Lead,以及决定需求的人。

Spring PetClinic 的城市搜索

为什么这是问题

不是没看到,是没问就决定了。

在 Forge 自己的 baseline 评估里,我们把对已有 Spring PetClinic 的 3 个小改动需求,各用一句话交给 Coding Agent(不用 Forge)。影响范围它几乎都找到了(3 个题目只漏了 1 处)。问题出在别的地方。

26
Agent 没问人就自己定下的需求、业务或范围判断。只统计有两个以上选项、选哪个都能跑起来的情况。
0
3 个题目中,Agent 在实现前向人确认的次数。
0 / 21
21 个本该由人决定的问题里,在实现前交到人手里的数量。大多写在了完成报告里 — 在实现结束之后。

这些数字说明什么、不说明什么

  • 来源是 Forge 的 F0 baseline 评估(2026-08)。题目只有同一个仓库上的 3 个,是有限的实验。
  • 改动的文件和 diff 经 git 验证;测试数量等是 Agent 自己报告的,没有重跑。21 个问题中有 11 个是根据 Agent 的完成报告事后登记的。
  • 它只说明「在实现之前,需要人决定的判断被跳过了」。我们不声称用了 Forge 代码会更好、bug 会更少或开发会更快 — 经过 Forge 的那一侧还没有做对比。

实例

给饲主搜索加上城市条件

对 Spring PetClinic(固定版本 88e37c1)的一个小改动。已有系统里再普通不过的需求。

  1. 1调查
  2. 2人的决定
  3. 3实施方针草案
  4. 4批准

2不用 Forge 的 Coding Agent 实际做了什么

F0 baseline 记录(C4)。起点 88e37c1 → 结果 a894c3c

  • 完成实现。6 个文件(+182 / −42)git 验证
  • 改了已有方法 findByLastNameStartingWith 的签名git 验证
  • 测试 73 → 81 个,全部通过Agent 自己报告
  • 向人确认:0 次记录

实现一次都没有卡住。但在这个过程中,已经有 7 个没人批准过的决定被做掉了。

Agent 自己决定的事

  1. 城市用前缀匹配
  2. 姓氏和城市两个条件用 AND 组合
  3. 搜不到结果时,错误显示在哪里
  4. 顺手修掉已有的分页问题(超出需求范围)
  5. 不给 city 加索引
  6. 大小写:只有城市不区分,姓氏保持现状
  7. 只搜到 1 条时自动跳到详情页的行为,原样保留

1–6 写在了完成报告里,7 没有写。每一个选择都可能是合理的 — 问题在于,人是在实现结束后才知道的。

3Forge 在写代码之前,把 3 个问题交还给人

不是什么都问。只拦下会改变「被批准的行为」本身的判断。

  1. 城市和输入值怎么匹配

    城市搜索目前还不存在。代码里没有依据说明姓氏的前缀匹配可以套用到城市上。

    Agent 当时:选了前缀匹配
  2. 姓氏和城市怎么组合(包括一个或两个为空的情况)

    这个代码库里没有组合两个条件的先例。

    Agent 当时:选了 AND
  3. 搜不到结果时,错误显示在哪里

    现在的错误挂在姓氏栏上。两个条件的搜索结果,不能归到其中某一栏。

    Agent 当时:自己定了归属

4由你来决定

未批准 · 等待决定

新的城市条件,应该怎样和输入值匹配?

需求里没写,代码也决定不了。需要有权决定需求的人来判断。

没有正确答案,也不打分。选完之后,下面的实施方针草案会重新组装。

其余问题在本 Demo 中已由人决定(公开 Artifact 中的值)

  • 组合:AND。可以只按城市搜索;两个都为空时返回全部饲主
  • 搜不到结果:在整个表单上显示 notFound 错误
  • 大小写:只有城市不区分。姓氏的现有行为不变

5实施方针草案

请先决定匹配方式。

根据

这个判断来自代码的哪里

Forge 的每个判断都对应到固定版本里真实代码的位置,而不是 LLM 的猜测。

这个实例的成果物(人工整理的公开 Artifact) 调查结果 project_context.json 决定之前的问题 gaps.json 批准后的交接包 implementation_package.json

就这些根据向 Forge 提问 只参考已公开的成果物(最多 2 个来源)作答,不用参考项目的一般知识来补。 这个 Demo 的回答目前只有日文。

要提问的需求

问题示例

只发送问题文本。模型、Prompt 和参考的成果物都在服务器端固定。

选一个问题示例,或者就这个需求提问。

现状

现在已有的

  • 在实现之前,找出需要人决定的问题
  • 把人的决定记录下来:对应哪个问题、是谁的判断
  • 整理成实施方针草案,经人批准后交给 Coding Agent

公开的是人工整理的 3 个需求的成果物,以及能回答相关问题的 Ask Forge。它不是能分析任意仓库的实现。

交给 Coding Agent 之前,该决定的事由人来决定。