private-context-bootstrap について
複数のマシンでプライベートなユーザーデータを使うエージェント向けのブートストラップスキルです。公開スキルやログにデータを埋め込まず、ファイルの同期、復号、検証を行ってからワークフローを実行します。
主な機能
- 01公開プロセスと個人データの分離
- 02リモートデータの特定と同期
- 03暗号化ファイルの復号
- 04スキーマと文書パスの検証
- 05ワークフロー前の準備状況確認
活用シーン
- 01新しいマシンでのプライベートコンテキスト設定
- 02エージェントのワークフロー用データ準備
- 03申請に必要なファイルの確認
- 04個人情報の公開リポジトリへの混入防止
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ arthurzakirov/ opportunityos --skill private-context-bootstrapインストール後、Claude Code で/private-context-bootstrapを入力して読み込まれたか確認します。
詳細
プライベートコンテキストのブートストラップ
目的
エージェントがマシン間で利用できる必要があるプライベートなユーザーデータを必要とする一方、そのデータを公開スキル、プロンプト、ログ、リポジトリにハードコードしてはならない場合に、このスキルを使用します。
このスキルでは、リモートストレージからプライベートなローカルファイルを見つけ、クローンし、復号し、検証し、利用できる状態にする方法を定義します。
基本原則
スキルは公開されたプロセス定義です。プライベートデータは公開スキルのフォルダー外に保存します。
アーキテクチャ
次の3つのレイヤーを使用します。
- 公開スキルリポジトリ:汎用スキル、スキーマ、架空の例、スクリプト、ドキュメント。実際の個人情報は含めません。
- プライベートなリモートデータリポジトリ:プライベートな YAML、JSONL ログ、ドキュメントマニフェスト、基準、必要に応じて PDF。ファイル単位の暗号化を推奨します。
- シークレットマネージャー:ブートストラップ用シークレットと暗号化キー。
推奨されるデフォルト設定:
- バージョン管理されたプライベートデータには、プライベート Git リポジトリを使用します。
- 暗号化された YAML/JSON ファイルには、
age+sopsを使用します。 - PDF を Git に保存する場合は、Git LFS または暗号化されたアーカイブを使用します。
- Bitwarden Secrets Manager には、必要に応じてプライベートリポジトリの URL、
age秘密鍵、オプションのアクセストークン、オプションのブートストラップ環境変数を保存します。
追跡対象外のローカルファイルだけを唯一の信頼できる情報源にしないでください。
環境変数
次の変数に対応してください。
SELF_SOURCE_REMOTE=""
SELF_SOURCE_HOME="$HOME/.config/self-source"
SELF_SOURCE_REPO="$HOME/.local/share/self-source/repo"
AGENTDESK_PROFILE_PATH="$SELF_SOURCE_HOME/job-applications/application-profile.yaml"
AGENTDESK_DOCUMENT_MANIFEST_PATH="$SELF_SOURCE_HOME/job-applications/document-manifest.yaml"
AGENTDESK_FIELD_POLICY_PATH="$SELF_SOURCE_HOME/job-applications/field-answer-policy.yaml"
AGENTDESK_APPLICATION_LOG_PATH="$SELF_SOURCE_HOME/job-applications/application-log.jsonl"
変数が設定されていない場合は、上記のデフォルト値を使用します。
ブートストラップのワークフロー
新しいマシンでは、次の手順を実行します。
SELF_SOURCE_HOMEが存在するか確認します。- 必要なプライベートファイルが存在するか確認します。
- ファイルが不足している場合は、
SELF_SOURCE_REMOTE、設定済みのシークレットマネージャー、またはユーザーからリモートソースを特定します。 - プライベートなリモートソースを
SELF_SOURCE_REPOにクローンするか同期します。 - ファイルが暗号化されている場合は、
SELF_SOURCE_HOMEに復号します。 - PDF がリモートに保存されている場合は、ダウンロードするか同期します。
- すべての必須ファイルをスキーマに照らして検証します。
- 参照されているドキュメントが存在することを確認します。
- 検証に合格するまで、ワークフローの実行を拒否します。
利用可能な場合は、OpportunityOS リポジトリの scripts/bootstrap-private-context.sh を使用します。これは、クローン/同期、データの配置、検証、準備状況レポートを一括して実行します。
絶対に行わないこと
- 復号済みのプライベートファイルを公開リポジトリにコミットしないでください。
- 明示的に求められない限り、プライベートプロフィール全体をターミナルログに出力しないでください。
- シークレット、個人データ、プライベートな PDF を公開ファイルに貼り付けないでください。
- 新しいマシンにファイルが存在すると想定しないでください。
- 不足しているプライベート情報を捏造しないでください。
- バックアップを作成せずに、プライベートデータを黙って上書きしないでください。
想定されるローカルの構成
ブートストラップ後:
$SELF_SOURCE_HOME/
shared/
personal-profile.yaml
job-applications/
application-profile.yaml
document-manifest.yaml
field-answer-policy.yaml
application-log.jsonl
documents/
resume.pdf
degree.pdf
transcript.pdf
references.pdf
supporting-bundle.pdf
shared/personal-profile.yaml は bitwarden-personal-profile スキーマに準拠する必要があります。ドメインフォルダーでは、本人確認情報、連絡先、住所、雇用、住居、または一般的なフォームの情報を重複して保持せず、このファイルを参照します。
ファイル名は異なる場合があります。エージェントはファイル名をハードコードせず、参照情報とマニフェストを使用する必要があります。
必須チェック
プライベートデータを使用するワークフローを実行する前に、次の項目を確認します。
- プロフィールファイルが存在することを確認します。
- 共通の個人プロフィールが存在し、Bitwarden の個人プロフィール形式に準拠していることを確認します。
- ドキュメントマニフェストが存在することを確認します。
- フィールドポリシーが存在することを確認します。
- 必要に応じて、参照先のドキュメントパスが存在することを確認します。
- スキーマを検証します。
- 不足しているファイルを明確に報告します。
出力
プライベートホームのパス、プライベートリポジトリのパス、プロフィールファイルの状態、ドキュメントマニフェストの状態、フィールドポリシーの状態、ドキュメントの利用可能状況の概要、検証エラー、次に手動で行う操作を返します。