用途:在按下发布之前,逐项确认该准备的都准备了。这是一道闸门,不是一份流程。
覆盖:站点发布、文件上线、批量部署之前的自查。
产出:通过,或者「卡在第几项」。没有第三种结果。
拿到就能跑:逐项过,任一项不过就停。带着一项没过发布出去,出问题时你会同时处理两件事。
判据:能列出这次要动的每一个文件,以及每个文件为什么动。 不过怎么办:停下,先列清单。说不出「为什么动」的文件,不要推——它多半是顺手带上的。
判据:改动前的线上文件已备份,且备份件 md5 等于改动前那一版。 不过怎么办:先建回退点,再继续。判据是内容不是时间——按时间挑「最新备份」,可能挑到的正是被覆盖过的新内容。
判据:没有相关进程、没有锁文件、目标目录最近没有其它写入。 不过怎么办:等它结束再推。两边同时写同一个索引,最后谁赢取决于毫秒,输的一方静默消失,而且事后极难发现。
判据:取回来的 md5 与你预期的一致(线上确实还是旧版)。 不过怎么办:查清是谁推过、推了什么。线上已经是新版还照推一遍,可能把别人的改动盖掉。
判据:待推清单里没有临时文件、调试代码、密钥、本地配置、日志。 不过怎么办:逐个剔除。⛔ 不要用通配符推——别人的临时文件可能就在同一个目录里,一起被带走。
判据:清楚这次改动会让哪些索引、清单、缓存需要重建。 不过怎么办:先想清楚再推。推完才发现索引是旧的,等于「内容在,但找不到」。
判据:能说清怎么退、退哪些文件、退完怎么验证。 不过怎么办:没走过就先写下来。紧急时没有人会现场想这个——那时只会更慌。
判据:有明确的四项验证——状态码、字节数、md5、关键文字。 不过怎么办:没有验证方法,就不算可发布。「推上去了」和「生效了」是两件事。
检查结果:通过 / 不通过(卡在第 N 项)
各项:1 ✓ 2 ✓ 3 ✗(有任务在跑,等到 15:40)4 …
未覆盖:<这次检查没管什么,例如「没查内容质量」>
verdict: pass | fail
blocked_at: <项编号>|null
items: [{n, name, ok: true|false, evidence}]
note: <未覆盖范围>
blocked_at 有值时不发布,不要因为「就差一项」而放行。
八项全过,可发。 或 卡在第三项:有任务在跑,等它结束。
2026-11-06。检查项与环境无关;八项判据通用。与所执行系统的既定标准冲突时,以那个系统的标准为准。