作成日: 2026-08-27 / シンオン株式会社
対象: つくる人(非エンジニア社員)/ 用意する人(情シス・エンジニア)/ 決める人(経営)
題材: 顧客問い合わせの受付台帳 / 日報の集計ダッシュボード
対になる資料: プランA(Codespaces)・プランB(ローカル・本命)— 最後に比較します
| あなたの立場 | 読むところ |
|---|---|
| 決める人(経営・情シス) | 第 I 部(1〜4章)と 第 III 部(16〜21章)。所要 15 分 |
| 用意する人(エンジニア) | 第 I 部 → 第 II 部の Step 0・Step 1(6〜7章)→ 第 III 部。所要 40 分 |
| つくる人(非エンジニア) | 第 II 部の Step 2 以降(8〜13章)だけで足ります。Step 0・Step 1 は自分ではやりません |
Cloudflare OS は 2026 年 8 月に公開されたばかりのソフトウェアです。公式リポジトリには 「early-access software」と明記され、「2026 年 8 月リリース時点で v2 は非常に高機能だが、まだ粗い箇所が多い」とも書かれています。
この資料は一次情報(公式ブログ・GitHub リポジトリ・公式ドキュメント)に基づいていますが、 確認できなかった項目は 21 章に正直に列挙しています。そこを読まずに稟議へ回さないでください。
プランA/B が「部門で長く使う業務システムを、レビューを通して 1 本ずつ作る」仕組みなのに対し、 Cloudflare OS は「一人ひとりが自分の道具を、その日のうちに何本でも作る」仕組みです。
前者は減らせません。後者は今まで存在しませんでした。
Cloudflare が自社の社内利用のために作り、2026 年 8 月に Apache-2.0 でオープンソース公開したエージェント・ワークスペースです。ソフトウェア自体の利用料はかかりません。
| 部品 | 実体 | 意味 |
|---|---|---|
| ワークスペース | Cloudflare Workers + Durable Objects | 自社の Cloudflare アカウントの中。SaaS に預けるのではない |
| Gadget のサーバ側 | Dynamic Worker(外向き通信は既定で無効) | アプリごとに独立した実行環境。専用サーバは不要 |
| Gadget のクライアント側 | ブラウザのサンドボックスフレーム | 画面の描画 |
| Gadget のデータ | Durable Object Facet + SQLite | アプリごとに独立したデータベース |
| 画面とサーバの通信 | Cap'n Web(Cloudflare 製の OSS RPC) | サーバの関数を、画面から普通の JS 関数のように呼べる |
| AI の呼び出し | Cloudflare AI Gateway 経由 | モデルの選択・上限・費用の按分をここで一括管理 |
| 入口の認証 | Cloudflare Access | 誰が Cloudflare OS に入れるかを制御 |
つくられたアプリは「プロトタイプ」ではありません。公式ブログの表現をそのまま引くと、 「別のどこかにエクスポートしてデプロイし直す必要のある試作品ではない。それぞれが、クライアントコード・サーバコード・API・永続状態を持ったフルスタックのアプリケーションである」。
この数字は「1 部門に 1 本の業務システム」ではなく、「一人が週に何本も、自分の困りごとに合わせて道具を作る」使われ方を示しています。
この 3 つの数値は InfoQ が引用した Cloudflare CIO の発言です。公式ブログ側に具体的な数値はなく、「あらゆる部門の数千人が毎日使っている」という定性的な記述にとどまります。
プランA/B では、書いたコードを GitHub に push し、Actions が動き、Cloudflare に配信され、そこで初めて他人が使えるようになります。この間に失敗ポイントが 3 つあります。
非エンジニアの開発でいちばん怖いのは「うっかり社外に出す」「うっかり全部消す」です。Cloudflare OS はこれを運用ルールではなく、仕組みで止めています。
AI の変更は、いきなり本体に反映されるのではなく、チャット単位の「変更提案」として扱われます。ユーザーはそれを受け入れる(accept)/取り消す(revert)を選べます。確定したコードは mainline と呼ばれます。
「頼む → 見る → 気に入らなければ取り消す」が、Git を知らなくても回ります。
Cloudflare OS そのものは Apache-2.0 の OSS で無料です。かかるのは土台の Cloudflare 利用料と AI の推論費用だけです。
| 項目 | 金額 | 備考 |
|---|---|---|
| Cloudflare OS ライセンス | $0 | Apache-2.0 |
| Workers Paid | $5/月(アカウント全体で 1 本) | 月 1,000 万リクエスト・3,000 万 CPU ミリ秒を含む。超過は $0.30/百万req、$0.02/百万CPUms |
| Durable Objects | Paid に月 100 万リクエスト込み 超過 $0.15/百万 | SQLite ストレージは 5GB-月まで無料、超過 $0.20/GB-月 |
| AI Gateway | 分析・キャッシュ・レート制限・予算上限(Spend Limits)に追加料金の記載なし | 永続ログ保存は Paid でゲートウェイあたり 1,000 万件 |
| AI 推論(モデル利用料) | 実費 | Cloudflare 経由でもトークン単価にマークアップなし。ダッシュボードでクレジット購入時のみ 5% 手数料。自前 API キー(BYOK)持ち込みも可 |
| Cloudflare Access | 50 ユーザーまで無料 有料は $7/ユーザー/月 | 金額は Cloudflare 公式ブログ(Zero Trust For Everyone)記載。現行の価格ページで再確認すること |
新たに増えるのは、実質「Workers Paid $5/月 + AI の実費」だけです。 プランB がすでに Workers Paid $5/月 を前提にしているので、インフラ費の増分はほぼゼロになります。
どのモデルが動き、どこでトークンが減るのかは 10 章で扱います。
ここだけは使い方次第です。AI Gateway の予算上限(Spend Limits)を必ず先に設定してください。
「毎朝の未読メール要約に最上位モデルは要らない」というのが Cloudflare 自身の例示です。 用途ごとにモデルを選ばせるのではなく、管理者が選択肢を絞るのが正解です。
| 方式 | 何をするか | 向いている場面 | Synon での評価 |
|---|---|---|---|
| A. オンライン設置 | https://os.cloudflare.app/deploy を開いてクリックするだけ | まず触ってみる | お試しに最適。ローカルビルド不要。サインイン方式と管理者メールを自動設定。workers.dev のアドレスで動く |
| B. starter リポジトリ | cloudflare-os-starter を clone して設定・デプロイ | 本番運用 | 本命。独自ドメイン・Access 連携・独自 Gatekeeper・ログ設定ができる |
| C. 自社インフラで workerd | Cloudflare を介さず自前で動かす | 完全オンプレ要件 | まだ使えない。公式に「COMING SOON」表記。手順もツールも未整備 |
1 週目は方式 A で触って、2 週目に方式 B へ移す。方式 A は「ブランディングだけ変えたい人向け」と公式が位置づけており、独自ドメイン・独自 Gatekeeper が必要になった時点で方式 B が要ります。
方式 A から方式 B への「移行」ではなく、方式 B で建て直す前提で計画してください。
# 1) 取得と認証
git clone https://github.com/cloudflare/cloudflare-os-starter
cd cloudflare-os-starter
git submodule update --init # 本体を pinned release として取り込む
pnpm install
pnpm --dir cloudflare-os install
pnpm exec wrangler login
# 2) 設定ファイルを埋める(deployment.jsonc)
# account ID / Worker 名 / ホスト名 / Access audience / 管理者メール
# 3) 検証してデプロイ
pnpm check
pnpm deploy
# 4) /admin を開いて サイト名・ロゴ・アクセントカラー を設定
# (ブランディングの変更に再デプロイは不要)
前提: Node.js 24 / pnpm 11 相当。
starter の README に明記されている必要サービス:
deployment.jsonc で null のままなら Wrangler が自動作成)「Workers Paid が必須」と明記した一次情報は見つかりませんでした。 ただし Dynamic Worker Loaders と Browser Rendering は Free 枠での利用に制約があり、かつプランB の検討で確定している通り、Workers Free は CPU 10ms 制限と D1 10 個上限で社内利用に耐えません。
Workers Paid $5/月 を前提に稟議を通してください。Free 前提で通すと後で必ず詰みます。
deployment.jsonc の Access audience 欄に貼るCloudflare OS 自体にユーザー管理画面を持たせるのではなく、Access のポリシー=入場者名簿になります。既存の Zero Trust 運用にそのまま乗ります。
デプロイ直後にやることは 4 つだけです。
| # | やること | 場所 | なぜ必要か |
|---|---|---|---|
| 1 | 管理者メールを登録 | deployment.jsonc | /admin に入れる人を決める |
| 2 | 見た目を整える | /admin(再デプロイ不要) | 社内サービス感を出す。別サービスに見えると使われない |
| 3 | 使えるモデルを絞る | AI Gateway | 高額モデルの野放しを防ぐ |
| 4 | 予算上限を入れる | AI Gateway → Spend Limits | これを飛ばすと請求で事故ります |
| 単位 | 上限 | 到達時の挙動 |
|---|---|---|
| ワークスペース全体 | 月 $150 | ブロック |
| ユーザー 1 人あたり | 月 $30 | 安価なフォールバックモデルへ切り替え |
1 か月動かして実測してから決め直す前提の初期値です。「上限なしで始める」ことだけは避けてください。
ブラウザで社内 URL を開く
│
▼
Cloudflare Access のログイン画面(会社のメール/いつもの SSO)
│
▼
Cloudflare OS のホーム画面
インストールするものはありません。Mac でも Windows でも、ブラウザだけで同じです。
チャット欄に、日本語で、業務のことばで書きます。技術の言葉は要りません。
| 例 | |
|---|---|
| △ 惜しい | 「問い合わせ管理のアプリを作って」 |
| ◎ 良い | 「お客様からの問い合わせを記録する画面を作ってください。入力するのは、日付・会社名・担当者名・内容・対応状況(未対応/対応中/完了)の 5 つです。一覧では対応状況で絞り込めて、未対応が上に来るようにしてください。」 |
違いは 3 点だけです。
お客様からの問い合わせを記録する社内用の台帳を作ってください。
【登録する項目】
- 受付日(既定は今日)
- 会社名
- 先方の担当者名
- 問い合わせ内容(長文)
- 種別(見積依頼/技術質問/不具合/その他)
- 対応状況(未対応/対応中/完了)
- 社内の担当者名
【画面】
- 上に新規登録フォーム、下に一覧
- 一覧は対応状況と種別で絞り込める
- 未対応を上に、受付日の新しい順
- 未対応が3日以上たっているものは行を赤くする
【その他】
- 一覧を CSV で書き出すボタンをつけてください
社員が毎日の作業時間を入力し、月次で集計するダッシュボードを作ってください。
【入力】
- 日付/案件名/作業内容/作業時間(0.5時間刻み)
- 入力は1日ぶんをまとめて、行を足せる形にしてください
【集計】
- 今月の案件別の合計時間を棒グラフで
- 今月の自分の合計時間を大きく表示
- 案件別・週別の表
【注意】
- 他の人の入力は見えないようにしてください(自分のぶんだけ)
「他の人の入力は見えないように」のような要件も、日本語で書いておけば実装されます。 あとから「実は見えていた」と気づく方がはるかに高くつきます。
「頼むと AI が作ってくれる」の裏側で、誰のどのモデルが呼ばれ、費用が誰に立つのかです。Cloudflare OS はここを 2 段構えにしていて、理解しておかないと「使えない」「請求が読めない」の両方が起きます。
公式 starter の README にこう書かれています。
AI is disabled by default. The application can deploy without an AI Gateway or token.
設置しただけでは、チャットで頼んでも何も生成されません。Step 1(7 章)でここを決めます。設定は deployment.jsonc の aiGateway で、4 つのモードがあります。
| モード | 設定 | どうなるか |
|---|---|---|
| モデルなし | aiGateway.enabled: false | シークレット不要でデプロイできる。会社負担のモデルは提供されない |
| Workers AI を直接 | providers: ["cloudflare"] + workersAi.mode: "direct" | Workers AI の REST を直接呼ぶ。AI Gateway のログは残らない |
| Workers AI を Gateway 経由 | 同上 + workersAi.mode: "gateway" | 可観測性がつく。実質こちらを選ぶ |
| 外部プロバイダ | providers に anthropic / openai / google を追加 | AI Gateway 経由で公開。課金設定(Unified Billing か BYOK)が要る |
必要なシークレットは CF_AI_GATEWAY_API_TOKEN の 1 本。API トークンの権限は AI Gateway – Read / AI Gateway – Edit / Workers AI – Read(アカウント権限)。
pnpm exec wrangler secret put CF_AI_GATEWAY_API_TOKEN --name your-workshop-worker
リポジトリの型定義でも model は自由文字列で、プロバイダ名(cloudflare / openai / anthropic / google / ollama)だけが列挙されています。「どのモデルが使えるか」は各社のカタログ次第で、Cloudflare OS 側が絞っているわけではありません。
【管理者】 deployment.jsonc の providers
= 会社が費用を持つモデル群(deployment-funded model catalog)
│ この範囲の中で
▼
【つくる人】 Connections パネル
・自分のモデル(BYOK)を追加できる
・Gadget の aiModel バインディングで、どのモデルを使うか選ぶ
・agentSpawner バインディングでも「どのモデルで動かすか」を選ぶ
/admin 画面ではモデルを選べません。管理者の担当は deployment.jsonc、つくる人の担当は Connections パネルです。
コード生成に使われるモデルも固定ではありません。公式ドキュメントにこうあります。
When a collaborator engages AI chat, the model is resolved from their own account (BYOK billing goes to whoever prompted the AI, not the gadget owner).
AI を叩いた本人に費用が立ちます。Gadget を共有しても、共有相手の利用分が作成者に請求されることはありません。「便利なアプリを作ったら、自分の請求が跳ねた」は起きない設計です。
ENABLE_CLOUDFLARE_LIMITS を有効にすると、AI を呼ぶ直前に毎回この判定が走ります。
| 変数 | 既定値 | 意味 |
|---|---|---|
DAILY_LLM_CALL_LIMIT | 100 | 1 ユーザーあたりの 1 日の無料 LLM 呼び出し回数 |
MINIMUM_CLOUDFLARE_BALANCE | $2 | 本人アカウント経由に切り替わる最低残高 |
| 残高のキャッシュ | 5 分 | 表示される残高は最大 5 分古い |
カウンタは各ユーザーの Durable Object に保存され、UTC の日付でリセットされます(UTC 0 時 = JST 9 時)。「夕方に使い切ったら、翌朝 9 時まで戻らない」という体感になります。社内案内に必ず書いてください。
無料枠が数えているのは 「LLM の呼び出し回数」であって、トークン数ではありません。短い質問も、大きなアプリの生成も、同じ 1 回として減ります。
一方でお金はトークン単価で決まります。つまり「回数の天井」と「金額の天井」は別物で、両方を見る必要があります。
顧客問い合わせの受付台帳や日報の集計は、AI を実行時に使わない設計にできます。その場合、トークンを消費するのは作った日と、直した日だけです。以後はゼロ。
逆に「問い合わせ内容を AI に要約させる」を入れた瞬間、入力のたびに課金が発生します。便利さと引き換えなので、入れるかどうかは意識して決めてください。
| モデル | 入力(100 万トークン) | 出力(100 万トークン) |
|---|---|---|
| Llama 3.2 1B | $0.027 | $0.201 |
| Mistral 7B | $0.110 | $0.190 |
| Llama 3.1 70B | $0.293 | $2.253 |
1 つの Gadget を作るのに何トークンかかるか、という公式の数値はありません。モデル・アプリの大きさ・直しの回数で桁が変わります。
3 週目の実測(20 章)で、1 人 1 本あたりの実額を出してから予算を決めてください。この資料に書いた「月 $150」は、根拠のない置きの数字です。
リクエスト数 / トークン使用量 / コスト / エラー数 / キャッシュ率。ログにはプロンプト本文とモデルの応答も残ります。
「社外秘をチャットに貼った」がログに残ります。ログの閲覧権限を、設置と同時に決めてください。
per_token_in / per_token_out)で上書きできますsub クレームを cf.user_id として記録します| プラン | 保持件数 |
|---|---|
| Workers Free | 全ゲートウェイ合計で 10 万件 |
| Workers Paid | ゲートウェイあたり 1,000 万件 |
保持「期間」(何日で消えるか)は公式ドキュメントに記載がありません。
会社が費用を持ち、上限で守る。理由は 1 つ、非エンジニアに自分の Cloudflare アカウントの残高を管理させるのは無理だからです。BYOK 方式は費用の帰属が明快ですが、「残高が切れたので使えません」を各自に自己解決させることになり、問い合わせが情シスに来ます。
| # | 決めること | 推奨 |
|---|---|---|
| 1 | aiGateway.providers | まず cloudflare(Workers AI)+ 外部 1 社に絞る。3 社全部開けない |
| 2 | workersAi.mode | gateway。ログが残らない direct は選ばない |
| 3 | ENABLE_CLOUDFLARE_LIMITS | 有効。無料枠 100 回/日が「1 人あたりの回数の天井」になる |
| 4 | DAILY_LLM_CALL_LIMIT | 既定 100 のまま開始 → 3 週目の実測で調整 |
| 5 | Spend Limits | 金額の天井を別に張る。回数の天井だけでは金額を守れない |
| 6 | ログの閲覧権限 | 設置と同時に決める。プロンプト本文が残るため |
| 7 | 社内案内 | 「無料枠のリセットは毎朝 9 時」「回数で数える」の 2 点を明記 |
| 未確認 | なぜ困るか |
|---|---|
| Cloudflare OS が AI Gateway に送るメタデータに、ユーザー識別子が含まれるか | 含まれないとユーザー別の Spend Limit が張れない(=1 人の暴走を金額で止められない) |
| Gadget 1 本あたりの実トークン量 | 予算の根拠が作れない。3 週目に実測 |
DAILY_LLM_CALL_LIMIT の実効性 | 環境変数なので変更できるはずだが、実機で確認 |
| プロンプト・応答ログの保持期間 | 監査・情報管理の設計ができない |
mainline(確定しているコード)
│
├── チャットA の変更提案 ──→ 受け入れる → mainline に入る
│ └→ 取り消す → 無かったことになる
│
└── チャットB の変更提案 ──→ …
気に入らなければ取り消せます。「壊してしまったらどうしよう」は要りません。
| 状況 | 言い方 |
|---|---|
| 見た目を変えたい | 「一覧の文字が小さいので、もう少し大きくしてください」 |
| 項目を足したい | 「『次回連絡予定日』の欄を、対応状況の下に足してください」 |
| 動きがおかしい | 「◯◯を押したら△△になるはずが、□□になります」と、期待 → 実際の順で書く |
| 元に戻したい | そのチャットの変更を取り消す(revert) |
5 つまとめて頼むと、どれが原因で崩れたか分からなくなります。1 つ直す → 動かす → 次。これが最短です。
コードエディタは存在し、権限のある人(build 役割)は開けます。ただし非エンジニアが開く必要はありません。開かない前提で運用してください。
自分で入力するだけのアプリなら Step 5 は飛ばせます。GitHub や Google Drive、社内 DB のデータを使いたくなったときにここへ来ます。
GitHub / Google / Cloudflare / Supabase / Notion / Confluence / Email(Workers 経由)/ Home Assistant / Slack / Spotify / ZoomInfo
多くは接続前に設定(OAuth の取得など)が必要です。各パッケージに手順が同梱されています。
Chatwork・freee・kintone などは同梱されていません。必要なら自作になります。
リポジトリには AI エージェント用の write-gatekeeper スキルが同梱されており、AI に書かせる前提の設計です。ただし手順の Phase 1 には「オペレーターの承認を得るまで先に進まないこと」という明示的な関門があり、TypeScript の型設計・OAuth 設計・Workers/Durable Objects の理解が前提になっています。
Gatekeeper づくりはエンジニアの仕事です。「非エンジニアでも作れる」という記述は一次情報にありません。 Synon では Chatwork Gatekeeper を最初の 1 本として、エンジニアが書くのが現実的です。
API キーを自分でコピー&ペーストする場面はありません。あったら、それは設計ミスです。
配り方は 2 種類あり、渡るものが違います。ここを間違えると事故ります。
「Share」モーダルで相手のユーザー名かメールを入れ、build か use を選ぶだけです。
共有リンクは #share=<鍵> の形で、128bit の秘密がリンク側にあり、サーバには HMAC-SHA-256 のハッシュしか保存されません(=サーバ側から生の鍵は復元できない)。
共有リンクを渡すことは、鍵そのものを配るのと同じです。Chatwork の全体ルームに貼らないでください。
/blueprint/<id>)を配る。または 「Explore」(/explore)に並ぶ渡ったコピーには、あなたのデータも、AI との会話も、接続先も入っていません。相手は自分で Connections パネルからつなぎ直します。
Blueprint を直しても、すでに配ったコピーは自動更新されません。 公式ドキュメントに「blueprint から既存インスタンスへの自動更新の仕組みはない」と明記されています。
「みんなが同じものを使い続ける必要があるもの」は、Blueprint ではなく直接共有にしてください。
+ メニューの「New Doc」「New Slides」は特別な機能ではなく、管理者が昇格させた Blueprint(Formats)です。
Synon の書式に合わせた「新規 見積書」「新規 議事録」を、+ メニューに置けます。/admin の「Formats」パネルで設定します。
| 頻度 | やること |
|---|---|
| 毎月 | AI Gateway のダッシュボードで誰がいくら使ったかを確認し、予算を調整 |
| 毎月 | Access の入場者名簿を棚卸し(退職者を落とす) |
| 随時 | Gatekeeper の監査ログを確認 |
| 随時 | 破壊的操作の承認キューを処理 |
| リリース時 | 上流の更新を取り込む(アップグレード用チェックリストに従う) |
starter は本体を git submodule として特定リリースにピン留めします。公式にも 「上流リリースをピン留めし、変更をレビューし、本番アップグレードのたびに信頼境界を検証すること」と書かれています。自動更新しない設計です。早期アクセス版として正しい挙動です。
wrangler tail比較の前提として、Cloudflare OS がなぜ非エンジニアに開放できるのかの核心を 1 つだけ。
エージェント/Gadget が生まれた瞬間
│ 持っている権限: 【なし】
│ 外向きネットワーク: 【無効】
▼
必要な権限だけを「型のついたバインディング」として受け取る
const issues = await env.PROJECT.listIssues({ state: "open" });
↑
これは「権限そのもの」。API キーではない。
キーは Gatekeeper の中から出ない
Cloudflare OS の最も特徴的な仕組みです。
AI 業務利用で最も起きやすい事故を、運用ルールではなく仕組みで止めています。
プランA/B の設計の中心には、「本番公開の承認 = エンジニアが PR をマージする行為」という一点があります。何が本番に出るかを、必ず人間が 1 回見ます。
Cloudflare OS には、これに相当する関門がありません。共有ボタンを押した瞬間に配布が完了します。
4,000 本のツールを 30 日で作るのに、1 本ずつレビューはできません。ただし 「レビューされていないものが社内で使われる」という前提を、経営として受け入れるかどうかの判断が要ります。
受け入れ方は 1 つです。「レビューされていなくても事故らない範囲」= 壊れても業務が止まらず、機微データを持たず、社外に出ないものに用途を限定すること。それが 18 章の判断フローです。
プランB の資料で「技術で解けない宿題」として残していた項目があります。
退職者の Mac にソースの複製が残る。端末返却・初期化を退職手続きに紐づけること。
コードもデータも、すべて Cloudflare アカウントの中にあります。Access の名簿からその人を外せば、その瞬間に何も見えなくなります。利用者の端末には何も残りません。
同様に、プランB で必要だった以下もすべて不要になります。
npm ci が社内プロキシで通るかの検証| 宿題 | 中身 |
|---|---|
| 早期アクセス版である | 公式に「early-access software」。README に「現時点で外部からのコントリビュートは求めていない」「十数行を超える PR は控えてほしい」と明記。つまり困っても自分で直して本家に入れられない |
| Gatekeeper の自作 | Chatwork・freee・kintone など日本のサービスは同梱されていない。全部エンジニアが書く |
| 誤共有 | 直接共有は入力済みデータと AI 会話履歴ごと渡る。リンクの扱いを教育する必要がある |
| 一斉更新できない | Blueprint で配ったあと、全員分をまとめて直せない |
| Access シート | 50 ユーザーまで無料。超えると $7/ユーザー/月。Synon 規模では当面問題なし |
| 持ち出しにくい | Gadget は Cap'n Web / Durable Object Facet 前提。普通の Workers プロジェクトとして外へ出すのは容易ではない |
| 観点 | プランA(Codespaces) | プランB(ローカル・本命) | Cloudflare OS |
|---|---|---|---|
| 使う道具 | ブラウザ(Codespace) | Claude Code(Mac) | ブラウザのみ |
| 端末セットアップ | ゼロ | エンジニアが 30 分/人 | ゼロ |
| GitHub アカウント | 必要 | 不要(Deploy key) | 不要 |
| ターミナルを見るか | 見る | 見る | 見ない |
| 仕様書は要るか | 必要(/service-spec) | 必要(/service-spec) | 不要(チャットが仕様) |
| 最初の 1 本ができるまで | 半日〜1 日 | 半日〜1 日 | 10〜30 分 |
| 直し方 | Claude Code に依頼 → 保存 → 配信 | 同左 | チャットで依頼 → 受け入れ/取り消し |
| 壊したときの戻し方 | git で戻す | git で戻す | チャットの変更を取り消す |
| 作業が消えるリスク | 低(クラウド) | 高(三重の保存で対処) | なし(サーバ側) |
| 同時に持てる本数 | 1 人 1〜2 本が現実的 | 1 人 1〜2 本が現実的 | 何本でも |
| 観点 | プランA | プランB | Cloudflare OS |
|---|---|---|---|
| 本番公開の関門 | エンジニアの PR マージ | エンジニアの PR マージ | なし(共有=即配布) |
| 変更の差分レビュー | できる(Git diff) | できる(Git diff) | 実質できない |
| コードの保管場所 | GitHub | GitHub + 利用者の Mac | Cloudflare のみ |
| 退職者に残るもの | なし | ソースの複製が残る | なし |
| 権限の既定値 | 開発者が書いた通り | 開発者が書いた通り | ゼロ権限+外向き通信オフ |
| 認証情報の置き場所 | GitHub Actions Secrets | GitHub Actions Secrets | Gatekeeper の中(AI にもコードにも渡らない) |
| 「読んだデータ」の追跡 | なし | なし | 観測ログが成果物に追従 |
| 監査ログ | Actions のログ | Actions のログ | Gatekeeper が全操作を記録 |
| 破壊的操作の承認 | 仕組みなし | 仕組みなし | Gatekeeper で人間承認を要求できる |
| AI 費用の可視化 | 個人の Claude シート単位 | 同左 | ユーザー別・チーム別に按分+上限 |
| 社外公開できるか | できる | できる | できない(Access の内側) |
| 独自ドメイン | できる | できる | できる(starter 方式のみ) |
| 技術構成の自由度 | 高い(D1・R2・任意の API) | 高い | 低い(Gadget の枠内) |
| 他所への持ち出し | 容易(普通の Workers プロジェクト) | 容易 | 難しい |
| 成熟度 | Workers 単体で本番実績 | 同左 | early-access(2026-08 公開) |
| 観点 | プランA | プランB | Cloudflare OS |
|---|---|---|---|
| インフラ月額 | Cloudflare $5 + GitHub Team $4×人数 + Codespaces $25〜47 | $13(Cloudflare $5 + GitHub Team $8) | $5(Workers Paid)+ AI 推論の実費 |
| Synon 実額の目安 | $50〜80/月 | $13/月 | $5/月 + AI 実費(Access は 50 名まで無料) |
| AI の費用 | Claude シート(1 人ずつ) | Claude シート(1 人ずつ) | 従量。上限設定は必須 |
| 初期構築(エンジニア) | 半日 | 半日 + 30 分×人数 | 半日。人数が増えても増えない |
| 運用(エンジニア) | 公開ごとに PR 2 分 | 公開ごとに PR 2 分 | 月次の予算・名簿確認。Gatekeeper 自作は都度 |
| 撤退のしやすさ | 容易(コードは Git) | 容易(コードは Git) | 難しい(Gadget は移せない) |
新しく何か作りたい、と言われたら、この 5 問を上から順に。
これが 2 つを併存させる最大の理由です。
プランB の最大のコストは「作ってみたが使われなかった」ときの損失です。仕様書に 30 分、開発に半日、レビューに 2 分。それが空振りに終わる。
プランB の /service-spec で悩んでいた「何を作りたいのか本人も分かっていない」問題が、ここで解けます。
| 作りたいもの | 判定 | 理由 |
|---|---|---|
| 顧客問い合わせの受付台帳(社内・営業 5 名) | Cloudflare OS | 止まっても業務は止まらない。顧客の連絡先は持つので Q3 は情シスに一声 |
| 日報の集計ダッシュボード | Cloudflare OS | 個人の作業時間。典型的な Cloudflare OS 向き |
| 展示会で配る名刺スキャン集計(3 日だけ) | Cloudflare OS | 使い捨て。プランB でやる価値がない |
部内の議事録フォーマット(+ メニューに追加) | Cloudflare OS(Formats) | まさに設計意図どおり |
| SyncSync Form の顧客向け機能 | プランB | Q1 で即決 |
| 請求データの締め処理 | プランB | Q2 で即決 |
| 採用応募者の管理 | プランB | Q3。個人情報を長期保持 |
| 社内申請システム | プランB | Q2・Q4。既存資産もある |
すでに動いているものが 2 通りあります。
(1) は単一障害点を消すための移行。(2) は更新のしやすさだけのための移行です。同じ手順で進めると失敗します。
動いているものを触るのが、いちばんリスクの高い作業です。移行は「新しい方が良いから」ではなく、いま抱えている具体的な困りごとを消すためにだけやります。行き先は 3 つしかありません。
| 行き先 | どういうときに選ぶか |
|---|---|
| A. 据え置き(移さない) | 困っていない。または移せない構造的理由がある |
| B. Cloudflare OS の Gadget にする | 社内・軽い・自分たちのデータだけ。本人が直したい |
| C. プランB(Workers + Access)に載せ替える | 社外公開・基幹・個人情報。レビューの関門が要る |
Cloudflare OS へ構造的に移せないもの(18 章の判断フローと同じ理由):
移行計画の前に、この表を全アプリぶん埋めてください。埋まらない列があること自体が結論になります。
| 列 | 何を書くか |
|---|---|
| アプリ名 / 現行環境 | Docker(Mac mini) か Workers か |
| 使う人数 / 使用頻度 | 「月 1 回・1 人」なら移行対象ではない |
| 最終更新日 | 半年以上前なら、要らない可能性が高い |
| 社外公開 / 外部 API 連携 | あり/なし。API はサービス名を具体的に |
| データ量 / 個人情報 | 概算 MB・行数/あり・なし |
| 止まると業務が止まるか | はい/いいえ |
| いま直せる人 | 名前。「いない」ならそう書く |
「誰も直せない」「半年以上更新なし」「月 1 回しか使わない」が揃ったら、移行ではなく廃止を検討してください。これがいちばん効く工程です。
まず、いまの構成の危うさを言葉にしてください。稟議はこの言葉で通します。
移行の目的は「この単一障害点を消すこと」です。Cloudflare OS を入れることではありません。
| Docker の中身 | 行き先 | 注意 |
|---|---|---|
| 画面+DB だけの業務アプリ(Rails / Django / Node + PostgreSQL / MySQL) | Gadget に作り直す | 移植ではありません。コードは移さず、現物の画面と項目を見せて作り直す方が速い |
| 定期バッチ・cron | Cloudflare OS のスケジュール実行、または Workers の Cron Triggers | Cloudflare OS は「オンデマンド/スケジュール/イベント」での決まった手順の実行を公式に挙げています |
| ファイル置き場・共有 | R2 または既存のファイルサーバ | Gadget に持たせない |
| 社内 LAN の機器・NAS を叩く | 移せない。Tunnel を立てるならプランB | 既存の Cloudflare Tunnel 移行案件と接続する話になります |
| 重い処理(画像変換・機械学習) | Workers / Containers、または Mac mini を残す | Gadget の枠に入りません |
Gadget のデータは Durable Object の SQLite です。一括インポートの公式手段は確認できていません。実務上は「取り込み画面を作ってください」とエージェントに頼み、現行 DB から出した CSV を流し込むことになります。
SQLite ストレージの無料枠は 5GB-月です。これを超える規模なら、そもそも Gadget 向きではありません。
プランA/B の成果物は、すでに Cloudflare の上で、Access の内側で動いています。単一障害点もなく、鍵の置き場所も整理済みで、レビューの関門もあります。
移す理由は費用でも安定性でもありません。「更新のしやすさ」だけです。
| 移す価値がある | 移さない |
|---|---|
| 本人が直したいのに、毎回エンジニアの PR マージ待ちになっているもの | 社外公開しているもの |
| 表示や項目の変更依頼が、月に何度も来るもの | 独自ドメインを当てているもの |
| 作ったが、ほとんど使われていないもの(=廃止候補) | D1・R2 を本格的に使っているもの/cron で基幹処理を回しているもの/同梱 Gatekeeper に無い外部 API を叩くもの |
認証(Access)もデータの所在(Cloudflare アカウントの中)も変わりません。変わるのは「誰が直せるか」だけです。手順は 19-4 と同じですが、Step 3 のデータ移行が楽です。D1 なら wrangler d1 execute で CSV を吸い出せます。
Gadget が定着するまで、旧 Workers 版を読み取り専用で 1 か月動かしておくのが戻り先になります。Blueprint は配布後に自動更新されない(13 章)ので、壊れたときに戻る先を用意しておくことが特に重要です。
定着を確認したらリポジトリをアーカイブします。削除はしない。
| 現行 | Cloudflare OS へ | プランB のまま/へ | 据え置き・廃止 |
|---|---|---|---|
| Docker / Mac mini | 画面+DB だけの社内業務アプリ | 社外公開・基幹・重い処理 | LAN 内機器を叩くもの、使われていないもの |
| Cloudflare Workers | 本人が直したいのに待ちが発生しているもの | 社外公開・独自ドメイン・D1/R2 本格利用・cron 基幹 | 触る理由が無いもの |
| 順 | 何を移すか | 目的 |
|---|---|---|
| 1 本目 | 止まっても誰も困らないもの(社内の小さな台帳など) | 手順とデータ移行の実測。ここで所要時間を出す |
| 2 本目 | よく使うが、止まっても半日は平気なもの | 並行運転の運用を試す |
| 3 本目以降 | 棚卸しで「更新依頼が多い」と出たもの | ここから効果が出る |
| 移さない | 請求・給与・受発注、社外公開しているもの | 永久に移さない選択が正解のこともあります |
プランB と同じ考え方です。一気に全部やらない。
| 週 | やること | 判断ポイント |
|---|---|---|
| 1 週目 | 方式 A(os.cloudflare.app/deploy)でエンジニアが 1 つ立てて触る | UI が日本語か。日本語での指示がまともに通るか |
| 2 週目 | 方式 B(starter)で本番用に建て直す。Access 連携・独自ドメイン・予算上限 | Access の AUD 連携が通るか。Workers Free で足りないことの確認 |
| 3 週目 | 意欲の高い非エンジニア 1 名に、問い合わせ台帳を作ってもらう(サポートなし) | 30 分で 1 本目が動くか。ここが最重要 |
| 4 週目 | 同じ 1 名が Blueprint で 1 名に配る/Chatwork Gatekeeper をエンジニアが書く | 誤共有が起きないか。Gatekeeper 自作の工数実測 |
| 5 週目〜 | 部署内へ展開。判断フロー(18 章)を全員に配る | AI 費用の実測値で予算を引き直す |
| 6 週目〜 | 既存アプリの棚卸し(19-2)→ 1 本目の置き換え | データ移行の実所要時間。3 日を超えたら止める |
3 週目の 1 名が、サポートなしで 30 分以内に 1 本目を動かせなければ展開しない。 Cloudflare OS の価値は「速く・大量に」の一点にあります。1 本目に半日かかるならプランB と変わらないので、レビューがある分だけプランB に一本化した方が安全です。
AI 費用が月 $150 を超えたら、モデルの選択肢を絞り直す。上限で止めるのではなく、何にいくら使われているかを見て、安いモデルに寄せる。
この資料は一次情報に基づいていますが、以下は公式ドキュメントに記載が無く、確認できていません。実機で確認してから展開してください。
| # | 未確認の項目 | 何が困るか | いつ潰すか |
|---|---|---|---|
| 1 | Workers Paid が必須かどうかの明記がない | Free 前提で稟議を通すと後で詰む | 1 週目(Free で立ててみて詰まるか見る) |
| 2 | 製品 UI が日本語化されているか(プレスリリースの「日本語対応」がリリース文の翻訳を指すのか UI を指すのか不明) | 非エンジニアが英語画面では回らない | 1 週目。最優先 |
| 3 | 日本語プロンプトの品質 | 「◯◯を作って」が期待どおり通るか | 1 週目 |
| 4 | データ所在地・リージョン制御の可否 | 顧客データを扱う判断ができない | 2 週目(情シス判断の前提) |
| 5 | GA かベータかの公式表明がない(early-access とは書かれている) | 本番依存の可否 | 「本番の基幹業務には載せない」で回避 |
| 6 | エージェントの自動テスト/自動デバッグの実挙動 | 一次情報に記載なし。期待しすぎない | 3 週目に実測 |
| 7 | 監査ログの物理的な保存先と保持期間 | 監査対応の設計ができない | 2 週目 |
| 8 | os.cloudflare.app/deploy の実際の画面手順 | JS 描画のため事前確認不可 | 1 週目に実物を見る |
| 9 | Gadget のバックアップ・書き出し手段 | Cloudflare OS をやめるときに困る | 2 週目 |
| 10 | Chatwork Gatekeeper の実装工数 | 日本の SaaS 連携が全部これ次第 | 4 週目に 1 本書いて実測 |
| 11 | AI Gateway に送るメタデータにユーザー識別子が含まれるか | 含まれないとユーザー別の Spend Limit が張れない(10 章) | 2 週目 |
| 12 | Gadget 1 本あたりの実トークン量 | AI 予算の根拠が作れない | 3 週目に実測 |
| 13 | Gadget への一括データインポート手段 | 既存アプリの置き換え(19 章)でデータを移せない | 1 本目の移行時に実測 |
| 14 | Gadget から R2 や外部ストレージを使えるか | ファイルを扱うアプリを移せるか判断できない | 2 週目 |
| 15 | Gadget のスケジュール実行の実挙動 | Docker の cron を置き換えられるか判断できない | 2 週目 |
これが英語のみなら、本資料の前提(非エンジニアが自力で回す)が崩れます。1 週目に必ず確認してください。
claude-code-internal-app-workflow.md(プランA)/ claude-code-internal-app-workflow-planb.md(プランB)