Skip to main content

运维可回滚守则

@ aquarius-wing1952026.7.10reversible-ops

运维写命令的安全网——默认不替你执行, 可恢复的改写成可恢复命令让你复制着跑, 不可恢复的直接拒。

官方精选AI 工程

基础信息

名字/名称
运维可回滚守则
描述说明
运维场景的可恢复性硬约束 —— review-only,AI 不替执行任何写命令;命中写操作时改写成 可恢复的等价命令让用户复制执行,命中不可恢复时给四段拒绝输出。范围:本地 bash / Docker / Coolify。 触发短语:删 / 清理 / 改 / 改配置 / 改 .env / 重启 / 重建 / kill / rm / mv 走 / 备份 / docker rm / docker volume rm / docker compose down / docker exec / git reset --hard / git clean / coolify app delete / coolify env / coolify server remove / coolify private-key remove / 加个 cron / 改 /etc/hosts; 口语:「帮我删一下」「清掉这些」「把这台机器从 coolify 摘了」「改一下环境变量」 「写个脚本批量处理」「能跑这条命令吗」。 不要用于:纯查询(ls / cat 非敏感文件 / docker ps / docker inspect / 一次性 docker logs / coolify list / coolify status)—— 默认放行不需要走本 skill;与运维无关的代码任务 (走 openspec-driven-development);只查文档(直接答即可);编写部署用的 Dockerfile / compose 本身(走 coolify-deploy);tranfu 团队 Coolify 业务流程(走 tranfu-coolify-ops,本 skill 是 它的安全底座但不替代它的工作流)。

运维可回滚守则

运维写命令的安全网——默认不替你执行, 可恢复的改写成可恢复命令让你复制着跑, 不可恢复的直接拒。

什么时候用它

检查粘贴的命令:

我要跑一条 rm / docker rm / git reset --hard / coolify app delete, 想先让 skill 判它能不能撤回再决定。

口语请求:

我说「帮我删一下 logs」「清掉这些旧镜像」, 想让 skill 把口语翻成可以恢复的具体命令。

检查运行脚本:

我写了个 Python 或 shell 脚本要跑, 想让 skill 逐条按四条铁律审一遍, 有问题的段落改写。

Coolify 高危:

我要动 Coolify 上的 app / database / service, 尤其是 delete / env / private-key, 想让 skill 用黑名单加 bootstrap 窗口判定挡一层。

不接:

写 Dockerfile / compose.yml 让仓库能部署到 Coolify → coolify-deploy; 仓库里的代码任务 (新功能 / 重构) → openspec-driven-development; tranfu 团队 Coolify 业务流程 (onboard / redeploy) → tranfu-coolify-ops (本 skill 是它的安全底座, 不替代业务流程本身)。

它会产出什么 / 你会看到什么

默认不替你执行任何写命令——最反常识的一点。

  • 可恢复改写: 把 rm 改成 mv/tmp/trash-<时间戳>/, 把覆盖 .env 改成先 cp 备份再改, 命令粘出来让你复制着跑
  • 不可恢复拒绝: 四段输出——原命令、拒绝原因、可恢复替代、若坚持原命令请自己在终端手动复制
  • 回执对照表: 每次写操作跑完输出「原位置 → 新位置」加「恢复命令」两栏, 一条一行
  • 六类白名单可直接执行: CI/CD 重跑、单 app 新增 env、tfs 维护、资源新建、对称启停、bootstrap 窗口 PATCH——每类都锁死前提条件
  • 黑名单硬拒: Coolify 实例本体 / 持久卷 / 集成根、DELETE RESTful 端点、危险标志 (--force / --yes / --delete-volumes)——任何窗口任何授权都不放行
  • 绝不会做: 替你跑黑名单命令、主动加 --force / --yes 类危险标志、把敏感值 (env get 明文 / .env 内容 / 密钥) 贴回聊天窗口

前置条件与边界

前置:

本地 bash / Docker / Coolify 环境; Coolify 相关命令依赖 coolify-cli-llm.txt 存在, 否则按不透明命令走拒绝流程, 我不会去猜命令名。

相邻 skill 分工:

场景 交给
写 Dockerfile / compose.yml 让仓库能部署到 Coolify coolify-deploy
仓库里的代码任务 (新功能 / bugfix / 重构) openspec-driven-development
tranfu 团队 Coolify 业务流程 (onboard / redeploy) tranfu-coolify-ops (本 skill 是安全底座)

不接的场景:

  • 纯只读命令 (ls / cat 非敏感文件 / docker ps / docker inspect / coolify list)——直接放行, 不用绕本 skill
  • 项目文档、SEO、图表、设计类任务
  • 只查文档 (直接答即可)

微妙边界:

  • 「删 project / environment / team」→ Coolify CLI 故意不提供 (级联删里面所有 app / database / service), 引导你走 UI 并警告级联范围
  • Bootstrap 窗口内 PATCH 放行 (资源从没成功部署过), 出了窗口 PATCH 退回只审不跑, 不降级
  • 用户「我授权 / 我确定 / 出事我负责」不能绕过黑名单——黑名单先于所有其他判定
  • 单 app 新增 env (KEY 不存在) 任何窗口都放行; 覆盖已有 KEY 只在 app 的 bootstrap 窗口内放行
  • .envcoolify env get <SECRET> 拿值——硬拒, 你自己 cat, 别让我贴回会话

一起来搞事情

关注我们的社交媒体,加入社群获取最新动态

微信交流群

扫码加入微信群

微信二维码