mcpField
S
solo-legal

solo-legal

github.com/fortunto2文档处理1847 次安装今天更新
代码仓库

关于 solo-legal

根据项目技术栈和数据处理情况起草隐私政策与服务条款,并在适用时生成应用商店隐私披露。输出内容是模板而非法律意见,发布前需由律师审核。

主要功能

  1. 01检查项目文档与配置
  2. 02审查收集的数据及存储用途
  3. 03核对适用法规和隐私原则
  4. 04生成政策与条款文档
  5. 05起草移动应用商店隐私披露

适用场景

  1. 01为新项目准备隐私文档
  2. 02在产品发布前审查数据收集情况
  3. 03服务或功能变更后更新披露内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fortunto2/solo-factory --skill solo-legal

安装后在 Claude Code 中输入/solo-legal确认已加载。

详细介绍

/legal

根据项目的技术栈、功能和数据处理方式,生成量身定制的隐私政策和服务条款。遵循 manifesto 的隐私优先原则(templates/principles/manifest.md):在设备上处理、本地存储、尽可能不创建账户、用户拥有自己的数据。

**免责声明:**生成的文档仅为模板,不构成法律建议。发布前请咨询律师,尤其是在受监管的行业(医疗、金融、儿童)中。

步骤

  1. 解析项目,使用 $ARGUMENTS。

    • 阅读 docs/prd.md,了解功能、ICP 和数据处理方式
    • 阅读 CLAUDE.md,了解技术栈和使用的服务
    • 如果可用,读取 templates/stacks/{stack}.yaml 中的技术栈 YAML
    • 如果为空:通过 AskUserQuestion 询问
  2. 数据审计——确定产品会收集哪些数据:

    扫描 PRD 和代码库配置,检查:

    数据类型是否收集?存储位置用途
    邮箱/姓名—本地 / Supabase账户
    使用情况分析—PostHog (EU)改进产品
    支付信息—Stripe(本地不存储)账单
    用户内容—设备上 / 本地数据库核心功能
    位置———
    设备信息———
    Cookie———
    第三方 SDK———

    对于每个标记为“是”的项目:注明法律依据(同意、合法利益、合同)。

    检查是否符合 Manifest 原则:

    • 数据是否存储在本地?(离线优先原则)
    • 用户能否导出其所有数据?
    • 用户能否删除其所有数据?
    • 是否有任何数据未经明确同意就发送给第三方?
    • 应用能否在没有账户的情况下运行?
  3. 检测适用法规:

    法规适用条件主要要求
    GDPR面向欧盟用户或企业位于欧盟同意、访问/删除/移植权、与处理方签订 DPA
    CCPA/CPRA面向加州用户,收入 >$25M 或消费者 >100K知情/删除/选择退出权、“请勿出售”
    App StoreiOS 应用隐私营养标签、ATT 框架
    Play StoreAndroid 应用数据安全部分、删除政策
    COPPA用户未满 13 岁家长同意(如果 ICP 包含儿童,则标记)

    对于大多数独立项目:GDPR + App Store/Play Store 就足够了。

  4. 生成隐私政策:

    结构(根据产品调整):

    # 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}
    

    规则:

    • 使用通俗语言,避免法律术语——用户应能理解自己同意的内容
    • 如实说明收集的内容——不要用含糊的措辞掩盖追踪行为
    • 离线优先的产品可采用更简洁的政策(数据越少,需要说明的内容越少)
    • 如果应用不收集任何信息:明确说明(“我们不收集任何个人数据”)
  5. 生成服务条款:

    结构:

    # 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}
    
  6. 生成 App Store 隐私标签(如果是 iOS 或 Android):

    iOS(App Store Connect):

    • 根据数据审计结果确定隐私营养标签类别
    • 追踪:是/否(如果是,则必须使用 ATT)
    • 与身份关联的数据:列出
    • 不与身份关联的数据:列出

    Android(Play Store):

    • 根据数据审计结果填写数据安全表单
    • 与第三方共享的数据:列出
    • 数据收集目的:列出
    • 安全措施:加密、可删除
  7. 编写法律文档:

    • legal/privacy-policy.md — 隐私政策
    • legal/terms-of-service.md — 服务条款
    • legal/app-store-privacy.md — App Store 标签(如果是移动应用)
    • 如有需要,在项目根目录创建 legal/ 目录
  8. 输出摘要:

    • 收集的数据类型(数量)
    • 适用法规
    • 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。

评论

支持 Markdown