<!-- title: 自动物化的后悔药：回滚缝五件横评 -->

# 自动物化的后悔药：回滚缝五件横评——总装篇遗留的最后一道缝

## 概述

工作流自动化这条线，本栏五轮拆下来已经覆盖了单件横评（部署四方言、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** |

## 五工位逐件横评

### 一、planning-with-files：把状态写在最便宜的地方（综合 4.3）

它甚至不是一个「自动化件」，只是一个记事本：把任务计划写成带勾选清单的 plan.md，每个子任务完成后原子写入进度。7 月 11 日《工单即引擎》给过它一个至今无损的演示场景——CI 跑挂时自动标记未完成项，下个会话接着跑。但让它坐上本期头名的是总装篇那句判语：**文件即接口、状态全量落盘、零系统权限、删文件即回滚**，四个总装维度全部顶格，可逆性五星。

它的回滚哲学值得单独说：不靠快照、不靠事务、不靠平台，靠「只碰可弃之物」。它写的每个字都住在工作区文件里，撤销的代价是一个 `rm`，破坏半径被预先锁死在自己的产物内。这是全栈唯一把「撤销成本」设计成接近零的件。

短板也直白：它只管自己的状态，不管它驱动别人干的系统级活。plan.md 之外的部署、发版、改库，它一个都撤不了；而且一旦下游开始消费它的 plan.md（比如 CI 读它决定跑不跑），删文件这个动作本身也变成了写操作※——可逆性五星是有前提的。

### 二、stop-that-shit：最好的回滚是发生不了（综合 4.2）

三条路线里它是唯一做「事前」的：hook 挂在动作发生之前，范围膨胀的命令根本到不了执行层。1952 星七天爬到小而美层顶部（小而美层 45 天窗口内第二高，仅次 terminal-code），说明「管住自动化的手」这个需求真实存在且供给稀缺。

短板两处。其一，拦截面窄：描述点名的是哈希、校验和、任务范围膨胀三类「无用功膨胀」，部署、删库这类高危写操作没有对应条款※——恰恰是最需要后悔药的地方，它没设卡。其二，误拦率无公开数据，拦截件的经典悖论是拦掉一次正经操作，信任就破产一半※。实战分给三星，是全部五个工位里唯一因为「无法证实拦得对」而压分的。

### 三、sentry：可逆性五星是「不落子」的红利（综合 3.8）

9 月 4 日接线拆对它的判语经总装篇转引：「只读门和输出卫生被前拆评为教科书级」。总装四维表里它是洗牌赢家——单件 3.3 垫底区，总装 4.0，靠的正是权限粒度与可逆性两个五星。

回滚缝视角下，它的五星可逆性和 planning-with-files 不是一种东西：planning 是「写得起」，sentry 是「根本不写」。监控件只看不改，看错了也不会把线上改坏——**不落子，自然无须悔棋**。在无人值守线里，这是哨位的天然美德：它可以是全链唯一被允许 24 小时无人监督运行的工位。

但只读的另一面是修不了。红灯亮了它只能喊人，告警之后的下一步（回滚部署、降级版本）不在它的射程里，也没有任何一件接得住——这正好引出后两名的病灶。

### 四、部署站四方言：最需要撤的工位，可逆性垫底（综合 3.5）

但总装四维表给部署站的判词是全表最狠的：接口三星、状态两星、权限两星、可逆性两星，综合 2.3，全场最低。本期维持这个判断：四个方言的 SKILL.md 写的全是「怎么推上去」，没有一个把「怎么退回来」写进工作流※。部署是整条线上破坏半径最大的写操作——它改的是线上世界，不是文件——偏偏它的撤销语义完全缺位。各平台控制台层面可能存在历史版本回退入口，但那是平台文档的事，SKILL 层没有暴露、前评没有复核，本轮一律存疑※。

无人值守线里由此产生一个结构性错位：**最危险的写手，是唯一没有配刹车工位的**。这是四条缝审计三周之后，回滚缝交出的最刺眼的一格空白。

### 五、github-actions-skill：产物可 revert，动作不可（综合 3.3）

09-11 红灯面值守给过它「最被低估」的评语——把红灯发生率压在源头，比任何修复件都便宜。它写 `.github/workflows/`，产物住在 git 里，这意味着全栈唯一免费自带的后悔药它天生就有：revert 一个 commit，workflow 文件原样回来，还自带完整审计史。总装表给它接口五星，理由即在此。

可它的可逆性总分只有两星，差距出在「产物」与「动作」之间：YAML 能 revert，YAML 驱动的 CI 动作——已经触发的部署、已经发的版——不被 git 管※。它的状态与权限两个两星（总装硬引）说的也是这件事：secrets 邻接、触发即执行，文件层面的撤销对运行时层面无追溯力。设计分三星，是五件里唯一「局部满分、全局破功」的标本。

## 生态发现：三条路线，零件卖快照

把五件按回滚实现方式重新归位，会得到一张比评分表更有信息量的图：

```mermaid
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 管不到的地方——线上世界、平台控制台、第三方系统——就没有免费的撤销**。

## 无人值守的决策流：出事之后的三问

把五件的语义拼成一张出事时的操作图。前两问免费，第三问多数时候是空白：

```mermaid
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

# loop 随宿主内置，免安装；定时心跳写法沿用点火层口径
# /loop 20m /你要值守的任务
```

## 推荐排行榜

**可逆性设计榜**：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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
