主题

Ops tool

Ops tool 表示项目的核心价值在于运维自动化本身:部署、升级、监控、编排、设备管理、触发器或共享工作流,而不是面向终端用户的业务功能。这里的主语是“帮维护者安全地操作系统”,不是“恰好带个管理后台”。 这个 Topic 用来回答一个问题:系统真正的产品是不是一套可复用的操作能力。

  • 运维
  • 工具

目录

Definition

Ops tool 表示项目的核心价值在于运维自动化本身:部署、升级、监控、编排、设备管理、触发器或共享工作流,而不是面向终端用户的业务功能。这里的主语是“帮维护者安全地操作系统”,不是“恰好带个管理后台”。

这个 Topic 用来回答一个问题:系统真正的产品是不是一套可复用的操作能力。它通常会和 Rust web service、Dockerized dev、Embedded admin UI 一起出现,但不替代这些 Topic;相邻 Topic 解释交付面,Ops tool 解释自动化语义、默认安全边界和运维动作的幂等性/可审计性(projects/dockrev.md、projects/pod-upgrade-trigger.md)。

When to use

当 README、project snapshot 或 checked-in 配置明确表明仓库的主要交付面是 upgrade/monitor/orchestrate/manage 之类的运维动作时使用。命中条件不是“有 CLI 或后台”,而是这些界面本身就是系统价值的主体。

如果一个改动会影响安全默认值、配置表面、状态目录、操作副作用、幂等性、回滚、通知、设备选择或系统集成点,就应该命中 Ops tool。若仓库只是普通产品附带少量 admin 脚本,则更应留在相邻 Topic,不要泛化为运维工具。

Habits / defaults

  • 强调 safe defaults + explicit config。运维工具一旦默认做错事,代价通常比普通产品 bug 更高,所以默认值、dry-run、确认边界和目标选择必须写清楚(projects/dockrev.md、projects/pod-upgrade-trigger.md)。
  • 常见系统集成点如 systemd/Podman、device flashing backend、daemon/process manager,本身就是产品接口的一部分,不是实现细节(projects/stm32g4-flash-programmer.md、projects/dockrev.md)。
  • 小型 admin UI 常用于降低操作摩擦,但 UI 只是操作面,真正的契约仍在 CLI/config/service 行为。回答这个 Topic 时,不应被控制台外观喧宾夺主(projects/dockrev.md、projects/xp.md)。
  • 运维工具默认要写清状态目录、审计或通知路径。否则维护者能“触发动作”,却无法知道动作是否成功、失败时如何恢复、重复执行会发生什么。
  • 对设备管理类工具,要优先记录 target selection、backend selection 和保护动作,而不是只记录命令示例;因为这些才是误刷、误升级、误操作的主要来源(projects/stm32g4-flash-programmer.md)。
  • 对 workflow/library 类 ops tool,要把调用方契约写明白。可复用 workflow 的输入、输出、通知语义与权限边界,本质上和 CLI flag 一样重要。

Reference implementations

  • projects/dockrev.md:典型 self-hosted 运维工具,适合说明“UI 只是入口,升级/排障/部署知识才是产品”。
  • projects/pod-upgrade-trigger.md:适合说明 upgrade/trigger 工具需要状态目录、回滚和外部系统集成,而不是一次性脚本思维。
  • projects/stm32g4-flash-programmer.md:适合补充单用途设备操作工具这一面,说明 ops tool 不一定需要完整 Web 控制台。

Failure modes

  • 把普通业务后台误命名成 Ops tool,会把 Topic 边界冲淡。关键判断标准是:用户价值是不是来自自动化操作系统,而不是来自业务 CRUD。
  • 把 Ops tool 当成整个仓库的总括标签,忽略 Rust web service、Dockerized dev、Embedded admin UI 等相邻 Topic,会让后续 Agent 无法判断真正应该验证的是 runtime、协议、UI 还是交付链路。
  • 只写 happy path 命令,不写副作用、回滚、幂等性和失败恢复,会让运维工具在真实事故里最没用。
  • 把安全默认值藏在实现里、不回写文档或 snapshot,会让后续维护者误以为某些危险动作是安全默认操作。

Evidence index

  • projects/dockrev.md
  • projects/pod-upgrade-trigger-bak.md
  • projects/pod-upgrade-trigger.md
  • projects/stm32g4-flash-programmer.md
  • projects/ups120-daemon.md
  • projects/xp.md
  • skills/style-playbook/references/data/topics/ops-tool.json