SuperAPI AI 工具集

adhere-fix

通用与其它

查看项目

更新于 10-15 20:32

技能介绍

用途:adhere 是检查常规 linter 无法覆盖的规则的 linter,Jev 模型读取文件并给出违反某条规则的概率,adhere 在超过阈值时按文件区段报告发现。发现属于判断而非证明,adhere-fix 技能负责逐条核实并修正。

获取发现:运行 adhere lint --yes,或 adhere lint --yes --filter 'src/**' 只检查匹配文件。判断结果缓存在 .adhere/cache/,重跑只判断变更的文件与规则。每条发现含规则 id、描述、confidence 与 context,以及 Jev 指向的约 30 行代码区段。× 为 error(使运行失败),⚠ 为 warning(不失败但更常出错)。context 低时提示该文件可能不足以判断,多数是误报,应先看代码依赖。

读规则:查看规则的 ## Must 与 ## Never 及其排除范围。项目规则位于 .adhere/rules/<id>/RULE.md 或 RULE.ts,或配置 rules 指定的目录;预设规则位于 adhere 包的 presets/<preset>/<id>/RULE.md,即 node_modules/@drkmttr/adhere/presets/,或 https://github.com/darkmatter/adhere/tree/main/presets。

核实:以审查者视角阅读整个函数、类及调用方,追踪辅助函数,确认规则范围(不在范围内的代码属误报)。注释只是声明,不构成证据;Jev 看不到 @adhere 以外的注释。行为依赖外部 API 或库时查其源码、测试、文档;实时检查仅在用户要求时进行且不得针对真实资源。结论分为 real、false、unsure,不确定不要猜测。

修复真实发现:按规则的 must 代码改,贴合周边风格,改动尽量小;运行仓库测试与类型检查;再用 adhere lint --yes --filter '<file>' 确认。同一发现最多尝试三次修复,仍不通过则撤销改动留给用户。

抑制:默认不得添加 adhere-ignore 注释或 @adhere 说明,也不得改已有的。仅当用户允许或环境变量 ADHERE_ALLOW_SUPPRESSIONS=1(用 printenv ADHERE_ALLOW_SUPPRESSIONS 查看)时可抑制误报,或三次修复未清、修复会破坏行为/公共 API/平台加载的真实发现。注释写在其发现的语句上方,格式如 // adhere-ignore alchemy/providers/idempotent-delete -- 理由,理由须写明所查内容与所得结论,不能只写“误报”。文件级用 adhere-ignore-file,多规则用逗号分隔。不确定或未尝试修复的真实发现不得抑制。Jev 不读取这些注释。

某规则多数发现为误报时,不要逐条抑制,应停止抑制该规则、继续其他规则,并在报告给出计数,建议在配置中设置 overrides: { "<rule id>": "warning" }、"off" 或 { threshold: 0.9 },或按规则写作提示改写项目规则。

报告:逐条给出规则、文件与行号、结论及处理方式(已修复、已带理由抑制、留给用户),对误报给出证据,列出多数出错的规则与所有 unsure 的发现。若因不允许抑制而留下发现,结尾提示:Left N findings that suppressing would settle: <rule> at <file>:<line>, … 并说明设置 ADHERE_ALLOW_SUPPRESSIONS=1 后重跑。