1要件
「飼主検索が姓だけなのを、市区町村でも絞り込めるようにしたい」
- 今の検索は、姓の前方一致だけ
OwnerRepository.findByLastNameStartingWith - Owner には
cityがすでにあるOwner.city
既存のコードベース × Coding Agent — 実装の前に
Forge は、Coding Agent が既存システムを変更する前に、コードだけでは答えられない取捨選択を見つけ出し、権限のある人に先に決めてもらいます。Agent に渡すのは、承認された実装の範囲だけです。
既存システムを Coding Agent で保守・変更する開発者、Tech Lead、仕様を決める人のために。
Spring PetClinic の市区町村検索
なぜ問題か
Forge 自身の baseline 評価で、既存の Spring PetClinic への小さな変更要求 3 件を、1 文ずつ Coding Agent に渡しました(Forge なし)。影響範囲はほぼ正確に見つけました(見落としは 3 件で 1 箇所)。問題は別の場所にありました。
この数字が示すこと・示さないこと
実例
Spring PetClinic(固定リビジョン 88e37c1)への小さな変更。既存システムの、ごく普通の要件です。
1要件
「飼主検索が姓だけなのを、市区町村でも絞り込めるようにしたい」
OwnerRepository.findByLastNameStartingWithcity がすでにあるOwner.city2Forge なしの Coding Agent が、実際にやったこと
F0 baseline の記録(C4)。起点 88e37c1 → 結果 a894c3c
findByLastNameStartingWith のシグネチャを変更git で検証実装は一度も止まらなかった。けれどその途中で、誰も承認していない決定が 7 つ下されていた。
Agent が自分で決めたこと
city に索引を付けない1〜6 は完了報告に書かれていました。7 は書かれていません。どれも選択として妥当でありえます — 問題は、実装が終わった後に知らされたことです。
3Forge は、コードを書く前に 3 つを人に戻す
すべてを質問にはしません。承認される振る舞いそのものを変える判断だけを、実装の前に止めます。
市区町村の検索はまだ存在しない。姓の前方一致を市区町村にも当てはめてよい根拠は、コードにない。
Agent は:前方一致を選んだ2 つの条件を組み合わせる前例が、このコードベースにない。
Agent は:AND を選んだ今のエラーは姓の欄に付く。2 条件の検索結果を、どちらかの欄の責任にはできない。
Agent は:自分で帰属を決めた4あなたが決める
未承認 · 判断待ち
要件には書かれていません。コードからも決められません。仕様を決める権限のある人の判断が必要です。
正解はありません。採点もしません。選ぶと、下の実装方針案が組み立て直されます。
参考:Forge なしの Agent は、誰にも聞かずに前方一致を選んでいました。
実装方針案がどう変わったかを見るほかの論点は、この Demo では人が決定済み(公開 Artifact の値)
notFound エラー5実装方針案
先に照合方式を決めてください。
Coding Agent に渡すもの
Agent はここに書かれた決定を再推論しません。範囲の外は変えません。
根拠
Forge の判断は、固定リビジョンの実際のコードの位置に結びついています。LLM の推測ではありません。
OwnerRepository.findByLastNameStartingWithOwnerController.processFindFormcity フィールドがあるOwner.cityowners/findOwners.htmlcity 列があるdb/h2/schema.sql · owners.cityOwnerControllerTests
この実例の成果物(人手で整理した公開 Artifact)
調査結果 project_context.json
決定前の論点 gaps.json
承認後のパッケージ implementation_package.json
対象の要件
質問の例を選ぶか、この要件について質問してください。
現在地
公開しているのは、人手で整理した 3 件の要件の成果物と、それに答える Ask Forge です。任意のリポジトリを解析する実装ではありません。
ほかの検証済み要件当日の診療予約(PetClinic) 入れ子文書の復元(Outline)
1 つの変更で下した決定や、repo の外にある組織の規則を、次の変更に持ち込めるようにする — Context Core / Organization Context。