⚖️ コードを読み、harden が記録した内容と突き合わせることで、適用した修正が実際に有効かを証明し、有効だった検出事項をクローズします。
実行方法
- すべて検証
- パスを指定
- 優先度で指定
/lagune-verify
/lagune-verify src/routes/upload.ts
/lagune-verify 緊急と重要
仕組み
harden が記録した各箇所のコードを読み、記録の内容と本当に一致しているかを確認します。証明とは、この突き合わせ、つまりコードと記録の照合です。各対策には、次の 3 つの判定のいずれかが下されます:
| 判定 | 意味 |
|---|---|
| ✅ Risk closed | コードが記録の内容どおりに動作している。 |
| ❌ Risk not closed | 対策はまだ完了していない。verify は harden に戻るよう案内する。 |
| ❓ Cannot tell from the code | コードだけでは根拠が確認できない。 |
解消が証明されたリスクは、確認を取ったうえでクローズし、チェーンから外します。たとえば:
- ファイルのアップロード(判定:✅ Risk closed)
- 証明の方法:アップロードのハンドラーを読み、ファイルの内容から実際の種類を判別し、サイズ制限を適用し、それ以外はすべて拒否していることを確認しました。記録の内容と完全に一致しています。
- 根拠:ファイルの内容から実際の種類を判別している
handleUpload関数です。
リスクが解消されていなければ、verify はそのことをはっきり伝え、修正がまだ完了していないため /lagune-harden に戻るよう案内します。
ヒント
- 堅牢化の記録だけを土台にしています。
- コードは判定のために読むだけで、判定を通すために対策を弱めたり、コードを書き換えたりすることは決してありません。
- 再実行すると判定を現状と照合して更新し、古くなった判定は外れ、解消済みでなくなったリスクは再び指摘されます。
- リスクの解消が証明されると、一度だけ確認したうえで、その検出事項をチェーン全体(detect、plan、harden、追跡)から取り除きます。
- 独自のレポートは作成せず、各判定は
.lagune/memory/harden.md内の対応する対策のブロックに記録されます。harden は次回の実行時にそれを読み込みます。
harden に依存
verify は /lagune-harden を土台にしています。
サイクルが閉じる
対象範囲のすべてがクローズされると、サイクルは静止状態になります。再び開くのは、コードが変わったときだけです。セキュリティはクローズ可能なので、このフローは終わりのないループではなく、終着点を持ちます。
よくある質問
/lagune-verify がコードを読み、harden が記録した内容と突き合わせて、Risk closed(リスク解消)、Risk not closed(リスク未解消)、Cannot tell from the code(コードからは判断できない)の 3 つの判定のいずれかを返します。
verify がリスクの解消を証明すると、その検出事項はクローズされます。確認を得たうえでチェーン全体から取り除かれ、以後は再処理されません。
はい。SDH はクローズ可能です。解消が証明された検出事項はクローズされるため、フローは終わりのないループではなく、終着点を持ちます。
