Desloppify排除与Zone机制详解5个步骤正确忽略vendor、测试与生成代码【免费下载链接】desloppifyAgent harness to make your slop code well-engineered and beautiful.项目地址: https://gitcode.com/gh_mirrors/de/desloppifyDesloppify 是一个面向 AI 生成代码的去糟deslop工程化工具它扫描代码库、生成健康评分卡并驱动 AI 代理完成修复。当你让 Desloppify 扫描项目时vendor 依赖、测试目录和生成代码往往会产生大量无效问题、拉低评分。**排除exclude与Zone 分区就是解决这两类噪音的核心机制前者让路径完全不被扫描后者让特定路径按分区策略被扫描但不计入健康分。本文带你快速掌握两者的差异、常用命令与最佳实践。先搞懂Desloppify 的工作流程长什么样Desloppify 的核心循环是扫描代码库 → 生成评分 → 未达到目标分数时由机械检测器与 AI 主观分析共同产出问题清单 → 进入制定计划 → 修复 → 更新计划的修复循环。可以看到扫描是整个流程的源头。如果源头混入了 vendor、测试、生成代码后面的评分、计划、修复都会被污染。所以排除与分区本质上是对扫描输入的第一道治理。exclude 命令让路径彻底不被扫描一键添加排除规则最直接的命令是desloppify exclude path它会做四件事实现见 desloppify/app/commands/exclude.py写入配置把模式追加到配置的exclude列表中去重逻辑在 add_exclude_pattern标记重扫设置needs_rescan True下次扫描会重新收集文件清理状态从已缓存的 state 中删除文件路径命中该模式的所有 issue清理计划把这些 issue 从 plan.json 的队列、跳过列表和聚类中一并清除。也就是说exclude不是下次扫描再生效而是立即生效——已有的队列条目会被同步清除不会出现删了规则但旧问题还在排队的情况。排除模式如何匹配匹配逻辑在 matches_exclusion规则很简单好记写法含义示例单个路径段名任意层级目录名等于它即命中vendor匹配third_party/vendor/xx.js带*通配符对任意路径段做 glob 匹配*.min.js、build*带/的路径前缀该目录及其全部子路径命中Wan2GP/**匹配Wan2GP/models/rf.py什么时候该用 exclude构建产物dist/、build/、out/第三方引入的非标准目录官方目录名不在内置 Zone 规则里时worktree / 实验分支目录、模型权重目录等与代码质量完全无关的内容README 中也给出建议扫描前先检查这类目录把明显的排除掉见 README.md。Zone 机制不是一刀切而是分区治理6 种分区与自动分类规则与 exclude 的完全忽略不同Zone 机制把文件按意图分成 6 个分区由 desloppify/engine/policy/zones.py 中的Zone枚举定义Zone常见目录内置规则是否计入健康分production其他所有文件默认分区✅ 计入test/tests/、/test/、/fixtures/❌ 不计入config各类配置文件❌ 不计入generated/generated/、/__generated__/❌ 不计入script/scripts/、/bin/✅ 计入策略放宽vendor/vendor/、/third_party/、/vendored/❌ 不计入分类是确定性的按内置规则顺序匹配相对路径第一条命中的规则生效都没有命中则归为production。各语言插件还可以追加自己的规则lang.zone_rules。每个 Zone 的检测策略不同分区的真正价值在于分区检测策略ZONE_POLICIES 策略集合定义在 desloppify/engine/policy/zones_data.pyvendor / generated跳过全部检测器SKIP_ALL_DETECTORS也不计入评分——第三方和生成代码天然不需要重构建议test跳过重复、耦合、孤儿代码、测试覆盖率等 10 类检测器smells/structural类问题降级为低置信度不计入评分config跳过 12 类检测器包括 smells、dupes、security 等不计入评分script仅跳过耦合、单点使用等 4 类结构类问题降级仍计入评分。这就是为什么 Desloppify 的评分卡能保持干净测试和 vendor 的噪音在源头就被分区策略消化了而不是靠人工排除。用 zone 命令检查与纠正分类三个子命令覆盖全部运维场景实现见 desloppify/app/commands/zone.py# 查看当前所有文件的分区归类 desloppify zone show # 手动覆盖某个文件的分区立即作用于已有 issue desloppify zone set src/fixtures_data.py test # 清除覆盖文件恢复为自动分类 desloppify zone clear src/fixtures_data.py几个实用细节zone show按分区分组列出文件手动覆盖的条目会标注(override)zone set会校验分区名合法性并把覆盖写入配置的zone_overrides同时立即更新 state 中该文件的 issue 分区无需等下次扫描zone clear会把相关 issue 重置为production下次扫描时自动重新分类分区修正后官方建议重新执行desloppify scan让分数反映真实状况。exclude 还是 Zone一张表分清使用场景你的情况推荐做法构建产物、模型目录、临时实验目录desloppify exclude path完全无视vendor 依赖、生成代码在标准目录/vendor/、/generated/什么都不做内置 Zone 规则已处理测试文件在标准目录/tests/、/fixtures/什么都不做test 分区已放宽策略测试/脚本混在非标准目录如bench/、harness/desloppify zone set手动覆盖第三方代码在自定义目录名优先zone set file vendor整目录则exclude最佳实践清单 ✅扫描前先跑desloppify zone show确认分区符合预期能自动就别手动手动覆盖只用于内置规则没覆盖到的边缘目录排除后留意输出exclude会打印Removed N matching issues from state确认清理数量符合预期修完分类就重扫分区/排除调整后执行desloppify scan让评分卡回到真实水位不要把核心业务代码 exclude 掉排除是不可见而非低优先级误排会直接漏掉真实问题。小结Desloppify 的排除与 Zone 机制是扫描质量的基石exclude 负责完全无视Zone 负责分区放宽。内置的 6 分区规则已覆盖绝大多数项目的 vendor、测试与生成代码场景配合desloppify zone show / set / clear和desloppify exclude两个命令就能把你的评分卡维持在只反映真实业务代码的健康水位——这也是让后续 AI 修复循环聚焦真正问题的前提。【免费下载链接】desloppifyAgent harness to make your slop code well-engineered and beautiful.项目地址: https://gitcode.com/gh_mirrors/de/desloppify创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考