用途
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。