無人で回したエージェントが、夜のうちに 40 ファイル近くを書き換えていました。朝いちばんに開いて、全部の diff を上から読もうとして、すぐに諦めました。チャットログも長く、どこで何を判断したのかを追うだけで時間が溶けていきます。
個人開発で複数のアプリとサイトを並行して回していると、こうした無人実行の「翌朝のレビュー」は毎日の作業になります。問題は変更の量そのものではなく、人間が再びその文脈に入り直すときのコストです。ここでは、全 diff を上から読まずに済むよう、変更をリスク階級で束ねた再入場ダイジェストを設計します。
量ではなく「再入場コスト」が敵
無人実行のレビューがつらいのは、diff が多いからではありません。どこから見れば安全かが分からないからです。40 ファイルのうち、本当に目を凝らすべきは数ファイルで、残りは整形やリネームのような確認不要のノイズだったりします。
ところが diff は、重要な一行も、空白の調整も、同じ見た目で並べてきます。人間はそれを上から順に読み、集中力を後半まで保てません。必要なのは、変更を「人が見るべき順番」に並べ替える層です。
リスク階級で束ねる
私は変更を四つの階級に束ねています。見る順番は、影響が取り返しにくいものからです。
| 階級 | 含まれる変更 | 見る順番 | 確認の深さ |
| 不可逆・外部影響 | push、デプロイ、課金、データ削除、外部 API への書き込み | 最初 | 原物を一行ずつ |
| 契約面 | 公開 API、スキーマ、設定値、依存バージョン | 次 | 変更理由と後方互換 |
| 内部実装 | 関数の中身、テスト、リファクタ | その次 | テストの通過を確認 |
| ノイズ | 整形、リネーム、コメント、import 並べ替え | 最後(飛ばし可) | 件数だけ確認 |
この並べ替えだけで、レビューの体感は大きく変わります。集中力がいちばん高い最初の数分を、いちばん取り返しのつかない変更に充てられるからです。AdMob の設定や課金まわりの一行は、この「不可逆・外部影響」の先頭に来ます。
前回レビュー地点を持つ
毎朝、変更全体を見るのは無駄です。見るべきは「前回自分がレビューした地点より後」の差分だけ。そこで、レビューを終えた地点に印を残します。
# レビューを終えたら、その地点に印を残す
git tag -f reviewed/antigravity HEAD
git push -f origin reviewed/antigravity
# 翌朝、前回レビュー地点以降だけを見る
git diff reviewed/antigravity..HEAD --stat
git log reviewed/antigravity..HEAD --oneline
タグを「前回レビュー地点」として動かしていくと、無人実行が何度走っても、人間はつねに「前回以降の差分」だけを相手にできます。差分の母数が小さく保たれるほど、リスク階級の束ね直しも軽くなります。
ダイジェストはエージェントに「観点」で書かせる
変更の要約自体は、エージェントに書かせて構いません。ただし「何を変えたか」を箇条書きさせても、それは diff の言い換えにしかなりません。書かせるべきは、人間のレビュー観点です。
実行の最後に、次の三つを必ず出力させます。
- 不可逆・外部影響に当たる操作の一覧(なければ「なし」と明記する)。
- 契約面で後方互換を壊しうる変更と、その理由。
- 人間が最初に見るべきファイルと行の指定。
## 再入場ダイジェスト(前回レビュー地点以降)
- 不可逆・外部影響: なし(push は未実行、デプロイなし)
- 契約面: pricing.ts の Article 価格を 250→280 に変更(理由: 指示書の改定。後方互換: 既存購入には影響なし)
- 最初に見る: src/config/pricing.ts L42 / src/lib/premium.ts L18
- ノイズ: 31 ファイルの整形のみ(要確認なし)
このダイジェストがあると、再入場は「最初に見る」に挙がった数ファイルから始められます。全体像はリスク階級が、詳細はそこから辿る、という二段構えになります。
自己申告を、どこまで信じるか
ここがいちばん大切な落とし穴です。エージェントの自己申告ダイジェストは、内部実装やノイズの分類には十分に使えます。ですが、不可逆・外部影響の階級だけは、自己申告を鵜呑みにしてはいけません。
エージェントが「push は未実行」と書いていても、私は必ず git log origin/main と実際のデプロイ履歴を自分の目で確かめます。理由は単純で、いちばん取り返しのつかない操作ほど、誤分類されたときの損害が大きいからです。ダイジェストは入口の地図として使い、不可逆な操作だけは原物で裏を取る。この一線を引いておくと、ダイジェストを信頼しつつ事故を防げます。
私自身、この「不可逆だけは原物確認」を徹底するようになってから、無人実行のレビューにかかる時間が体感で半分以下になりました。安心して飛ばせる範囲が決まると、人は速く正確に読めるようになります。
次の一手として、いま無人で回しているタスクの出力末尾に、上のダイジェスト三項目(不可逆・契約面・最初に見る)を必ず書かせる一文を足してみてください。翌朝の再入場が、どこから手を付けるかで迷わなくなります。