既存のコードベース × Coding Agent — 実装の前に

Coding Agent は実装を終える。誰も承認していない決定と一緒に。

Forge は、Coding Agent が既存システムを変更する前に、コードだけでは答えられない取捨選択を見つけ出し、権限のある人に先に決めてもらいます。Agent に渡すのは、承認された実装の範囲だけです。

既存システムを Coding Agent で保守・変更する開発者、Tech Lead、仕様を決める人のために。

Spring PetClinic の市区町村検索

なぜ問題か

見落としではない。聞かずに決めている。

Forge 自身の baseline 評価で、既存の Spring PetClinic への小さな変更要求 3 件を、1 文ずつ Coding Agent に渡しました(Forge なし)。影響範囲はほぼ正確に見つけました(見落としは 3 件で 1 箇所)。問題は別の場所にありました。

26
Agent が人に聞かずに決めた、仕様・業務・範囲の判断。選択肢が 2 つ以上あり、どちらを選んでも動くものだけを数えています。
0
3 件を通して、Agent が実装前に人へ確認した回数。
0 / 21
人が決めるべきだった論点 21 件のうち、実装前に人へ渡ったもの。多くは完了報告に書かれていました — 実装が終わった後で。

この数字が示すこと・示さないこと

  • 出典は Forge の F0 baseline 評価(2026-08)。題材は 1 つのリポジトリに対する 3 件だけの限定的な実験です。
  • 変更ファイルと diff は git で検証済み。テスト件数などは Agent の自己申告で、再実行していません。21 件の論点のうち 11 件は、Agent の完了報告から事後に登録したものです。
  • 示しているのは「実装前に、人が決めるべき判断が素通りされる」ことだけです。Forge を使うとコードが良くなる・バグが減る・速くなる、とは主張しません。Forge を通した側の比較はまだ実施していません。

実例

飼い主検索に、市区町村を追加する

Spring PetClinic(固定リビジョン 88e37c1)への小さな変更。既存システムの、ごく普通の要件です。

  1. 1調査
  2. 2人の決定
  3. 3実装方針案
  4. 4承認

2Forge なしの Coding Agent が、実際にやったこと

F0 baseline の記録(C4)。起点 88e37c1 → 結果 a894c3c

  • 実装を完了。6 ファイル(+182 / −42)git で検証
  • 既存メソッド findByLastNameStartingWith のシグネチャを変更git で検証
  • テスト 73 → 81 件、すべて通過Agent の自己申告
  • 人への確認:0 回記録

実装は一度も止まらなかった。けれどその途中で、誰も承認していない決定が 7 つ下されていた。

Agent が自分で決めたこと

  1. 市区町村の照合を前方一致にする
  2. 姓と市区町村の条件を AND で組み合わせる
  3. 0 件のときのエラーをどこに出すか
  4. 既存のページング不具合を、同じ変更で直す(要件の範囲外)
  5. city に索引を付けない
  6. 大文字・小文字:市区町村だけ区別しない。姓は今のまま
  7. 1 件だけ見つかったら詳細へ自動遷移する挙動を、そのまま残す

1〜6 は完了報告に書かれていました。7 は書かれていません。どれも選択として妥当でありえます — 問題は、実装が終わった後に知らされたことです。

3Forge は、コードを書く前に 3 つを人に戻す

すべてを質問にはしません。承認される振る舞いそのものを変える判断だけを、実装の前に止めます。

  1. 市区町村を、入力とどう照合するか

    市区町村の検索はまだ存在しない。姓の前方一致を市区町村にも当てはめてよい根拠は、コードにない。

    Agent は:前方一致を選んだ
  2. 姓と市区町村をどう組み合わせるか(片方・両方が空の場合も)

    2 つの条件を組み合わせる前例が、このコードベースにない。

    Agent は:AND を選んだ
  3. 0 件のとき、エラーをどこに出すか

    今のエラーは姓の欄に付く。2 条件の検索結果を、どちらかの欄の責任にはできない。

    Agent は:自分で帰属を決めた

4あなたが決める

未承認 · 判断待ち

新しい市区町村の条件は、入力された値とどう照合しますか?

要件には書かれていません。コードからも決められません。仕様を決める権限のある人の判断が必要です。

正解はありません。採点もしません。選ぶと、下の実装方針案が組み立て直されます。

ほかの論点は、この Demo では人が決定済み(公開 Artifact の値)

  • 組み合わせ:AND。市区町村だけの検索も可。両方空ならすべての飼い主
  • 0 件:フォーム全体に notFound エラー
  • 大文字・小文字:市区町村だけ区別しない。姓の既存の動作は変えない

5実装方針案

先に照合方式を決めてください。

根拠

この判断は、コードのどこから来ているか

Forge の判断は、固定リビジョンの実際のコードの位置に結びついています。LLM の推測ではありません。

この実例の成果物(人手で整理した公開 Artifact) 調査結果 project_context.json 決定前の論点 gaps.json 承認後のパッケージ implementation_package.json

根拠について、Forge に質問する 公開済みの成果物だけを、最大 2 ソースまで参照して答えます。参照プロジェクトの一般知識では補いません。

対象の要件

質問の例

送信するのは質問文だけです。モデル・Prompt・参照する成果物はサーバー側で固定しています。

質問の例を選ぶか、この要件について質問してください。

現在地

今あるもの

  • 実装前に、人が決めるべき論点を見つける
  • 人の決定を、どの論点への誰の判断かが分かる形で記録する
  • 実装方針案をまとめ、人の承認を経て Coding Agent へ渡す

公開しているのは、人手で整理した 3 件の要件の成果物と、それに答える Ask Forge です。任意のリポジトリを解析する実装ではありません。

Coding Agent に渡す前に、決めるべきことを人が決める。