{"id":"cec1c18f-f0e8-4d4a-8805-0aa57bca255f","slug":"agent-personal-vault","kind":"mcp","name":"agent-personal-vault","summary":"Alpha local utility for AI-agent workflows that need raw-free personal-data metadata and explicit one-key retrieval.","owner":"Driedsandwich","repoUrl":"https://github.com/Driedsandwich/agent-personal-vault","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-06-30T20:09:15.000Z","addedAt":"2026-10-21T09:13:58.845Z","logoUrl":"https://avatars.githubusercontent.com/u/214981711?u=73cda1bb1f0e8f2ca71523c008ccc0fe36904995&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["data-analytics","memory-knowledge"],"tags":["ai-agents","local-first","personal-data","privacy-tools"],"runtime":"python","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-21T15:00:25.787Z","sample":false,"url":"https://conduits.dev/tools/agent-personal-vault","language":"Python","transports":["stdio"],"install":{"pypi":"agent-personal-vault"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Agent Personal Vault\n\n日本語タイトル: AIエージェント向け個人情報ローカルVault\n\n`Agent Personal Vault` は、Codex などのAIエージェントがユーザーの個人情報をローカルで管理し、必要な時だけ最小限に参照するためのローカルファーストな管理レイヤーです。\n\n![Agent Personal Vault access flow](docs/assets/apv-flow.svg)\n\n## Alpha Safety Notice\n\nこのプロジェクトはalpha版のローカル実験ユーティリティです。\n\n- 既定では保存データを暗号化しません。\n- 侵害済み端末、共有端末、マルウェア、OSユーザー権限を持つ攻撃者からは守れません。\n- `get` と `env` はraw個人情報を表示します。ログ、Issue、スクリーンショット、外部AI、Subagent指示へ貼らないでください。\n- `get` と `env` は事前に承認された一回限りのconsent tokenを要求します。\n- public alphaの通常導線は、1回のconsentで1 keyだけを取得するone-key raw retrievalです。bulk raw exportはAIエージェントの通常導線ではありません。\n- `get` / `env` / `set` / `unset` / `consent` / GUI操作はraw値なしの監査ログを書きます。状態変更・raw返却を伴う操作はrandom correlation IDで`prepared`、`committed`、`delivered`を記録し、途中失敗は`outcome_unknown`または未完了操作として可視化します。入力した`--purpose`の全文は永続化せず、固定reason codeまたは`[redacted]`とexact-purpose照合用digestだけを保存します。それでも実個人情報は入力しないでください。\n- consent tokenは、同一OSユーザーやシェル実行権限を持つagentに対する強いセキュリティ境界ではありません。信頼できないagentにこのCLIや保存先へのアクセスを渡さないでください。\n- 監査ログの `human_operated` はCLI/GUIなどの承認経路を示すメタデータであり、物理的に人間だけが操作したことの証明ではありません。\n- 保存時暗号化はoptionalです。使う場合は `agent-personal-vault[encrypted]` とpassphraseが必要です。暗号化へ移行するとvault本体に加えてconsent/audit sidecarも保護されます。\n- 法令遵守、本人確認、応募、送信、アップロード、契約、金融、医療、企業利用の安全性は保証しません。\n- GitHub IssueやDiscussionに、氏名、住所、電話番号、メール、顔写真、証明書、実データのスクリーンショットを投稿しないでください。\n\n安全な使い方は「raw値を保存する前に、まず `schema` / `context` / `check` でrawなしの流れを確認する」ことです。\n\n## 5分で試す\n\nまずはdummy値かローカルで扱ってよい値だけで試してください。`get` の結果はraw値なので、ログ、Issue、外部AIへ貼らないでください。\n\n```sh\npython3 -m venv .venv\n. .venv/bin/activate\npython3 -m pip install agent-personal-vault==0.1.22\nexport APV_STORE=\"$(mktemp -d)/vault.json\"\n\nagent-personal-vault --store \"$APV_STORE\" init\nprintf 'Example\\n' | agent-personal-vault --store \"$APV_STORE\" set FAMILY_NAME --stdin --purpose profile_setup\nprintf 'Taro\\n' | agent-personal-vault --store \"$APV_STORE\" set GIVEN_NAME --stdin --purpose profile_setup\nprintf 'taro@example.test\\n' | agent-personal-vault --store \"$APV_STORE\" set EMAIL --stdin --purpose profile_setup\n\nagent-personal-vault --store \"$APV_STORE\" context --task \"応募フォームの氏名とメール連絡先を下書きする\"\n```\n\nMCPクライアントには、stdio serverとして次のコマンドを設定します。このコマンドはserverとして待機するため、通常のシェルで順番に実行するコマンドではありません。\n\n```sh\napv-mcp --store \"$APV_STORE\"\n```\n\nMCPクライアントでは、まず `apv.context` を呼び、raw値なしの候補keyを確認します。raw値が必要になったら `apv.request_consent` で `FULL_NAME` など1 keyだけを要求します。その後、GUIを起動して人間が承認します。\n\n```sh\napv-gui --store \"$APV_STORE\" --open\n```\n\n承認後、GUIに一度だけ表示されるconsent idを使い、CLIでその1 keyだけを取得します。`consent list` はtokenを `c_[redacted]` として表示するため、consent idは復元できません。失った場合は新しいrequestを作成して、もう一度承認してください。\n\n```sh\nagent-personal-vault --store \"$APV_STORE\" get FULL_NAME --purpose local_draft --consent-id \"<displayed-consent-id>\"\nagent-personal-vault --store \"$APV_STORE\" audit summary\nagent-personal-vault --store \"$APV_STORE\" audit tail --limit 10\n```\n\nここまでの安全な既定は、`context` / `apv.context` がraw値を返さず、`apv.request_consent` もraw値を返さず、raw取得は人間が承認した1 keyに限ることです。外部送信、フォーム送信、応募、メール送信はこのツールでは実行せず、人間確認で止めてください。\n\nCodex、Claude Desktop、Claude Codeなどの設定例は [docs/MCP_CLIENT_SETUP.md](docs/MCP_CLIENT_SETUP.md) を参照してください。\n\n## 位置づけ\n\nこの領域には、暗号化された個人コンテキストVault、MCPサーバー、資格情報Vault、PII redaction middleware などの先行OSSがあります。\n\n`Agent Personal Vault` は新しいカテゴリを独占的に主張するものではありません。現時点の狙いは、次のような小さく監査しやすい実装です。\n\n- 通常利用はPython標準ライブラリのみ\n- CLIはdaemonなしで利用可能\n- AIエージェント計画用の既定入口はraw値なしの `context`\n- 保存値を読まない公開可能な `schema`\n- 必要keyだけを `get` する最小raw取得\n- Codexのようなローカル作業エージェント向けのfinal action境界\n\n先行OSSとの比較メモは [docs/PRIOR_ART_REVIEW.md](docs/PRIOR_ART_REVIEW.md) にあります。\n差別化方針とMVP境界は [docs/PRODUCT_POSITIONING.md](docs/PRODUCT_POSITIONING.md) にまとめています。\n\n## 目的\n\n- ユーザーに同じ個人情報を何度も入力させない。\n- AIエージェントが必要な項目だけを、同意と監査の境界つきで取得できるようにする。\n- raw個人情報をチャットログ、README、GitHub、外部API、Subagent指示へ不用意に流さない。\n- 外部送信や応募などの final action は人間確認で止める。\n\n## 同梱スキーマ\n\n- `job_hunting_profile`\n  - 氏名、ふりがな、生年月日\n  - 住所、電話、メール\n  - 大学、大学院、追加学歴\n  - 資格\n  - 顔写真ファイルパス\n\n今後スキーマを増やす場合も、raw値を外へ出さない設計を維持します。\n\n## インストール\n\n通常利用:\n\n```sh\npython3 -m venv .venv\n. .venv/bin/activate\npython3 -m pip install agent-personal-vault==0.1.22\n```\n\n開発版:\n\n```sh\npython3 -m venv .venv\n. .venv/bin/activate\npython3 -m pip install -e .\n```\n\n通常利用の依存関係は標準ライブラリのみです。保存時暗号化を使う場合だけoptional extraを入れます。このextraは既知の対象advisoryを含む古い依存範囲を避けるため、`cryptography>=50.0.0`を要求します。\n\n```sh\n. .venv/bin/activate\npython3 -m pip install 'cryptography>=50.0.0' 'agent-personal-vault[encrypted]==0.1.22'\n```\n\n開発版で保存時暗号化を試す場合は、次を使います。\n\n```sh\n. .venv/bin/activate\npython3 -m pip install -e '.[encrypted]'\n```\n\n## 保存先\n\n既定では次に保存します。\n\n```text\n~/.local/share/agent-personal-vault/vault.json\n```\n\n変更したい場合:\n\n```sh\nexport AGENT_PERSONAL_VAULT_HOME=\"$HOME/.local/share/agent-personal-vault\"\n```\n\nまたはコマンドごとに:\n\n```sh\nagent-personal-vault --store /path/to/vault.json check\n```\n\n新規作成する保存ディレクトリは `0700`、保存ファイルは `0600` に設定されます。POSIX環境で既存のcustom親ディレクトリを指定した場合、現在のOSユーザー所有でgroup/otherからアクセスできない場所だけを受け入れます。権限は自動変更せず、安全でない場合は保存を拒否します。保存状態ファイルと一時ファイルは、検証済みの親ディレクトリに対するfd起点で開き、symbolic linkと複数hard linkを追従しません。共有・同期・公開される場所を保存先にしないでください。既定の平文JSONは、バックアップ、クラウド同期、Time Machineや仮想環境スナップショット、手動コピーに含まれると、元ファイルの権限境界の外へ複製されます。実データを保存する場合は、その保存先がバックアップ・同期対象かを確認し、必要ならoptional encryptionを有効にしてください。\n\n可用性を守るため、保存JSONは12 MiB、各vault fieldは64 KiB、consent purposeは4 KiB、consent request/grantは合計2,000件、audit logは8 MiBまでに制限します。GUI request bodyは1 MiB、MCP messageは256 KiBまでです。JSON構造にも深さ32・20,000 nodeの上限があります。上限到達時は処理をfail-closedで拒否します。private stateが上限を超えて起動できない場合は、GUI/MCPを停止し、対象ファイルをowner-onlyの場所へbackupしてから、内容をIssueや外部AIへ貼らずに新しいdummy vaultで復旧手順を確認してください。これらはアプリケーションのメモリ・ディスク使用量を抑える安全策であり、OS quotaや複数ユーザー間の隔離ではありません。\n\n保存した値を消す場合は、通常は `unset <KEY>` で1 keyずつ空にします。古いconsent metadataとaudit eventは自動削除されません。GUIとMCP serverを停止してから、明示的な保持期間を指定して整理できます。既定はconsent 30日、audit 90日です。この処理は旧版が保存したfree-form purposeも固定projectionへ書き換えます。破損したaudit行は証拠を勝手に捨てないため保持します。\n\n```sh\nagent-personal-vault --store \"$APV_STORE\" privacy prune --consent-retention-days 30 --audit-retention-days 90\n```\n\n誤って実データを入れた検証用vaultを丸ごと捨てる場合は、まず `check` で対象を確認し、GUIとMCP serverを停止してから次を使います。このコマンドは、指定vaultと同じ保存先にある `vault.json`、`consents.json`、`audit.jsonl` の3データファイルだけを削除し、親ディレクトリや無関係なファイルは削除しません。空のlock fileは残る場合があります。バックアップ、同期先、snapshot、手動コピーは別途管理対象です。\n\nKDF migrationが未完了の場合、`privacy dispose`は全fileを変更せず拒否します。先に`encryption status-kdf`で状態を確認し、`encryption resume-kdf`または`encryption rollback-kdf`を完了してください。disposeはmigrationを自動で再開・rollbackしたり、復旧用artifactを一括削除したりしません。\n\n```sh\nagent-personal-vault --store \"$APV_STORE\" privacy dispose --confirm \"delete local vault state\"\n```\n\n削除対象が分からないまま `rm -rf` や親ディレクトリ削除を使わないでください。\n\n## MCP Raw-Free Server\n\nAIエージェント連携用に、raw値を返さないMCP stdio serverを提供します。\n\n```sh\napv-mcp --store /path/to/vault.json\n```\n\n公開するtool:\n\n- `apv.schema`\n- `apv.context`\n- `apv.check`\n- `apv.list_masked`\n- `apv.request_consent`\n\nMCPでは `get`、`env`、`set`、`unset`、raw値取得、外部送信、フォーム送信は公開しません。`apv.request_consent` はraw値を返さず、GUIまたはCLIで人間が承認/拒否するためのリクエストだけを作成します。MCP stdio server自体は認証レイヤーを持たず、起動したローカルプロセスと、そのstdin/stdoutに接続できるMCPクライアントを信頼します。信頼できないagent、共有端末、複数ユーザー環境、意図しないプロセスから触れる状態で起動しないでください。\n\n## CLI\n\n初期化:\n\n```sh\nagent-personal-vault init\n```\n\nraw値を出さずに状態確認:\n\n```sh\nagent-personal-vault check\n```\n\nAIエージェント向けに、raw値なしのJSONコンテキストを取得:\n\n```sh\nagent-personal-vault context\n```\n\n用途が決まっている場合は、raw値なしで必要候補keyを絞るplanning hintsを取得できます。\n\n```sh\nagent-personal-vault context --task \"応募フォームの氏名とメール連絡先を下書きする\"\n```\n\n保存値を読まず、公開可能なスキーマ定義だけ確認:\n\n```sh\nagent-personal-vault schema\n```\n\nマスク表示:\n\n```sh\nagent-personal-vault list\n```\n\n`list` はraw断片を出さず、入力済みかどうかと文字数だけを表示します。\n\n値を保存する。値はコマンド履歴に残さないため、実行後に入力します。\n\n```sh\nagent-personal-vault set FAMILY_NAME --purpose profile_setup\n```\n\n必要なkeyだけ取得:\n\n```sh\nagent-personal-vault consent request --action get --key FULL_NAME --purpose local_draft\nagent-personal-vault get FULL_NAME --purpose local_draft --consent-id \"<displayed-consent-id>\"\n```\n\n`consent request` はrequest idを出力します。人間がGUIまたはhuman-operated CLIで承認すると、CLI `get` に渡すconsent idが一度だけ表示されます。AIエージェントの通常導線では `consent approve` を実行させず、人間の承認操作として扱ってください。`consent list` からtokenは復元できないため、失った場合は新しいrequestを作成して、もう一度承認してください。\n\n保留中のrequestは10分で失効します。承認で発行するone-time tokenの既定有効期間は300秒で、CLIの`--ttl-seconds`は1〜3600秒に制限されます。失効後は古いrequestやtokenを再利用せず、新しいrequestを作成してください。\n\nraw値のbulk export:\n\n`env` は複数のraw値をshell export形式で表示するhuman-only advanced commandです。public alphaの既定では使わず、AIエージェントの通常導線、MCP連携、Quickstart、release validationには含めません。まずは `context` / `apv.context` でrawなし計画を作り、必要な場合だけ `get <KEY>` で1 keyずつ取得してください。\n\n値を消す:\n\n```sh\nagent-personal-vault unset FAMILY_NAME --purpose profile_cleanup\n```\n\nraw値なしの監査ログを確認:\n\n```sh\nagent-personal-vault audit summary\nagent-personal-vault audit tail --limit 10\n```\n\n監査ログの1行が中断や破損で不正になっていても、前後の有効なイベントは表示を続けます。CLIとGUIは不正な行の内容を表示せず、スキップした件数だけを警告します。監査ログは引き続き改ざん耐性のある証跡ではありません。\n\n古いprivate metadataを明示的に整理:\n\n```sh\nagent-personal-vault privacy prune --consent-retention-days 30 --audit-retention-days 90\n```\n\nvault、consent state、audit logをまとめて廃棄:\n\n```sh\nagent-personal-vault privacy dispose --confirm \"delete local vault state\"\n```\n\nどちらもGUIとMCP serverを先に停止してください。`dispose` は既知の3データファイルだけを対象にし、バックアップ、同期先、snapshot、手動コピーまでは削除しません。未完了のKDF migrationがある場合は変更せず拒否するため、先に`encryption resume-kdf`または`encryption rollback-kdf`を完了してください。\n\nconsent requestとtoken metadataの状態を確認:\n\n```sh\nagent-personal-vault consent requests\nagent-personal-vault consent list\n```\n\n`get` と `env` はraw値を出し、stderrに警告を表示します。ログ、公開Issue、外部AI、Subagent指示へ貼らないでください。`audit` と `consent` はkey名、action、固定purpose codeまたは`[redacted]`、rawを返したかどうかを記録します。`audit summary`の`operation_outcomes`は完了したdelivery、拒否、判定不能を集計し、`incomplete_operations`は`prepared`または`committed`のまま止まった操作を示します。判定不能なraw操作は自動再試行せず、人間がstateとauditを確認してください。exact purposeは照合用digestへ束縛しますが、全文もraw値も記録しません。表示可能なcodeは `local_draft`、`profile_setup`、`profile_update`、`profile_cleanup`、`encryption_migration`、`test_dummy` に限定されます。\n\n保存時暗号化の状態確認:\n\n```sh\nagent-personal-vault encryption status\n```\n\n新規暗号化はversion 2 envelopeとArgon2id profileを使います。既存のversion 1 PBKDF2 envelopeは読込みと通常保存でそのまま維持され、読込みや編集だけで暗黙に再暗号化されません。version 1からの移行はGUI/MCPには公開せず、GUIとMCP serverを停止してから人間がCLIで明示実行します。\n\n暗号化へ移行:\n\n```sh\nagent-personal-vault encryption encrypt --purpose encryption_migration\n```\n\n新規暗号化では12文字以上かつ明白に予測しにくいpassphraseを要求します。弱い値を互換性上どうしても使う場合だけ `--allow-weak-passphrase` でoffline guessingリスクを明示的に受け入れます。新たに発行したconsent tokenは呼び出し元へ一度だけ返し、保存時は照合用digestだけを保持します。\n\n過去版ですでに暗号化したvaultをupgradeした場合は、既存のconsent/audit sidecarを明示的に移行してください。GUIとMCP serverを停止し、backupを確認してから次を実行します。\n\n```sh\nagent-personal-vault encryption protect-sidecars --purpose encryption_migration\n```\n\n`encryption status` では、存在するsidecarについて対応する `*_sidecar_encrypted` が `true` になることを確認してください。`*_sidecar_exists` が `false` なら、その種類のmetadata fileはまだありません。backup、sync replica、snapshot、手動コピーはこの移行の対象外です。\n\nversion 1 vaultと存在するsidecarをcurrent KDF profileへ移行:\n\n```sh\nagent-personal-vault encryption upgrade-kdf --purpose encryption_migration\n```\n\n移行は全対象を復号・検証し、current profileで再暗号化した候補を再復号してから置換します。各fileの置換は原子的ですが、vault・consent・auditを単一filesystem transactionとして同時置換するものではありません。途中停止時は通常書込みがfail-closedになり、`encryption status`の`kdf_migration`へ状態が表示されます。状態を確認したうえで、同じpassphraseを使い次のどちらかを明示実行します。\n\n```sh\nagent-personal-vault encryption resume-kdf --purpose encryption_migration\nagent-personal-vault encryption rollback-kdf --purpose encryption_migration\n```\n\nresume/rollbackが完了すると、owner-onlyのmigration journal、暗号化済みbackup、staging fileは削除されます。外部backup、sync replica、snapshot、手動コピーは変更されません。\n\n暗号化を解除すると同じ保存先が平文JSONへ置き換わり、backup、sync、snapshotにも平文が残り得ます。専用の確認flagなしでは実行されません。\n\n```sh\nagent-personal-vault encryption decrypt --purpose encryption_migration --i-understand-plaintext-persistence\n```\n\n暗号化されたvaultを通常CLIで読む場合は、環境変数でpassphraseを渡します。値はログや公開Issueへ出さないでください。\n\n```sh\nexport AGENT_PERSONAL_VAULT_PASSPHRASE=\"...\"\nagent-personal-vault check\n```\n\n## GUI\n\n```sh\napv-gui --open\n```\n\nGUIは `127.0.0.1` にだけbindし、起動ごとに5分間・1回限りのbootstrap URLを発行します。最初のアクセス後はtokenをURLから除去し、15分で失効するlocalhost session cookieへ切り替えます。session失効後に続ける場合はGUI processを再起動してください。必要な時だけ起動し、作業後は `Ctrl-C` で停止してください。保留中の同意リクエストはGUI右側で承認/拒否できます。マスク中は入力値の断片、選択値、派生氏名を表示しません。GUIでのプロフィール表示と保存は、raw値なしの監査ログに記録されます。\n\n## AIエージェント向け安全手順\n\n1. まず `check` を使い、入力済み件数と不足項目だけを見る。CLI `check` はローカル確認用にstore pathを表示します。agent-facingにはpathを含まない `context` またはMCP `apv.check` / `apv.context` を使ってください。\n2. エージェントの計画には、まず `context` のraw値なしJSONを使う。用途が決まっていれば `context --task \"<raw値を含まない用途>\"` で必要候補keyを絞る。MCPクライアントでは `apv.context` を使う。\n3. raw値が必要な場合は、まず `consent request` で対象keyと目的を固定したリクエストを作る。\n4. 人間がGUIまたはhuman-operated CLIで承認・拒否する。AIエージェント自身に承認コマンドを実行させない。\n5. 承認された対象keyを1つずつ `get <KEY> --purpose local_draft --consent-id \"<token>\"` で取得する。承認requestと取得時は同じexact purposeを使う。\n6. raw値を最終報告、公開成果物、外部API、検索クエリ、GitHub、メール、SNS、応募サイトへ無断で送らない。\n7. 外部送信、応募、登録、アップロード、メール送信は final action として止める。\n8. Subagentやworkerへraw値を渡さない。必要なら親エージェントが最小限の取得と貼り付けを担当する。\n9. 必要に応じて `audit summary` または `audit tail` でrawなしの利用履歴を確認する。\n\n詳しいプロトコルは [docs/AGENT_PROTOCOL.md](docs/AGENT_PROTOCOL.md) を参照してください。\n\n## セキュリティ上の限界\n\n- このツールはローカルの秘密メモに近いです。\n- OSのユーザー権限を越えた攻撃者、マルウェア、侵害済み端末からは守れません。\n- 同じOSユーザーとしてシェル実行できるagentやプロセスからは、CLI操作そのものを強制的に止められません。consentとauditはワークフロー制御と記録のための仕組みです。\n- 既定では暗号化しません。optional extraでAES-256-GCM暗号化backendを使えますが、passphrase管理はユーザー責任です。macOS Keychain、Windows Credential Manager、libsecret対応は今後の候補です。\n- audit logはraw値なしの利用履歴であり、改ざん不能な証跡ではありません。同じOSユーザーや侵害済み端末は `audit.jsonl` を編集・削除できます。\n- 起動時のbootstrap URLは一回限りですが、ターミナルログやスクリーンショットへ残さず、raw値もブラウザ履歴へ残さない運用が必要です。\n- Windowsなど非POSIX環境では、owner-privateな親ディレクトリとsymlink-safeなfd起点I/Oを同等に保証できないため、現在の保存操作はfail-closedで拒否します。Windows対応はACL・reparse point・競合lockを実機検証した後の別レーンです。\n- 暗号化、MCP連携、強い権限委譲が必要な用途では、既存のpersonal context vaultやsecret manager系OSSも比較してください。\n- このプロジェクトは現時点でalphaです。強いセキュリティ、法令遵守、エンタープライズ用途を主張しません。\n\n## メンテナ向けチェック\n\n<details>\n<summary>公開前チェック</summary>\n\nこのリポジトリには実データを入れないでください。\n\n- `vault.json`\n- `private/`\n- 顔写真\n- バックアップ\n- スクリーンショット\n- ローカル絶対パス入り設定\n\n公開前に次を実行してください。\n\n```sh\nmake release-check\n```\n\n`make` を使わない場合:\n\n```sh\npython3 scripts/check_release.py\n```\n\n関連ドキュメント:\n\n| Document | Purpose |\n|---|---|\n| [Publication Gate](docs/PUBLICATION_GATE.md) | visibility変更やpublish前の停止条件 |\n| [Private Dry Run Report](docs/PRIVATE_DRY_RUN_REPORT.md) | private GitHub dry-runの確認結果 |\n| [Public Release Review](docs/PUBLIC_RELEASE_REVIEW.md) | public公開可否レビュー |\n| [Pre-Public Objective Review](docs/PRE_PUBLIC_OBJECTIVE_REVIEW.md) | public公開前の客観レビューと残リスク |\n| [OSS Governance](docs/OSS_GOVERNANCE.md) | Issue / PR / branch protection運用 |\n| [Release/Package Dry-Run Plan](docs/RELEASE_PACKAGE_DRY_RUN_PLAN.md) | release/package publish前のdry-run確認項目 |\n| [PyPI Trusted Publishing Plan](docs/PYPI_TRUSTED_PUBLISHING_PLAN.md) | PyPI Trusted Publishing導入可否とpublish workflow案 |\n| [Branch Cleanup Candidates](docs/BRANCH_CLEANUP_CANDIDATES.md) | merged済みcodex branchの削除候補検証 |\n| [RC Approval Plan](docs/RC_APPROVAL_PLAN.md) | release / tag / package publish / 告知の個別承認レーン |\n| [RC Approval Packet](docs/RC_APPROVAL_PACKET.md) | RC実行前の対象commit・release note・承認文レビュー |\n| [Reputation Risk Review](docs/REPUTATION_RISK_REVIEW.md) | 表現・炎上リスクの確認 |\n| [Launch Messaging](docs/LAUNCH_MESSAGING.md) | README、release notes、告知文の安全な書き方 |\n| [Announcement Approval Packet](docs/ANNOUNCEMENT_APPROVAL_PACKET.md) | 告知文案、禁止表現チェック、投稿後監視、撤回手順 |\n\n</details>\n\n## ライセンス\n\nMIT License。\n"}