アプリ・Webサービス・業務ツールの制作を、証拠分析→確定的な初稿→要件定義→体験設計→機能分解→実装→品質ゲート→リリース判定の手順ゲート制で進めるスキル。質問で要件を埋めるのではなく、依頼文・既存コード・資料・ログから最有力案を選び、動く成果物を先に出して差分で改善する。ユーザーが「アプリを作りたい」「ツールを作って」「〜を自動化したい」「システム化したい」「要件定義」「仕様を決めたい」「UI/UXを設計して」「体験を良くしたい」「機能を洗い出して」「MVPを決めたい」「品質チェック」「リリースしていいか判断して」などと言ったら必ず使用する。外部データの取込・マスタ・締め処理を伴う業務システムでは references/data-lifecycle.md も併用する。新規・既存を問わずアプリの制作・改善・リニューアルで使用する。
wrangler
Cloudflare Workers CLIでWorkers、KV、R2、D1、Vectorize、Hyperdrive、Workers AI、Containers、Queues、Workflows、Pipelines、Secrets Storeを開発・デプロイ・管理する。Wranglerコマンドを実行する前に使用し、最新の公式ドキュメントに基づく構文と安全規則を確認する。
インストール方法を見る含まれるファイル(13)
- SKILL.md12.0 KB
- references/ai-vectorize-hyperdrive.md2.2 KB
- references/config.md3.4 KB
- references/containers.md1.4 KB
- references/d1.md1.8 KB
- references/deploy.md1.7 KB
- references/dev-local.md2.5 KB
- references/kv-r2.md2.5 KB
- references/mcp-vs-cli-routing.md9.0 KB
- references/observability-troubleshooting.md1.4 KB
- references/queues-workflows-pipelines.md2.0 KB
- references/README.md2.4 KB
- references/secrets.md3.0 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Wrangler CLI
本ファイルは cloudflare/skills(Apache-2.0)を基に改変しています。詳細は リポジトリルートの ATTRIBUTION.md を参照。
原則: 仕様の確認と調査は MCP、deploy / secret put / d1 migrations apply は監査性・可逆性・秘密保護のため wrangler CLI を既定にする(MCP に能力が無いからではない)。操作別の既定表と MCP 不通時の復旧は
references/mcp-vs-cli-routing.mdが唯一の正本。
Wrangler の CLI フラグ・設定フィールド・サブコマンドに関する知識は古くなっている可能性がある。事前学習した知識より取得 (retrieval) を優先すること。
最初に: package managerとWranglerを確認する
既存projectではlockfileを正本にし、package managerを勝手に移行しない。
| 検出したlockfile | Wrangler command |
|---|---|
pnpm-lock.yaml / pnpm-workspace.yaml | pnpm exec wrangler |
package-lock.json / npm-shrinkwrap.json | npx --no-install wrangler |
yarn.lock | yarn exec wrangler |
新規AIDD projectでlockfileがまだない場合だけpnpmを既定にする。以下の例は、このrepositoryの既定であるpnpm exec wranglerで表記する。npm/yarn projectでは上表のprefixへ置き換え、subcommandとflagsは同じに保つ。
pnpm exec wrangler --version # v4.x 以上が必要
未インストールなら:
pnpm add -D wrangler@latest
既存lockfileがない新規AIDD projectはpnpmへ統一する。既存npm/yarn projectへpnpm lockfileを追加しない。可能な限りAPI requestを手で組み立てず、project-localなWranglerを使う。
You installed workerd on another platform、workerd-darwin-64、workerd-darwin-arm64が出た場合、別PCのnode_modulesやlockfile削除で回避しない。pnpm-workspace.yamlのsupportedArchitecturesを確認してから次を実行する。
pnpm install --force --frozen-lockfile
pnpm exec wrangler --version
複数Accountの安全規則
Cloudflareへ変更を加えるコマンドの前に、選択したpackage managerのwrangler whoamiで対象Accountを確認する。このrepositoryではpnpm exec wrangler whoamiを使う。チーム用共有Accountと個人Accountの両方があり、新しく自社アプリを作る場合はチーム用Accountを既定選択する。個人Accountは利用者の明示指定時だけ。
既存wrangler.jsoncやWorker/D1/R2が特定Accountにある場合は、その所有先を優先して照合する。チームへ移したい場合も別Accountへ同名リソースを勝手に作らず、移行タスクとして止める。Account不一致時はcreate / secret put / migrations apply / deployを実行しない。
最新情報の取得先
コマンドや設定を書く・レビューする前に最新の情報を取得する。CLI フラグ、設定フィールド、バインディング形状を記憶に頼って書かない。
| ソース | 取得方法 | 用途 |
|---|---|---|
| Wrangler docs | https://developers.cloudflare.com/workers/wrangler/ | CLI コマンド、フラグ、設定リファレンス |
| Wrangler 設定スキーマ | node_modules/wrangler/config-schema.json | 設定フィールド、バインディング形状、許可値 |
| Cloudflare docs | 検索ツール または https://developers.cloudflare.com/workers/ | API リファレンス、compatibility date/flag |
主要原則
wrangler.jsoncを使う: TOML より JSON を優先。新機能は JSON 専用のものがある。バージョン管理し、Worker 設定の唯一の情報源として扱う。compatibility_dateを設定する: 直近 30 日以内の日付を使い、四半期ごとに更新する。- 設定変更後は
pnpm exec wrangler types: TypeScript バインディングを再生成する。CI のビルドステップにも入れてバインディング不一致を検出する。 - ローカル開発はデフォルトでローカルストレージ: バインディングは
remote: trueを指定しない限りローカルシミュレーション。 - 環境で staging/production を分ける:
env.staging/env.productionを設定に定義する。 - ローカルで先にテストする: デプロイ前に
pnpm exec wrangler devで確認し、大きな変更前はpnpm exec wrangler deploy --dry-runで検証する。 - 自動プロビジョニングを使う: リソース ID を省略するとデプロイ時に自動作成される。
落とし穴 (gotchas)
- シークレットをコマンドに埋め込まない: 値を CLI 引数で渡す、
echoでパイプする、ログ出力する、ハードコードする — いずれも禁止。対話プロンプト (pnpm exec wrangler secret put)、ファイル入力 (< key.pem、secret bulk)、CI の安全な環境変数を使う。ローカル用シークレットは.dev.varsに置き、設定ファイルにはコミットしない。 - secret putの前にsecret list: 同名があれば新規設定ではなくローテーション。既存ログインの無効化や全セッション失効を説明し、明示承認なしに上書きしない。
- D1 の
--remote/--localを明示する: 取り違えると本番データを操作する事故になる。 - Workers AI は常にリモート実行: ローカル開発中でも利用料金が発生する。バインディングには
remote: trueが必要。 - リモート推奨のバインディング: AI (必須)、Vectorize、Browser Rendering、mTLS、Images。
- バインディングが
undefined: バインディング名が設定と完全一致しているか確認する。 - 起動時間の上限超過:
pnpm exec wrangler check startupでプロファイルを取る。 - レジストリ認証情報をハードコードしない: 環境変数経由で渡す (Containers)。
- Hyperdrive のパスワード・接続文字列も環境変数経由にする。
頻出コマンド早見表
| やりたいこと | コマンド |
|---|---|
| ローカル開発サーバー起動 | pnpm exec wrangler dev |
| デプロイ | pnpm exec wrangler deploy |
| デプロイのドライラン | pnpm exec wrangler deploy --dry-run |
| TypeScript 型を生成 | pnpm exec wrangler types |
| 起動時間をプロファイル | pnpm exec wrangler check startup |
| ライブログを見る | pnpm exec wrangler tail |
| 直前バージョンへロールバック | pnpm exec wrangler rollback |
| シークレットを設定 | pnpm exec wrangler secret put API_KEY |
| D1 マイグレーション適用 (本番) | pnpm exec wrangler d1 migrations apply my-db --remote |
| Worker を削除 | pnpm exec wrangler delete |
| 認証状態の確認 | pnpm exec wrangler whoami |
| 新規プロジェクト作成 | pnpm exec wrangler init my-worker / pnpm create cloudflare@latest my-app |
サービス別の頻出コマンド
# D1
pnpm exec wrangler d1 create my-db
pnpm exec wrangler d1 execute my-db --local --command "SELECT * FROM users"
pnpm exec wrangler d1 execute my-db --remote --file ./schema.sql
pnpm exec wrangler d1 migrations create my-db create_users_table
pnpm exec wrangler d1 migrations apply my-db --local
# KV
pnpm exec wrangler kv namespace create MY_KV
pnpm exec wrangler kv key put --namespace-id <ID> "key" "value" --expiration-ttl 3600
pnpm exec wrangler kv key get --namespace-id <ID> "key"
# R2
pnpm exec wrangler r2 bucket create my-bucket
pnpm exec wrangler r2 object put my-bucket/path/file.txt --file ./local-file.txt
# シークレット (値は対話プロンプトかファイルで渡す)
pnpm exec wrangler secret put API_KEY
pnpm exec wrangler secret put PRIVATE_KEY < path/to/private-key.pem
pnpm exec wrangler secret list
# ログ
pnpm exec wrangler tail --status error
pnpm exec wrangler tail --search "error" --format json
# 環境を指定した実行/デプロイ
pnpm exec wrangler dev --env staging
pnpm exec wrangler deploy --env staging
# cron ハンドラのローカルテスト
pnpm exec wrangler dev --test-scheduled # → http://localhost:8787/__scheduled
よく使うバインディング設定
{
"vars": { "ENVIRONMENT": "production" },
"kv_namespaces": [{ "binding": "KV", "id": "<KV_NAMESPACE_ID>" }],
"r2_buckets": [{ "binding": "BUCKET", "bucket_name": "my-bucket" }],
"d1_databases": [
{ "binding": "DB", "database_name": "my-db", "database_id": "<DB_ID>",
"migrations_dir": "./migrations" }
],
"ai": { "binding": "AI" },
"vectorize": [{ "binding": "VECTOR_INDEX", "index_name": "my-index" }],
"hyperdrive": [{ "binding": "HYPERDRIVE", "id": "<HYPERDRIVE_ID>" }],
"durable_objects": {
"bindings": [{ "name": "COUNTER", "class_name": "Counter" }]
},
"queues": {
"producers": [{ "binding": "MY_QUEUE", "queue": "my-queue" }],
"consumers": [{ "queue": "my-queue", "max_batch_size": 10 }]
},
"workflows": [
{ "binding": "MY_WORKFLOW", "name": "my-workflow", "class_name": "MyWorkflow" }
],
"triggers": { "crons": ["0 * * * *"] },
"observability": { "enabled": true, "head_sampling_rate": 1 },
"env": {
"staging": { "name": "my-worker-staging", "vars": { "ENVIRONMENT": "staging" } }
}
}
Pipelines / Secrets Store / Containers のバインディング形状は各リファレンスを参照。
トラブルシュート早見表
| 問題 | 対処 |
|---|---|
command not found: wrangler | pnpm add -D wrangler@latest |
| 認証エラー | pnpm exec wrangler login |
workerdのplatform/CPU不一致 | supportedArchitectures確認後にpnpm install --force --frozen-lockfile |
| 複数Accountで対象が不明 | 既存リソース所有先を照合。新規ならチーム用Account、個人は明示指定時だけ |
| 起動時間の上限超過 | pnpm exec wrangler check startup でプロファイル |
| 設定変更後の型エラー | pnpm exec wrangler types |
| ローカル状態が消える | .wrangler/state を確認 |
| バインディングが undefined | 設定のバインディング名と完全一致しているか確認 |
詳細リファレンス
必要になったときに該当ファイルを読むこと。
| 状況 | 読むファイル |
|---|---|
wrangler.jsonc を書く・バインディングを追加する・型生成をする | references/config.md |
ローカル開発、リモートバインディング、.dev.vars、Vitest / scheduled のテスト | references/dev-local.md |
| デプロイ、バージョン管理とロールバック、Pages、認証 | references/deploy.md |
| Worker シークレット、Secrets Store の操作 | references/secrets.md |
| D1 のデータベース作成、SQL 実行、マイグレーション、エクスポート | references/d1.md |
| KV Namespace / キー操作、R2 バケット / オブジェクト操作 | references/kv-r2.md |
| Workers AI のモデル一覧、Vectorize のインデックス、Hyperdrive の設定 | references/ai-vectorize-hyperdrive.md |
| Queues、Workflows とそのインスタンス、Pipelines | references/queues-workflows-pipelines.md |
| コンテナイメージのビルド/プッシュ、外部レジストリ設定 | references/containers.md |
| ログの tail、observability 設定、エラーの切り分け | references/observability-troubleshooting.md |
最小構成のスターター
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2026-01-01"
}
バインディングを含むフル構成の例は references/config.md にある。
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Webアプリの準備→要件定義→設計→実装→公開→品質ゲートを実行する内部オーケストレーター。Claude Codeの /build-app /improve-app、Codexの $build-app / $improve-app から明示的に委譲された場合、custom agent起動時、または利用者が $app-orchestrator を明示した場合だけ使用する。一般のアプリ相談から暗黙起動しない。
run-extract-blueprint が生成した章別ブループリントの忠実性を独立 context で評価したいとき、事実/推測区別と粒度と被覆を検証し draft_hash に束縛した PASS/FAIL verdict をローカル品質ゲート (C01 の周回内の受入判定・差し戻し) へ渡したいときに使う。
確認点で利用者が見る深さを選んだあと打ち合わせ資料を作り手とは別の目で確かめたいとき、正確さ・言葉・見た目・シンプルさの指摘を資料の編集なしで受け取りたいときに使う。
生成した handout 資料が初心者に伝わるか読みやすさレビューを依頼したいとき、独立 context のレビュアーから指摘と根拠つきの verdict を回収したいときに使う。
Notion ページを描画する直前に粒度を検証したいとき、info-collector-agent ページと同等の section 充足度を section_canonical_map 基準で機械検証したいときに使う。