検証
エージェントの作業中に新たなリグレッションを検出。
ファイルを保存するたび、あるいはエージェントがタスクを完了するたびに、Panolayer はその変更を、コードベースの実際の構成に照らしてチェックします。変更された関数、それを呼び出すコード、そしてそれぞれが期待していることを確認します。何がなぜ壊れたのかが数秒でわかり、エージェントはあなたの承認なしに作業をブランチにマージできません。
エージェントが getUser() を、例外を送出する代わりに null を返すように変更します。
コンパイルは通り、getUser のテストも合格したままです。しかし、チェックなしで user.name を読んでいる 6 か所は、ステージングに至るまで問題に気づきません。
Verification Engine の仕組み
検証は、あなたのコードについて決して間違えようのない唯一のもの、つまりコードそのものから始まります。
ソースから解析されたアーキテクチャ上で実行されるため、各関数、それを呼び出すもの、それが依存するものを把握しています。Panolayer は、新たなリグレッションと、もともと存在していたものを区別します。永続メモリーにより、あなたが加えた修正はすべてプロジェクトに残るため、使えば使うほど検証の精度が上がります。
コードを解析
期待する内容を特定
すべての変更をチェック
新しいリグレッションは既存のものと分離して管理
01
コードからコンテキストを構築
エージェントに見えるのは、渡されたファイルだけです。Panolayer は、ファイル、モジュール、関数、クラス、インポート、完全なコールグラフを含め、コンパイラと同じようにリポジトリを解析します。getUser() が 6 か所から呼び出されていること、そしてそれぞれの正確な場所を把握しています。モデルが推測したからではなく、シンボルを解決したからです。これは「アーキテクチャ」で参照するものと同じアーキテクチャです。

02
コードが何を期待しているかを割り出す
Panolayer の永続メモリーにより、ルールは実行をまたいで保存されます。独自のルールを追加したり、誤っているルールを修正したりできます。

03
何が壊れたのかを正確に把握
失敗を開くと、関数、ルール、代わりに何が起きたか、場所、影響を受ける呼び出し元が、その裏付けとなるエビデンスとともに表示されます。
設定されている場合、検証ではテスト、ビルド、型チェックの実行、ブラウザでのフロントエンドの変更の読み込み、スクリーンショットと参照画像との比較も行えます。

04
ベースラインと比較
すべての結果は変更前のコードベースと比較されます。そのため、もともと存在していた失敗には「既存」のラベルが付いたままとなり、今回の変更で壊れたものだけを追いかければよくなります。
05
コードを修正するか、ルールを修正する
コードが間違っている場合は、自分で修正するか、失敗と影響を受ける呼び出し元をコンテキストとして Panolayer Agent に修正を依頼します。ルールが間違っている場合は、ルールを修正します。どちらの場合も、結果は再び検証されます。
エージェントは、あなたの承認なしに自分の作業をブランチにマージすることはできません。マーケットプレイスのエージェントは、メインツリーへの経路がないコンテナ内で実行されます。Mac 上の CLI エージェントは指示によって保留されます。チェックが失敗していても、あなたはいつでもコミットし、エージェントの作業をマージできます。
「構築」について詳しくよくある質問
ルールとは何ですか?
コードの一部がどう動作すべきかについての期待値です。たとえば「user を返すか例外を送出する。null は決して返さない」といったものです。Panolayer はほとんどのルールをコードから導き出し、独自のルールを追加することもできます。ルールは保持され、変更のたびに実行されます。
独自のルールを書けますか?
はい。Panolayer がコードから導き出したルールに加えて、独自のルールを追加できます。
ルールが間違っている場合はどうなりますか?
修正してください。修正は維持され、そのリポジトリの今後の検証に反映されます。
検証はどのくらい速いですか?
結果は数秒で返ってくるため、タスクから離れることなく、チェック、修正、再チェックを繰り返せます。
検証はいつ実行されますか?
ブランチ上でファイルを保存したとき、そしてエージェントがタスクの完了を報告したときです。
コードはモデルに送信されますか?
リポジトリと、Panolayer が作成するそのインデックスは、同期または共有しない限りあなたの Mac 上にとどまります。モデルを使用する機能は、関連するコードの抜粋とプロンプトを、設定したプロバイダーにそのプロバイダーの規約に基づいて送信します。
詳しくはセキュリティページへマージはブロックされますか?
保留されるのはエージェントであり、あなたではありません。エージェントは、あなたの承認なしに自分の作業をブランチにマージすることはできません。あなたはいつでもコミットしてマージできます。