# /lagune-prove: 防御専用の概念実証（PoC）

> 検出事項を 1 件ずつ、実行できる防御専用の概念実証（PoC）と、責任ある開示のためのセキュリティアドバイザリに変えます。

正規 URL: https://lagune.ai/ja-JP/docs/commands/prove
言語: ja-JP
原文: https://lagune.ai/docs/commands/prove
最終更新日: 2026-11-03

🧪 detect で見つかった検出事項を 1 件ずつ、責任ある開示に使える、実行可能な防御専用の証拠に変えます。

detect マップにある検出事項ごとに、それ単体で読めるセキュリティアドバイザリと、**安全な経路**を検証するテストを書き出します。そのため、テストは問題が残っている間は失敗し、コードが修正されると成功します。

**ヒント**

**Lagune** のテストは `.lagune/` の下に分離して置かれ、プロジェクト自身のテストスイートとは別に管理されます。

## 実行方法

**すべての検出事項**

```prompt
/lagune-prove
```

**名前を指定した検出事項**

追跡中の検出事項を名前で確認します：

```prompt
npx lagune read list --findings

# Findings
#   ...
#   • ユーザー検索での SQL インジェクション
#   ...
```

```prompt
# 次に、そのうちの 1 つを証明します
/lagune-prove ユーザー検索での SQL インジェクション
```

## 仕組み

各検出事項が指すソースコードを読み、証明できた検出事項ごとに `.lagune/proofs/` の下に 1 つのディレクトリを作ります。各ディレクトリには、ちょうど 2 つのファイルが入ります：

| ファイル                           | 内容                                                                                                                                                  |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `report.test.mjs`（または `.cjs`） | テスト本体。プロジェクトですでに Poku を使っていれば Poku で、そうでなければ Node.js 標準のテストランナーで動くため、何もインストールする必要がない。 |
| `report.md`                        | 自己完結したセキュリティアドバイザリ。深刻度、影響、再現方法、実行コマンドを含み、単体で読める。                                                      |

証明は常に JavaScript で書かれるため、プロジェクトが何の言語で書かれていても、そのまま持ち運べます。インデックスの `README.md` には、すべての証明へのリンクと、それらをまとめて実行する 1 つのコマンドが載っています。

**ヒント**

- **任意かつ独立したコマンド**です。5 つのフェーズのひとつではなく、追跡のチェーンにも含まれません。
- 書き込み先は `.lagune/proofs/` だけです。フェーズの成果物やコードは読み取るだけで、手を加えることはありません。
- テストで問題を再現できない検出事項には証明を作らず、その箇所について [`/lagune-detect`](https://lagune.ai/ja-JP/docs/commands/detect) を実行し、記録を照合して更新するよう促します。
- もう一度実行すると、証明を照合して更新します。なくなった検出事項や、もう再現しない検出事項は、そのディレクトリが削除されます。

**注記**

**呼び出したときにだけ実行されます**：エージェントが自分から開始することはありません。

**detect の結果を前提とする**

prove は [`/lagune-detect`](https://lagune.ai/ja-JP/docs/commands/detect) が作る detect マップを読むため、先に detect を実行してください。

## 防御専用で、許可された範囲のみ

何かを生成する前に、対象をテストする権限があることを確認します。また、実際に動くエクスプロイト、攻撃用のペイロード、検知回避の手段を求める依頼はすべて断ります。証明が示すのは安全な挙動であり、攻撃用の入力を出力することはありません。

## 証明から開示へ

証明できた検出事項の 2 つのファイルは、脆弱性を報告するために、まとめて 1 つの**非公開の GitHub Gist** に入れます。これらはまだ公開されていない、現在も残っている問題の証拠です。そのため、`.gitignore` を `.lagune/proofs/` の中に置いて、どのコミットにも含まれないようにしています。メンテナーが問題を解決するまでは、その Gist を通じてのみ共有してください。

**Lagune** のチェーンで検出事項をクローズするのは、引き続き [`/lagune-harden`](https://lagune.ai/ja-JP/docs/commands/harden) と [`/lagune-verify`](https://lagune.ai/ja-JP/docs/commands/verify) の役割です。prove は証拠を作るだけで、何もクローズしません。

## よくある質問

### Lagune はエクスプロイトを生成しますか？

いいえ。/lagune-prove が書き出すのは防御専用の証拠です。安全な経路を検証するテスト（問題が残っている間は失敗し、コードが修正されると成功します）と、責任ある開示のためのセキュリティアドバイザリです。

### prove は何を出力しますか？

検出事項ごとに 2 つのファイルです。テスト（report.test.mjs または .cjs）と、セキュリティアドバイザリ（report.md）です。

### Lagune が見つけたバグを、責任ある形で開示するにはどうすればいいですか？

prove は自己完結したセキュリティアドバイザリを書き出します。責任ある開示の手順に沿って、非公開の GitHub Gist などの非公開の経路で共有できます。
