用途:把繁琐且需要反复解释的流程(如基础设施开通、凭据采集、第三方控制台操作、一次性切换)封装为引导式 TUI 向导。向导位于仓库的 wizards/<name>/,自身是一个 Go 模块,在 macOS 与 Windows 上从仓库根目录用 go -C wizards/<name> run . 运行;启动时运行时会移动到最近的含 .git 的祖先目录,使检查、写入的 env 文件与保存的进度都落在仓库根目录。
主要能力与结构:每个向导分两部分——不可变库 runtime.go(与模板逐字节相同、禁止手改)与唯一需要编写的 steps.go。运行时一次一屏显示一步;每一步明确人工操作、捕获值与自动 Check(在 spinner 后运行真实命令并作为关卡)。进度保存为 .wizard-state.*.json,按机器区分;退出后从原步骤重跑,需注意重复执行不安全的步骤。
使用方式:流程为简短提问澄清边界(受众与系统、生命周期、中断恢复、部分完成、机密去向)→ 将流程拆成步骤 → 在目标仓库创建 wizards/<name>/,复制模板 runtime.go,按 template/steps.go 编写 wizardDef() 返回的 steps.go,执行 go mod init <name>、go mod tidy,并把 .wizard-state.*.json 加入 gitignore → 静态验证:go vet ./...、go build -o /dev/null .、GOOS=windows go build -o /dev/null .(Windows 用 -o NUL 与 GOOS=darwin)、go run . --list。
限制与注意:向导会打开浏览器并阻塞等待人工输入,因此以静态追踪代替端到端运行;非可移植的 shell 命令需按 runtime.GOOS 分支(如 grep/findstr)。机密值应使用 AskSecret 且不写入保存进度;仅 CI 实际消费的值用 SetSecret;不可逆操作前需 Confirm。为没有安装 Go 的同事可在仓库外交叉编译二进制分发。