# 記憶の適用と検証

DSHの通常実行では、配信した記憶のうち、検索理由から今回に関係すると判断された記憶について、採否と検証を追跡します。記憶取得は既存のホスト側intakeを使います。Codex用フックや別のAkinatorは追加しません。

## 確認

```text
/kioku-memory-application status
/kioku-memory-application status --json
```

現在のネイティブセッションに属する直近の依頼について、連携、取得結果、未処理の採否、検証、終了未確認の実行を表示します。記憶本文、採否の根拠、コマンド出力、会話ログは診断に表示しません。

`native_active` は、このDSHで診断ハンドラーが動いている状態です。検証結果の `client_observed` はホストが実行結果を観測した記録、`unobserved` はその証拠がない状態です。設定ファイルの存在だけでは実行確認になりません。

取得結果は `delivered`、`capability_withheld`、`no_match`、`out_of_scope`（意味による適用判定で除外）、`filtered`（予算などによる除外）、`no_project_or_global_memory`、`unavailable` を区別します。`no_project_or_global_memory` は対象プロジェクトとglobalの保存件数についての診断で、全プロジェクトの記憶がないという意味ではありません。検索処理の例外は通常の0件へ変換しません。

## モデルの操作

ネイティブツール `task_memory_review` は次の操作を受け付けます。run・セッション・作業ディレクトリはDSHが結び付けます。

- `action: "status"`：配信世代、対象entryとrevision、未処理の項目を取得。
- `action: "review"`：採用、不適用、現在の証拠との矛盾を記録。採用と矛盾には、根拠となるソース・テスト・設定の相対パスが必須。話題が違うため不適用と判断した場合は `paths: []` を使える。現行ソースに依存する不適用判断なら、そのパスを指定する。採用では守る条件、反例、検証方法も必須。
- `action: "review_batch"`：独立した採否を最大32件、1回で記録する。1件でも無効なら全件を取り消す。未処理が複数ある場合は、`status` で確認してからまとめて送る。
- `action: "refresh"`：具体的なエラーや変更対象を使い、同じrunで検索を更新。既存のスコープ、能力判定、配信処理を通す。Coreのプロジェクト限定検索は限定したままにする。

採用記憶があるコード変更では、検証コマンドも記録します。対応する証拠は、リポジトリ直下で実行したネイティブのフォアグラウンド `Bash` / `bash` です。新しい実行権限は付与しません。

計画・コードレビューだけの依頼には実装テストを要求しません。不適用や矛盾の理由はモデルの申告として保持します。正当な過去スキーマfixtureの固定番号は、それだけでは禁止しません。

## 完了と失効

採否が未処理でも、編集・実行の呼び出しは拒否しません。未処理の項目はrunを未完了のままに保ち、`task_memory_review` で解消するまで成功checkpointを拒否します。未処理のまま実行した呼び出しは、以前の実行証拠を失効させます。準備用の既知の読み取りツールと記憶操作は利用できます。シェル文字列を見て任意のコマンドを読み取り専用とは認定しません。

採否・証拠はrun、配信世代、entry revision、review revisionに結び付けます。コマンドと結果はハッシュ、終了状態、対象ファイルの状態で保存し、完全な出力は保存しません。失敗、観測できたskip、background、結果不明、実行中、対象状態の変化は成功証拠になりません。同じコマンドの過去の成功で最新の失敗を隠しません。別runの証拠は利用できません。

同じrunへの再配信で対象entryのrevisionと適用モードが変わらなければ、採否を維持します。新しいentryには採否が必要です。entryの改訂または適用モードの変更では採否の世代が進み、対象全件を再確認します。配信が変わると実行証拠は失効します。検索を狭めても、既に配信した記憶への対応は消えません。申告された関連パスの内容、追加・削除、別の変更操作も確認します。`paths: []` の不適用判断はファイル変更では失効せず、entryの改訂では失効します。パスの走査は申告された対象に限定し、最大2,048項目・16 MiBです。範囲外、symlink、上限超過は検証不能になります。

未処理のまま成功checkpointを要求すると拒否します。通常実行のネイティブターンが終了した場合は `interrupted`、互換アダプターの成功終了は `failed` として記録し、自動継続は要求しません。失敗・中断・キャンセルは終了できます。

migration 023を追加し、既存の記憶・配信・履歴を保持します。新しいネイティブadmissionから適用し、過去のrunを観測済みへ昇格させません。能力一覧は識別情報と説明文の予算を分離し、201件以上でも全識別情報が収まれば受理します。新しいcatalog digestはversion 3です。旧versionとの不一致は検出します。

## 保証の範囲

- 採否、対象パス、反例、コマンドが適切かという意味判断はモデルの申告です。「読んだ」「理解した」「正しく適用した」ことを証明する機能ではありません。
- ファイル状態の確認は申告されたパスに限られます。ネイティブ経路外の変更、一時的に変更して元へ戻す操作、シェル内部でのディレクトリ変更まで完全に隔離・追跡するものではありません。
- 子エージェントは親の観測証拠を作れません。親は自身に結び付いた経路で検証します。入れ子実行や継続中プロセスへの入力は、単独では新しい成功証拠になりません。
- 保護されたLisp専用実行など、対応していない結果形式は未観測のままです。保護を迂回してBashへ切り替える機能はありません。
- 未対応ホスト、無効化・未起動のプラグイン、intake以前に連携を通らない操作には制限をかけたとは表示しません。既に出力された完了文を取り消すこともできません。
- プラグインの通常の登録・解除でツール、診断コマンド、イベントハンドラーを追加・解除します。外部のフック設定やユーザー設定は変更しません。訂正保存・候補承認は既存の記憶保存方針に従います。

ソースの回帰テストでは次のmigration追加による失敗／成功、ネイティブツール境界、再起動、revision、競合、失敗・skip・古い証拠、停止を確認します。パッケージ検査、インストール先への反映、起動中DSHの画面・実モデルでの確認は別の検証です。
