| name | legal-document-redaction |
| description | 法律文件脱敏——按场景白名单与法域规则,对判决书/合同/证据/邮件/聊天记录中的 16 类敏感实体进行识别、替换或遮蔽,输出可外发版本。 适用情形:用户要求脱敏/匿名化/可外发版本/隐去当事人/隐去姓名/隐去账号/隐去身份证号/做案例库分享稿/发律师函时隐去内部编号。 核心:识别 16 类敏感实体→按上下文标注角色→按脱敏规则映射表替换→可逆模式生成比对文件。 与 data-compliance 互补:data-compliance 是 PIPL 合规**审查**,本 skill 是脱敏**执行**。 配套 skill:白/黑名单与优先级见 legal-document-redaction-config;还原脱敏稿见 legal-document-restoration。
|
| argument-hint | [原始法律文件 + 脱敏等级(粗/中/细) + 可逆性(是/否) + 目标法域] → 输出脱敏后版本 + 比对文件(可逆时) |
| legal_frame | cn-mainland |
| last_reviewed | "2026-06-24T00:00:00.000Z" |
| version | 1.2.0 |
| risk_level | high |
| trigger_phrases | ["脱敏","匿名化","去标识化","隐去姓名","隐去当事人","隐去账号","隐去身份证号","可外发版本","案例库分享稿","隐去内部编号","redact","anonymize","mask","pseudonymize"] |
/legal-document-redaction — 法律文件脱敏
场景通用原子 skill。本 skill 仅负责"识别 + 替换"两件事。
配套机制(白/黑名单、优先级、还原、批次一致性)由相邻 atomic skill 承担,不在本 skill 范围内。
一、加载上下文(必读)
调用本 skill 前必须确认:
1. 输入文件类型(判决书/合同/邮件/聊天记录/内部备忘录……)
2. 目标受众(律师内部/客户/对方/监管/学术/公众)
3. 脱敏粒度(粗/中/细)
4. 可逆性(不可逆 vs 可逆并生成比对文件)
5. 适用法域(cn-mainland 默认 / hk / tw / sg / mo / eu)
6. 上下文角色标注(是否需要识别甲方/乙方/丙方、合同总价/违约金等)
未指定 → 暂停,要求补充(按 GCL 原子 skill 规范)。
禁止对刑事证据、未成年人信息、医疗健康数据默认采用"粗粒度+不可逆"——这三类必须由用户显式确认。
二、16 类敏感实体清单
任何法律文件脱敏的第一步是识别。下列 16 类是高频命中项:
| # | 实体类型 | 中文示例(特征) | 英文示例(特征) |
|---|
| 1 | 自然人姓名 | 2-4 字中文姓名(含常见复姓、姓 + 名/名 + 名结构) | English personal name (First Last) |
| 2 | 法人/非法人组织名称 | 中文公司全称(行政区划 + 字号 + 行业 + 组织形式) | English company name (Corp/Ltd/Inc) |
| 3 | 公民身份号码 | 18 位数字 + 末位 X 校验 | — |
| 4 | 联系电话 / 手机 | 11 位手机号 / 座机号 | E.164 格式 + 区号 |
| 5 | 银行账号 / 支付账号 | 16-19 位数字,可分组 | IBAN / 银行卡号 |
| 6 | 地址(门牌号以上) | 省市区 + 街道 + 门牌 | Street address with number |
| 7 | 邮箱 | local@domain 格式 | local@domain |
| 8 | 车牌 / 不动产证号 / 合同编号 | 字母数字混合 | Alphanumeric code |
| 9 | IP / MAC / 设备指纹 | IPv4/IPv6 / MAC | UUID hash |
| 10 | 病历 / 健康 / 基因信息 | 病种、检验值、家族病史 | diagnosis, lab values |
| 11 | 未成年人 / 被害人 / 证人姓名 | 自然人姓名但需特别保护 | minor's name, witness ID |
| 12 | 内部编号 / 案号 / 卷宗号 | (YYYY)法院代字+序号+号 | Case No. format |
| 13 | 日期 | YYYY 年 M 月 D 日 / YYYY-MM-DD | ISO 8601 / 自由格式 |
| 14 | 价格 / 金额 | 币种 + 数字 + 单位(万/千/元) | Currency + amount |
| 15 | 统一社会信用代码 | 18 位字母数字 | — |
| 16 | 项目名称 | 中文项目全称(名 + 项目/工程/系统) | Project codename |
★ 识别原则 ─────────────────────────────────
- 宁多勿漏:法律文件脱敏"漏一个就可能构成执业风险"。识别阶段允许低置信度命中,由用户后续筛选。
- 上下文敏感:"张某"在判决书中必脱敏;在客户内部 KOL 名单中可保留——调用方必须告知文件类型。
- 派生信息也算:单条脱敏后组合仍可识别个人(出生年月+籍贯+职业)的,按"动机-机会"标准仍需脱敏。
- 前缀剥离:若规则以"联系电话:"等前缀开头,只识别前缀后的号码,避免前缀被一起替换。
─────────────────────────────────────────────────
三、上下文角色标注
调用方要求标注上下文角色时(§ 一-6 = 是),按以下规则给实体贴角色标签:
3.1 合同方角色
| 触发词 | 角色 | 替换前缀 |
|---|
| 甲方 | 买方 | 委托方 | 发包方 | 采购方 | 出租方 | 投资方 | 买方 | 买方 |
| 乙方 | 卖方 | 受托方 | 承包方 | 供应商 | 承租方 | 受让方 | 卖方 | 卖方 |
| 丙方 | 第三方 | 担保方 | 第三方 | 第三方 |
示例(由 AI 根据原文动态生成):甲方:[法人原文] → 【买方公司1】(而非无差别 【公司1】)
3.2 金额类型
| 触发词 | 金额类型 |
|---|
| 合同总价 | 总金额 | 交易价格 | 合同总价 |
| 单价 | 单位价格 | 单价 |
| 预付款 | 首付款 | 定金 | 预付款 |
| 尾款 | 余款 | 尾款 |
| 违约金 | 赔偿金 | 补偿金 | 违约金 |
示例(由 AI 根据原文动态生成):合同总价:[金额原文] → 【合同总价1】
上下文标注是脱敏的增强层,非必需。调用方没要求时跳过本节,直接按 § 二实体类型生成标签。
四、脱敏规则映射表 ← TODO(用户编写)
业务核心,按 Learning mode 原则,决策权交回用户。
调用方给出"粗/中/细 × 可逆/不可逆"组合后,下表决定每个实体如何被替换。规则本身不是技术问题,是法律执业习惯 + 客户偏好问题。
4.1 三档粒度定义
粗粒度:保留实体类型提示,便于阅读,但具体值不可识别。
例:[自然人原文] → [当事人A]、[法人原文] → [甲方公司]
中粒度:保留部分特征(如姓、行业),便于人工对应。
例:[自然人原文] → 张某某、[法人原文] → [公司]
细粒度:仅保留结构(如长度、类型),最接近匿名。
例:[自然人原文] → 长度 N 的姓名占位、[法人原文] → 长度 N 的法人占位
4.2 替换策略矩阵(通用默认)
基于司法实务 + PIPL + 最高院共识。律所采用时可 fork 修改本表。
| 实体类型 | 粗粒度 | 中粒度 | 细粒度 | 映射键命名 |
|---|
| 自然人姓名 | [当事人 N] | 张某某 | *** | PERSON_001 |
| 法人名称 | [公司 N] | XX 有限公司 | *** | ORG_001 |
| 身份证号 | 前 6 位****后 4 位 | 前 6 位****后 4 位 | *** | ID_CARD_001 |
| 联系电话 | [电话 N] | 138****1234 | *** | PHONE_001 |
| 银行账号 | [账号 N] | ************1234 | *** | ACCOUNT_001 |
| 地址 | [地址 N] | XX 市 XX 区**** | *** | ADDRESS_001 |
| 邮箱 | [邮箱 N] | @.com | *** | EMAIL_001 |
| 车牌 / 证号 / 合同编号 | [文件编号 N] | [文件编号] | *** | FILE_CODE_001 |
| IP / MAC | [IP N] | ... | *** | IP_001 |
| 健康信息 | [健康信息 N] | *** | *** | HEALTH_001 |
| 未成年人 / 证人 | [证人 N] | *** | *** | WITNESS_001 |
| 内部编号 / 案号 | [案号 N] | **** | *** | CASE_001 |
| 日期 | [日期 N] | 2024 年 X 月 X 日 | 2024 年 | DATE_001 |
| 价格 / 金额 | [金额类型 N]¹ | 人民币 *** 万元 | *** | PRICE_001 |
| 统一社会信用代码 | [代码-统一社会信用代码 N] | *** | *** | CREDIT_CODE_001 |
| 项目名称 | [项目 N] | [项目] | *** | PROJECT_001 |
¹ 金额标签按 § 三 3.2 上下文类型自动选用:[合同总价 N] [单价 N] [预付款 N] [尾款 N] [违约金 N]
设计依据:
- 身份证号 6+4:司法惯例(参见《人民法院在线诉讼规则》等),既能脱敏又保留地域信息(便于当事人识别)。
- 金额保留币种+单位:
人民币 *** 万元 比 *** 更可读,便于人工复核。
- 日期粗/中/细差异:分别保留"结构 / 月份 / 年份"——按需细粒度,避免无意义的具体日期暴露。
- 健康/未成年人/证人三类强制细粒度 + 不可逆——PIPL 第 73 条与最高院司法解释共识。
- 自然人姓名:中粒度
张某某 保留姓氏便于实务对应(中国法律文书传统)。
- 统一社会信用代码:细粒度
***——18 位代码本身就是敏感标识,无中间粒度意义。
- 采用本 skill 的律所可 fork 修改:表格是 skill 作者视角的默认设置,律所上线时可按本所 SOP 覆盖。
4.3 可逆性开关
可逆模式:生成 sidecar(内部) + 比对文件 .md(可外发给审核人)
不可逆模式:映射表不持久化,执行后无法还原
刑事证据 / 未成年人 / 医疗数据 → 默认不可逆(即使选了可逆,强制覆盖)
五、跨法域法律依据
调用方标注法域后,本节决定脱敏标准;未标注默认 cn-mainland。
5.1 cn-mainland — 中华人民共和国
| 规范 | 关键条款 | 脱敏关联 |
|---|
| 《个人信息保护法》 | 第 73 条第 3 项 | 定义"去标识化" |
| 《个人信息保护法》 | 第 73 条第 4 项 | 定义"匿名化"——不可复原 |
| 《个人信息保护法》 | 第 51 条 | 处理者义务:加密、去标识化等安全措施 |
| 《数据安全法》 | 第 21 条 | 数据分类分级 + 脱敏作为技术措施 |
| 《最高法关于人民法院在线诉讼规则》 | 第 16 条 | 经当事人同意可匿名化处理 |
5.2 hk — 香港
| 规范 | 关键条款 | 脱敏关联 |
|---|
| 《个人资料(私隐)条例》Cap. 486 | DPAO 1 第 1.1 节 | 定义"anonymised data" |
| 《个人资料(私隐)条例》Cap. 486 | DPP 3 | 使用限制(外发需同意) |
| 香港个人资料私隐专员公署《匿名化指引》 | 全文 | 匿名化 ≠ 假名化;必须不可识别 |
5.3 tw — 台湾
| 规范 | 关键条款 | 脱敏关联 |
|---|
| 《个人资料保护法》 | 第 2 条第 1 款第 4 目 | 定义"去识别化" |
| 《个人资料保护法》 | 第 2 条第 1 款第 5 目 | 定义"匿名化"——完全不可复原 |
| 《个人资料保护法施行细则》 | 第 3 条 | 去识别化具体方法(编码、遮蔽、隐码) |
5.4 sg — 新加坡
| 规范 | 关键条款 | 脱敏关联 |
|---|
| 《PDPA 2012》 | 第 2(1) 条 | 定义"anonymised data" |
| 《PDPA 2012》 | 第 4 部分 | 通知与同意义务 |
| PDPC《Guide to Basic Anonymisation》 | 全文 | 匿名化技术指南 |
5.5 mo — 澳门
| 规范 | 关键条款 | 脱敏关联 |
|---|
| 《个人资料保护法》(第 8/2005 号) | 第 4 条第 4 款 | 定义"匿名化" |
| 《个人资料保护法》(第 8/2005 号) | 第 7 条 | 数据处理安全措施义务 |
5.6 eu — 欧盟(跨境参考)
| 规范 | 关键条款 | 脱敏关联 |
|---|
| 《GDPR》 | Recital 26 | 区分 anonymisation(脱 GDPR)vs pseudonymisation(仍在 GDPR) |
| 《GDPR》 | 第 4 条第 5 项 | 定义 pseudonymisation |
六、工作流(4 步)
步骤 1 解析:读取文件 → 切分段落 → 识别文件类型 → 未指定参数则暂停
步骤 2 识别:按 § 二 16 类清单 + § 三 上下文角色做正则匹配
步骤 3 替换:按 § 四 4.2 映射表取得替换模板 → 分配映射键 → 生成脱敏稿
步骤 4 校验:覆盖率 ≥ 95% + 派生信息风险扫描 + 可读性自检 + 不可逆文件销毁映射
七、输出格式
7.1 脱敏输出(3 段式)
## [A] 脱敏元数据
- 文件:<原文件名> | 法域:<cn-mainland/hk/tw/sg/mo/eu>
- 粒度:<粗/中/细> | 可逆:<是/否>
- 上下文标注:<是/否> | 替换计数:N 处
## [B] 脱敏后文本
[完整文本,每处替换以 [ENTITY_TYPE_N] 占位]
## [C] 风险标注
- [WARN] 派生信息残留 / 低置信度未处理
7.2 可逆模式附加
sidecar(内部,不外发):`plugins/legal-scenes/<本场景>/matters/<slug>/redaction-map.json`
permissions: 0600
比对文件(可外发给审核人):{原文件名}_比对.md
# 脱敏比对表
## 批次元数据(批次 UUID / 法域 / 生成时间)
## 映射表(占位符 | 原文 | 实体类型 | 上下文角色)
八、与场景的协作
本 skill 是只读改写器,不修改调用方的业务逻辑:
| 上游场景 | 触发时机 | 输出用途 |
|---|
| contract-review | 合同审查完成后 | 生成可对外分享版本 |
| litigation-support | 案件结案归档 | 入案例库前脱敏 |
| data-compliance | PIPL 合规审查 → 需要外发样本 | 提供脱敏样本 |
| cocounsel-legal | 外部律师协办 | 隐去当事人真实身份 |
| employment-legal | 离职 / 解雇文书外发 | 隐去员工身份给监管 |
| government-investigation | 调查取证材料外发 | 隐去证人 / 举报人 |
| law-student / legal-clinic | 教学案例改编 | 公开案例库前脱敏 |
配套 references / 相邻 skill(不在本 SKILL.md 范围):
references/config.md — 白/黑名单 + 优先级 + 自定义类型(脱敏时按需 Read)
legal-document-restoration/ — 脱敏稿 runs 级还原 + 比对文件回填(另一操作)
shared/matter-workspace/ — 案件工作区管理(plugins/legal-scenes/<本场景>/matters/<slug>/ 为实际存储路径)
九、禁用与边界
- ❌ 禁止对刑事证据原始件脱敏(仅副本可脱敏)
- ❌ 禁止对未成年人信息默认采用粗粒度(必须细粒度+不可逆)
- ❌ 禁止映射表入版本控制(加入 .gitignore,强制本地存储)
- ❌ 禁止在不知道调用方角色时执行(按 GCL 规范,律师/客户/公众的脱敏要求不同)
- ❌ 禁止脱敏稿与原文混存同一目录
十、版本与变更
| 版本 | 日期 | 变更 |
|---|
| 1.2.0 | 2026-06-24 | 瘦身:移除优先级机制详细 / 白黑名单详细 / 还原流程详细 / 批次一致性 / useCaptureGroup 技术说明——拆为相邻 atomic skill。12→16 类实体扩展保留。 |
| 1.1.0 | 2026-06-24 | 升级:12 类→16 类;新增优先级机制、上下文识别、还原流程、批次一致性(已被 v1.2.0 撤销) |
| 1.0.0 | 2026-06-24 | 初版:12 类实体 × 3 档粒度 × 5 大法域 |
★ Insight ─────────────────────────────────────
- skill 原子化原则:一个 skill 只做一件事。脱敏 = 识别 + 替换。配置(白黑名单)、还原(反向)、批次(工作流)都是别的原子操作,应单独建 skill 或由调用方组织。
- 借鉴 ≠ 复制:吸收参考项目的 16 类分类与上下文角色标注的业务洞察,不复制其工具架构与数据结构。洞察可跨实现,架构应适配载体。
- 行数即约束:< 350 行是可持续维护的边界。超 500 行的 skill 必然塞了无关内容,且单 session 写不完。瘦身就是原子化体检。
─────────────────────────────────────────────────