关于 anon
anon 是用于在本地从记录文件或文件夹中删除个人身份信息的技能。它组合正则匹配、Natasha 和可选的本地 LLM,并可保存仅留在本地的可逆映射,以便分析后恢复原值。
主要功能
- 01分层本地 PII 检测与脱敏
- 02处理单个文件或目录
- 03可逆占位符映射或不可逆模式
- 04试运行统计与脱敏数据
- 05仅用正则进行离线处理
适用场景
- 01准备供审阅或分享的记录
- 02批量脱敏 Markdown 和文本文件
- 03远程分析脱敏文本后在本地恢复原值
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ glebis/ claude-skills --skill anon安装后在 Claude Code 中输入/anon确认已加载。
附带文件scripts/anon.py
详细介绍
confide:anon — 本地 PII 脱敏
使用 shared/confide_core.py 中的分层本地处理栈,从转录文本(或整个文件夹)中脱敏个人身份信息:正则表达式(电子邮件 / URL / 电话号码 / ID / 日期)
→ Natasha(俄语命名实体)→ 本地 LLM(准标识符)。对文本片段进行区间合并,
并用占位符替换。结果是可安全审阅的 GREEN 副本。
默认情况下,anon 会生成一个可逆映射表:唯一的保留哨兵占位符(完全相同的值始终会变成
相同的 [CONFIDE_<TYPE>_<NNNN],例如 [CONFIDE_PERSON_0001]、
[CONFIDE_EMAIL_0001]、[CONFIDE_DATE_0002]),以及同级的 <name>.map.json(结构为:
schema_version、doc_id、green_sha256、created、entries[]),将每个占位符映射到
原始值。CONFIDE_ 哨兵是保留值——真实转录文本中几乎不会出现,因此不会发生冲突,复原时也绝不会触碰
“Person 1” 这样的普通文字。这是精确值匹配,而非实体共指:词形变化后的形式(例如俄语中的
“Марина”和“Марины”)会对应不同的占位符(不会进行词形还原合并)。该映射表就是秘密——唯一含有原始值的
产物;它会保留在本地,并支持 confide:rehydrate 将真实值还原到对 GREEN 文本的云端分析中
(往返流程:脱敏 → 分析 GREEN 文本 → 在本地还原)。使用 --no-map 可采用旧式的不可逆
[TYPE] 样式(不写入映射表)。
隐私约束(不得违反)
- 仅限本地。 不调用云端 API。原始文本绝不会离开本机。
- 根据设计,原始 PII 只会写入本地、权限为 0600、被 git 忽略的
<name>.map.json,且该文件绝不会离开本机。 绝不会打印原始值,也绝不会写入 GREEN 副本(GREEN 中仅包含占位符;原始文件只读,不会被改写)。映射表是秘密——唯一含有原始值的产物。输出目录中会写入或更新涵盖*.map.json、*.view.html和*.restored.md的.gitignore,确保这些仅限本地的产物不会被提交。如果输出目录看起来与云端同步(iCloud / Dropbox / OneDrive / Google Drive),anon 会打印一条 WARNING,提示秘密映射表可能会被上传。 - 仅统计数量。 标准输出和
*.stats.json文件只包含数量(按类型、按层、脱敏率),绝不包含 PII 值或脱敏文本转储。 - 仍需人工审阅。 脱敏只是最低限度的保护,并非保证。分享前必须由人工阅读 GREEN 副本。搭配 confide:red 检查残余的重新识别风险。
运行
在单个文件或目录上运行脚本(处理其中所有 .md / .txt 文件):
python3 skills/anon/scripts/anon.py PATH
对于每个输入,脚本会在文件旁(或写入 --out DIR 指定的目录)生成:
<name>.green.md— 脱敏后的文本(审阅后唯一适合查看 / 分享的内容)<name>.stats.json— 仅包含统计数量<name>.map.json— 可逆映射表(秘密;权限为 0600;被 git 忽略;仅限本地)。使用--no-map时会跳过。输出目录中也会写入或更新包含*.map.json的.gitignore。
已生成的 *.green.md / *.stats.json / *.map.json 会被跳过,因此可以安全地对文件夹重复运行。
运行后
- 报告数量摘要(类型、层、脱敏率)——绝不粘贴 PII。
- 告知用户分享前仍需人工审阅 GREEN 副本。
- 提醒他们
<name>.map.json是秘密(包含原始值)——它会保留在本地,绝不提交 / 分发;confide:rehydrate 会用它将真实值还原到对 GREEN 文本的云端分析中。 - 提供 confide:red,以探查攻击者还能推断 / 关联出哪些信息。
设置
图层可用性(Natasha、通过 Ollama 运行的本地 LLM)和默认值来自配置——如果尚未安装 Natasha/Ollama,请先运行
confide:setup。--layers regex 始终可离线运行。