作業を理解する05 / 20
根拠を確かめる
このページの内容
Agent が「実装済み」と言うだけでは足りません。どの説明にも根拠が付いています。読んだコード、実行したテスト、実行記録、スクリーンショット。ワンクリックで確かめられます。誰かに聞かれても、該当箇所をそのまま示せます。
根拠に含まれるもの
ノートの「根拠」を開きます。ふつう、次のような資料が並びます。
| 資料 | 表示 | クリックすると |
|---|---|---|
| コードの場所 | 関数名、または「ファイル:行」のチップ | 右側にコードパネルが開き、その行が表示される |
| テスト実行などのコマンド出力 | チップ | 出力の全文が、右側の補助バーに開く |
| コードの差分 | チップ | 右側の補助バーに開く |
| スクリーンショットなどの画像 | サムネイル | 拡大して開く |
コマンド出力、差分、スクリーンショットは、Agent が実装中に残した記録から来ています。Noea は各ターンで、どのコマンドを実行し、どのスクリーンショットを撮ったかを保持しているので、説明はそれらを直接引用できます。
コードの場所を見る
文の途中にあるコードの場所は、たいてい openGrace のような関数名や変数名で表示されます。そうでなければ、grace.ts:6-18 のような「ファイル:行」のチップになります。一つの説明が同名の二つのファイルを引用しているときは、チップに親フォルダが加わります。
名前やチップにポインターを合わせると、フルパス、行の範囲、シンボルが見えます。クリックすると、右側にコードパネルが開き、そのファイルの引用された行が表示されます。ファイルがまだ一つの実装ターンが残したままの状態なら、そのターンの変更がファイル全体に重ねて表示されるので、どのターンが書いた行かが分かります。右クリックメニューでは、既定のアプリで開く、Finder で表示する、パスをコピーする、ができます。
コードがその後に移動していれば、チップの行番号と移動先は、現在の位置に追従します。引用されたコードが変わっていて、名前しか見つからないときは、チップが薄く表示されます。ファイルがなくなったり、コードが見つからなくなったりしたときは、チップが薄くなり、取り消し線が付きます。ポインターを合わせると理由が分かります。どちらの場合も、その説明はおそらくもう一度調査が必要です。
根拠がどこまで示すか
資料を見るときは、まずどの種類かを見分けます。
| 資料 | 確かめられること | 気をつけること |
|---|---|---|
| 実装コードやテストコード | コードがどんなロジックを使っているか、テストがどのケースを定めているか | テストコードがあっても、テストが実行された、通ったとは限らない |
| 過去の実行結果 | そのとき何が実行され、結果がどうだったか | その後コードが変わっていれば、結果はもう当てはまらないかもしれない |
| この説明のあいだに行った検証 | この実行の環境と範囲での結果 | 通ったケースは、対象外のケースについて何も語らない |
説明と調査は、主にコードと既存の資料を読むことに頼っていて、毎回テストやビルド、アプリを再実行するわけではありません。Agent が検証するのは、結論が頼る事実がコードを読むだけでは確定できないときだけです。よい根拠は、確かめなかったことを書いています。たとえば「実際の決済事業者に対しては実行していません。請求の結果はテスト用の代替物によるものです。」のようにです。根拠が薄いとき、実装が見つからないとき、意図が曖昧なときは、確かそうに見えるだけの結論を示すのではなく、根拠と注意点でそのことをはっきり述べるべきです。
説明は根拠を伴う調査記録であり、証明書ではない、ということも覚えておいてください。ある Agent が別の Agent の実装を調べたからといって、それだけで結果が確かになるわけではありません。根拠の価値は、開いて確かめられることにあります。説明に「確認済み」と書いてあることではありません。
スクリーンショットと画面
コードだけでは決められない動作もあります。たとえば、通知が本当に画面に出るかどうかです。Agent が実装中にスクリーンショットを撮っていれば、説明はそれを根拠として挙げられます。たとえば「猶予期間中、チーム設定ページの上部に通知が表示される」のようにです。
サムネイルをクリックすると拡大されます。どのページの、どんな状態で、どの実行が残したものかを確認してください。スクリーンショットが証明するのは、そのときの画面の見た目です。その後コードが変わっていれば、画面も変わっているかもしれません。
項目ごとに確かめる
根拠を確かめるときは、項目ごとに次を問いましょう。
- この参照は、意図のこの部分が扱っているものを指しているか。
- テストはどのケースをカバーしていて、エッジケースは含まれているか。
- 結果は、説明の結論を本当に支えているか。
- 根拠は、確かめなかったことを書いているか。
たとえば、猶予期間の根拠には「猶予期間のテストを実行:6件すべて通過」とあり、注意点には「3回目の再試行が成功するケースを扱うテストはありません」とあるとします。その経路は、コードを読んだことだけに支えられていて、実行で証明されていないと分かります。
根拠が足りないとき
重要なケースが抜けていたら、段落にポインターを合わせ、左の「これについて質問」をクリックして、Agent に検証を頼みます。
テストを追加してください。猶予期間の6日目に3回目の再試行が成功し、サブスクリプションが通常の状態に戻り、ダウングレードされないこと。実行したら結果を教えてください。
Agent が終えると、Noea はそのターンを自動で説明します。この設定をオフにしている場合は、段落の左の「調査」をクリックしてください。新しい説明は、この実行を根拠として挙げます。
説明の結論が根拠と合っていない場合や、Agent が意図を読み違えたと思う場合も、ここで質問してください。コードに合わせて自分の意図を変えてはいけません。決めたことを意図に書き込むをご覧ください。