# Privacy Compliance

> コード・データ・ログ中の個人情報（PII）を検出し、取扱いを個人情報保護法・GDPR 観点で評価してマスキング・最小化・暗号化などの是正案を出すスキル。「個人情報を確認して」「PIIを検出して」「プライバシー観点でレビューして」「GDPR観点でレビューして」「GDPRチェックして」「マスキングして」「データを匿名化して」などで発動する。

- Skill: `ynitto/privacy-compliance` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add ynitto/privacy-compliance`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ynitto/privacy-compliance/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ynitto (https://skillmd.com/u/ynitto)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ynitto/privacy-compliance

---


# privacy-compliance

コードやデータに含まれる **個人情報（PII）** を検出し、その取扱いが適切か（取得目的・保存・越境・委託・開示）を評価して、是正案を出す。純粋な脆弱性（`agent-reviewer` の security）とは別レンズで、**「個人データの取り扱い」**にフォーカスする。

> 注意: 本スキルは技術的・運用的な観点の支援であり、法的助言ではない。最終判断は法務・DPO の確認を要する。

## 原則

- **データの流れを追う** — PII がどこで取得され、どこに保存・送信・ログ出力されるか（source → store/sink）を追跡する
- **最小化を基本に** — 必要最小限の取得・保持・公開になっているかを問う
- **明確な指摘のみ** — 推測ではなく、コード/データで確認できた取扱いを指摘する
- **是正は具体的に** — マスキング・暗号化・保持期間設定など、実装可能な対策を示す

## ワークフロー

### Step 1: 対象とコンテキストを確認する

1. 対象（ソースコード / DBスキーマ / ログ出力 / API レスポンス / データファイル）を把握する
2. 適用法域を確認する（日本=個人情報保護法 / EU=GDPR / 米=CCPA 等。指定が無ければ主要なものを併記）
3. データの利用主体・第三者提供・委託・海外移転の有無を確認する

### Step 2: PII を検出・分類する

[references/checklist.md](references/checklist.md) の分類に従い、対象を走査する:

- **識別子系**: 氏名・住所・電話・メール・マイナンバー・各種ID
- **要配慮個人情報 / 特別カテゴリ**: 健康・医療・人種・信条・犯罪歴・生体情報（GDPR special category）
- **準識別子**: 単体では特定しにくいが組合せで特定し得る属性（生年月日＋郵便番号＋性別 等）
- **検出箇所**: 変数名・カラム名・ログ文・コメント・テストデータ・固定値

検出は変数名・カラム名・正規表現的パターン（メール/電話/番号体系）と文脈から行う。

### Step 3: 取扱いを評価する

[references/checklist.md](references/checklist.md) の法令観点チェックで、検出した PII ごとに評価する:

- 取得: 利用目的の特定・同意/根拠
- 保存: 暗号化・アクセス制御・保持期間（無期限保持になっていないか）
- 利用/出力: ログ・エラー・分析への PII 混入、マスキング有無
- 提供/移転: 第三者提供・委託先管理・越境移転（GDPR の SCC 等）
- 権利対応: 開示・訂正・削除（消去権/DSAR）に対応できる構造か

### Step 4: リスク判定と是正案

| 重要度 | 基準 |
|--------|------|
| Critical | 要配慮/特別カテゴリの平文保存・ログ出力、無制限な第三者送信、マイナンバーの不適切取扱い |
| Warning | 識別子の平文ログ出力・暗号化欠如・保持期間未設定・同意/根拠の欠落 |
| Suggestion | 準識別子の最小化・仮名化の推奨・アクセス制御の強化 |

是正案の選択肢: マスキング/仮名化、トークン化、暗号化（保存時/転送時）、データ最小化（取得・カラム削減）、保持期間とパージ、ログからの除外、同意・利用目的の明記。

### Step 5: 出力

```markdown
## プライバシーレビュー結果: [問題なし ✅ / 要対応 ❌]

### 検出した個人情報
| 種別 | 箇所 | 分類 | 取扱い | リスク |
|------|------|------|--------|--------|
| メールアドレス | user.go:42 / users.email | 識別子 | 平文ログ出力 | Warning |

### 指摘と是正案
#### 🔴 Critical: <要約>
箇所: <ファイル:行 / テーブル.カラム>
法令観点: <個人情報保護法 第X条 / GDPR Art.X（参考）>
問題: <何が・なぜ問題か>
是正案: <マスキング/暗号化/最小化 等の具体策>

### サマリー
- Critical: X / Warning: X / Suggestion: X
- 残課題: <法務確認が必要な事項>
```

## ガードレール

| 制限 | 内容 |
|------|------|
| 法的助言ではない | 技術・運用支援に留める。最終判断は法務/DPO へ |
| 機密の取扱い | レビュー過程で実 PII を不要に複製・転記・外部送信しない |
| 推測の抑制 | 確認できた取扱いのみ指摘。不明は「要確認」とする |
| 法域の明示 | どの法令（個人情報保護法/GDPR/CCPA）を基準にしたか明記する |

