service-provisioninglisted
Install: claude install-skill mizulba-dev/dev-method
# service-provisioning: 公開までのプロビジョニング
リポジトリ生成(`keel` スキル)のあと、サイト公開とメール窓口の開設までに残る工程を実行可能にしたもの。
**入口は3つ**。すべて既定 dry-run で、実行は `--execute` を明示する。
| 入口 | 対象 | 書き込み |
| --- | --- | --- |
| `check.mjs <検索語 or ドメイン>` | ドメインの検索・空き確認・価格提示 | 一切しない |
| `stage1.mjs --config <file>` | Vercel プロジェクト・環境変数・カスタムドメイン・DNS・初回 production デプロイ | `--execute` 時のみ |
| `stage2.mjs --config <file>` | Workspace セ��ンダリドメイン・メール DNS・窓口グループ・Gmail | `--execute` 時のみ |
Stage 1 だけでサイト公開は完結する。メールを持たないサービスは Stage 2 を実行しなくてよい。
## 前提
- ドメインは購入済みで、Cloudflare にゾーンがあること(購入はこのツールの対象外。決定として持たない)
- 資格情報は環境変数優先、無ければ `~/.config/{cloudflare,vercel,google}/env` から読む
- `CLOUDFLARE_API_TOKEN`(DNS edit + Zone read)
- `VERCEL_TOKEN`(project 作成とドメイン)
- `GOOGLE_APPLICATION_CREDENTIALS`(サービスアカウント JSON のパス)と `GOOGLE_ADMIN_EMAIL`(委任先の管理者)
- Google はドメイン全体委任で次のスコープを許可しておく:
`admin.directory.domain` / `admin.directory.group`(メンバー操作もこれで足りる) / `apps.groups.settings` / `siteverification`(確認トークンの取得のみに使う) / `gmail.settings.basic` / `gmail.settings.sharing`
## 使い方
```sh
SKILL=<このスキルのディレクトリ>
node $SKILL/scripts/check.mjs sample-service sample-service.com # 購入前。読み取りのみ
cp $SKILL/references/config.example.json ./provisioning.json # 設定を起こす
node $SKILL/scripts/stage1.mjs --config ./provisioning.json # dry-run
node $SKILL/scripts/stage1.mjs --config ./provisioning.json --execute # 実行
node $SKILL/scripts/stage2.mjs --config ./provisioning.json --execute
```
終了コード: `0` 完了 / `1` 失敗(部分適用のまま停止し、どこまで適用したかを出力する) / `2` 設定乖離で