コンテンツにスキップ

変更のウォークスルー

差分はファイルパス順に並びますが、それは変更の意味が通る順序であることはほとんどありません。ウォークスルーはこれを並べ替えます。関連する編集をステップにまとめ、各ステップはコードが今までと何が違う動きをするのかを説明し、前のステップの上に次が積み上がる順序で並びます。

説明し、順序を与えるものです。コードを評価したり判定を下したりはしません。それは Review の役割です。

右側のレールのウォークスルーアイコン、または変更パネルとプルリクエストパネルの AI ウォークスルーボタンから開きます。どちらもパネルを開くだけで、ウォークスルーを生成を押すまで何も生成されません。

対象にできる範囲

範囲含まれるもの
未コミットすべてまだコミットされていないもの全部: ステージ済み、未ステージ、新規ファイル
ステージ済み今コミットすれば入るものだけ
未ステージ作業ツリーと新規ファイル
このブランチベースに無い、このブランチのすべてのコミット
プルリクエストGitHub 上に存在する形の変更

このブランチは「未プッシュのコミット」ではなく、プッシュの有無に関わらずブランチがベースに追加したすべてです。そのためコミット後・プッシュ前には、これとプルリクエストは意図的に食い違います。前者はあなたが何をしたかを、後者はレビュアーが今何を見ているかを示します。

範囲ごとに別々に保存されるため、切り替えても失われるものはありません。

モデルの選択

ウォークスルーは既定でスモールモデルを使います。設定 → セッション → 変更ウォークスルーのモデルで別のモデルを選べます。一度だけならパネルのヘッダーからも選べます。リスクの高い変更を、より強いモデルに任せたいときに便利です。

選択肢に出るのは構造化出力を返せるモデルだけです。それが無ければウォークスルーは組み立てられません。差分に対してモデルが小さすぎる場合は、入力を黙って切り詰めるのではなく、理由を示して生成を拒否します。差分の半分だけを見て書かれたウォークスルーは、自信ありげに間違えるからです。

パネルを開き直すと、目の前の内容を生成したモデルが表示されます。したがって再生成は、変更しない限り同じモデルで繰り返します。

言語の選択

ウォークスルーは既定でインターフェースの言語で書かれます。パネル上部の言語セレクターはその言語から始まり、1 回のレビューだけ OpenChamber が翻訳されている他の言語に切り替えることもできます。案内は、無理なく読める言語でなければ意味がありません。

翻訳されるのは文章だけです。識別子、ファイルパス、API 名はコードにあるままなので、ストップが指し示すものはそのまま検索できます。

選んだ言語でまだ何も生成されていない場合、パネルは空にならず、手元にあるウォークスルーを表示したままその旨を伝えます。ウォークスルーを生成 を押すと、新しい言語で生成されます。

コストとキャッシュ

勝手に生成されることはありません。生成はあなたが求めたときだけ始まり、再生成も手動です。

結果は差分の正確な内容に対してキャッシュされます。作業ツリーを以前の状態に戻せば、そのときのウォークスルーがモデル呼び出し無しで戻ります。言語とモデルもこのキーの一部なので、組み合わせごとに別々に保存されます。ある差分に 2 つの言語のウォークスルーができれば、その切り替えは即座で無料です。

生成はブラウザのタブではなく OpenChamber サーバー上で動きます。ページを再読み込みしてもパネルを閉じても処理は続き、戻れば結果が待っています。止められるのはキャンセルだけです。

古くなったことを正直に示す

各ステップは説明対象のコードの正確な内容に紐づいているため、そのコードが動いたことをパネルが伝えられます。

  • 古くなったステップ — ステップが説明していたコードが変わった、あるいは無くなった。ウォークスルーは印を付けたまま表示され、再生成するかはあなたが決めます。
  • 未対応 — 現在の差分のうち、どのステップも説明していない変更。生成後に加えた編集、ウォークスルーが定型的と判断した変更、そして意図的にモデルへ渡していないロックファイルなどの生成物が含まれます。すべて末尾に一覧されるので、黙って消えるものはありません。

再生成は継ぎ当てではなく書き直しです。前回のウォークスルーが文脈としてモデルに渡るため、まだ正しい部分は残り、すべてが現在のコードに紐づけ直されます。

補足

  • 差分ビューと同じように任意の行にコメントできます。コメントはチャットの入力欄に添付されます。
  • デスクトップとタブレット幅で利用できます。VS Code 拡張とモバイルアプリでは提供されません。
  • プルリクエストのウォークスルーには GitHub アカウントの接続が必要です。GitHub の Issue と PR を参照してください。

関連