关于 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
根据项目的技术栈、功能和数据处理方式,生成量身定制的隐私政策和服务条款。遵循 manifesto 的隐私优先原则(templates/principles/manifest.md):在设备上处理、本地存储、尽可能不创建账户、用户拥有自己的数据。
**免责声明:**生成的文档仅为模板,不构成法律建议。发布前请咨询律师,尤其是在受监管的行业(医疗、金融、儿童)中。
步骤
-
解析项目,使用
$ARGUMENTS。- 阅读
docs/prd.md,了解功能、ICP 和数据处理方式 - 阅读
CLAUDE.md,了解技术栈和使用的服务 - 如果可用,读取
templates/stacks/{stack}.yaml中的技术栈 YAML - 如果为空:通过 AskUserQuestion 询问
- 阅读
-
数据审计——确定产品会收集哪些数据:
扫描 PRD 和代码库配置,检查:
数据类型 是否收集? 存储位置 用途 邮箱/姓名 — 本地 / Supabase 账户 使用情况分析 — PostHog (EU) 改进产品 支付信息 — Stripe(本地不存储) 账单 用户内容 — 设备上 / 本地数据库 核心功能 位置 — — — 设备信息 — — — Cookie — — — 第三方 SDK — — — 对于每个标记为“是”的项目:注明法律依据(同意、合法利益、合同)。
检查是否符合 Manifest 原则:
- 数据是否存储在本地?(离线优先原则)
- 用户能否导出其所有数据?
- 用户能否删除其所有数据?
- 是否有任何数据未经明确同意就发送给第三方?
- 应用能否在没有账户的情况下运行?
-
检测适用法规:
法规 适用条件 主要要求 GDPR 面向欧盟用户或企业位于欧盟 同意、访问/删除/移植权、与处理方签订 DPA CCPA/CPRA 面向加州用户,收入 >$25M 或消费者 >100K 知情/删除/选择退出权、“请勿出售” 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} -
生成 App Store 隐私标签(如果是 iOS 或 Android):
iOS(App Store Connect):
- 根据数据审计结果确定隐私营养标签类别
- 追踪:是/否(如果是,则必须使用 ATT)
- 与身份关联的数据:列出
- 不与身份关联的数据:列出
Android(Play Store):
- 根据数据审计结果填写数据安全表单
- 与第三方共享的数据:列出
- 数据收集目的:列出
- 安全措施:加密、可删除
-
编写法律文档:
legal/privacy-policy.md— 隐私政策legal/terms-of-service.md— 服务条款legal/app-store-privacy.md— App Store 标签(如果是移动应用)- 如有需要,在项目根目录创建
legal/目录
-
输出摘要:
- 收集的数据类型(数量)
- 适用法规
- Manifest 原则符合情况(是否满足所有原则,或标记违规项)
- 已生成的文件
- 提醒:“发布前请咨询律师”
注意事项
- 文档是模板——发布前务必检查
- 离线优先应用需要更简单的政策(这是一个特点,而非限制)
- 添加新的数据收集、第三方服务或功能时,更新法律文档
- 对于使用 PostHog 的欧盟地区产品:确认使用欧盟托管(eu.posthog.com)
- Stripe 会处理 PCI 合规事宜——切勿自行存储银行卡数据
常见问题
产品收集的数据超出预期
**原因:**第三方 SDK(分析、崩溃报告)会自动收集数据。 **解决方法:**审查 package.json/Podfile/build.gradle 中的所有 SDK,并在隐私政策中逐一列出。
离线优先,但仍需要一些云服务
**原因:**同步、备份或身份验证需要云服务。 **解决方法:**明确说明:“核心功能可离线使用。可选同步需要 {service}。”准确列出同步的内容。
因缺少隐私政策被 App Store 拒绝
**原因:**应用元数据中没有隐私政策 URL。 **解决方法:**将 privacy-policy.md 托管为网页(GitHub Pages、项目网站或静态托管)。将 URL 添加到 App Store Connect / Play Console。