mcpField
A
anon

anon

github.com/glebis安全40167 次安装1 天前更新
代码仓库

关于 anon

anon 是用于在本地从记录文件或文件夹中删除个人身份信息的技能。它组合正则匹配、Natasha 和可选的本地 LLM,并可保存仅留在本地的可逆映射,以便分析后恢复原值。

主要功能

  1. 01分层本地 PII 检测与脱敏
  2. 02处理单个文件或目录
  3. 03可逆占位符映射或不可逆模式
  4. 04试运行统计与脱敏数据
  5. 05仅用正则进行离线处理

适用场景

  1. 01准备供审阅或分享的记录
  2. 02批量脱敏 Markdown 和文本文件
  3. 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 会被跳过,因此可以安全地对文件夹重复运行。

运行后

  1. 报告数量摘要(类型、层、脱敏率)——绝不粘贴 PII。
  2. 告知用户分享前仍需人工审阅 GREEN 副本。
  3. 提醒他们 <name>.map.json 是秘密(包含原始值)——它会保留在本地,绝不提交 / 分发;confide:rehydrate 会用它将真实值还原到对 GREEN 文本的云端分析中。
  4. 提供 confide:red,以探查攻击者还能推断 / 关联出哪些信息。

设置

图层可用性(Natasha、通过 Ollama 运行的本地 LLM)和默认值来自配置——如果尚未安装 Natasha/Ollama,请先运行 confide:setup。--layers regex 始终可离线运行。

评论

支持 Markdown