SuperAPI AI 工具集

quiver-bootstrap

部署与运维

查看项目

更新于 10-16 04:04

技能介绍

用途

Quiver Bootstrap 用于配置 Quiver bolt 的三层引导栈,把一个空白的 Quiver bolt 变成个性化的开发环境。它会脚手架化并加密三个仓库,生成 bolt.yaml,并给出创建 bolt 的确切命令。

背景:Quiver 简介(终端用户视角)

一个 bolt 是运行在 Kubernetes 中的临时 Ubuntu 容器,带有持久化的 home 和 workspace。可通过浏览器终端、VSCode 或 kubectl 访问。全新的 bolt 没有 SSH 密钥、dotfiles 或代码。三层引导在启动时从三个 Git 仓库加一个 age 密钥交付这些内容。bootstrap 仓库加 dotfiles 仓库构成可复用的 persona;workspace 仓库是可替换的按任务输入。用相同输入重建 bolt 可复现相同环境。

三层结构:

  • 第 1 层:bootstrap 仓库,公开,交付 SSH 密钥、SSH config、DOTFILES_KEY(age)。
  • 第 2 层:dotfiles 仓库,私有,执行 dotbot install、GPG 解密密钥。
  • 第 3 层:workspace 仓库,私有,将项目代码克隆到 /workspace。

bootstrap 仓库虽然公开但安全:其 bootstrap.age 载荷经过 age 加密,dotfiles 仓库的 secrets.gpg 经过 GPG 加密。

前置条件

捆绑的构建器需要 PATH 上有 node、age、age-keygen、gpg、git、ssh-keygen 和 tar。添加 --push 还需要 gh。

先运行预检,若有缺失则停止:

node scripts/build-stack.mjs --check

各操作系统安装提示:

  • macOS:brew install age gnupg git openssh(以及 brew install gh)
  • Linux:apt install age gnupg git openssh-client(或发行版等价命令)
  • Windows:winget install FiloSottile.age GnuPG.GnuPG Git.Git(ssh 和 tar 随 Windows 10+ 提供;gh 用 winget install GitHub.cli)

构建栈

先与用户确认输入:GitHub 组织或用户、三个仓库名(默认 bootstrap、dotfiles、workspace)、登录 shell,以及要嵌入的任何密钥环境变量。选择值前先询问。

运行构建器。先用 --dry-run 在不触碰网络的情况下检查产物:

node scripts/build-stack.mjs --org <github-org> --dry-run

正式运行以在 ~/quiver-bootstrap 下构建产物(可用 --work-dir 覆盖):

node scripts/build-stack.mjs --org <github-org> \
  --shell /bin/bash \
  --secret MY_API_TOKEN=xxxxx

添加 --push 以用 gh 创建并推送全部三个仓库,并将生成的 SSH 公钥注册到 GitHub。不加 --push 时,构建器会打印要运行的确切 gh/git 命令。

构建器将 age 私钥写入 age-key.txt 并只打印一次。这是用户必须保管的唯一密钥,绝不提交。

关键标志:--work-dir、--org、--bootstrap-repo、--dotfiles-repo、--workspace-repo、--git-host、--shell、--ssh-key(复用已有密钥)、--dotfiles-key、--secret KEY=VALUE(可重复)、--dotfiles-public、--workspace-public、--push、--dry-run。运行 --help 查看完整列表。

创建 bolt

构建器会打印一条可直接运行的命令:

quiver create <name> --config ~/quiver-bootstrap/bolt.yaml \
  --age-key "AGE-SECRET-KEY-..."

如果用户尚未设置 CLI,quiver-cli 技能涵盖安装和认证,或者他们可以从仪表板上传 bolt.yaml 并粘贴 age 密钥来创建 bolt。

验证

bolt 就绪后,打开其终端并确认每一层:

env | grep MY_SECRET          # 第 2 层:GPG 密钥已解密并加载
cat /workspace/README.md      # 第 3 层:workspace 已克隆

护栏

  • bootstrap_repo 必须是 https:// URL。bolt 克隆它时不带凭据,因此该仓库必须公开。
  • 私有 dotfiles 和 workspace 仓库通过 SSH(git@host:org/repo.git)克隆,使用第 1 层交付的密钥。将 SSH 公钥注册到 Git 主机,否则私有克隆会失败。
  • .ssh/config 的 IdentityFile 必须与 bootstrap tarball 中附带的密钥文件同名。构建器会保持二者一致。
  • 所有层都是可选的。部分配置及 bolt 期望的确切文件见 reference/stack-layout.md。

后续轮换

新 bolt 会自动获取仓库变更;现有 bolt 不会。要轮换,用相同输入重建并推送。详见 reference/stack-layout.md。

安装此技能

npx skills add ./skills/quiver-bootstrap          # 从本地检出
npx skills add <your-quiver-repo-git-url>         # 从托管仓库

添加 -g 进行全局安装,添加 -a claude-code(或其他 agent)以指定特定 agent。