其他
从 git diff 中清理 AI 生成臃肿、多余防御…
适用于需要在不改变行为的前提下,对选定的 git diff 去除 AI 生成冗余、无谓防御、外来模式和可避免复杂度的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 48/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 56/100 ×0.15
适用场景
从 git diff 中清理 AI 生成通用
解决思路
- 从请求中推导唯一的 scope;未指定时用 staged(`git diff --cached`)。
- 请求为 "unstaged" / "worktree" 时用 `git diff`。
- 请求为 "against <branch>" / "since <branch>" 时用 `git diff <branch>...HEAD`。
- 若请求命名多个 scope、缺少 base branch 或措辞冲突,标记为 `BLOCKED`;不要因为另一个 diff 非空而切换 scope。
- 捕获 status、选定的 diff、其按字典序排序的文件列表,以及 scope 名称加完整 diff 的 SHA-256 作为 fingerprint。
- 记录 ledger:`scope/fingerprint | current file | checked | kept instances | verification | terminal`。
- 如果 diff 为空,报告 `NO_CHANGES`,并提及 `git diff` 中其他非空 scope,但不要触碰它们。
- 编辑 staged scope 前,如果任一目标文件同时有 unstaged 变更,阻断整个运行。
- Base scope 只覆盖 commits;如果 scoped path 有 staged 或 unstaged 工作,阻断运行。
- 完成条件:记录精确的可编辑 scope 和原始 index 状态。
- 读取每个变更文件,以及每个 module 最多两个相邻文件来建立局部规范;module 指变更文件所在目录,adjacent 指该目录中的文件。
- 依据 `./REFERENCE.md` 中的六个类别分类每个变更 hunk。
- 一个 instance 是由一次原子编辑处理的连续行;记录 path、lines、primary category、local evidence 和 smallest safe edit。
- 分类重叠时,选择需要最小编辑的类别;secondary 仅用于另一次编辑。
- 不要在第一类之后停止。
- 对于大型 diff,按排序顺序处理,并在每个文件后更新 ledger。
- 在到达 terminal 状态前若回合被中断,重新计算 fingerprint;重启变更的 current file,并且仅当其 hunks 未变时保留已完成条目。
- 完成条件:每个 scoped hunk 都完成六类覆盖;零 instance 为 `CLEAN`。
- 应用 `./REFERENCE.md` 中的所有 guardrail。
- 丢弃不确定的 instance。
- 只编辑 kept instance,并使用与附近代码匹配的最小直接形式。
- 保留 logic、timing、errors、side effects、public APIs 和 useful abstractions。
- Unstaged 和 base 绝不 stage。
- 对于 staged,在确认目标文件没有预先存在的 unstaged hunks 后,只 stage 被编辑的目标文件。
- 完成条件:每个 kept instance 都已修改;对于 unstaged/base,index 与 Step 1 snapshot 一致;对于 staged,只有干净的目标文件更新进入 index。
- 重新运行选定的 diff 和 status。
- 确认每个 kept instance 已消失、没有 out-of-scope hunk 移动层级、编辑后的 diff 没有新的 slop。
- 任何对 executable code、types、control flow、error handling、validation 或 API 的编辑,都要运行覆盖其 file、symbol 或 package 的最窄测试。
- 只有 comments、docs 和 whitespace 可以仅靠 diff audit。
- 缺失或失败的必需测试为 `BLOCKED`。
- 报告 scope、files、category counts、preserved staging state、diff audit 和 tests。
- terminal 值为 `SUCCESS`、`CLEAN`、`NO_CHANGES` 和 `BLOCKED`。
- 不要 commit,也不要超出选定的 diff 扩展。
适用边界 · 注意事项
- 当任务需要改变行为(逻辑、时序、错误、副作用、公共 API)时,不适用;deslop 明确要求不改变行为。
- 当选定 diff 为空、scope 无法唯一确定、base branch 缺失或措辞冲突时,不适用,应报告 `NO_CHANGES` 或 `BLOCKED`。
- 当不在 git 仓库中或无法使用 git diff/status 锁定范围时,不适用。