# 機密情報保護スキル — 導入プロンプト（このファイルを丸ごとAIに渡してください）

---

## 【受け取った方へ】使い方（ここだけ読めばOK）

1. **Claude Code**（または Codex）を起動する。
2. このファイルを **AIにドラッグ＆ドロップで添付**（またはファイルを開いて全文コピー → AIに貼り付け）して送信する。
3. AIが自動でスキルを組み立てます。終わったら **AIを完全に終了して再起動**。
4. `/api` で起動します。

**ZIPの手動保存・解凍なしで復元できます。** 配布ZIPと同じ 2 ファイルをテキストで収録しています。復元後の依存ツール導入は説明書に従います。OSや環境による確認・警告が出る場合もあります。

うまくいかない時は「スキルが作れているか確認して」とAIに伝えてください。

---

あなた（AI）はこれから、「機密情報保護スキル」を利用者のPCに構築します。以下の指示に厳密に従ってください。

## 手順

0. 実行環境（Mac / Windows）を確認する。**手順1〜3ではファイル復元だけを行う。** 配布ファイルは本文にそろっている。外部ツールの依存導入は手順4で行う。

1. 作業フォルダ `~/Downloads/AI顧問スキル/api-guard/` を作成する（Windows は `%USERPROFILE%\Downloads\AI顧問スキル\api-guard\`）。
   - 同名フォルダが既にある場合は新しい作業フォルダへ復元する。導入先の旧版を別の場所にバックアップし、mydata・本人ナレッジ・認証設定を保全してから切り替える。復元やセットアップに失敗したら旧版へ戻す。

2. 下の「ファイル定義」にある **2 ファイル** を、指定された相対パス（`~/Downloads/AI顧問スキル/api-guard/` からの相対）に作成する。
   - 各ファイルの内容は `========== FILE: パス ==========` 行の次の行から `========== END FILE ==========` 行の直前の行までを、
     **一字一句変更せずそのまま** 書き込む。ファイルの末尾は改行1つで終わらせる。
   - 要約・整形・体裁変更・翻訳・改行の増減・全角半角の変換・Markdown記法の「修正」は一切禁止。
     マーカー行（`========== ... ==========`）自体はファイルに含めない。
   - ファイル数が多い場合は数ファイルずつに分けて作成してよい。**途中で省略せず、必ず全ファイルを作りきる。**

3. 全ファイル作成後、次を検証して結果を報告する:
   - `~/Downloads/AI顧問スキル/api-guard/` 配下に 2 ファイルが存在すること
   - 各ファイルの行数（`wc -l`）が下の「行数チェック表」と一致すること。
     一致しないファイルがあれば、そのファイルだけ作り直す。

4. **セットアップまで実行する。** 作成したフォルダの中にある説明書
   （`README.md` / `README_使い方.md` / `INSTALL.md` / `INSTALL_FOR_AI.md` / `はじめにお読みください.md` のうち存在するもの）を読み、
   そこに書かれた手順どおりに、このPCで `/api` が使える状態まで導入を完了させる。
   - 説明書に Claude Code 用・Codex 用の両方が書かれている場合は、現在のアプリを確認して該当手順を使う。判別できない場合だけ利用者に聞く。
   - 追加で必要なもの（Python等）が足りなければ、OSを確認して1ステップずつ案内する。

5. 最後に利用者へ、次の3点を伝える:
   - 作成したフォルダの場所（フルパス）
   - **AIを完全に終了して再起動する**必要があること
   - 再起動後 `/api` で呼び出せること

## 行数チェック表（wc -l の値）

| ファイル | 行数 |
|---|---|
| README.md | 15 |
| api/SKILL.md | 41 |

---

## ファイル定義

========== FILE: README.md ==========
# 機密情報保護スキルの導入

APIキー・パスワード・秘密鍵をチャットへ貼らず、利用者のPC上に設定するためのスキルです。指示だけで漏えいを完全に防ぐものではありません。

1. `api-guard.zip` を展開し、`api/` フォルダごと配置します。
   - Claude Code: プロジェクトの `.claude/skills/api/` または個人用の `~/.claude/skills/api/`
   - Codex: プロジェクトの `.agents/skills/api/` または個人用の `~/.codex/skills/api/`
2. 同名スキルがある場合は旧版を別フォルダへ保全してから更新します。
3. AIを再起動し、スキル一覧から api を選ぶか「機密情報保護スキルでAPIキーを設定して」と伝えます。Claude Codeでは `/api` も使えます。

スキルは用途と対象サービスを確認し、既存の `.env` や秘密鍵を保全して必要な項目を案内します。実値は利用者がローカルのエディタへ入力します。ファイルを置くだけではアプリは読めないため、読み込み方法も確認します。

動作確認では設定値を出力せず、設定済みかどうかと疎通結果だけ報告します。`.gitignore`、追跡済みファイル、OS権限、AIへの指示は別々に確認し、無関係なグローバル権限設定は書き換えません。

チャット等に実値を貼ってしまった場合は発行元で無効化・再発行してください。古い値を表示し直す必要はありません。
========== END FILE ==========

========== FILE: api/SKILL.md ==========
---
name: api
description: APIキー・トークン・秘密鍵を、チャットに実値を出さず利用者のPCへ設定する。認証情報の初期設定、格納先確認、接続確認を頼まれたときに使う。
---

# 認証情報の設定

実値をAIに見せず、利用するプログラムが必要な値を読める状態まで整える。
既存のキー、設定、利用者が選んだ権限を保全する。認証情報の設定依頼は、別サービスへの送信や管理操作の許可にはならない。

## 1. 用途と格納先を決める

- サービス名、用途、作業プロジェクトを会話から確定。不明な点だけ聞く。キーの値は聞かない。
- OS、利用するプログラムの設定方式、既存ファイルの存在を確認する。ホーム全体の秘密ファイルを検索しない。
- APIキー等はプロジェクトの `.env` または利用者指定の秘密管理サービス。SSH鍵は利用者が選んだ `~/.ssh/` のファイル。秘密鍵を既存鍵と同名で作らない。
- 設定ファイルが存在する場合、中身をチャットに表示しない。キー名の存在だけ調べ、不足する設定だけ追加する。同名キーの実値を空欄で上書きしない。

## 2. 入力の準備

1. 新規ファイルだけ、値が空の設定雛形を作る。例: `SERVICE_API_KEY=`。サービスの公式仕様にある変数名を使う。
2. 同じリポジトリの `.gitignore` に実際の秘密ファイルのパスを追加する。既存行・例外指定は保つ。
3. Git管理下なら `git ls-files --error-unmatch -- <対象>` で既に追跡されていないか確認する。ignoreの追加では追跡済みファイルや履歴は消えない。検出したら値を出さず状態を伝え、削除・履歴書換え・キー失効を勝手に実行しない。
4. macOS/Linuxの新規秘密ファイルは所有者だけが読める権限にする。WindowsではACLを確認して本人以外への公開を避ける。権限変更ができなければ未確認として伝える。
5. エディタを開き、本人に実値を入力・保存してもらう。エディタの内容をスクリーンショットで取得しない。返答は「保存した」だけでよい。

`.env` は一般に暗号化されていない。ルールファイルは行動指示であり、OSのアクセス制御ではない。ホストのアクセス制限に止められたら別ツールで迂回せず、本人の入力で進める。
Claude Code/Codexの全体権限やdeny設定を、キー設定のついでに書き換えない。必要な場合は現行公式仕様を確認し、影響を説明した上で依頼の範囲に限って変更する。

## 3. 読み込みと確認

- アプリ側は `os.environ` / `process.env` 等を使う。`.env` を置くだけでは自動読み込みされないため、既存のdotenv処理か対象環境の環境変数設定を確認する。
- 値を表示せず、必須キーごとに「設定あり／空／未設定」だけ確認する。ログ・例外・デバッグ出力に値を出さない。
- 接続確認を依頼されていれば、公式の読み取り専用操作を1回実行する。認証成功、権限不足、接続不能を区別する。有料生成や送信を接続テストに使わない。
- 報告は、保存先、キー名、ignoreの確認結果、権限の確認結果、接続を確認したかの5点。「漏洩しない」「完全に保護された」と保証しない。

## 失敗時

- チャットに実値が貼られた: 復唱・コピー保存せず、該当サービスでの失効・再発行を案内する。再発行した値は本人がエディタに入力する。
- 認証失敗: 空欄、変数名、実行プロセスへの反映を値なしで確認。キーの再発行は本人の選択に任せる。
- 権限不足: 必要な操作に対応する権限を確認。管理者権限への一括引き上げを案内しない。
- 銀行口座のログイン情報や本人確認番号など、今回のアプリに不要な情報は集めない。
========== END FILE ==========
