用途:unlazy 针对“表面响应但暗中不完整”的失败,例如完成度只有 80% 就报告完成、悄悄缩小范围、最终总结里出现自信的错误数字。它把执行约束放进文件与可运行检查,而不是依赖自觉。该技能管理任务分解上的门禁纪律,与 work、incremental、subagent-driven 组合使用,而非替代它们。
主要能力:规则零是“先门禁后工作”。开工前用 templates/gates.md 在工作目录写入 .outline/GATES.md,每个必需结果一个复选框;可命令检查的结果给出 CHECK:(可运行命令)与 EXPECT:(判定输出),使检查成为子进程而非主观意见。门禁契约中 CHECK 是测试,EXPECT 是后置条件,EVIDENCE: 是记录的证据;勾选只是声明,证据才是证明,勾选但证据仍为 pending 比未勾选更糟。若门禁确实无法完成,不静默丢弃,而是在门禁文件加 ABANDON: <gate id> <reason> 并在报告中说明。
使用方式:运行捆绑检查器执行 CHECK 命令、翻转复选框并记录证据:python3 <this-skill-dir>/scripts/gate_check.py .outline/GATES.md。仅当命令输出匹配 EXPECT(子串或 /regex/)时才翻转复选框;--status 只报告不改动;退出码 0 表示所有门禁已满足或已诚实放弃。手动门禁需人工检查,但必须把 EVIDENCE: 替换为真实证明,如测量值、输出引用、file:line。上游 unlazy 还附带 Claude Code Stop 钩子,可在门禁未满足时阻止结束回合;此移植版未包含。
深度树:在自然接缝处分解,N 层深。第 1 层是任务,叶子是唯一发生真实工作的地方。叶子是真实工作单元:十分钟以上专注投入、一个连贯交付物、一个门禁文件。叶子更小说明多下了一层,应回退。契约(接口、文件归属、命名)在展开前于计划中固定,每个内部节点都有自己的集成门禁。深度建议:功能、缺陷排查或文档(单人)用 tree 2-3;子系统或重大重构用 tree 4-5;高标准完整项目用 tree 6-7,叶子放在互不重叠的工作单元上。每个叶子的工作量来自其门禁,而非 N。叶子完成的条件是门禁全部满足且有证据,并且完整改进轮次未发现问题,以较晚者为准。
逐叶分轮工作:完整实现,无占位符、无 TODO、无“留作练习”;以领域专家视角重读,指出每部分的廉价版本并替换为好的版本;搜寻缺陷,包括边界情况、正确性、性能、造假迹象,并修复;做零成本打磨,调优常量优于新增功能。
报告审计:最可复现的懒惰失败是报告数字错误而实质正确,例如实际 17 行却凭记忆写“34 行统计”。报告时重新测量每个即将陈述的数字,或标注未验证;粘贴门禁台账及其计数、N of N checked、每条 ABANDON 行。报告是一组由台账支撑的声明,而非完成的感觉。
行为规则:台账未满不报告;感觉完成时改为检查,运行 gate-check,再对抗性地重读一个已通过门禁并尝试反驳其证据;完成一条攻击线,切换方法前说明当前方法还能给出什么以及为何切换更优;不模拟可做的工作,廉价且可逆就去做并观察;忽略资源焦虑,不因接近结束而压缩、打桩或总结,若真有限制,把剩余工作写入门禁文件并用 ABANDON 行与原因交接;完整文件、完整列表、完整扫描,若任务说全部 80 个文件,打开数就是 80 并说明该计数,抽样仅在声明时接受。
限制:对话回复、琐碎编辑和事实性问题按正常投入处理,一行修复不需要门禁文件。该纪律面向用户希望做好的工作,目的是让“做好”成为唯一产出的完成方式。