技能样板part-04-scenario/skills/env-ngo-story-desensitize/SKILL.md
name: env-ngo-story-desensitize description: >- Load when the user provides a raw service story, beneficiary narrative, or interview transcript that contains personal information and needs a desensitized version safe for public use (reports, social media, case databases). Do not load for closure reports, case extraction, or FAQ generation. disable-model-invocation: true
服务故事脱敏技能(案例库模块 · M2)
把含真实个人信息的服务故事/受益人叙事转成可公开发布的脱敏版本,同时保留故事感染力。这是第 4 课「多智能体协作」中可作为脱敏审核员调用的样板技能,常接在案例萃取之后。
When To Use
- 用户提供了一段含受益人/志愿者/捐赠人真实信息的服务故事、访谈记录或案例文本。
- 用户需要一个脱敏后可公开使用的版本(用于报告、公众号、案例库、对外汇报等)。
- 触发关键词:脱敏、去隐私、匿名化、公开版、发布前处理、故事改写。
不要用于:写结项报告(用 env-ngo-closure-report)、从散记中萃取案例结构(用 env-ngo-case-extract)、写 FAQ(用 env-ngo-community-faq)。
Workflow
- 读取用户提供的原始故事/叙事文本。
- 扫描并标记所有个人可识别信息(PII):真实姓名、手机号、身份证号、详细地址、照片描述中的面部、金额精确数、机构全称。
- 对照
assets/desensitize_rules.md执行逐项替换。 - 输出脱敏版本 + 脱敏变更清单(让用户知道改了什么)。
- 保持故事的情感脉络和叙事节奏,不要因脱敏让故事变成干巴巴的报表。
Required Inputs
- 原始服务故事或访谈文字稿(含真实信息)。
- 可选:用户指定的公开用途(公众号/报告/案例库),以便调整脱敏粒度。
Output Contract
输出两部分:
第一部分:脱敏后故事
保持原文结构和叙事风格,所有 PII 按规则替换。篇幅与原文大致相当。
第二部分:脱敏变更清单
| 原始内容 | 替换为 | 脱敏规则 |
|---|---|---|
| <真实姓名> | <代号 A/B/C> | 姓名→代号 |
| <手机号> | [已删除] | 联系方式→删除 |
| <精确金额> | <量级范围> | 金额→量级 |
Gotchas
- 姓名→字母代号(A/B/C),同一人全文用同一代号。
- 手机号、身份证号、银行卡号→直接删除,不做部分遮盖。
- 精确金额→量级范围(如「43,872 元」→「约 4 万元」)。
- 详细地址→模糊到区县级(如「XX 市 XX 区某社区」)。
- 机构全称→
<机构简称>或约定代号,除非用户明确同意公开。 - 不要改变事实:脱敏是隐藏身份,不是修改故事情节。
- 若无法判断某信息是否需脱敏,标注提醒用户确认,不要自行决定保留。
Files To Read
assets/desensitize_rules.md:脱敏规则对照表(必读)。