verification-gate
Installation
SKILL.md
Verification Gate(代码改完后的验证门禁)
本 skill 是「代码改完 → 声称完成 / 提交 PR」之间的强制验证门禁。核心解决一个问题:编译过 ≠ 功能可用。
直接教训:改完 reader worker 加载,
typecheck/ build / lint / 单测全过,就声称「修完」,实机却「文字层未知」(textLayerStatus卡 unknown)崩——编译层根本抓不到运行时功能问题。这类坑的唯一解是 e2e(功能验证)+ 真机。
工作原则
- 先编译层(1-4),再功能层(5-6):编译层是前置门禁,但不充分;功能层(e2e + 真机)才是完成线。
- e2e/真机是硬门禁:5/6 不过 = NOT READY,无论 1-4 多干净。
- 断言功能结果,非「存在元素」:教用户写 e2e 时断言「canvas 像素非空 / textLayerStatus ≠ unknown / 点击后面板真的弹出」,而非「存在 canvas / 存在按钮」(防伪渲染 / 假成功)。
- Bug 修复必须新增复现测试(回归规范):修完一个 bug,加一条能复现该 bug 的 e2e/单测,防止回归。
- 套件悬挂 = 未通过:
npm test永不退出(summary 不打印 / 进程不退)按 P0 基础设施缺陷处理,诊断 playbook 见references/lessons-from-practice.md教训 12;用子集绕开只能是登记过任务的临时态——悬挂会掩盖真实失败(教训 11:修复当日暴露 3 条被藏数周的失败)。 - 不采信生产者(worker/PM 自己)自报 PASS:跑实际命令,看实际输出。
- 按项目类型选验证命令:Tauri 桌面 / Web / 服务 / Skill,命令不同(见 §项目类型分支)。