mcpField
P
private-context-bootstrap

private-context-bootstrap

github.com/arthurzakirovセキュリティ0156 回インストール5 週間前に更新
リポジトリ

private-context-bootstrap について

複数のマシンでプライベートなユーザーデータを使うエージェント向けのブートストラップスキルです。公開スキルやログにデータを埋め込まず、ファイルの同期、復号、検証を行ってからワークフローを実行します。

主な機能

  1. 01公開プロセスと個人データの分離
  2. 02リモートデータの特定と同期
  3. 03暗号化ファイルの復号
  4. 04スキーマと文書パスの検証
  5. 05ワークフロー前の準備状況確認

活用シーン

  1. 01新しいマシンでのプライベートコンテキスト設定
  2. 02エージェントのワークフロー用データ準備
  3. 03申請に必要なファイルの確認
  4. 04個人情報の公開リポジトリへの混入防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/arthurzakirov/opportunityos --skill private-context-bootstrap

インストール後、Claude Code で/private-context-bootstrapを入力して読み込まれたか確認します。

詳細

プライベートコンテキストのブートストラップ

目的

エージェントがマシン間で利用できる必要があるプライベートなユーザーデータを必要とする一方、そのデータを公開スキル、プロンプト、ログ、リポジトリにハードコードしてはならない場合に、このスキルを使用します。

このスキルでは、リモートストレージからプライベートなローカルファイルを見つけ、クローンし、復号し、検証し、利用できる状態にする方法を定義します。

基本原則

スキルは公開されたプロセス定義です。プライベートデータは公開スキルのフォルダー外に保存します。

アーキテクチャ

次の3つのレイヤーを使用します。

  1. 公開スキルリポジトリ:汎用スキル、スキーマ、架空の例、スクリプト、ドキュメント。実際の個人情報は含めません。
  2. プライベートなリモートデータリポジトリ:プライベートな YAML、JSONL ログ、ドキュメントマニフェスト、基準、必要に応じて PDF。ファイル単位の暗号化を推奨します。
  3. シークレットマネージャー:ブートストラップ用シークレットと暗号化キー。

推奨されるデフォルト設定:

  • バージョン管理されたプライベートデータには、プライベート 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"

変数が設定されていない場合は、上記のデフォルト値を使用します。

ブートストラップのワークフロー

新しいマシンでは、次の手順を実行します。

  1. SELF_SOURCE_HOME が存在するか確認します。
  2. 必要なプライベートファイルが存在するか確認します。
  3. ファイルが不足している場合は、SELF_SOURCE_REMOTE、設定済みのシークレットマネージャー、またはユーザーからリモートソースを特定します。
  4. プライベートなリモートソースを SELF_SOURCE_REPO にクローンするか同期します。
  5. ファイルが暗号化されている場合は、SELF_SOURCE_HOME に復号します。
  6. PDF がリモートに保存されている場合は、ダウンロードするか同期します。
  7. すべての必須ファイルをスキーマに照らして検証します。
  8. 参照されているドキュメントが存在することを確認します。
  9. 検証に合格するまで、ワークフローの実行を拒否します。

利用可能な場合は、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 スキーマに準拠する必要があります。ドメインフォルダーでは、本人確認情報、連絡先、住所、雇用、住居、または一般的なフォームの情報を重複して保持せず、このファイルを参照します。

ファイル名は異なる場合があります。エージェントはファイル名をハードコードせず、参照情報とマニフェストを使用する必要があります。

必須チェック

プライベートデータを使用するワークフローを実行する前に、次の項目を確認します。

  1. プロフィールファイルが存在することを確認します。
  2. 共通の個人プロフィールが存在し、Bitwarden の個人プロフィール形式に準拠していることを確認します。
  3. ドキュメントマニフェストが存在することを確認します。
  4. フィールドポリシーが存在することを確認します。
  5. 必要に応じて、参照先のドキュメントパスが存在することを確認します。
  6. スキーマを検証します。
  7. 不足しているファイルを明確に報告します。

出力

プライベートホームのパス、プライベートリポジトリのパス、プロフィールファイルの状態、ドキュメントマニフェストの状態、フィールドポリシーの状態、ドキュメントの利用可能状況の概要、検証エラー、次に手動で行う操作を返します。

コメント