solo-legal について
プロジェクトの技術スタックとデータの取り扱いを調べ、プライバシーポリシーと利用規約を作成するスキルです。該当する場合はアプリストア向けの開示情報も作ります。文書はテンプレートであり、公開前に弁護士の確認が必要です。
主な機能
- 01プロジェクトの文書と設定の確認
- 02収集データと保存目的の監査
- 03適用される規制とプライバシー原則の確認
- 04ポリシーと規約の文書作成
- 05モバイルアプリストア向け開示情報の作成
活用シーン
- 01新規プロジェクトのプライバシー文書を準備
- 02製品リリース前にデータ収集を確認
- 03サービスや機能の変更後に開示内容を更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fortunto2/ solo-factory --skill solo-legalインストール後、Claude Code で/solo-legalを入力して読み込まれたか確認します。
詳細
/legal
プロジェクトの技術スタック、機能、データの取り扱いに合わせたプライバシーポリシーと利用規約を生成します。マニフェストのプライバシー最優先の原則(templates/principles/manifest.md)に準拠します。端末上での処理、ローカルストレージ、可能な限りアカウント不要、ユーザーが自身のデータを所有することを重視します。
免責事項: 生成される文書はテンプレートであり、法律上の助言ではありません。公開前に弁護士に確認してください。特に規制対象の業界(医療、金融、児童関連)では必ず確認してください。
手順
-
$ARGUMENTSからプロジェクトを解析します。docs/prd.mdを読み込みます — 機能、ICP、データの取り扱いCLAUDE.mdを読み込みます — 技術スタック、使用するサービス- 利用可能であれば、
templates/stacks/{stack}.yamlの技術スタック YAML を読み込みます - 空の場合:AskUserQuestion を使用して質問します
-
データ監査 — 製品が収集するデータを特定します。
PRD とコードベースの設定をスキャンします。
データの種類 収集の有無 保存場所 目的 メールアドレス/氏名 — ローカル/Supabase アカウント 利用状況分析 — PostHog (EU) 製品の改善 支払い情報 — Stripe(ローカルには保存しない) 請求 ユーザーコンテンツ — 端末上/ローカル DB 主要機能 位置情報 — — — デバイス情報 — — — Cookie — — — サードパーティ SDK — — — 「はい」と回答した項目ごとに、法的根拠(同意、正当な利益、契約)を記載します。
マニフェストとの整合性チェック:
- データはローカルに保存されますか?(オフラインファーストの原則)
- ユーザーはすべてのデータをエクスポートできますか?
- ユーザーはすべてのデータを削除できますか?
- 明示的な同意なく、第三者に送信されるデータはありますか?
- アプリはアカウントなしで動作しますか?
-
適用される規制を検出します。
規制 適用される場合 主な要件 GDPR EU のユーザー、または EU に拠点を置く事業者 同意、アクセス/削除/移転の権利、処理者との DPA CCPA/CPRA カリフォルニア州のユーザー、収益が 2,500 万ドル超、または消費者が 10 万人超 知る権利/削除する権利/オプトアウト、「Do Not Sell」 App Store iOS アプリ プライバシーラベル、ATT フレームワーク Play Store Android アプリ データセーフティセクション、削除ポリシー COPPA 13 歳未満のユーザー 保護者の同意(ICP に子どもが含まれる場合は警告) ほとんどの個人プロジェクトでは、GDPR と App Store/Play Store への対応で十分です。
-
プライバシーポリシーを生成します。
構成(製品に合わせて調整します):
# Privacy Policy **Last updated:** {YYYY-MM-DD} **Effective date:** {YYYY-MM-DD} ## What we collect {table from step 2 — only "yes" rows, in plain language} ## How we use it {purpose for each data type — be specific, not "to improve our services"} ## Where data is stored {local device / specific cloud service + region} {for offline-first apps: "Your data stays on your device. We cannot access it."} ## Third-party services {list each service: PostHog (EU), Stripe, Supabase — with links to their privacy policies} ## Your rights - **Access:** request a copy of your data - **Delete:** delete your account and all associated data - **Export:** download your data in {format} - **Opt-out:** disable analytics in app settings ## Data retention {how long data is kept, what triggers deletion} ## Children {if product is not for children under 13: "This product is not intended for children under 13."} ## Changes We may update this policy. Changes will be posted here with an updated date. ## Contact {email address for privacy questions}ルール:
- 平易な言葉を使い、法律用語は避けます。ユーザーが同意する内容を理解できるようにします。
- 収集するデータについて正直に説明します。曖昧な表現でトラッキングを隠してはいけません。
- オフラインファーストの製品では、ポリシーをより簡潔にできます(データが少なければ、説明も少なくて済みます)。
- アプリが何も収集しない場合は、明確にそう記載します(「当社は個人データを収集しません」)。
-
利用規約を生成します。
構成:
# Terms of Service **Last updated:** {YYYY-MM-DD} ## What this is {product name} is {one-line description}. By using it, you agree to these terms. ## Your account {if accounts exist: account rules. If no accounts: "No account is required."} ## Your data You own your data. We do not claim any rights to content you create. {for offline-first: "Your data is stored on your device. We have no access to it."} ## Acceptable use Do not use {product} to: {short list of prohibited uses relevant to the product} ## Payments {if paid: pricing, refund policy, billing terms} {manifest alignment: "No hidden fees. What you see is what you pay."} {if one-time purchase: "One-time purchase. No recurring charges."} {if subscription: explain what justifies the recurring cost} ## Availability We aim to keep {product} available but cannot guarantee 100% uptime. {for offline-first: "Core features work without internet connection."} ## Limitation of liability {standard limitation clause — product provided "as is"} ## Changes We may update these terms. Continued use after changes means acceptance. ## Contact {email} -
iOS または Android の場合は、App Store のプライバシーラベルを生成します。
iOS(App Store Connect):
- データ監査に基づくプライバシーラベルのカテゴリ
- トラッキングの有無(ありの場合は ATT が必要)
- ID に紐付けられるデータ:一覧
- ID に紐付けられないデータ:一覧
Android(Play Store):
- データ監査に基づくデータセーフティフォームの回答
- 第三者と共有するデータ:一覧
- データ収集の目的:一覧
- セキュリティ対策:暗号化、削除の可否
-
法的文書を作成します。
legal/privacy-policy.md— プライバシーポリシーlegal/terms-of-service.md— 利用規約legal/app-store-privacy.md— App Store のラベル(モバイルアプリの場合)- 必要に応じて、プロジェクトのルートに
legal/ディレクトリを作成します
-
概要を出力します。
- 収集するデータの種類(件数)
- 適用される規制
- マニフェストとの整合性(すべての原則を満たしているか、違反があれば明示)
- 生成したファイル
- 注意書き:「公開前に弁護士に確認してください」
注意事項
- ドキュメントはテンプレートです。公開前に必ず確認してください
- オフラインファーストのアプリには、よりシンプルなポリシーが適しています(これは制限ではなく、特長です)
- 新たなデータ収集、サードパーティサービス、機能を追加する場合は、法的文書を更新してください
- PostHog を使用する EU 拠点の製品では、EU でホスティングされていることを確認してください(eu.posthog.com)
- Stripe が PCI コンプライアンスに対応します。カード情報を自分で保存しないでください
よくある問題
製品が想定以上のデータを収集する
原因: サードパーティの SDK(分析、クラッシュレポート)が自動的にデータを収集します。 対処方法: package.json/Podfile/build.gradle に記載されているすべての SDK を監査してください。プライバシーポリシーに各 SDK を記載してください。
オフラインファーストなのに、一部のクラウド機能が必要
原因: 同期、バックアップ、または認証にクラウドが必要です。 対処方法: 「コア機能はオフラインで動作します。任意の同期には {service} が必要です」と明記してください。同期される内容を正確に列挙してください。
プライバシーポリシーがないため App Store で却下される
原因: アプリのメタデータにプライバシーポリシーの URL がありません。 対処方法: privacy-policy.md をウェブページとしてホストしてください(GitHub Pages、プロジェクトのウェブサイト、または静的ホスティング)。App Store Connect / Play Console に URL を追加してください。