- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
複数の AI エージェントを並列で動かしていると、あるパターンが現れます。権限は承認され、エージェントは作業を続けますが、実際に何をしたかを誰も体系的にレビューしないまま、かなり時間がたってしまうのです。
差分を見る頃には、パターンができあがっています。
- あるエージェントは、不要なデバッグ出力を追加していた
- 別のエージェントは、関係ないファイルを整形し続けていた
- 3つ目は進んではいたが、もっと早く方向を正すべき方向に進んでいた
役立つのは、こうしたパターンがセッションをまたいで広がる前に捕まえる、モバイル中心のレビューワークフローです。
要点
- 大きなターンのあとや区切りのよいところで、エージェントが変えた内容をレビューする
- スマホから Happier の差分レビューを使う(SSH 不要)
- パターンを確認する: 整形だけの変更、範囲の広がり、デバッグの残骸
- 何時間もたってからではなく、コンテキストが新しいうちにミスを捕まえる
- 複数のエージェントがいるなら: 毎日すべてのセッションをレビューして、セッションをまたぐパターンを見つける
課題
AI エージェントは速く動きます。それが目的です。
でも速いということは:
- 変更がすぐに溜まる
- 完全な差分ではなく、説明を見て権限を承認する
- git diff を見る頃には、何十ものファイルが変わっている
- 「エージェントが脇道にそれている」と気づくのが遅すぎる
高くつく失敗は、1つの悪い変更ではありません。
- エージェントにパターンができる(コメントの付けすぎ、不要なリファクタリング)
- 3時間気づかない
- そのパターンが 4 つのセッションの 6 つのファイルに入っている
- 戻すには、コンテキストを説明し直す必要がある
よくある方法とトレードオフ
- 1日の終わりにレビューする: 遅すぎます。パターンはもう広がっています。
- SSH で git diff を実行する: 使えますが、モバイルでは面倒です。急いで見落としがちです。
- GitHub の PR の差分: 最終レビューには良いですが、コミットする前に確認したいものです。
- エージェントを信じる: 速いですがリスクがあります。品質はタスクの複雑さで変わります。
Happier のモバイル差分レビューはこれを解決します。
- SSH なしでスマホから差分を見られる
- 毎ターン後、または決まった時間にレビューできる
- セッションのコンテキストと並べて見られる
- すぐに変更を依頼できる
Happier を初めて使う場合
Happier は、Claude Code、Codex、OpenCode などの AI コーディングエージェント向けのオープンソースのコンパニオンアプリです。
ここでのワークフローは、エージェントは自分のマシンで動き、Happier がスマホに変更内容を見せ、問題が積み重なる前に気づける、というものです。
セットアップ:
- スマホから Happier を使う方法
- GitHub: https://github.com/happier-dev/happier
- インストール/ダウンロード: https://github.com/happier-dev/happier#how-it-works
- Discord(コミュニティとサポート): https://discord.gg/W6Pb8KuHfg
手順: スマホからエージェントの変更をレビューする
1) セッションを開く
Happier アプリで:
- レビューしたいセッションをタップする
- 現在のターンが終わるのを待つ(または実行中に開く)
2) 差分レビューを開く
差分/変更への入り口を探します。
- セッションのトランスクリプトでは、ターンの要約に変更の表示があることがある
- セッションの情報/詳細には、変更ファイル数が表示されることが多い
- スワイプまたはタップで差分の画面を開く
3) 変更されたファイルをレビューする
差分の画面には次が表示されます。
- どのファイルが変わったか
- 行ごとの追加と削除
- シンタックスハイライト
- ファイルパスのコンテキスト
モバイルでは:
- ファイルを1つずつスクロールする
- リスクの高い変更(コアロジック、設定ファイル)に集中する
- 安全な変更(テスト、コメント)はざっと見る
4) パターンを探す
早めに捕まえたい、エージェントによくあるパターン:
デバッグの残骸:
# Added debug print the agent forgot to remove
print(f"DEBUG: user_id={user_id}")整形だけの変更:
- existing_function()
+ existing_function(
+ )ロジックは変わっていないのに、すべての行が変更扱いになります。
範囲の広がり:
# You asked to fix auth.py
# Agent also reformatted database.py, models.py, utils.pyコメントの付けすぎ:
# Initialize the variable
x = 0
# Increment the variable
x += 1不要な複雑さ: エージェントが 5 行を、作り込みすぎた 20 行の抽象化に置き換えた。
5) 見つけたことに対応する
変更が良さそうなら:
- 次のセッションやタスクに進む
- 区切りのよいところならコミットする
問題を見つけたら:
- エージェントに返信する:「続ける前に auth.py からデバッグ出力を消して」
- または:「database.py の整形の変更を戻して。そのファイルは範囲外だった」
- コミットする前に、エージェントが直せます
複数のエージェントを並列で動かすときのワークフロー
3〜5 個のエージェントを同時に動かしているとき:
朝の確認
- 各セッションを開く
- 各エージェントが夜の間にしたことをレビューする
- セッションをまたぐパターンを見つける
見つかることの例:
「3つのエージェントすべてが型ヒントをばらばらに付けている。2つは
typing.List、1つはlist。基準を決めよう。」
昼のレビュー
- ターンを終えたセッションを確認する
- その差分をレビューする
- 次のステップを承認するか、修正を依頼する
1日の終わりの監査
- すべてのセッションの、コミットしていない変更をすべてレビューする
- セッションをまたぐパターンを探す
- きれいな作業はコミットし、残りは直すか捨てる
注意したい品質のパターン
ファイル選択の正確さ
エージェントは、想定どおりのファイルに触れた?
良い例:
- auth の修正を頼んだ
- 変更されたのは:
auth.py、auth_test.py
危険信号:
- auth の修正を頼んだ
- 変更されたのは:
auth.py、database.py、utils.py、config.py、README.md
変更の粒度
変更は絞られている?それとも広がっている?
良い例:
- 50 行の関数を変更、3 行が変わった
危険信号:
- 50 行の関数を変更、45 行が変わった(編集のはずが書き直しになっている可能性)
テストのカバー
エージェントはテストを追加/更新した?
良い例:
feature.pyを変更し、feature_test.pyにテストを追加した
危険信号:
- コアロジックを変更したのに、テストの変更がない
コミットの区切り
この作業をきれいにコミットできる?
良い例:
- 1つのまとまった変更で、コミットできる状態
危険信号:
- 関係のない3つの変更が混ざっている
- デバッグ用のコードが残っている
- コメントアウトしたコードが残っている
エージェントのずれを早めに捕まえる
エージェントのずれ: エージェントのタスクの理解が少しずつ変わっていくこと。
兆候:
- 最初の変更: 頼んだとおり
- 2つ目の変更: まだ関係はあるが、範囲が広い
- 3つ目の変更: 頼んでいない隣の問題を解いている
早めに捕まえる場合:
毎ターン後にレビューします。ターン 2 でずれが見えたら、すぐに方向を正します。
「CSV のエクスポートは良さそう。でもインポートの仕組み全体はまだリファクタリングしないで。まずエクスポートをテストしよう。」
早めに捕まえない場合:
最後にレビューします。エージェントは 12 個のファイルにまたがってインポートをリファクタリング済みで、残しても安全なものを解きほぐす必要があります。
モバイルでのレビューのコツ
情報の多いファイルに集中する
変更されたすべてのファイルを1行ずつレビューする必要はありません。
優先順位:
- コアロジックのファイル(認証、ビジネスロジック、API ハンドラー)
- 設定ファイル(すべてを壊しうる)
- テスト(正しいことをテストしているか確認する)
- ドキュメント(リスクが低いので後でレビュー)
変更の数で振り分ける
セッションの変更が:
- 3 ファイル、50 行: 今すぐ、さっとレビュー
- 12 ファイル、300 行: 今すぐ、コアのファイルに集中してレビュー
- 50 ファイル、2000 行: おそらく整形かリファクタリング。主要な 5 ファイルを抜き取りで確認
自然な区切りでレビューする
エージェントが止まっていない限り、ターンの途中ではレビューしないこと。
レビューするのは:
- エージェントがターンを終えて、次は何かを聞いてきたとき
- エージェントがまとまった節目に達したとき
- 次の大きな権限を承認しようとしているとき
トラブルシューティング
症状: アプリから差分が見えない
考えられる原因:
- Happier がアクセスできないマシンでセッションが動いている
- Git リポジトリが初期化されていない
- このセッションの種類では差分の画面が使えない
対処:
- セッションのマシンに到達できるか確認する
- セッションが Git リポジトリの中にあるか確認する
- セッションの種類が差分レビューに対応しているか確認する
症状: 変更が多すぎてモバイルでレビューできない
考えられる原因:
- エージェントが大規模なリファクタリングや整形をした
- 複数のターンがまとまっている
対処:
- 振り分ける: まずコアのファイルに集中する
- 完全なレビューはデスクトップに切り替える
- または: エージェントにファイルごとの変更の要約を頼む
症状: エージェントが同じミスを繰り返す
考えられる原因:
- エージェントへの指示で、そのパターンに明示的に触れていない
- エージェントがプロジェクトのスタイルガイドを持っていない
対処:
- スタイルのルールを書いた
AGENTS.mdを作るか更新する - はっきり伝える:「デバッグ出力を追加しないで」「範囲外のファイルを整形しないで」
- 修正を伝えたら、次のターンでエージェントが理解したか確認する
よくある質問
すべてのターンをレビューすべきですか?
いいえ。まとまった区切りでレビューします。
- サブタスクを終えたあと
- コミットする前
- 複数のターンが溜まったとき
- エージェントを切り替えるとき
探索的な作業ならレビューは少なめに。本番のコードなら多めに。
何時間もたってからミスを見つけたら?
エージェントに直してもらいます。
「auth.py の 45 行目にデバッグ出力を追加しているね。消して、ほかにもないか確認して。」
またはファイルを戻します。
git checkout HEAD -- auth.pyそれから、その変更だけをやり直すようエージェントに頼みます。
Happier なしでもレビューできますか?
はい。
git diff
git statusただ、モバイルでは SSH と git は Happier の UI に比べて扱いにくいです。
すべてのエージェントで使えますか?
Git リポジトリで動くエージェントならどれでも使えます。
- Claude Code
- Codex
- OpenCode
- カスタムエージェント
差分は標準の git の出力で、エージェント固有のものではありません。
複数のエージェントの作業をどうレビューしますか?
スマホから:
- Happier を開く
- 各セッションの最近の変更を確認する
- 食い違うパターンや重なった編集を探す
またはデスクトップから:
git diff main
git log --oneline --graph