← Back to skills
extension
Category: Data & AnalyticsNo API key required

微信整理

This skill should be used when scanning, classifying, reviewing, or de-duplicating WeChat or Weixin local data files such as chat attachments, received documents, images, and favorites, under strict privacy constraints. It reads only file metadata (path, size, mtime, SHA-256) and never opens chat database contents or uploads anything. Trigger it for requests like scan WeChat storage, find my contracts or invoices or ID files, list sensitive files, clean duplicate WeChat attachments, or export and organize important materials.

personAuthor: user_786f2ccdhubcommunity

微信本机数据隐私优先分析器(WeChat Local Data Analyzer)

一、核心目标(Core Goal)

在不读取任何文件正文、不解析聊天数据库、不联网、不上传的前提下,对微信/微信(Weixin)4.x 本机存储做只读扫描,自动识别并整理出重要资料(合同/财务/证件/工作文档等)、标注敏感信息风险、 按内容哈希找出重复文件,并支持「导出 / 备份 / 去重」等后续动作——所有动作均为显式开关 + 二次确认, 默认不执行任何写操作。

本 skill 把"微信本地数据治理"沉淀为一个可复用的智能体能力模块,便于直接挂到代码助手或自动化 工作流中调用,也可作为隐私优先型文件治理的通用范式。

二、适用场景(When to Use)

  • 用户想理清本机微信接收/收藏的文件,但怕泄露隐私、不想让 AI 读聊天记录。
  • 需要从海量微信文件中筛出合同、发票、报价、证件、资质等重要资料并归档。
  • 需要敏感信息风险提示(身份证/银行卡/密码/合同等文件名命中)。
  • 微信文件目录臃肿,需要清理重复附件回收空间(重复多为多次下载的 (1)/_1 副本)。
  • 已导出的"重要资料"集合内部仍有重复 / 命名混乱,需要二次去重与业务域归类。
  • 构建数据备份、资料迁移、合规自查类自动化管线。

不适用:读取聊天对话内容、破解/解密 EnMicroMsg.db、恢复已删除聊天记录——本 skill 主动拒绝。

三、输入输出规范(I/O Spec)

输入(上下文参数,见第六节)

  • scan_root:待扫描的微信数据根目录(账号目录或父级 WeChat Files)。
  • 可选 include / exclude:扩展名白/黑名单。
  • 可选动作开关:--export-important / --backup / --cleanup-duplicates。
  • 危险动作必须伴 --confirm;建议先 --dry-run 预览。

输出

  • 只读扫描:本地 wechat_scan_report.md + wechat_scan_report.json,结构含 按类型 / 账号 / 年-月分布、重要资料清单、敏感提示清单、重复文件组、加密库清单(仅元数据)。
  • 导出:把重要文件复制到目标目录(源不变,非破坏)。
  • 去重:把重复副本 shutil.move 到本地回收文件夹(非永久删除,可恢复),并写出 WeChatDupTrash_plan.txt 逐条 KEEP/TRASH 清单。
  • 导出集二次去重:_dedup_export_log.txt 逐条 MOVE 记录,冗余副本按哈希归入备份子目录。

所有结论可追溯到具体路径;报告头部固定附带隐私与安全声明。

四、执行步骤(Execution Steps)

采用"先只读、后动作、每步可回退"的工作流:

  1. 探测根目录:若无 --root,用 auto_detect_roots() 枚举 C:\Users\<u>\Documents\WeChat Files、C:\Users\<u>\WeChat Files、D:/E:/F:/WeChat Files; 失败时生成说明性空报告而非报错退出。
  2. 只读扫描:scan() 遍历目录树,跳过 .db(仅记元数据),收集路径/大小/mtime/类型/ 重要标志/敏感标志;对 ≥ MIN_HASH_SIZE(1KB)的文件算 SHA-256 用于去重。
  3. 汇总分析:analyze() 产出类型/账号/年月分布、重要清单、敏感清单、重复组 (同哈希 ≥2 份,记录 full_paths 全部副本路径,避免只存前 5 个的截断缺陷)。
  4. 生成报告:build_markdown() 输出 8 节 Markdown + JSON;默认仅到此为止,零写操作。
  5. (可选)危险动作——必须 --confirm,强烈建议先 --dry-run:
    • 导出重要文件:复制(不改源)。
    • 备份:复制非数据库文件(加密库跳过,需用户另行明确授权)。
    • 清理重复:移入本地回收文件夹(保留每组的 1 份,其余移走,碰撞保护 + 完整计划清单)。
  6. (导出集专用)二次去重:对已经导出的集合再跑 export_dedup.py,移走内部重复副本到 备份目录(同样可恢复),使导出集内容唯一。

五、执行约束 / 隐私红线(Constraints)

  1. 只读元数据:绝不 open() 读取文件正文做内容判断;重要/敏感判定仅基于扩展名 + 文件名关键字。
  2. 绝不解密聊天库:*.db(EnMicroMsg.db 等 SQLCipher)只统计大小/路径,不尝试解密或读取。
  3. 不联网:脚本不含任何网络/上传模块。
  4. 危险操作分离:备份 / 导出 / 去重均为显式开关 + 二次确认,默认全关;未确认时绝不修改、 移动、删除任何文件。
  5. 去重只移不删:重复副本仅 shutil.move 到本地回收文件夹,原文件不删除,可随时恢复。
  6. 碰撞保护:回收/备份目录内保留原始相对路径或哈希子目录,同名文件不互相覆盖。
  7. 环境限制已知:部分沙箱禁止不可逆删除(safe-delete 失败闭合)。此时"永久删除"无法完成, 应回退为"移动至可恢复备份"并向用户说明在真实机器上手动清空。
  8. 操作前确认制:涉及任何实质性文件改动(读写/移动/生成),先向用户说明计划并等待明确确认。

六、上下文参数(Context Parameters)

| 参数 | 必填 | 默认 | 说明 | |---|---|---|---| | scan_root | 否 | 自动探测 | 微信数据根目录;传父级 WeChat Files 可按账号分组,传单账号目录则账号列退化为子目录 | | include | 否 | 全部纳入 | 逗号扩展名白名单,如 pdf,docx,xlsx | | exclude | 否 | 无 | 逗号扩展名黑名单 | | --export-important OUT | 否 | 关 | 导出重要文件到 OUT(需 --confirm) | | --backup OUT | 否 | 关 | 备份整个扫描根到 OUT(需 --confirm,跳过加密库) | | --cleanup-duplicates | 否 | 关 | 清理源目录重复文件(需 --confirm) | | --confirm | 否 | 关 | 确认执行危险操作;缺失则仅预览并跳过 | | --dry-run | 否 | 关 | 只打印将做的事,不写入 | | --no-progress | 否 | 关 | 关闭进度输出 | | out / json | 否 | wechat_scan_report.md/.json | 报告路径 |

export_dedup.py 独立参数:--src(导出集目录)、--backup-dir(冗余备份目录,默认 <src>_冗余副本)。 classify_export.py 独立参数:--src、--out(输出 _export_analysis.json)。

七、边界与不适用范围(Scope Boundaries)

  • 能做的:元数据扫描、文件名级分类、哈希去重、复制式导出/备份、移动式去重。
  • 不能/不做的:读取聊天内容、解密数据库、恢复已删记录、对文件正文做 OCR/语义解析、 联网上传、在无确认情况下修改源数据、不可逆删除(除非用户在本机显式授权且环境允许)。
  • 分类局限:重要/敏感/业务域判定依赖文件名关键字,对无语义命名的文件(如纯编号、客户件号代码) 可能漏判;此类应在报告中标注为"未归类"并建议人工复核,而非臆测。
  • 账号维度:以 --root 下一级目录作为账号标识;传单账号目录时无法跨账号聚合。

八、捆绑资源(Bundled Resources)

  • scripts/wechat_analyzer.py — 主分析器:扫描 + 分类 + 敏感提示 + 哈希去重 + 报告 + 导出/备份/清理(全部带 --confirm/--dry-run 门控)。纯标准库,零依赖。
  • scripts/export_dedup.py — 对"已导出的重要资料"集合做内部二次去重(移动式、可恢复)。
  • scripts/classify_export.py — 对导出集做业务域分类(文件名关键字)+ 内容哈希去重统计, 输出 _export_analysis.json,供"梳理关键信息与逻辑结构"使用。
  • references/wechat_data_layout.md — 微信/Weixin 数据目录布局、加密库说明、分类与去重判定口径、 常见陷阱(如微信备份快照 RMFH 容器不可直接分析),供执行时按需加载。

九、集成示例(Integration)

代码助手 / 自动化工作流调用时,典型指令序列:

# 1) 只读扫描(默认安全,零写操作)
python scripts/wechat_analyzer.py --root "E:/xwechat_files/wxid_xxx_4b51" --no-progress

# 2) 预览导出(不执行)
python scripts/wechat_analyzer.py --export-important "D:/export" --dry-run

# 3) 用户确认后执行导出
python scripts/wechat_analyzer.py --export-important "D:/export" --confirm

# 4) 预览并清理源目录重复
python scripts/wechat_analyzer.py --cleanup-duplicates --confirm --dry-run

# 5) 导出集内部二次去重(可恢复)
python scripts/export_dedup.py --src "D:/export"

所有写操作前必须 dry-run 预览 + confirm 确认;任何不可逆动作在本环境被拦截时, 回退为"移动至可恢复备份"并如实告知用户。

十、自我发布(一键分享)

本技能自带发布流水线 scripts/publish_skill.py(纯标准库、零依赖),可把自身打包为 「技能市场规范发布包」并发布。元数据来自两份来源:

  • SKILL.md 前置:name、description(市场必填)
  • publish.json 侧车:version、author、license、tags、displayName、 minHostVersion、changelog、category 等发布元数据

发布流程(四阶段,每阶段独立错误处理)

  1. collect — 合并 SKILL.md 前置 + publish.json
  2. validate — 校验必填字段与格式(名称连字符小写、描述无尖括号、版本语义化、许可证白名单)
  3. package — 生成 <name>.zip + <name>.manifest.json(含逐文件 size/sha256、包体 sha256)
  4. upload — 可插拔传输:
    • 默认本地注册表发布:写入 --registry-dir,产出「可提交」产物(包 + 清单 + 发布历史)
    • 配置 --endpoint URL --token TOKEN 时走 HTTP multipart 上传,按响应分类报错 (NETWORK / AUTH / CLIENT / SERVER)

用法

python scripts/publish_skill.py --skill . [--out _publish] [--registry-dir DIR]
                                [--endpoint URL --token TOKEN] [--dry-run] [--quiet]
  • --dry-run:只 collect/validate/package,不上传,用于本地自检。
  • 结果写入 publish_result.json,含 status(PUBLISHED / PACKAGED_LOCALLY / PACKAGED_DRYRUN / FAILED)、失败 stage 与分类 details、产物路径与提示。

全周期发布推送工具(推荐)

若需要完整的「鉴权登录 → 上传 → 版本校验 → 发布 → 状态轮询 → 回滚」生命周期, 以及对命令行/流水线(退出码、--json、--quiet、--config)的支持,请使用 通用工具 skill_publisher.py(位于工作区 E:\Weixin\WeChatDataTool\,对任意技能可用):

python skill_publisher.py login   --mock --api-key KEY --api-secret SEC
python skill_publisher.py publish --mock --skill . --out _publish
python skill_publisher.py status  <name> <version> --mock
python skill_publisher.py rollback <name> --to <version> --mock
# 对接真实市场:把 --mock 换成 --endpoint <URL> [--token TOK | 先 login]

它内置 http / cli / mock 三种传输后端,支持 dependencies 依赖声明、令牌凭据存储 (权限 600)、结构化错误日志(RotatingFileHandler)与分级退出码,可直接嵌入 CI。

关于远程发布:当前 WorkBuddy 推荐市场(BuiltinMarket)仅通过宿主侧 workbuddy_marketplace_skill 暴露 search/install,未提供程序化 publish 接口。 因此脚本默认产出「提交就绪」发布包(你可在宿主的技能管理界面提交),并保留 HTTP 上传通道, 一旦配置可用的市场 endpoint 即可直接推送。远程不可达时不会崩溃,而是返回带原因的失败结果。