legal-pages は何をしますか?
法律上のアドバイスではありません。 このスキルは、ユーザーの回答を埋め込んだテンプレートを生成します。ユーザーの管轄区域に固有の義務を認識しておらず、弁護士の代わりにはなりません。最終メッセージで必ずそのことをユーザーに伝え、生成されたページにはユーザーが内容を確認した後にのみ削除するレビュー通知が表示されます。ページが「準拠している」と決して主張しないでください。
ステップ1 — 事実を収集する(質問する、推測しない)
まずコードベースを検査して、可能な限り事前入力します(認証プロバイダー、アナリティクススクリプト、支払いSDK、メールプロバイダー、データベースホスト、設定されたCookie)。その後、ユーザーに確認します。
assets/legal-config.example.json をプロジェクトルートに legal-config.json としてコピーし、入力します:
| フィールド | 例 | 確認箇所 |
|---|---|---|
company_name, product_name, website_url, contact_email | "Acme Studio" | 質問する; フッター; 環境変数 |
legal_entity_type, address, governing_law | "個人事業主", "河北省, 中国", "中華人民共和国" | 質問する — 決して作成しない |
merchant_of_record | creem / paddle / lemonsqueezy / none | package.jsonの依存関係 (creem, @paddle/paddle-js, @lemonsqueezy/..., stripe) |
data_collected | メール, 名前, MoRによる支払い処理, IP/利用ログ | 認証 + DBスキーマ |
processors | Resend (メール), Plausible (アナリティクス), AWS (ホスティング) | 環境変数, SDKインポート |
uses_cookies, analytics_cookies | true / false | 認証/アナリティクスで設定されるCookie |
sells_subscriptions, sells_one_time | 価格ページ | |
refund_mode | window (N日間) / case_by_case / none | 質問する — プロバイダーのルールと一致する必要がある |
serves_eu, serves_california, serves_china | 質問する; 追加セクションに影響 | |
min_age | 13 または 16 | EUにサービスを提供する場合、16がより安全なデフォルト |
ユーザーが不明な点は、出力に [[TODO: …]] マーカーとして残します — 法的な事実(住所、法人形態、準拠法)をもっともらしい値で入力しないでください。
ステップ2 — レンダリング
python3 scripts/render_legal.py --config legal-config.json --out legal --format md
python3 scripts/render_legal.py --config legal-config.json --out app/(legal) --format nextjs # Next.js App Router
python3 scripts/render_legal.py --config legal-config.json --out public/legal --format html
privacy, terms, refund ドキュメントを生成します。必須フィールドが欠けているとスクリプトは失敗し、残っている [[TODO]] をすべて出力し、「最終更新日」に effective_date(または今日の日付)を刻印します。--format nextjs は、静的なHTMLとmetadataを含む privacy/page.tsx, terms/page.tsx, refund/page.tsx を書き出します — 追加の依存関係は不要です。必要に応じてサイトのレイアウト/タイポグラフィでラップしてください。
ステップ3 — リンク設定
- すべてのページのフッターに3つのページすべてへのリンクを配置します(決済プロバイダーがこれらを探します)。
- チェックアウト: 購入ボタンの近くに利用規約と返金ポリシーへのリンクを配置します(「購入することにより、あなたは…に同意したものとみなされます」)。
analytics_cookiesが true でserves_euが true の場合: アナリティクスを読み込む前にCookie同意バナーがおそらく必要であることをユーザーに伝えます(またはクッキーレスアナリティクスツールに切り替えます)。サイレントにバナーを追加しないでください。- サインアップフォーム: プライバシーポリシーへのリンクを配置します。
ステップ4 — プロバイダー固有の確認
選択された準拠販売者(Merchant of Record)について references/provider-notes.md を読んでください。重要なポイント: MoRを使用する場合、MoRが顧客に対する販売者となるため、利用規約はその旨を明記し、返金ポリシーはMoR自身の購入条件と矛盾することを約束してはいけません。
ステップ5 — 引継ぎメッセージ(必須)
ユーザーに、その言語で次のことを伝えてください:
- どのファイルが作成され、どこにリンクされているか。
- まだ未解決の
[[TODO]]項目のリスト。 - テンプレートであり、法律上のアドバイスではなく、特に以下の点について資格ある弁護士によるレビューを受けるべきであること: 準拠法、責任制限、消費者の撤回権(デジタルコンテンツのEU14日ルール)、ユーザーの国からのデータ移転。
- ユーザーデータを処理する新しいツールを追加した場合は、ページを正確に保つ必要があること。
ファイル
assets/templates/*.md— 3つのテンプレート(マスタッシュスタイル{{field}},{{#flag}}…{{/flag}})assets/legal-config.example.json— すべてのフィールドを含む質問票scripts/render_legal.py— レンダラー(stdlibのみ)references/provider-notes.md— Creem / Paddle / Lemon Squeezy / Stripeの注意事項とリンクreferences/regional-notes.md— GDPR、UK GDPR、CCPA/CPRA、PIPLのポインター(情報提供用)