エージェントが繰り返し直せなかった場所は、人間にも読みにくい場所。命令ファイルではなくコードにコメントを足す
Cloudflare のブログに「How we built a software factory to drive Astro’s GitHub issue count to zero」という記事が出ました(Matthew Phillips、2026-08-04 公開、2026-08-21 取得)。Astro のリポジトリで自動トリアージを数か月回して、未解決 issue を 200 件超から約 30 件まで減らした話です。 仕組みの話として読めますが、私が持ち帰ったのは別のところでした。エージェントが繰り返し失敗した箇所を、エージェントの成績ではなく、そのコードが人間にとっても読みにくい場所の印として扱っている点です。 自分の保守しているコードベースにエージェントを入れていて、失敗が積み上がっている人向けです。先に要点だけ: エージェントが同じ箇所で繰り返し間違えたとき、原文はそれを3つのうちどれかの印として読む。境界が不透明な抽象、説明の無いコード、足りないテスト。どれも人間にとっての読みにくさと同じもの 直し方は命令ファイルに規則を足すことではなく、コードにコメントとテストを足すこと。原文には、ある if 条件の意味を説明するコメントを足したら、エージェントがその場所で誤った書き換えをしなくなった、という例がある この直し方だと、次に来る人間も同じだけ楽になる。命令ファイルを育てる直し方では、次のエージェントしか得をしない 記事が書いていること 以下はすべて上記 URL、2026-08-21 取得。 数字はこうです。「未解決 issue を 200 件超から約 30 件に減らし、来月中にはゼロになる見込み。そうなれば 5 年を超えるこのリポジトリの歴史で初めて」。「issue 破産」を宣言したわけでも、古いチケットを自動で閉じたわけでもない、と明記しています。この数字は私には追試できないので、出典つきの引用として扱います。 パイプラインは4段で、人間がバグを追うときの段取りをそのまま写したものです。 段 やること Reproduce 報告に添えられた再現リポジトリを clone して、報告どおりに起きるか確かめる Diagnose コードにログを仕込み、根本原因の場所を特定する Verify テスト・コメント・ドキュメントを読み、それがバグなのか意図した挙動なのかを判定する Fix 再現を失敗するユニットテストに変換し、アーキテクチャガイドに沿って解を選び、修正する 各段は隔離されたサブエージェントが実行し、発見を report.md に書き出して次の段に渡します。段を分けるのは「バグが実在しないかもしれない場面で解を捻り出そうとする LLM の偏り」を防ぐためだ、と原文は書いています。 修正に至ると pkg.pr.new でプレビュー版を作って issue に投稿し、報告者本人が自分のプロジェクトで動いたと確認したときに初めて pull request が開きます。状態は issue のラベル(triage needed と fix verified)だけで持ち、実装は triagebot-action として切り出されています。設定例ではトリアージ用と検証用に別のモデルが指定されていますが、分けた理由は原文に書かれていません。 ...