ds-verify-loop 是一个围绕“用真实检查证明改动有效”的循环式验证技能,核心原则是依据检查实际报告的内容来修复,而不是依据预期来修复。
用途:当你修改的代码带有测试、类型检查、构建或其他可执行检查时,可用该技能一步步验证改动,避免凭猜测判断代码是否生效。
主要能力:
- 编辑前先选定并记录最窄的真实检查命令,例如单个测试文件、一次类型检查、一次构建,或带一次请求的应用运行。
- 如条件允许,编辑前先运行一次,明确基线状态(本来失败、本来通过或因其他原因损坏)。
- 做出满足该检查的最小编辑。
- 用完全相同的命令运行,完整阅读错误输出,包括第一个错误、文件与行号、以及自己代码中的栈帧,不要只扫最后一行。
- 基于输出用一句话陈述根因;若无法做到,可加一行打印或日志、阅读失败代码后重跑,不靠猜测。
- 修复原因而非症状,不为测试用到的某个输入添加特例。
- 每次迭代只改一处,便于判断哪一处修复了问题。
- 窄检查通过后,再跑一次更广的检查(完整测试套件、构建或 lint)以发现其他位置的破坏。
- 回复或 PROGRESS.md 中粘贴最终通过的输出(命令及其末尾几行)。
使用方式:按上述步骤循环执行;检查通过并粘贴输出即停止,无输出不算通过。达到 5 次迭代仍未通过时,停止编辑、报告最后错误并转用 ds-unstick;同一错误在两次不同修复后再次出现时,立即转用 ds-unstick,无需等到第 5 次迭代。
规则与限制:不得为了让检查通过而削弱、跳过、删除或放宽测试、断言、类型或 lint 规则;若认为测试有误,需说明原因并先征询。不得 mock 掉被测对象。每次都运行真实命令,不推理它可能打印什么。若不存在检查,先写一个在没有改动时会失败的最小检查,再进入循环。
适用场景:带有测试、类型检查、构建流程或可运行应用的代码改动验证。
暂未提供:安装方式、收费、支持平台等具体信息。