工作流自动化这条线,本栏五轮拆下来已经覆盖了单件横评(部署四方言、CI 接线、红灯值守、多 Agent 组织隐喻)和总装审计(《自动化栈总装:件都强,线不通》)。总装篇给全栈开了四条缝的验伤单:触发、上下文、权限、回滚。此后一周,触发缝等来了《点火层四通道探底》,上下文缝等来了记忆件专文,权限缝有《摩擦层》与 stop-that-shit 专拆分摊——唯独缝四「做错了能不能撤」,至今无人认领。本期补上这张欠条:把全栈五个工位的可逆性拉到同一张评测表上再评一遍,核心发现一句话:整条自动化线没有一件卖「后悔药」,五件里可逆性最好的两件,靠的都是「根本不写」——这个赛道的供给端,至今没人敢碰回滚。
先交代区隔。这五件全部见报过:planning-with-files 在总装篇拿了 4.8 的总装冠军,sentry 在 9 月 4 日《推完代码之后》接线拆得过「只读门教科书级」的判语,stop-that-shit 在 9 月 13 日有专拆,github-actions-skill 与部署站四方言各有两轮前评。本期不重复单件评分,改用总装篇立起来、但当时权重为零的那个维度——可逆性——作为主镜头,按本刊标准五维(功能完整度 25%、设计质量 25%、实战效果 20%、上手难度 15%、社区活跃度 15%)重新打一遍。与前评分数不可直接比较,口径不同,特此注明。
| 工位(前评出处) | 回滚语义 | 功能 25% | 设计 25% | 实战 20% | 上手 15% | 社区 15% | 加权综合 |
|---|---|---|---|---|---|---|---|
| planning-with-files(总装拆) | 删文件即撤销 | ★★★★ | ★★★★★ | ★★★★ | ★★★★★ | ★★★ | 4.3 |
| stop-that-shit(09-13 专拆) | 拦住不发生 | ★★★★ | ★★★★★ | ★★★ | ★★★★ | ★★★★★ | 4.2 |
| sentry(09-04 接线拆) | 只读,天然不落子 | ★★★★ | ★★★★ | ★★★½ | ★★★★ | ★★★ | 3.8 |
| 部署站四方言(09-11 二审) | 最需要撤,最不会撤 | ★★★½ | ★★★ | ★★★½ | ★★★★ | ★★★★ | 3.5 |
| github-actions-skill(09-11 值守拆) | 产物可 revert,动作不可 | ★★★ | ★★★ | ★★★½ | ★★★★ | ★★★ | 3.3 |
它甚至不是一个「自动化件」,只是一个记事本:把任务计划写成带勾选清单的 plan.md,每个子任务完成后原子写入进度。7 月 11 日《工单即引擎》给过它一个至今无损的演示场景——CI 跑挂时自动标记未完成项,下个会话接着跑。但让它坐上本期头名的是总装篇那句判语:文件即接口、状态全量落盘、零系统权限、删文件即回滚,四个总装维度全部顶格,可逆性五星。
它的回滚哲学值得单独说:不靠快照、不靠事务、不靠平台,靠「只碰可弃之物」。它写的每个字都住在工作区文件里,撤销的代价是一个 rm,破坏半径被预先锁死在自己的产物内。这是全栈唯一把「撤销成本」设计成接近零的件。
短板也直白:它只管自己的状态,不管它驱动别人干的系统级活。plan.md 之外的部署、发版、改库,它一个都撤不了;而且一旦下游开始消费它的 plan.md(比如 CI 读它决定跑不跑),删文件这个动作本身也变成了写操作※——可逆性五星是有前提的。
三条路线里它是唯一做「事前」的:hook 挂在动作发生之前,范围膨胀的命令根本到不了执行层。1952 星七天爬到小而美层顶部(小而美层 45 天窗口内第二高,仅次 terminal-code),说明「管住自动化的手」这个需求真实存在且供给稀缺。
短板两处。其一,拦截面窄:描述点名的是哈希、校验和、任务范围膨胀三类「无用功膨胀」,部署、删库这类高危写操作没有对应条款※——恰恰是最需要后悔药的地方,它没设卡。其二,误拦率无公开数据,拦截件的经典悖论是拦掉一次正经操作,信任就破产一半※。实战分给三星,是全部五个工位里唯一因为「无法证实拦得对」而压分的。
9 月 4 日接线拆对它的判语经总装篇转引:「只读门和输出卫生被前拆评为教科书级」。总装四维表里它是洗牌赢家——单件 3.3 垫底区,总装 4.0,靠的正是权限粒度与可逆性两个五星。
回滚缝视角下,它的五星可逆性和 planning-with-files 不是一种东西:planning 是「写得起」,sentry 是「根本不写」。监控件只看不改,看错了也不会把线上改坏——不落子,自然无须悔棋。在无人值守线里,这是哨位的天然美德:它可以是全链唯一被允许 24 小时无人监督运行的工位。
但只读的另一面是修不了。红灯亮了它只能喊人,告警之后的下一步(回滚部署、降级版本)不在它的射程里,也没有任何一件接得住——这正好引出后两名的病灶。
但总装四维表给部署站的判词是全表最狠的:接口三星、状态两星、权限两星、可逆性两星,综合 2.3,全场最低。本期维持这个判断:四个方言的 SKILL.md 写的全是「怎么推上去」,没有一个把「怎么退回来」写进工作流※。部署是整条线上破坏半径最大的写操作——它改的是线上世界,不是文件——偏偏它的撤销语义完全缺位。各平台控制台层面可能存在历史版本回退入口,但那是平台文档的事,SKILL 层没有暴露、前评没有复核,本轮一律存疑※。
无人值守线里由此产生一个结构性错位:最危险的写手,是唯一没有配刹车工位的。这是四条缝审计三周之后,回滚缝交出的最刺眼的一格空白。
09-11 红灯面值守给过它「最被低估」的评语——把红灯发生率压在源头,比任何修复件都便宜。它写 .github/workflows/,产物住在 git 里,这意味着全栈唯一免费自带的后悔药它天生就有:revert 一个 commit,workflow 文件原样回来,还自带完整审计史。总装表给它接口五星,理由即在此。
可它的可逆性总分只有两星,差距出在「产物」与「动作」之间:YAML 能 revert,YAML 驱动的 CI 动作——已经触发的部署、已经发的版——不被 git 管※。它的状态与权限两个两星(总装硬引)说的也是这件事:secrets 邻接、触发即执行,文件层面的撤销对运行时层面无追溯力。设计分三星,是五件里唯一「局部满分、全局破功」的标本。
把五件按回滚实现方式重新归位,会得到一张比评分表更有信息量的图:
flowchart TD
subgraph L1["事前:拦住不发生"]
S["stop-that-shit 拦截"]
end
subgraph L2["事中:只碰可弃之物"]
P["planning-with-files 落盘"]
LO["loop 心跳零写入"]
end
subgraph L3["事后:不落子"]
SE["sentry 只读门"]
end
L1 --> L2
L2 --> L3
G["github-actions-skill 产物走 git revert"] -.->|对照| L3
D["部署站 撤销缺位"] -.->|空白| L3
发现二:三条路线全是负空间设计。 拦住不发生、只碰可弃之物、干脆不落子——五件里可逆性像样的三个,全是「让破坏不发生」,没有一件走「破坏后恢复」的正实现路线。原因推测※:Skill 本质是提示词包加脚本,没有数据库、没有预写日志,做不了真事务;作者们集体选择了绕开自己给不了的东西。
发现三:唯一的通用后悔药在赛道之外。 github-actions-skill 的「产物可 revert」与 planning-with-files 的「状态在文件里」能成立,前提都是把东西放进 git 的管辖范围。回滚缝的第一课其实不是选件,是选地皮:把状态放进 git,撤销就是免费的;放进 git 管不到的地方——线上世界、平台控制台、第三方系统——就没有免费的撤销。
把五件的语义拼成一张出事时的操作图。前两问免费,第三问多数时候是空白:
flowchart TD
A["自动化跑砸了一步"] --> B{"这步写了什么"}
B -->|只读| C["无须回滚"]
B -->|状态文件| D["删文件或回退文件"]
B -->|仓库内改动| E["git revert"]
B -->|外部世界| F{"平台有无已验证的快照"}
F -->|有| G["平台侧回退"]
F -->|无或未复核| H["人工止损"]
C --> I["复盘后继续跑"]
D --> I
E --> I
G --> I
H --> I
第三问是整条线的现状写照:「平台有无已验证的快照」这个分支,在装机生态里没有一件替你回答——部署站不说,sentry 修不了,stop-that-shit 拦不到那里※。人工止损至今是唯一保底路径。
npx skills add vvxw/deploy-vercel
npx skills find sentry npx skills find github-actions-skill npx skills find planning-with-files
```
可逆性设计榜:planning-with-files > stop-that-shit > sentry > github-actions-skill > 部署站四方言(前三名分别代表「写得起的」「拦得住的」「不落子的」,后两名证明把东西放进 git 之内与之外的天壤之别)
加权综合榜:planning-with-files(4.3)> stop-that-shit(4.2)> sentry(3.8)> 部署站(3.5)> github-actions-skill(3.3)
无人值守线加装建议:planning-with-files 与 sentry 是底座加哨位,建议常驻;stop-that-shit 建议挂在任何有写权限的工位前面;部署站单独值守时,必须先人工验证一遍平台回退路径,再谈无人。
新手第一件:planning-with-files。零配置、零权限、撤销只需删文件,是体会「可逆性是一种设计而不是一种功能」的最低成本入口。
四条缝的欠账至此补齐:触发缝归了点火层,上下文缝归了记忆件,权限缝归了摩擦层与拦截件,回滚缝归了本篇。补完之后的结论反而简单——这条自动化线上没有任何一件真正会「后悔」,它们只是各自选择了不同的方式不去犯错。真正的后悔药依然是 git 和人工,一个是赛道捡来的地基,一个是自动化永远绕不开的终审。下一次有新件宣称「全自动无人值守」,先问它一句总装篇没来得及问、本期也没找到答案的问题:你做错了,谁替你撤?
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
