quiver-bootstrap について
Quiver Bootstrap Stack は、Quiver bolt 用の3リポジトリ構成を作るスキルです。リポジトリを準備し、シークレットを暗号化して `bolt.yaml` を生成し、環境作成コマンドを提示します。
主な機能
- 013つのブートストラップリポジトリを作成
- 02ブートストラップとdotfilesのシークレットを暗号化
- 03`bolt.yaml` を生成
- 04ドライランと任意のプッシュに対応
- 05bolt作成コマンドを出力
活用シーン
- 01個人向けのQuiver boltの準備
- 02再利用可能な設定とワークスペースコードの分離
- 03同じ入力からの環境再構築
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jimweller/ clanker-skills --skill quiver-bootstrapインストール後、Claude Code で/quiver-bootstrapを入力して読み込まれたか確認します。
同梱ファイルreference/stack-layout.mdscripts/build-stack.mjs
詳細
Quiver ブートストラップスタック
何も設定されていない Quiver bolt を、個人用の開発環境に変える 3 層のブートストラップを設定します。このスキルは 3 つのリポジトリを構成して暗号化し、bolt.yaml を生成して、bolt を作成するための正確なコマンドを提示します。
Quiver の概要(エンドユーザー向け)
- bolt は、永続的なホームディレクトリとワークスペースを備えた、Kubernetes 上で動作する一時的な Ubuntu コンテナーです。ブラウザーターミナル、VSCode、または
kubectlからアクセスできます。 - 新しい bolt には SSH キー、ドットファイル、コードがありません。3 層のブートストラップにより、3 つの git リポジトリと 1 つの age キーから起動時にそれらが提供されます。
- ブートストラップリポジトリとドットファイルリポジトリは、再利用可能なペルソナを構成します。ワークスペースリポジトリは、タスクごとに差し替え可能な入力です。同じ入力から bolt を再構築すると、同じ環境が再現されます。
| 層 | リポジトリ | 公開範囲 | 提供内容 |
|---|---|---|---|
| 1 | bootstrap | 公開 | SSH キー、SSH 設定、DOTFILES_KEY(age) |
| 2 | dotfiles | 非公開 | dotbot のインストール、GPG で復号されたシークレット |
| 3 | workspace | 非公開 | /workspace にクローンされたプロジェクトコード |
ブートストラップリポジトリは公開されていますが、安全です。bootstrap.age のペイロードは age で暗号化され、ドットファイルリポジトリの secrets.gpg は GPG で暗号化されています。
前提条件
同梱のビルダーには、PATH 上に node、age、age-keygen、gpg、git、
ssh-keygen、tar が必要です。--push を追加する場合は gh も必要です。
まず事前チェックを実行し、不足しているものがあれば中止してください。
node scripts/build-stack.mjs --check
OS ごとのインストール方法:
- 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 の組織またはユーザー、3 つのリポジトリ名 (デフォルトは
bootstrap、dotfiles、workspace)、ログインシェル、および埋め込むシークレット環境変数です。値を選ぶ前に確認してください。 -
ビルダーを実行します。まず
--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を使って 3 つのリポジトリすべてを作成してプッシュし、生成された 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 が ready になったら、そのターミナルを開いて各層を確認します。
env | grep MY_SECRET # Layer 2: GPG secrets decrypted and sourced
cat /workspace/README.md # Layer 3: workspace cloned
注意事項
bootstrap_repoはhttps://URL でなければなりません。bolt は認証情報を使わずにクローンするため、このリポジトリは公開されている必要があります。- 非公開のドットファイルリポジトリとワークスペースリポジトリは、Layer 1 で提供されるキーを使って SSH(
git@host:org/repo.git)経由でクローンされます。SSH 公開鍵を git ホストに登録してください。登録しないと、非公開リポジトリのクローンに失敗します。 .ssh/configのIdentityFileには、ブートストラップの tarball に同梱されるものと同じキーファイルを指定する必要があります。ビルダーはこれらが一致するように管理します。- すべての層は省略可能です。部分的な構成と bolt が必要とする正確なファイルについては、
reference/stack-layout.mdを参照してください。
後からローテーションする
新しいボルトはリポジトリの変更を自動的に取り込みますが、既存のボルトには反映されません。ローテーションするには、同じ入力で再ビルドしてプッシュしてください。reference/stack-layout.md を参照してください。
このスキルのインストール
npx skills add ./skills/quiver-bootstrap # from a local checkout
npx skills add <your-quiver-repo-git-url> # from the hosted repo
グローバルにインストールするには -g を追加し、特定のエージェントを対象にするには -a claude-code(または別のエージェント)を追加してください。