@deepwhale-cn/dsh-cn-pipl-check
安装
dsh plugin --profile web add @deepwhale-cn/dsh-cn-pipl-check
个人信息保护:声明 ↔ 实现对照 —— 给 DeepSeek Harness 用的 skill 插件。
回答一个具体问题:隐私政策里承诺的,和代码里真做的,是不是一回事?
应用市场驳回的第一大原因不是文案写错,而是这两者对不上 —— 政策说"不收集位置",
代码里却有定位权限;政策承诺"可随时注销",App 里找不到入口。
它查什么
| 项 | 具体是什么 |
|---|
| 权限最小必要 | 每个权限有没有非它不可的功能?申请时机对不对?有没有说明用途? |
| 第三方 SDK 清单 | 打包里真实存在的 SDK(统计/推送/地图/支付/广告…)与政策里写的清单是否一致 |
| 用户权利入口 | 查阅 / 复制 / 更正 / 删除 / 注销账号 / 撤回同意,是否都有可操作的入口 |
| 敏感信息单独同意 | 人脸、指纹、行踪、医疗、金融、十四周岁以下 —— 是否单独弹窗,而非混在总协议 |
| 数据出境 | 出站域名与服务商在境内还是境外,政策有没有写 |
| 承诺可落地 | 政策里每一条具体承诺,能否在实现里找到对应 |
为什么它比"列一堆检查项"有用
因为它给的是事实,不是结论。
scan.sh 的输出长这样(真实取证,带文件与行号):
── 2. 代码里真实声明的权限 ──
· ACCESS_FINE_LOCATION (AndroidManifest.xml)
· NSCameraUsageDescription (Info.plist)
── 3. 可能收集个人信息的第三方 SDK ──
· build.gradle: com.umeng.analytics:analytics:9.3.8
· package.json: react-native-amap-geolocation
── 4. 用户权利入口 ──
· SettingsActivity.java: 注销账号
而定性留给人和审核方 —— 因为合规定性要看业务场景、看有没有真的取得同意、
看监管口径,这些脚本都看不到。一份"看起来权威但其实在瞎定性"的报告,比没有报告更危险。
所以技能正文里反复强调两句话:
- 找不到 ≠ 没有(可能叫别的名字,或在服务端实现)
- ❌ 只代表"没匹配上",必须人工逐条确认真实情况
安装
dsh plugin --profile <profile> add @deepwhale-cn/dsh-cn-pipl-check
然后重启 dsh。技能会在需要时自动可用。
用法
装上之后,直接让 agent「做一次个人信息保护对照」,它会:
- 先跑取证脚本(扫权限、SDK、权利入口、出站域名、隐私政策定位)
- 按六个必查项逐条对照
- 产出对照表 + 需人工判断清单(格式见技能正文第四节)
也可以自己跑脚本:
# 脚本路径由插件注册时注入到技能正文里,或直接到安装目录找 skill/scan.sh
scan.sh --dir /path/to/app --policy /path/to/privacy.md
与相邻技能的边界
这四个包的划分是刻意分开的,不能互相替代:
| 包 | 管什么 |
|---|
dsh-cn-compliance | 话能不能说 —— 对外文案红线 |
dsh-cn-ai-labeling | AI 标识做没做 —— 生成合成内容的显式/隐式标识 |
dsh-cn-pipl-check | 说的和做的是否一致 —— 隐私相关 |
dsh-release-selfcheck | 东西对不对 —— 发布产物与流程 |
许可
MIT