作成日: 2026-08-28 / シンオン株式会社
対象: つくる人(非エンジニア社員)/ 用意する人(情シス・エンジニア)/ 決める人(経営)
題材: 顧客問い合わせの受付台帳 / 日報の集計ダッシュボード
巻末: プランA・プランB・Cloudflare OS の 3 方式比較(工程の横並び図+一覧表)
同じフォルダにある cloudflare-os-internal-service-guide が「導入すべきか」を判断するための資料であるのに対し、この資料は「実際に手を動かす順番」だけを、1 工程 1 図で並べたものです。
| この資料 | 既存の導入ガイド | |
|---|---|---|
| 目的 | 作業する | 判断する・稟議を通す |
| 並び | 手を動かす順 | 論点の順 |
| 中身 | 工程・図・チェックリスト・コピペ用プロンプト | 事実・根拠・費用・未確認事項 |
| 読む人 | つくる人が手元に置く | 決める人が一度読む |
| あなたの立場 | 読むところ | 所要 |
|---|---|---|
| つくる人(非エンジニア) | 第 III 部(工程 5〜11)だけで足ります。第 II 部は自分ではやりません | 20 分 |
| 用意する人(エンジニア) | 第 I 部 → 第 II 部(工程 1〜4)→ 第 IV 部 → 第 V 部 | 40 分 |
| 決める人(経営・情シス) | 第 I 部 と 第 V 部(20〜24 章) | 15 分 |
Cloudflare OS は 2026 年 8 月に公開されたばかりのソフトウェアです。公式リポジトリに 「early-access software」と明記されています。この資料は一次情報に基づきますが、確認できていない項目は 25 章に列挙しています。稟議前に必ず目を通してください。
この資料でいちばん大事な図です。工程は 3 つのかたまりに分かれ、「デプロイ」は最初の 1 回しか出てきません。
| 普通のやり方 | このやり方 |
|---|---|
| 仕様書を書く → 作る → デプロイする | 頼む → もう動いている |
| 作った人の PC にコードがある | すべて Cloudflare の中にある |
| 公開のたびに承認がいる | 共有ボタンで即配布(=最大の論点。第 V 部) |
「Cloudflare スタック」と言ったとき、実際に動いている部品はこれだけです。つくる人はこの図を覚える必要はありません。エンジニアが 1 回そろえるだけです。
| 部品 | 役割 | 誰が触るか |
|---|---|---|
| Cloudflare Access | 誰が入れるかを決める入口。これが唯一の門 | エンジニア(一度) |
| Workers(Paid $5/月) | 全体の土台 | エンジニア(一度) |
| KV ×3 / R2 ×1 | 設定・状態・ファイルの置き場。deployment.jsonc で null のままなら Wrangler が自動作成 | 触らない |
| Dynamic Worker Loaders | 作ったアプリ(Gadget)を隔離して動かす仕組み | 触らない |
| Browser Rendering | 画面の撮影など | 触らない |
| Durable Object Facet + SQLite | アプリ 1 本ごとに独立したデータベース | 触らない |
| AI Gateway(任意だが実質必須) | どのモデルを使えるか・いくらまで使えるか | エンジニア(一度+月次) |
「Workers Paid が必須」と明記した一次情報はありません。ただし Free は CPU 10ms 制限と D1 10 個上限があり、社内利用に耐えません。$5/月 を前提に稟議を通してください。Free 前提で通すと、後で必ず詰みます。
| # | 工程 | 誰が | いつ | 所要 | 章 |
|---|---|---|---|---|---|
| 1 | 設置する | エンジニア | 一度きり | 1〜2 時間 | 5 章 |
| 2 | 入口を決める(Access) | エンジニア | 一度きり | 30 分 | 6 章 |
| 3 | AI と予算の栓を開ける | エンジニア | 一度きり | 30 分 | 7 章 |
| 4 | 見た目と管理者を決める | エンジニア | 一度きり | 15 分 | 8 章 |
| 5 | 入る | つくる人 | 毎回 | 10 秒 | 9 章 |
| 6 | 頼む(プロンプト) | つくる人 | 毎回 | 5〜15 分 | 10・11 章 |
| 7 | 確かめる | つくる人 | 毎回 | 5 分 | 12 章 |
| 8 | 直す | つくる人 | 毎回 | 5〜30 分 | 13 章 |
| 9 | つなぐ(Gatekeeper) | つくる人+エンジニア | 必要なときだけ | 10 分〜 | 14 章 |
| 10 | 配る | つくる人 | 作り終えたら | 2 分 | 15 章 |
| 11 | 定着させる | つくる人+管理者 | 作り終えたら | 10 分 | 16 章 |
| 12 | 面倒をみる | エンジニア/情シス | 毎月 | 30 分 | 17 章 |
工程 1〜4 は、アプリが 10 本になっても 100 本になっても増えません。「1 本ずつエンジニアが面倒をみる」既存プロセス(プランA/B)との、最大の違いです。
工程 1 に入る前に、これが全部そろっているかを確認してください。1 つでも欠けていると途中で止まります。
| # | 用意するもの | 確認方法 | 欠けていると |
|---|---|---|---|
| 1 | Cloudflare アカウント(Workers Paid) | ダッシュボード → Workers & Pages → プラン | Free だと CPU 10ms で落ちる |
| 2 | Cloudflare Zero Trust が有効 | ダッシュボード → Zero Trust | Access アプリが作れない |
| 3 | ホスト名(例 os.synon.co.jp)の DNS が Cloudflare 管理下 | DNS 画面にゾーンがある | 独自ドメインで公開できない |
| 4 | Node.js 24 / pnpm 11 相当 | node -v / pnpm -v | pnpm check が通らない |
| 5 | wrangler にログインできる | pnpm exec wrangler login | デプロイできない |
| 6 | IdP(Google Workspace 等)または One-time PIN の方針 | 決めてあるか | 誰も入れない/全員入れてしまう |
| 7 | AI の費用を会社が持つか本人が持つかの方針 | 決めてあるか | AI が既定で無効のまま動かない |
| 8 | 月次の予算上限の初期値 | 決めてあるか | 請求で事故る |
3 と 6 は飛ばして構いません。方式 A(オンライン設置)+ One-time PIN なら、DNS も IdP も無しで触れます。ただし 2 週目には方式 B で建て直す前提で計画してください(5 章)。
$ git clone https://github.com/cloudflare/cloudflare-os-starter
└→ 「設置キット」を取ってくる。本体はまだ入っていない
$ cd cloudflare-os-starter
$ git submodule update --init
└→ 本体を「特定のバージョンに固定して」取り込む
★勝手にバージョンが上がらない設計。早期アクセス版として正しい
$ pnpm install
$ pnpm --dir cloudflare-os install
└→ 必要な部品を集める(2〜5分)
$ pnpm exec wrangler login
└→ ブラウザが開く。自社の Cloudflare アカウントに繋ぐ
ここで deployment.jsonc を編集 ────────────────┐
│
$ pnpm check │
└→ 設定の書き間違いを先に見つける │
★ここで落ちるのは正常。直して再実行 │
│
$ pnpm deploy │
└→ 自社の Cloudflare アカウントに設置される│
│
$ open https://<ホスト名>/admin ←──────────────┘
└→ サイト名・ロゴ・色を設定(再デプロイ不要)
前提: Node.js 24 / pnpm 11 相当。
deployment.jsonc に書く 5 つ| 欄 | 何を書くか | どこで手に入るか |
|---|---|---|
| account ID | Cloudflare のアカウント ID | ダッシュボード右下 |
| Worker 名 | 例 synon-os | 自分で決める |
| ホスト名 | 例 os.synon.co.jp | 自社ドメイン。DNS は Cloudflare 管理下 |
| Access audience(AUD) | Access アプリの識別子 | 6 章で作る |
管理者メール(access.admins) | /admin に入れる人 | 自分で決める |
access.admins は /admin 画面から変更できません。公式ドキュメントに「管理者セッションが乗っ取られても信頼境界を書き換えられないように」と明記されています。管理者を増やすには再デプロイが必要です。
pnpm check が通るpnpm deploy が成功する/admin が開ける(管理者メールのアカウントで)ここを誤解すると、権限設計を丸ごと間違えます。
1. Zero Trust → Access → Applications → Add an application
2. 「Self-hosted」を選ぶ
3. ホスト名(os.synon.co.jp)を入れる
4. できたアプリの Application Audience (AUD) タグをコピー
5. deployment.jsonc の Access audience 欄に貼る → pnpm deploy
6. 「誰が入れるか」をポリシーで決める
Access のポリシー = 入場者名簿です。Cloudflare OS 側にユーザー管理画面はありません。退職者を落とすのも、ここ 1 か所です。
| 項目 | 推奨 | 理由 |
|---|---|---|
| 認証方式 | Cloudflare Access 一択 | starter の既定。パスワードログインとサインアップは無効化される |
| IdP | Google Workspace コネクタ | 「Google」コネクタはグループ情報を取れないと公式に明記。必ず Workspace の方 |
| 1 週目の検証 | One-time PIN | IdP なしで単独で使える。複数 IdP の同時有効化も可 |
| グループ制御 | IdP 側のグループ | Cloudflare の Access Groups と二重管理にしない |
| Action | Allow / Block のみ | Bypass は認証を通さない。社内サービスに付けない(評価順は Service Auth → Bypass → Allow → Block) |
| セッション | 既定 24 時間 | 15 分〜1 か月で調整可 |
| WARP | 不要 | 公開ホスト名の self-hosted アプリはブラウザだけで入れる(clientless) |
①プライベートネットワーク経由で届かせる ②Require WARP / Require Gateway をポリシーに入れる ③デバイスポスチャチェック(会社支給端末限定・暗号化・OS バージョン)。まずは WARP なしで始めてください。
deployment.jsonc の access.issuer / audience はこの検証のためにあります(公開鍵は 6 週間ごとローテーション)。
公式 starter の README にこうあります。
AI is disabled by default. The application can deploy without an AI Gateway or token.
設置しただけでは、チャットで頼んでも何も起きません。1 週目に最も引っかかる所です。
| モード | 設定 | どうなるか |
|---|---|---|
| モデルなし | aiGateway.enabled: false | シークレット不要でデプロイできる。会社負担のモデルは提供されない |
| Workers AI を直接 | providers: ["cloudflare"] + workersAi.mode: "direct" | AI Gateway のログが残らない |
| Workers AI を Gateway 経由 | 同上 + workersAi.mode: "gateway" | 可観測性がつく。★これを選ぶ |
| 外部プロバイダ | providers に anthropic / openai / google を追加 | 課金設定(Unified Billing か BYOK)が要る |
# 必要なシークレットは 1 本だけ
pnpm exec wrangler secret put CF_AI_GATEWAY_API_TOKEN --name synon-os
API トークンの権限(アカウント権限): AI Gateway – Read / AI Gateway – Edit / Workers AI – Read
deployment.jsonc、つくる人は Connections パネル「モデルが変えられない」と言われたら、どちらの担当を触っているかを確認してください。なお 個別モデル名の公式カタログは存在しません(model は自由文字列)。
ENABLE_CLOUDFLARE_LIMITS 有効時、呼び出しのたびにこの判定が走る既定値: DAILY_LLM_CALL_LIMIT=100(1 ユーザー/UTC 日)、MINIMUM_CLOUDFLARE_BALANCE=2、残高キャッシュ 5 分。
UTC リセット = 日本時間の毎朝 9 時。「夕方に止まって、翌朝 9 時に復活する」を知らないと問い合わせが来ます。
| 単位 | 上限 | 到達時 |
|---|---|---|
| ワークスペース全体 | 月 $150 | ブロック |
| ユーザー 1 人あたり | 月 $30 | 安価なフォールバックモデルへ切替 |
| 1 人 1 日の呼び出し | 100 回(既定のまま) | 翌朝 9 時まで待つ |
1 か月動かして実測してから決め直す前提の初期値です。「上限なしで始める」ことだけは避けてください。Spend Limits は無料、1 ゲートウェイ 20 ルール、超過時は 429 かフォールバック。
非エンジニアに残高管理をさせない、という判断です。
providers = cloudflare + 外部 1 社workersAi.mode: "gateway"(ログを残す)ENABLE_CLOUDFLARE_LIMITS 有効「別サービスに見えると使われない」 — これは技術の話ではなく、定着の話です。
| # | やること | 場所 | 再デプロイ |
|---|---|---|---|
| 1 | サイト名・ロゴ・アクセントカラー | /admin | 不要 |
| 2 | お知らせ(アナウンス) | /admin | 不要 |
| 3 | エージェントへの指示(社内の書き方ルール等) | /admin | 不要 |
| 4 | コネクタの可否 | /admin | 不要 |
| 5 | Formats(+ メニューのひな型) | /admin | 不要 |
| 6 | 管理者リスト | deployment.jsonc | 必要 |
| 7 | 認証方式 | deployment.jsonc | 必要 |
公式の言葉では「乗っ取られた管理者セッションが信頼境界を再定義できないように」。認証方式と管理者リストは /admin から変更できません。
ここまでで一度きりの工程は終わりです。以降、デプロイは出てきません。
ブラウザで社内 URL(https://os.synon.co.jp)を開く
│
▼
Cloudflare Access のログイン画面(会社のメール/いつもの SSO)
│
▼
Cloudflare OS のホーム画面
│
▼
[+]ボタン → 「New Gadget」
| つまずき | 対処 |
|---|---|
| ログイン画面が出ない | URL が違う。社内案内のリンクから開く |
| ログインできない | Access の名簿に入っていない。情シスへ |
| ログインできるが真っ白 | ブラウザのキャッシュ。別タブで開き直す |
| 24 時間おきに聞かれる | 仕様(セッション既定 24 時間) |
出来上がりの 8 割は、最初のプロンプトで決まります。
| 例 | |
|---|---|
| △ 惜しい | 「問い合わせ管理のアプリを作って」 |
| ◎ 良い | 「お客様からの問い合わせを記録する画面を作ってください。入力するのは、日付・会社名・担当者名・内容・対応状況(未対応/対応中/完了)の 5 つです。一覧では対応状況で絞り込めて、未対応が上に来るようにしてください。」 |
違いは 3 点だけです。
お客様からの問い合わせを記録する社内用の台帳を作ってください。
【登録する項目】
- 受付日(既定は今日)
- 会社名
- 先方の担当者名
- 問い合わせ内容(長文)
- 種別(見積依頼/技術質問/不具合/その他)
- 対応状況(未対応/対応中/完了)
- 社内の担当者名
【画面】
- 上に新規登録フォーム、下に一覧
- 一覧は対応状況と種別で絞り込める
- 未対応を上に、受付日の新しい順
- 未対応が3日以上たっているものは行を赤くする
【その他】
- 一覧を CSV で書き出すボタンをつけてください
社員が毎日の作業時間を入力し、月次で集計するダッシュボードを作ってください。
【入力】
- 日付/案件名/作業内容/作業時間(0.5時間刻み)
- 入力は1日ぶんをまとめて、行を足せる形にしてください
【集計】
- 今月の案件別の合計時間を棒グラフで
- 今月の自分の合計時間を大きく表示
- 案件別・週別の表
【注意】
- 他の人の入力は見えないようにしてください(自分のぶんだけ)
「他の人の入力は見えないように」のような要件も、日本語で書いておけば実装されます。あとから「実は見えていた」と気づく方が、はるかに高くつきます。
( )を( )するための社内用の( )を作ってください。
【登録する項目】
-
-
(選択肢があるものは「A/B/C」の形で全部書く)
【画面】
-
-
【決まりごと】
- 見せていい人:
- 計算のルール:
【その他】
-
| ✕ | なぜ |
|---|---|
| 「いい感じにして」 | 何が「いい」かはあなたしか知りません |
| 5 つまとめて直す | どれが原因で崩れたか分からなくなります |
| 「前と同じように」 | 別のチャットの文脈は引き継がれません |
| 個人情報の実データを貼って試す | ログにプロンプト本文が残ります。ダミーで試す |
知らなくても作れます。ただし「なぜデプロイが要らないのか」はここで分かります。
サーバコードは Dynamic Worker として隔離実行され、外向き通信は既定で無効です。外に繋ぐには工程 9(Gatekeeper)を明示的に通します。
AI が作ったものを、そのまま配らないでください。この 6 点だけ確認します。
| # | 確認 | やり方 |
|---|---|---|
| 1 | 登録できる | ダミーで 3 件入れる |
| 2 | 一覧に出る | 入れた 3 件が出るか |
| 3 | 消える/壊れない | ブラウザを閉じて開き直し、3 件が残っているか |
| 4 | 絞り込み・並び順 | 頼んだとおりか |
| 5 | 空・極端な値 | 空で登録/全角数字/長文 1000 文字を入れてみる |
| 6 | 見せてはいけないものが見えていないか | 「自分のぶんだけ」と頼んだなら、同僚に use 権限で見てもらう |
3 は「動いているように見えて保存されていない」を、6 は「実は全員に見えていた」を防ぎます。どちらも、配ったあとに気づくと取り返しがつきません。
| 状況 | 言い方 |
|---|---|
| 見た目を変えたい | 「一覧の文字が小さいので、もう少し大きくしてください」 |
| 項目を足したい | 「『次回連絡予定日』の欄を、対応状況の下に足してください」 |
| 動きがおかしい | 「◯◯を押したら△△になるはずが、□□になります」(期待 → 実際 の順) |
| 遅い | 「一覧の表示に 5 秒かかります。速くしてください」 |
| 元に戻したい | そのチャットの変更を取り消す(revert) |
5 つまとめて頼むと、どれが原因で崩れたか分からなくなります。1 つ直す → 動かす → 次。これが最短です。
コードエディタは存在し、権限のある人は開けます。ただし非エンジニアが開く必要はありません。開かない前提で運用してください。
自分で入力するだけのアプリなら、この工程は飛ばせます。GitHub や Google Drive、社内 DB のデータを使いたくなったときに、ここへ来ます。
1. 画面の「Connections」パネルを開く
2. 使いたい Gatekeeper(例: Google)を選ぶ
3. 触ってよい範囲(このスプレッドシートだけ、など)を選ぶ
4. チャットに戻って「接続した◯◯のデータを使って△△して」と頼む
API キーを自分でコピー&ペーストする場面はありません。あったら、それは設計ミスです。
| 同梱されている | GitHub / Google / Cloudflare / Supabase / Notion / Confluence / Email(Workers 経由)/ Home Assistant / Slack / Spotify / ZoomInfo |
|---|---|
| 同梱されていない(自作) | Chatwork / freee / kintone など日本のサービス全般 |
多くは接続前に設定(OAuth の取得など)が必要です。各パッケージに手順が同梱されています。
リポジトリには AI 用の write-gatekeeper スキルが同梱されており、AI に書かせる前提の設計です。ただし手順の Phase 1 に 「オペレーターの承認を得るまで先に進まないこと」 という明示的な関門があり、TypeScript の型設計・OAuth 設計・Workers / Durable Objects の理解が前提になります。
Gatekeeper づくりはエンジニアの仕事です。「非エンジニアでも作れる」という記述は一次情報にありません。Synon では Chatwork Gatekeeper を最初の 1 本として、エンジニアが書くのが現実的です。
検証の範囲は build = 全 Gatekeeper、use = 名前付きバインディングのみ。以後、登録された観測者の誰か 1 人でも読めない情報を読もうとすると、その読み取り自体がブロックされます。
配り方は 2 種類あり、渡るものが違います。ここを間違えると事故ります。
Q1. みんなが「同じデータ」を見る必要がありますか?
└ はい ──────────────→【直接共有】(例: 問い合わせ台帳)
└ いいえ ↓
Q2. あとから全員ぶんを直したくなりますか?
└ はい ──────────────→【直接共有】
└ いいえ ─────────────→【Blueprint】(例: 各自の日報)
「Share」モーダルで相手のメールを入れ、build か use を選ぶだけです。共有リンクは #share=<鍵> の形。128bit の秘密がリンク側にあり、サーバには HMAC-SHA-256 のハッシュしか保存されません(=サーバ側から生の鍵は復元できない)。
リンクを開いた人は自動で collaborator になります。Chatwork の全体ルームに貼らないでください。
1. Gadget エディタのヘッダーの「Blueprint」ボタンを押す
2. タイトル・説明・スクリーンショットを入れて公開する
3. リンク(/blueprint/<id>)を配る。または「Explore」(/explore) に並ぶ
4. 相手は「Create Gadget」で、自分専用のコピーを作る
公式ドキュメントに「blueprint から既存インスタンスへの自動更新の仕組みはない」と明記されています。「みんなが同じものを使い続ける必要があるもの」は、Blueprint ではなく直接共有にしてください。
作って配って終わり、にすると使われません。定着のための仕掛けが 3 つあります。
+ メニューに置く(Formats)+ メニューの「New Doc」「New Slides」は特別な機能ではなく、管理者が昇格させた Blueprint(Formats)です。つまり Synon の書式に合わせた「新規 見積書」「新規 議事録」を + メニューに置けます。/admin の「Formats」パネルで設定します。
[+]
├ New Gadget
├ New Doc ← これも Blueprint
├ New Slides ← これも Blueprint
├ 新規 見積書 ← ★Synon 書式を追加できる
└ 新規 議事録 ← ★
「Gadget 3」ではなく「営業部 問い合わせ台帳」。探せない道具は使われません。
| 時点 | 見ること |
|---|---|
| 配って 3 日 | 誰か 1 人でも自分でデータを入れたか |
| 配って 2 週間 | まだ使われているか。使われていなければ捨てる(損失は作った 30 分だけ) |
| 定着したら | 第 V 部 24 章へ — プランB で作り直すかを判断する |
| 頻度 | やること | 所要 |
|---|---|---|
| 毎月 | AI Gateway のダッシュボードで誰がいくら使ったかを確認し、予算を調整 | 10 分 |
| 毎月 | Access の入場者名簿を棚卸し(退職者を落とす) | 10 分 |
| 随時 | Gatekeeper の監査ログを確認 | — |
| 随時 | 破壊的操作の承認キューを処理 | — |
| リリース時 | 上流の更新を取り込む(アップグレード用チェックリストに従う) | 1〜2 時間 |
starter は本体を git submodule として特定リリースにピン留めします。公式にも「上流リリースをピン留めし、変更をレビューし、本番アップグレードのたびに信頼境界を検証すること」と書かれています。自動更新しない設計です。早期アクセス版としては、これが正しい挙動です。
wrangler tail1 週目に必ず出る順に並べています。
| 症状 | 原因 | 対処 | 章 |
|---|---|---|---|
| チャットで頼んでも何も起きない | AI が既定で無効 | aiGateway を設定し CF_AI_GATEWAY_API_TOKEN を入れる | 7 章 |
| 夕方に急に使えなくなった | 1 日 100 回の回数の天井 | 翌朝 9 時(UTC リセット)まで待つ/上限を上げる | 7-3 |
| 請求が想定より高い | 金額の天井を張っていない | Spend Limits を設定 | 7-4 |
モデルを変えたいのに /admin に無い | /admin ではモデルを選べない | 管理者は deployment.jsonc、本人は Connections パネル | 7-2 |
| 管理者を増やせない | access.admins は /admin から変更不可 | 再デプロイ | 5-3 |
| 社外の人に見せたい | できない(Access の内側) | プランB で作り直す | 23 章 |
| 部署全員に配りたい | グループ共有が存在しない | 全員に配る=Blueprint/1 つを共同利用=メールを 1 件ずつ | 15 章 |
| 配ったあと全員ぶんを直したい | Blueprint は一斉更新できない | 直接共有に切り替える | 15-3 |
| 共有したら相手に過去のデータも見えた | 直接共有はデータと AI 会話履歴ごと渡る | Blueprint にする/取り消す | 15 章 |
| Chatwork に通知したい | Gatekeeper が同梱されていない | エンジニアが自作(最初の 1 本) | 14-4 |
| 保存されていない気がする | 確認不足 | ブラウザを閉じて開き直して確かめる | 12 章 |
pnpm check が落ちる | 設定の書き間違い | 落ちるのは正常。メッセージの欄名を直す | 5-2 |
| Access を回避された気がする | オリジン直叩き | Require Access protection を ON | 6-4 |
「AI を使う = 常にお金がかかる」ではありません。減る場所は 4 つ、うち 1 つはゼロです。
| 項目 | 金額 |
|---|---|
| Workers AI | $0.011 / 1,000 Neurons(1 日 10,000 Neurons 無料) |
| Llama 3.1 70B | 入 $0.293 / 出 $2.253(per 1M tokens) |
| Llama 3.2 1B | 入 $0.027 / 出 $0.201 |
| Mistral 7B | 入 $0.110 / 出 $0.190 |
| 外部プロバイダ | マークアップ無し(クレジット購入時のみ 5%) |
Unified Billing 対応: OpenAI / Anthropic / Google AI Studio / Google Vertex AI / xAI / Groq。優先順位は リクエスト内キー > BYOK > Unified Billing。
| 見える | AI Gateway で リクエスト数・トークン量・コスト・キャッシュ率。ログにプロンプト本文と応答も残る |
|---|---|
| 注意 | コストはトークン数からの推定。キャッシュキーは完全一致でまず当たらない(節約手段として当てにしない) |
| 識別子 | Identity-aware AI Gateway は cf.user_id(JWT の sub)を記録。メールアドレスは記録しない |
プロンプト本文が残ります。「個人情報の実データを貼って試す」を防ぐ唯一の方法です(10-6)。
Synon には、これまでに設計した社内アプリの作成・共有プロセスが 2 つあります。この部では、それらと Cloudflare OS を 3 方式として並べます。
| 方式 | 資料 | 一言でいうと |
|---|---|---|
| プランA | claude-code-internal-app-workflow.{md,html} | GitHub Codespaces で作り、PR マージで本番公開 |
| プランB(従来の本命) | claude-code-internal-app-workflow-planb.{md,html} | 自分の Mac の Claude Code で作り、PR マージで本番公開。GitHub アカウント不要 |
| Cloudflare OS(この資料) | 本資料 | ブラウザで頼んで作り、共有ボタンで即配布 |
プランA/B の設計の中心には、「本番公開の承認 = エンジニアが PR をマージする行為」という一点があります。何が本番に出るかを、必ず人間が 1 回見ます。
Cloudflare OS には、これに相当する関門がありません。共有ボタンを押した瞬間に配布が完了します。
4,000 本のツールを 30 日で作るのに、1 本ずつレビューはできません(Cloudflare 社内実績。ただしこの数値の出典は InfoQ が引用した CIO 発言で、公式ブログには記載がありません)。
「レビューされていなくても事故らない範囲」= 壊れても業務が止まらず、機微データを持たず、社外に出ないものに用途を限定すること。それが 23 章の判断フローです。
同じ「顧客問い合わせの受付台帳」を 1 本作るとき、工程がどう違うか。この資料でいちばん比較になる図です。
| 消える工程 | 仕様書づくり/git/ターミナル/ブランチ/Actions の待ち時間/PR/端末セットアップ/自動保存の仕掛け |
|---|---|
| 同時に消える宿題 | 退職者の Mac にソースの複製が残る(プランB で「技術で解けない宿題」としていた項目)/Deploy key の発行と削除/launchd の自動保存/npm ci が社内プロキシで通るかの検証/「Cowork と Claude Code のどちらでやるんでしたっけ」問題 |
| 宿題 | 中身 |
|---|---|
| 早期アクセス版である | 公式に「early-access software」。README に「現時点で外部からのコントリビュートは求めていない」「十数行を超える PR は控えてほしい」と明記。困っても自分で直して本家に入れられない |
| Gatekeeper の自作 | Chatwork・freee・kintone は同梱されていない。全部エンジニアが書く |
| 誤共有 | 直接共有は入力済みデータと AI 会話履歴ごと渡る。リンクの扱いを教育する必要がある |
| 一斉更新できない | Blueprint で配ったあと、全員分をまとめて直せない |
| 持ち出しにくい | Gadget は Cap'n Web / Durable Object Facet 前提。普通の Workers プロジェクトとして外へ出すのは容易ではない |
| AI 費用の従量化 | プランA/B は Claude のシート課金で天井が読める。Cloudflare OS は従量。上限設定が必須 |
| 観点 | プラン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 で戻す | チャットの変更を取り消す |
| 作業が消えるリスク | 低(クラウド) | 高(三重の保存で対処) | なし(サーバ側) |
| 公開までのエンジニア接触 | 2 回 | 3 回(PR 作成も依頼) | 0 回 |
| 同時に持てる本数 | 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 で人間承認を要求できる |
| 共有の単位 | URL を知っている社内全員 | 同左 | 個人単位のみ。グループ共有なし |
| 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 実費 |
| AI の費用 | Claude シート(1 人ずつ) | Claude シート(1 人ずつ) | 従量。上限設定は必須 |
| 初期構築(エンジニア) | 半日 | 半日 + 30 分×人数 | 半日。人数が増えても増えない |
| 運用(エンジニア) | 公開ごとに PR 2 分 | 公開ごとに PR 2 分 | 月次の予算・名簿確認。Gatekeeper 自作は都度 |
| 撤退のしやすさ | 容易(コードは Git) | 容易(コードは Git) | 難しい(Gadget は移せない) |
以前の資料に書いた Cloudflare Access の「50 ユーザーまで無料/$7 per user」は過去の公式ブログの値で、現行の価格ページには金額・上限の記載がありません(問い合わせ導線のみ)。この金額で稟議を組まないでください。
新しく何か作りたい、と言われたら、この 5 問を上から順に。
| 作りたいもの | 判定 | 理由 |
|---|---|---|
| 顧客問い合わせの受付台帳(社内・営業 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。既存資産もある |
プランB の最大のコストは「作ってみたが使われなかった」ときの損失です。仕様書に 30 分、開発に半日、レビューに 2 分。それが空振りに終わる。Cloudflare OS なら 10〜30 分で試作が動きます。
/service-spec で悩んでいた「何を作りたいのか本人も分かっていない」問題が、ここで解ける| 持っていける | 画面の構成/項目の一覧/実際の運用ルール/2 週間使って分かった「要らなかった機能」 |
|---|---|
| 持っていけない | コード(Gadget は Cap'n Web / DO Facet 前提で、そのままでは移せない)/データ(一括書き出しの公式手段が未確認) |
移植ではありません。ただし仕様が実物で確定しているので、プランB 側の作業は仕様書づくりから始まりません。ここが時間の節約になる部分です。
危うさはありません。移す理由は「更新のしやすさ」だけです。
| 移す価値がある | 本人が直したいのに、PR マージ待ちになっているもの |
|---|---|
| 移さない | 社外公開・独自ドメイン・D1/R2 を本格利用・cron が基幹のもの |
認証もデータの所在も変わりません。変わるのは「誰が直せるか」だけです。旧リポジトリは消さず、1 か月は戻り先として残してください(Blueprint は自動更新されないため)。
| # | 項目 | なぜ重要か |
|---|---|---|
| 1 | 製品 UI の日本語化 | プレスリリースの「日本語対応」が翻訳を指すのか UI かが不明。英語のみなら前提が崩れる。最優先 |
| 2 | Workers Paid が必須かの明記 | 稟議の前提 |
| 3 | データ所在地・リージョン制御の可否 | 顧客データを扱う判断の前提 |
| 4 | Gadget への一括インポート/書き出し手段 | 既存アプリの置き換えとサービス撤退の両方で必要 |
| 5 | AI Gateway のメタデータにユーザー識別子が含まれるか | 含まれないとユーザー別 Spend Limit が張れない |
| 6 | Gadget 1 本あたりの実トークン量 | AI 予算の根拠 |
| 7 | Gadget から R2 等を使えるか/スケジュール実行の実挙動 | Docker の cron を置き換えられるか |
| 8 | Chatwork Gatekeeper の実装工数 | 展開計画の前提 |
| 9 | 自動テスト/自動デバッグの実挙動 | 一次情報に記載なし。期待しすぎない |
| 10 | 監査ログ・プロンプトログの物理保存先と保持期間 | 情シス判断の前提 |
| 11 | Gadget 単位でデバイス条件を分けられるか | Cloudflare OS 全体が 1 つの Access アプリのため未確認 |
| 週 | やること |
|---|---|
| 1 週目 | 方式 A で触る。UI が日本語か を最優先で実測 |
| 2 週目 | 方式 B で建て直す + 予算上限を張る |
| 3 週目 | 非エンジニア 1 名が、サポートなし 30 分で 1 本目を動かせるか — 最重要判断 |
| 4 週目 | Blueprint 配布と Chatwork Gatekeeper 自作の工数を実測 |
| 5 週目〜 | 展開 |
| 6 週目〜 | 既存アプリの棚卸し → 1 本目の置き換え(3 日を超えたら止める) |
3 週目に 30 分で動かなければ展開しない。半日かかるなら、レビューのあるプランB の方が安全です。
費用: AI が月 $150 を超えたら、モデルの選択肢を絞り直す。
cloudflare/cloudflare-os — README、docs/sharing.md、docs/observers.mdcloudflare/cloudflare-os-starter — README、docs/customization.md、docs/ai-gateway-billing.mdcloudflare-os-internal-service-guide.{md,html,pptx}(判断・稟議用)claude-code-internal-app-workflow.{md,html}(プランA)claude-code-internal-app-workflow-planb.{md,html}(プランB)