changelog-filename-gate / validate (push) Failing after 1s
今天上午装这条守卫时只想到「等/待/另发」这一种形态,当天下午就被另一种形态绕过去了: 20_7443 正文写着「上生产前请与后端确认这个开关的状态」与「生产环境未开」, mmg 据此来问上线时间、并要求「后端把生产开关打开」——而守卫全绿,因为这两句 一个词表词都没用上。它们把不确定性包装成了「请你去确认」,语法换了,作用一样: 读者只能停在那里等一个他查不到的状态。 判据仍是那一句:这条影响他「怎么写代码」,还是只影响他「什么时候开始写」。 上线时点属后者。前端需不需要同步上线,由 frontend_action_required 与模板里 「前端是否必须同步上线」那个结构化字段承载,正文自由文本里不该再出现。 词表先对全仓 1068 份 changelog 实跑,只留零命中且零正当用法的 12 个词。剔除两个: 「何时开」 —— 误伤「保护何时开始生效」「窗口何时开过」 「生产上线」—— 误伤 07_5640「生产上线需配 annual-direct-plan-id」,那是真契约边界 部署时间戳没做成规则:该形态全仓 0 命中,分辨力无从验证,而必须放行的 「带时刻实测取证句」有 690 处——判据的误伤面远大于收益时,门禁只会教人绕开它。 这一类只能靠 §2.1 的条文和复盘接住,机器接不住,如实记在注释里。 测试:新增 2 条阳性 + 1 条阴性对照,阴性那条与阳性只差一个「上生产前」, 用来钉住分界线(「收到 809009 找后端确认该环境的开关」是运维处置,必须放行)。 npm test 59 项 58 绿;唯一的红是存量的 E_ALIAS_STATE(11_7510,与本次无关)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>