资料修改审计
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f1b049da/mwqc2026819 技能。
技能介绍
为什么需要结构化的变更审计
客户资料一旦落库,后续的每一次写入都应该是可追溯的。但很多系统只存了最新一版 JSON,改了手机号、调整了跟进阶段之后,无法回答「谁在什么时候改了哪个字段、从什么值改成了什么值」。直接对两份 JSON 做字符串比对也不可靠:字段顺序、空白、嵌套对象的键排序都可能变化,误报率高。
这个技能把两份纯 JSON 对象交给 fast-json-patch 的 compare,直接生成符合 RFC6902 的 patch 数组,让每一次字段级改动都有结构化记录。
核心能力与工作步骤
- 字段级差异计算:输入
old和new两个对象,compare输出add、remove、replace、move等操作,精确到 JSON 路径。 - 可读摘要生成:patch 之外,同时输出人类可读的变更列表,每条包含
路径 / op / 旧值 / 新值,便于直接展示给审核人员。 - 敏感字段脱敏:手机号、证件号等字段在摘要中做掩码展示,完整值只写入审计库,防止审计界面本身泄露数据。
- 回放校验:需要验证变更合法性时,可用
applyPatch把 patch 应用到旧对象上,失败时捕获并提示路径冲突。
典型接入方式是在保存钩子中调用:
- 保存前拿到旧对象快照与当前新对象;
compare(old, new)得到 patch;- patch 为空则跳过写入,有变更才生成审计记录;
- UI 层把
/mobile、/stage这类 JSON 路径映射成「手机号」「跟进阶段」等中文字段名。
适用边界与注意点
- 只面向结构化 JSON:本技能处理的是字段级 diff,不适用于纯文本行 diff。如果需要对跟进笔记这类长文本做逐行对比,应使用专门的文本 diff 方案。
- 路径冲突要显式处理:
applyPatch可能因目标路径被占用或中间节点缺失而失败,调用方需要捕获异常并定位到具体冲突路径,而不是静默吞掉。 - 快照策略要配合:技能本身不负责存储旧对象,上层需要自行在写入前留存快照,否则无法生成有意义的 patch。
- 摘要不是数据源:脱敏后的摘要仅用于展示和审核,完整字段值必须从审计库读取,不要拿摘要反推原值。
使用场景
- 保存客户资料前生成 RFC6902 变更日志,记录哪个字段从旧值改成新值。
- 审核销售更新的手机号和跟进阶段,在界面上对比并确认修改内容。
- 对客户资料中的手机号和证件号做脱敏摘要,完整值只写入审计库。
- 用 applyPatch 将 patch 回放到旧对象验证冲突,定位无法应用的路径。
适合人员
- 负责客户资料写入逻辑的后端工程师,需要在保存前生成结构化变更日志。
- 负责合规审核的数据专员,要查看手机号、证件号等字段改了哪些内容。
- 管理 CRM 客户档案的运营人员,要确认跟进阶段等关键信息被正确修改。
- 参与审计功能联调的测试工程师,需要验证 patch 回放失败时的冲突提示。