技能wizard
W

wizard

生成一个交互式 Bash 向导,引导用户完成只有他们才能执行的步骤。适用于基础设施预配、设置凭据或 CI 密钥、引导用户操作不熟悉的第三方仪表板,或执行一次性迁移或切换。对于代理可以自行执行的步骤,不要调用此向导。

Wizard - 生成交互式 Bash 操作向导

技能概述

Wizard 技能把只有人才能完成的手动流程,生成为一个交互式 Bash 向导脚本:它逐个打开网址、说明该点什么、该复制哪个值,把捕获到的密钥写入 .env 和 GitHub Secrets,并在每个阶段给出确认与进度提示。

适用场景

  1. 基础设施开通与凭据配置:新项目需要开通云服务、申请 API Key、配置数据库连接时,用向导把零散的配置步骤串成一条有进度的流程,避免每次都要重新讲一遍。
  2. CI 密钥与变量配置:从 .github/workflows/* 中把所有 secrets.*vars.* 引用反查出来,逐项引导用户去对应后台取值,再用 gh secret / gh variable 写入,最后核对名称完全一致。
  3. 陌生的第三方后台操作:面对不熟悉的控制台界面("Dashboard → Developers → API keys → Reveal → 复制"),向导会先打开页面再说清路径,让第一次操作的人也能跟着走完。
  4. 一次性迁移与切换:数据库迁移、服务商切换、环境割接这类只做一次、又不可回退的操作,在破坏性动作前设置确认门禁。
  5. 团队新人 onboarding:把本地环境初始化固化成仓库里的一个脚本,下一个人直接运行,而不是再问一次 AI。

核心功能

  1. 开箱即用的 template.sh 库:阶段式进度、确认门禁、跨平台打开网址(含 WSL)、密钥隐藏输入、.env 幂等 upsert、gh secret / gh variable 写入、收尾汇总——这些 UX 已在模板中解决,STAGES 标记以上的库代码在每个向导中完全一致,无需手改,作者只需编写阶段内容。
  2. 基于仓库事实的范围梳理:先读 .env.env.example、README、docker-compose*、框架配置和 .github/workflows/*,从代码里推断出需要人工提供哪些值、每个值从哪里来、写到哪里、是否为密钥,再输出有序阶段清单供确认。
  3. 可控的生成与校验流程:每个阶段一次只做一件事(清屏后只显示当前步骤),生成后执行 bash -nshellcheckchmod +x,并由静态检查确认每个值都被捕获、且 set_secret 的名称与 CI 中的 secrets.* 引用逐一对应。

常见问题

Wizard 技能和写一份配置文档有什么区别?

文档要靠人读懂再自己判断,向导则是一步一步带着走:它会替你打开页面、告诉你在哪里取值、把值直接写进 .env 或 GitHub Secrets,并在每步确认、显示还剩几个阶段。文档写漏一步读者会卡住,向导漏一步则是脚本报错,问题更早暴露。

它和让 AI 直接帮我配置有什么不同?

边界很清楚:AI 能自己做的步骤不该用 wizard。凡是需要登录账号、在浏览器里点授权、复制只有你能看到的密钥、或需要人工判断的操作,AI 无法代劳,才值得做成向导。向导不替代自动化,它负责的是自动化覆盖不到的那一段人工流程。

生成的脚本需要提交到仓库吗?

默认不需要。向导是"用完即弃"的:生成到临时目录或 scripts/ 下,跑完就删。只有当这套配置流程会反复发生、希望团队里每个人都走同一条路时,才提交进仓库,并从 README 链接过去,让下一个人直接运行脚本而不是再问一次 AI。

密钥会被明文写进脚本里吗?

不会。脚本本身不保存任何密钥,只负责在你输入时隐藏回显(ask_secret),然后写入 .env 或 GitHub Secrets。是否把某个值同步到 CI,遵循最小必要原则——只有 CI 真正需要的值才会调用 set_secret

脚本跑到一半中断了怎么办?

可以重跑。.env 的写入是幂等 upsert,重复执行不会产生重复条目;每个阶段都是独立可重入的,中断后重新运行会从对应阶段继续,已有的值会作为默认值出现。