ドキュメントの目次05 / 20

作業を理解する05 / 20

根拠を確かめる

このページの内容

Agent が「実装済み」と言うだけでは足りません。どの説明にも根拠が付いています。読んだコード、実行したテスト、実行記録、スクリーンショット。ワンクリックで確かめられます。誰かに聞かれても、該当箇所をそのまま示せます。

根拠に含まれるもの

ノートの「根拠」を開きます。ふつう、次のような資料が並びます。

資料表示クリックすると
コードの場所関数名、または「ファイル:行」のチップ右側にコードパネルが開き、その行が表示される
テスト実行などのコマンド出力チップ出力の全文が、右側の補助バーに開く
コードの差分チップ右側の補助バーに開く
スクリーンショットなどの画像サムネイル拡大して開く
更新ドキュメントの猶予期間の段落の根拠。読んだコード、テスト実行(6件成功)、実装のときに残したスクリーンショットが並びます。コードの場所をクリックすると、右側にコードパネルが開き、grace.ts のその行が表示されます。

コマンド出力、差分、スクリーンショットは、Agent が実装中に残した記録から来ています。Noea は各ターンで、どのコマンドを実行し、どのスクリーンショットを撮ったかを保持しているので、説明はそれらを直接引用できます。

コードの場所を見る

文の途中にあるコードの場所は、たいてい openGrace のような関数名や変数名で表示されます。そうでなければ、grace.ts:6-18 のような「ファイル:行」のチップになります。一つの説明が同名の二つのファイルを引用しているときは、チップに親フォルダが加わります。

名前やチップにポインターを合わせると、フルパス、行の範囲、シンボルが見えます。クリックすると、右側にコードパネルが開き、そのファイルの引用された行が表示されます。ファイルがまだ一つの実装ターンが残したままの状態なら、そのターンの変更がファイル全体に重ねて表示されるので、どのターンが書いた行かが分かります。右クリックメニューでは、既定のアプリで開く、Finder で表示する、パスをコピーする、ができます。

コードがその後に移動していれば、チップの行番号と移動先は、現在の位置に追従します。引用されたコードが変わっていて、名前しか見つからないときは、チップが薄く表示されます。ファイルがなくなったり、コードが見つからなくなったりしたときは、チップが薄くなり、取り消し線が付きます。ポインターを合わせると理由が分かります。どちらの場合も、その説明はおそらくもう一度調査が必要です。

根拠がどこまで示すか

資料を見るときは、まずどの種類かを見分けます。

資料確かめられること気をつけること
実装コードやテストコードコードがどんなロジックを使っているか、テストがどのケースを定めているかテストコードがあっても、テストが実行された、通ったとは限らない
過去の実行結果そのとき何が実行され、結果がどうだったかその後コードが変わっていれば、結果はもう当てはまらないかもしれない
この説明のあいだに行った検証この実行の環境と範囲での結果通ったケースは、対象外のケースについて何も語らない

説明と調査は、主にコードと既存の資料を読むことに頼っていて、毎回テストやビルド、アプリを再実行するわけではありません。Agent が検証するのは、結論が頼る事実がコードを読むだけでは確定できないときだけです。よい根拠は、確かめなかったことを書いています。たとえば「実際の決済事業者に対しては実行していません。請求の結果はテスト用の代替物によるものです。」のようにです。根拠が薄いとき、実装が見つからないとき、意図が曖昧なときは、確かそうに見えるだけの結論を示すのではなく、根拠と注意点でそのことをはっきり述べるべきです。

説明は根拠を伴う調査記録であり、証明書ではない、ということも覚えておいてください。ある Agent が別の Agent の実装を調べたからといって、それだけで結果が確かになるわけではありません。根拠の価値は、開いて確かめられることにあります。説明に「確認済み」と書いてあることではありません。

スクリーンショットと画面

コードだけでは決められない動作もあります。たとえば、通知が本当に画面に出るかどうかです。Agent が実装中にスクリーンショットを撮っていれば、説明はそれを根拠として挙げられます。たとえば「猶予期間中、チーム設定ページの上部に通知が表示される」のようにです。

サムネイルをクリックすると拡大されます。どのページの、どんな状態で、どの実行が残したものかを確認してください。スクリーンショットが証明するのは、そのときの画面の見た目です。その後コードが変わっていれば、画面も変わっているかもしれません。

項目ごとに確かめる

根拠を確かめるときは、項目ごとに次を問いましょう。

  • この参照は、意図のこの部分が扱っているものを指しているか。
  • テストはどのケースをカバーしていて、エッジケースは含まれているか。
  • 結果は、説明の結論を本当に支えているか。
  • 根拠は、確かめなかったことを書いているか。

たとえば、猶予期間の根拠には「猶予期間のテストを実行:6件すべて通過」とあり、注意点には「3回目の再試行が成功するケースを扱うテストはありません」とあるとします。その経路は、コードを読んだことだけに支えられていて、実行で証明されていないと分かります。

根拠が足りないとき

重要なケースが抜けていたら、段落にポインターを合わせ、左の「これについて質問」をクリックして、Agent に検証を頼みます。

テストを追加してください。猶予期間の6日目に3回目の再試行が成功し、サブスクリプションが通常の状態に戻り、ダウングレードされないこと。実行したら結果を教えてください。

Agent が終えると、Noea はそのターンを自動で説明します。この設定をオフにしている場合は、段落の左の「調査」をクリックしてください。新しい説明は、この実行を根拠として挙げます。

説明の結論が根拠と合っていない場合や、Agent が意図を読み違えたと思う場合も、ここで質問してください。コードに合わせて自分の意図を変えてはいけません。決めたことを意図に書き込むをご覧ください。