关于 dedupe
dedupe 是一项用于在限定集合中生成有证据支撑的重复项报告并处理重复项的技能。它将身份判断、规范项选择、经批准的更改和验证分开,以避免独特信息被无声丢弃。
主要功能
- 01精确、规范化和相似度比对
- 02支持六类数据适配器
- 03规范项映射与冲突报告
- 04经授权后执行变更计划
- 05变更后的计数核对与验证
适用场景
- 01查找重复文本或列表条目
- 02审查重复文件或记录
- 03按批准计划处理重复 URL 或技能
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ srinitude/ skills --skill dedupe安装后在 Claude Code 中输入/dedupe确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
mise.toml.github/workflows/ci.ymlassets/decision-records.jsoneval-case-template.jsonimprovement-contract.jsoninvocation-receipt-template.jsonmise-primitives-catalog.jsonmise-primitives.jsonprimitive-lifecycle.jsonrequest-template.jsonuse-case-contract.jsonevals/cases.jsoncontract.mdevals.jsonmanifest.jsonnative-case-mapping.jsonrubric.mdsource-lineage.jsonspeed-budgets.jsontrigger-cases.jsontrigger-queries.jsonexamples/apply.mdexample-first-run.mdfailure.mdhelp.mdinspect.mdinvalid-request.jsonlist-request.jsonreferences/core-contract.mddecisions.md详细介绍
去重
为有界集合生成证据充分的重复项报告。将发现、分组、规范项选择、变更和验证分开处理,避免唯一信息在不知情的情况下消失。
运行时组合
每项去重任务都应用以下负责方。加载其当前说明,而不要在此复制其流程。
- 加载
always-current-datetime,并在回复用户之前获取其时钟锚点。只有当新鲜度、年龄、重定向、文件时间或最新项目的平局判定会影响决策时,才再次查询运行时的时间。 - 加载
starting-point。明确所需结果、有界输入、权威来源、所需证据、未知项和禁止的结果。 - 加载
outcome-bounded-work。将适配器步骤视为候选路径,除非某一步能保护身份、安全、授权、可复现性或证据。 - 加载
logic-audit。在变更和完成前,审查身份规则、规范化、相似度阈值、非传递性配对、冲突、规范项平局判定、空值、缺失值、链接和边界情况。
如果无法加载所需负责方,则以 contract-unavailable: <skill-name> 停止。切勿用记忆中的文本替代不可用的负责方。
命令
| 命令 | 结果 |
|---|---|
help | 显示适配器、身份类别、默认值和必需输入。 |
inspect | 生成非变更报告和拟议的规范映射。 |
apply | 执行一项明确获批的变更计划,然后进行验证。 |
apply 指的是经审查的工作流阶段,而非脚本命令。捆绑脚本不提供可执行的 apply 子命令。只有在确切的源项、规范目标、操作、冲突处理方式和目标位置均获授权后,才能通过可用的宿主能力执行获批计划。
除非已有当前且经审查的报告以及明确的变更授权,否则应先将破坏性请求映射为 inspect。
必需输入
检查前,明确以下事项:
- 有界源项目和去重单位
- 一个适配器:
text、file、record、url、list或skill - 身份类别:精确、规范化或相似度候选
- 规范化和比较策略
- 规范项选择规则
- 冲突和合并策略
- 变更授权和目标位置
- 证据阈值以及回滚或重建路径
不要臆造缺失的身份、规范化规则、阈值或平局判定规则。只有当缺失信息无法检索且会改变结果时,才提问。
身份类别
在每份报告中都将以下类别分开处理:
- **精确身份:**在确定性表示下,字节、值或数据包相等。
- **规范化相等:**仅在应用已披露的规范化策略后相等。
- **相似度候选:**根据明确的算法和阈值得出的评分配对。它不代表身份,也不会在未经审查的情况下减少规范项数量。
相似性通常不具传递性。除非所选算法能证明等价关系,否则绝不要将 A≈B 和 B≈C 推断为 A=B=C。
流程
- 仅枚举请求范围内的内容,并记录稳定的源索引和来源信息。
- 选择键或规范化方式前,先加载匹配的适配器参考文档。
- 先执行精确比较,再执行规范化或相似度比较。
- 将比较键相同的项分组。未解决的项保留在组外。
- 按声明的规则选择一个规范项。仅当源顺序有意义且用户接受时,才默认选择最先出现的项。
- 记录冲突和唯一字段。冲突项不是可移除的重复项。
- 在进行任何写入、删除、替换、移动、合并、重定向查询或持久化变更之前,先生成报告。
- 根据已审核的分组制定变更计划。将每个受影响项映射到其规范项,并说明保留的信息。
- 仅执行已批准的计划。不得扩大范围,也不得递归清理相关集合。
- 重新枚举源,核对数量,验证哈希或值,并重新运行检查。对于已批准的身份类别,第二次运行必须不产生任何变更。
确定性检查器
创建 JSON 请求,然后从技能根目录运行:
mise run dedupe inspect --request /absolute/path/request.json
检查器绝不会修改输入。它会输出规范索引、重复组、哈希比较键、相似候选项、冲突、未解决项、来源信息、已披露的策略以及核对后的数量。真实请求和输出示例请参见 examples/inspect.md。
变更门槛
删除、替换、合并、移动、跟随链接、解析重定向或持久化用户数据,都必须获得针对确切计划的明确授权。批准内容必须指出源、规范目标、操作、冲突处理方式和目的地。
如果缺少授权、检查后源发生变化、计划哈希发生变化、仍存在冲突、来源记录不一致,或破坏性操作无法回滚和重建,则必须拒绝执行。
验证
以下各项必须全部满足:
source_count = canonical_count + duplicate_count + unresolved_count- 每个被移除或合并的项都映射到一个保留项
- 每个唯一字段或段落都已保留,或经授权明确舍弃
- 已记录比较键和策略,且未暴露敏感原始值
- 相似候选项在审核前保持分离
- 应用变更后的检查报告显示不存在剩余的已批准重复项
- 包变更后,
mise run ci以状态码 0 退出
如果无法使用 Mise,则直接运行 mise.toml 中的每条任务命令,并说明 Mise 本身未运行。mise run test 下的测试、evals/ 中的原生用例以及 assets/ 中的模板都只是包的证据,不构成修改用户数据的许可。
渐进式披露映射
资源门槛:使用此处列出的包文件前,先运行 mise run validate。
PD-001:references/core-contract.md规定完整的报告、规范项选择、授权和验证契约。每次检查或应用请求都必须加载它。本节是其回链。PD-002:references/text-list.md规定文本和列表策略。选择任一适配器时都必须加载它。本节是其回链。PD-003:references/file-record.md规定文件和记录策略。选择任一适配器时都必须加载它。本节是其回链。PD-004:references/url-skill.md规定 URL 和技能策略。选择任一适配器时都必须加载它。本节是其回链。PD-005:references/report-mutation.md规定请求和报告字段、批准格式、应用检查以及降级验证。生成报告或变更计划前必须加载它。本节是其回链。references/decisions.md记录了这些边界存在的原因。修改此技能前请阅读。examples/为每条命令提供一个已完成的示例,以及一个常见失败路径。当输出格式不明确时,加载匹配的示例。
已完成
只有在所要求的限定结果通过、每项保留的任务和适配器决策都有证据、所有获授权的更改均已验证、未解决事项均清晰可见,且最终逻辑审计未发现缺乏依据的身份、阈值、平局裁决规则或完成声明时,任务才算完成。
工厂执行契约
验收结果:将限定范围内的重复项集群解析为规范记录,同时不丢失不同身份的证据。保留当前的重复项集群行为,同时修改其最小所属组件。
- 使用
mise run ci冻结当前软件包,并记录其摘要。 - 运行
mise run domain-research-policy,然后判断当前重复项集群的来源及反证。 - 针对指定的重复项集群操作运行
mise run agentic-request。语义选择由模型负责。 - 运行
mise run decision-policy、mise run ci和行为评估。返回至最底层的失败所属组件。 - 运行
mise run invocation-policy -- <receipt>,并说明每项任务的处理情况,或说明为何按其领域特定规则不使用该任务。 - 可选运行
mise run improvement-policy。仅当没有受保护的维度出现退化时,才保留一个发生更改的维度。
只有在需要相关契约时,才通过 mise run use-case-policy 加载 assets/use-case-contract.json,并通过 mise run evals 加载 evals/evals.json。
Mise 负责可重复的机制、顺序、回执和检查。模型负责代码无法提供的解读、因果判断、创造性工作和直接感知。遇到授权缺失、证据过时或门禁失败时,立即停止。