小さな業務改善のためのアプリを AI で作る

小さな業務改善のためのアプリを AI で作るはじめに自己紹介勉強会の対象者小さな業務改善のためのアプリ小さな業務改善とは?問い合わせ管理ボードアプリの作り方と構成事前準備(勉強会当日までに完了させておく)利用するサービスアカウントを作るClaude Code と GitHub を連携するClaude Code と Cloudflare を連携するCloudflare Access の認証設定準備できたかを確認するアプリ開発土台づくりGitHub でリポジトリを作るClaude Code がリポジトリを使えるようにするCloudflare と GitHub を連携した Worker を作るCloudflare Worker の設定をするアプリを作るClaude Code Web の基本的な使い方最初のセッション:開発ルールと基本ドキュメントを作る次のセッション:アプリの最小版を作るアプリ開発の続き機能を追加する戻してみるデータベースの項目を増やす場合項目を追加した PR を閉じた場合2 つ目の業務を足す 【自習】AI の機能を足す 【自習】うまくいかないときはAI による開発について作るかどうかを判断する作ったアプリの管理費用の目安アカウントは会社の資産にするアクセスできる人を管理するデータを取り出せるようにしておくセキュリティレビュー管理台帳を埋める久しぶりに開発を再開するときやめるときのことを決めておくまとめ

はじめに

この勉強会の初回で、AI 活用の 3 段階というお話がありました。

  1. AI を使う

  2. AI が業務を担当する、判断する

  3. AI を組織化する

 

今回は 1 の例として、小さな業務改善のためのアプリを AI で作ります。

1 回目はハンズオンでアプリを作り、2 回目はその続きと座学です。

 

自己紹介

株式会社アースワークスの小西([email protected])です。

ソフトウェアエンジニアで、業務系のアプリケーション開発や、IP-PBX などの電話関係のシステム開発に携わっています。

株式会社アースワークス(https://ews.jp/)は、電気通信工事とソフトウェア開発の会社です。最近では、新しく「CST Design」という体験型セミナーを、合同会社和の杜と一緒に始めました。座学ではなく、書道や古武術などの日本文化の体験を比喩として使い、チームの状態を整えて、プロジェクトを正しく進めるための場をつくる、というものです。

 

勉強会の対象者

エンジニアがいない会社の経営者や業務改善の担当者で、AI でアプリを作ってみたい方が対象です。プログラミングの経験は必要ありません。パソコンとブラウザの基本操作ができれば OK です。

社内にエンジニアがいる会社でも、非エンジニアがどこまで自分たちで対応してよいかを考える材料になります。

 

小さな業務改善のためのアプリ

小さな業務改善とは?

社内にある小さな手作業を減らし、業務の効率を上げたいと思いませんか?

 

例えば、次のような業務です。

 

これらは、小さなアプリで改善できます。これまではアプリの開発コストが高く、小さな業務改善のためにアプリを作っても採算が合いませんでした。しかし、AI の登場で開発コストが下がり、内製化も現実的になってきています。

 

問い合わせ管理ボード

例えば、次のような課題があると仮定します。

 

そこで、これを解決するため、「問い合わせ管理ボード」を考えます。

 

本来は、作るべきかどうかを「作るかどうかを判断する」(2 回目で扱います)に沿って検討しますが、今回はサンプルとして「問い合わせ管理ボード」を作ることにします。

 

アプリの作り方と構成

開発者が指示すると、AI がアプリを作って GitHub に保存し、それがクラウドに配置されて、許可した人だけが使えるようになります。

 

指示

ソースなど

デプロイ
(配置)

アプリを使う

開発者

Claude Code
開発する

GitHub
ファイル管理

Cloudflare

Workers
アプリを動かす

Access
認証・アクセス制限

社員

 

この構成には、次のメリットがあります。

 

ハンズオンだけでなく、本番運用の土台としても使えます。また、Web ページの管理などにも応用できます。

 

事前準備(勉強会当日までに完了させておく)

勉強会の前に、次の準備を済ませておいてください。コマンドラインやターミナルは使わず、アプリのインストールも不要で、ブラウザだけで完結します。

 

利用するサービス

 

アカウントを作る

次のリンクから、各サービスのアカウントを作ってください。

 

Claude Code と GitHub を連携する

GitHub のリポジトリを Claude Code Web から利用するための準備です。

  1. https://claude.ai/code を開き、Claude のアカウントでログインする。

  2. GitHub との連携を求められるので、案内に従って GitHub の画面に進む。

  3. GitHub にログインして、Authorize をクリックする。 承認すると claude.ai/code の画面に戻ります。

  4. Claude GitHub App のインストールを求められたら、Skip をクリックする。 リポジトリがまだないためです。インストールは当日、リポジトリを作ったあとで行います。

  5. 作業環境(クラウド環境)の Default が自動で作られるので、そのまま使う。

 

手順 2 で GitHub との連携を求められない場合は、次の手順で連携してください。

  1. https://claude.ai/code を開く。

  2. プロンプト入力欄の左下の + をクリックする。

  3. コネクタ をクリックする。

  4. コネクタを管理 をクリックする。

  5. 右上の 🔍 をクリックし、github と入力する。

  6. GitHub連携 が絞り込まれるので、連携 または 連携させる をクリックする。

  7. GitHub の画面で Authorize をクリックする。

 

Claude Code と Cloudflare を連携する

Cloudflare のデータベースなどを Claude Code Web から操作するための準備です。データベースの作成や、Cloudflare の公式ドキュメントの検索も、この連携を通して行います。

  1. https://claude.ai/code を開く。

  2. プロンプト入力欄の左下の + をクリックする。

  3. コネクタ をクリックする。

  4. コネクタを管理 をクリックする。

  5. 右上の 🔍 をクリックし、cloudflare と入力する。

  6. Cloudflare Developer Platform が絞り込まれるので、連携 または 連携させる をクリックする。

  7. Cloudflare の画面で Approve をクリックする。

  8. Authorize をクリックする。

 

Cloudflare Access の認証設定

Cloudflare Access の最初の設定では、ログイン方法が「Cloudflare アカウントでのログイン」だけになっています。今回は会社のメールアドレスで社員にログインしてもらうので、メールで届くコードでログインする方法(One-time PIN)を追加します。

  1. Cloudflare の管理画面で、左側のメニューから Zero Trust を開く。

    • 初回は、Zero Trust の組織名(team name)を決める画面が出るので、会社名などを英数字で入力する。プランは無料(Free)を選ぶ。支払い方法の入力を求められる場合がありますが、無料プランの範囲では課金されません。

  2. Integrations の中の Identity providers を開く。

  3. Add new identity provider をクリックし、One-time PIN を選んで保存する。

 

準備できたかを確認する

準備ができていないとハンズオンを進められないので、前日までに次の 3 つを確かめてください。

  1. https://claude.ai/code を開いて、新しいセッションを始められる。

  2. そのセッションの画面で、リポジトリを選ぶ欄が開く。

    • リポジトリはまだ作っていないので、名前が出てこなくて構いません。連携さえできていれば当日で間に合います。

  3. プロンプト入力欄に、次のように入力して、答えが返ってくる。

 

3 で「接続できていない」になる場合、その画面で「どうすれば接続できますか」と聞いてください。手順を教えてくれます。それでも解決しない場合は、当日までにご連絡ください。

なお、Claude の Pro プランには一定時間に使える量の上限があり、上限に達すると数時間ほど待つことになります。直前に試しすぎるとハンズオンで使えなくなることがあるので、気をつけてください。

 

アプリ開発

この章では、次の用語が出てきます。すべてを覚える必要はありません。

言葉意味
リポジトリソースやドキュメントの置き場所。アプリごとに作ります
ブランチ作業場所。本番用の場所(main)と、開発中の場所を分けます
コミット変更に区切りをつけて履歴に記録すること。この単位で元に戻せます
Pull Request(PR)「開発中のものを本番に取り込みたい」という申請
マージその申請を承認して、本番用の場所に取り込むこと
デプロイ取り込んだものを、実際に動く場所に配置すること
ビルド配置する前に、動く形に組み立てる作業。自動で行われます
プレビュー本番とは別の URL で、開発中のものを実際に触って確認すること
プレビュー用データベースプレビューだけが使う、本番とは別のデータベース。
プレビューで試したデータはここにだけ残ります
セッションClaude Code との一続きの会話。依頼事項ごとに新しく始めます
issueGitHub に残す「対応が要ること」の記録。次のセッションへの申し送りに使います
CIPR のたびに自動で行われる検査(テストなど)。問題があると赤く表示されます
マイグレーションデータベースの項目を変更する手順を書いたファイル

 

アプリ開発は、土台づくり、最小版づくり、機能追加の順に進みます。土台づくりはアプリごとに 1 回、最小版づくりは業務ごとに 1 回で、あとは機能追加を必要なだけ繰り返します。最小版づくりも機能追加も、Claude Code に作ってほしいものを伝え、できたものをプレビューで試してから本番に取り込む、という流れで進めます。

なお、この流れを専門用語を使って詳しく言い換えると、次のようになります。Claude Code に作ってほしいものを伝え、できたものを GitHub に PR(本番への取り込み依頼)として出すと、CI(検査)が自動で行われます。CI を通ったらプレビューで試し、問題がなければマージ(本番への取り込み)します。マージすると、自動で本番にデプロイされます。

 

土台づくり

まず、リポジトリ(ソースの置き場所)を作り、アプリをデプロイ(配置)する設定をします。画面の表記や項目の位置は変わることがあります。目的の欄が見つからないときは、スクリーンショットを Claude Code に貼って「この画面のどこを変えればよいですか」と聞いてください。

このあとの 6.1.1〜6.1.4 で設定するのは、次の図の部分です。

 

6.1.2 リポジトリを
使えるようにする

6.1.3 連携した
Worker を作る

開発者

Claude Code

GitHub
6.1.1 リポジトリを作る

Cloudflare Workers
6.1.4 ビルド設定、
Access で認証設定、
URL を設定する

社員

 

GitHub でリポジトリを作る

アプリのリポジトリを作ります。

  1. https://github.com/new を開く。

  2. Repository name は shanai-apps とする(Cloudflare Worker も同じ名前になります)。 Cloudflare と連携する場合、小文字の単語を - でつなぐのがおすすめです。

  3. Description には説明を入力する(「社内アプリ」等で OK)。

  4. Choose visibility は Private を選択する。 デフォルトの Public は全世界に公開される設定のため、要注意です。

  5. Add README を ON にして、README.md を作成する。 main ブランチが最初から作られるので、後の作業がスムーズになります。

  6. 入力が終わったら、Create repository をクリックする。

  7. 作成したリポジトリで、Settings › General の順にクリックする。

  8. Pull Requests の Automatically delete head branches を ON にする。 マージが終わった作業用のブランチを、自動で削除します。

 

Claude Code がリポジトリを使えるようにする

非公開(Private)のリポジトリを Claude Code Web で使うには、そのリポジトリに Claude GitHub App(Claude が GitHub を操作するためのアプリ)をインストールする必要があります。

  1. https://github.com/apps/claude/installations/new を開く。

  2. インストール先に、リポジトリを作った自分のアカウントを選ぶ。 すでにインストール済みの場合は、Configure をクリックする。 Repository access が All repositories になっていれば、この作業は不要です。

  3. Repository access で Only select repositories を選び、Select repositories で shanai-apps を追加する。 すでに選ばれているリポジトリは、外さずにそのまま残します。

  4. Install(インストール済みの場合は Save)をクリックする。

 

Cloudflare と GitHub を連携した Worker を作る

GitHub のリポジトリを更新すると Cloudflare のアプリも自動で更新されるように、GitHub と連携した Worker(アプリを動かすところ)を作ります。

  1. Cloudflare にログインする。 https://dash.cloudflare.com/login

  2. アカウントの選択肢が出る場合は、アカウントを選択する。

  3. 左側のメニューから Build › Compute › Workers & Pages の順にクリックする。

  4. 右上の Create application をクリックする。

  5. Make something new で、Continue with GitHub をクリックする。

  6. Select a repository で、先ほど作成したリポジトリを選択する。

    • ダイアログ左上の GitHub アカウントの一覧を開き、+ Add GitHub account を選択する。

    • Repository access で Only select repositories、Select repositories で対象リポジトリ(先ほど作成した shanai-apps)を選択し、Save をクリックする。

    • Cloudflare の画面の 🔍 Search repositories... に名前の一部を入れて、その下の選択肢から選択する。

    • Next → で選択完了。

  7. Deploy を選択すると、Worker が作られ、ビルド作業が始まる。

  8. Cancel build でビルドをキャンセルする。

    • まだアプリがないので、ビルドしてもエラーになるためです。

    • キャンセルが間に合わずエラーになっても、問題ありません。

 

Cloudflare Worker の設定をする

作った Worker を開いた画面で、ビルド設定(Settings)、アクセス制限(Access)、アプリを開くための URL の有効化(Domains)を設定します。

 

設定画面の開き方(前節から続けて作業する場合はこの操作は不要)

  1. 左側のメニューから Build › Compute › Workers & Pages の順にクリックする。

  2. 先ほど作成した Worker の名前 shanai-apps をクリックする。

 

ビルド設定(Settings)

  1. 上部メニューの Settings をクリックする。

  2. 少し下にある Builds が Production になっていることを確認する。

  3. Build configuration の Deploy command を npm run deploy:prod に変更する。

  4. 画面下部の Save をクリックする。

  5. Builds の選択肢で Previews Base を選ぶ。

  6. Builds for Preview branches が有効になっていることを確認する。

  7. Build configuration の Preview command を npm run deploy:preview に変更する。

  8. 画面下部の Save をクリックする。

 

アクセス制限(Access)

  1. 上部メニューの Access をクリックする。

  2. Protect this Worker behind Access をクリックする。 表示されない場合は、Worker policies › Worker Access の Manage access をクリックする。

    • All traffic にチェックを入れる(本番用とプレビュー用の両方にアクセス制限がかかります)

    • Authentication policy でアクセス制限の対象を選ぶ。

      • Email domain を選ぶと、指定ドメインのメールアドレスを持っている人だけアクセス可能になる。今回は、こちらを選ぶ。

      • Cloudflare account を選ぶと、この Cloudflare アカウントのメンバー(自分と、招待した管理者)だけがアクセス可能になる。

  3. Apply Access をクリックする。 表示されない場合は、Save changes をクリックする。

 

URL の有効化(Domains)

  1. 上部メニューの Domains をクリックする。

  2. Worker URL の欄で、Production と Preview の行の右側のスイッチをクリックする。 本番とプレビューの URL が使えるようになります。

 

アプリを作る

Claude Code Web の基本的な使い方

セッションを始めて指示する

  1. https://claude.ai/code を開き、新規セッションを選択する。

  2. プロンプト入力欄の近くにあるボタンで、対象の GitHub リポジトリを選択する。

    • 画面を開いてから選択肢が出るまで、しばらく時間がかかる場合があります。

    • デフォルトで、前回選択したものが設定されています。

  3. プロンプト入力欄の右下から、モデルとエフォート(考える深さ)を選ぶ。

    • モデルは Opus 5.5 を選び、エフォートを「中」にします。 (Opus 5.5 では、エフォート「中」がよいみたいです)

  4. プロンプトを入力する。

    • 1 つのセッションでは、1 つの依頼事項だけにします(最小版づくりか、機能 1 つの追加など)。複数の依頼がある場合は、マージかクローズをしてから新しいセッションを使ってください。変更が小さい方が確認しやすく、変更をマージしない場合も、その依頼事項だけを取り消せます。

  5. 何をどう作るかの説明が出てくるので、次の点を確かめる。

    • 頼んだものと合っているか(説明を自分の言葉で言い直せるか)

    • 「やらないこと」に、必要な機能が入っていないか

    • 項目の名前や区分の分け方など、業務に関わることを AI が勝手に決めていないか

    • マイナンバー、健康情報、パスワードなど、扱わないと決めたデータが混ざっていないか

  6. 確認した結果を返答する。

    • 問題なければ「進めてください」と返す。

    • 気になる点があれば、修正を指示する。

    • わからないことがあれば、その場で質問する。

 

PR を確認して本番に反映する

  1. 開発が一段落すると、Claude Code が PR(Pull Request、本番への取り込み依頼)を作り、画面に PR #nnn が表示される。 もし、作られない場合は、「PR を作って」と入力する。

  2. CI(検査)が終わるのを待つ。

    • PR #nnn をクリックすると GitHub の PR 画面が開き、下のほうに検査の結果が並びます。

    • 始まるまで時間がかかる場合があります。

  3. CI がすべて緑になると、Claude Code がプレビューの確認手順と URL を示すので、そのとおりに確認する。

    • 必要なら、PR 画面で PR の説明も読みます。

    • CI が終わっているのに、プレビューの確認手順と URL が出ない場合は、「CI を確認して」と入力してみてください。

  4. 問題があれば、Claude Code に修正を指示すると、PR が更新されるので、2 から繰り返す。

    • CI が赤い場合は、その行の右側の View logs を開き、メッセージをそのまま Claude Code に貼って直してもらいます。

  5. 問題がなければ、Claude Code に「マージして」と入力する。

    • マージすると本番に反映され、データベースの変更も同時に適用されます。作業ブランチは自動で削除されます。

    • 本番に取り込みたくない場合は、「クローズして」と入力します。

  6. マージ後は、Claude Code が示す手順で本番を確認し、結果を伝える。

    • 本番の URL は、「本番の URL を教えて」と聞けば答えてくれます。

    • 結果を伝えると、Claude Code が引き継ぎの記録などの文書を直す PR を作り、自分でマージすることがあります。文書だけの変更なので、確認は要りません。

 

最初のセッション:開発ルールと基本ドキュメントを作る

最初のセッションで、今後 AI に守らせるルールを作ります。業務の画面はまだ作らず、フレームワーク(アプリの土台になる部品)を選び、CLAUDE.md と関連ドキュメント、データベース、設定ファイル、各業務の入口になるポータルページを用意します。CLAUDE.md は Claude Code が毎回自動で読むファイルで、ここに書いたことは以降の全セッションで適用されます。

プロンプトの例(業務名、会社規模、テーマカラーなどを変更してください):

 

日本から無料の Worker を利用すると北米西部で動くことが多いので、データベースを北米西部に置くと、アプリが速くなります。管理画面から作るとデータベースを日本(東京や大阪)に置くこともできますが、Worker から遠くなるため、アプリが遅くなります。なお、顧客の氏名などの個人データを保存する場合は、保存先の公表などが必要です。詳しくは「作るかどうかを判断する」で説明します。

作られたものは、「Claude Code Web の基本的な使い方」の手順で確認し、本番に反映します。今回は、プレビューと本番で、ポータルページを確認します。例えば、CLAUDE.md に書かれたことが分からなければ、次のように聞いてみてください。

 

次のセッション:アプリの最小版を作る

プロンプトの例:

 

これだけでも、一般的な形の問い合わせ管理ボードが作られます。管理する項目などが決まっているなら、次のように具体的に書くと、欲しい機能が実装されます。

プロンプトの例:

 

プロンプトを入力すると、業務について質問が返ってきます。分からなければ「わからない」、複数の選択肢がよければ「1 と 3」のように答えて構いません。

アプリができたら、動作確認を行います。CI(機械が行う検査)は PR のたびに自動で行われ、問題があると赤く表示されます。人が確認する項目は AI が手順書にしてくれるので、それに従って確認してください。確認から本番への反映までは、「Claude Code Web の基本的な使い方」の手順で進めます。

プレビュー用のデータベースは本番とは別なので、プレビューで登録したデータは本番には出ません。

 

アプリ開発の続き

機能を追加する

「Claude Code Web の基本的な使い方」と同じ手順で、新しいセッションを始めて指示します。これまでの経緯は CLAUDE.md、引き継ぎの記録、issue に残っているので、続きから作業できます。

ここでは、「問い合わせ管理ボード」で挙げた自社固有のルールを追加します。

 

プロンプトの例:

 

入力すると、提案と質問が返ってきます。質問に答え、提案を確かめて「進めてください」と返すと、実装が始まります。

対応表を画面から変えられるようにしておくと、ルールが変わっても開発せずに済みます。

この例では、「2 つの機能なので Pull Request を分けましょう」と提案されることがあります。対応表を管理する画面と、担当者を自動で設定する仕組みは、別の機能だからです。その場合は提案に従い、1 つ目をマージしてから、新しいセッションで 2 つ目を頼みます。

もし、できたものがいまいちなら、Claude Code に「クローズして」と頼んで、マージせずに Pull Request を閉じれば、本番のアプリは変わりません。ただし、データベースの項目を足す場合は注意が必要です(「データベースの項目を増やす場合」で説明します)。

 

戻してみる

間違えて本番に反映したときには戻すこともできます。GitHub には、Revert(マージした変更を打ち消す機能)があり、Claude Code に頼めば使ってくれます。打ち消すための変更も PR として作られるので、履歴に「取り消した」記録が残り、あとで確認できます。

  1. 新しいセッションを始め、次のように入力する。

  2. 打ち消すための PR が作られるので、いつもと同じようにプレビューで確認し、「マージして」と入力する。

  3. マージすると、本番のアプリが元の状態に戻ります。

GitHub の PR 画面にも Revert ボタンがありますが、押さずに Claude Code に頼んでください。データベースの項目を足した PR をボタンで戻すと、マイグレーション(データベースを変更する手順を書いたファイル)まで消えるため、検査(npm run check)が失敗します。Claude Code に頼めば、最初のセッションで指示したとおり、このファイルを残して戻してくれます。

データベースの項目を足した PR を取り消した場合、画面や機能は元に戻りますが、足したテーブルや列はデータベースに残ります。残っていても業務データやアプリの動作に影響はありませんが、あとで同じ機能を別の形で作り直すときに、エラーになることがあります。データベースの項目を足した PR を戻すときは、先に Claude Code に「この PR を Revert してよいか、データベースへの影響を確認して」と相談してください。

取り消しが不要だったときは、取り消し PR をさらに Revert すると、機能が復活します。今回は練習なので、本番で機能が消えたことを確かめたら、この方法で機能を復活させておいてください。

 

データベースの項目を増やす場合

「優先度を追加したい」のように、データベースの列(保存する項目)が増える場合も、手順は同じです。データベースの変更は、デプロイのときに自動で反映されます。

ただし、項目を削除・変更すると、アプリが動かなくなったり、入力したデータが消えたりします。そこで、この勉強会では、あえて削除しない方式にし、次のルールを CLAUDE.md で守らせています。

 

項目を追加した PR を閉じた場合

試しに項目を足してみたものの、不要になることもあります。画面や機能の変更は、PR を閉じれば(マージしなければ)、本番のアプリには何も影響がありません。しかし、テーブルや列の追加は PR を作ったり更新したりしたときのビルドで実行されるので、PR を閉じてもプレビュー用データベースにはテーブルや列が残ります(本番のデータベースには影響しません)。

使わないテーブルや列が残っても、業務データやアプリの動作に影響はありませんが、不要なものが増えてしまいます。また、あとで同じ項目をもう一度足そうとすると、プレビューのビルドが「すでにある」というエラーで失敗したり、エラーは出ないのにプレビュー用データベースの項目がアプリの想定と合わなくなったりします。そうなったときや、不要なものが気になったときは、プレビュー用データベースを作り直してください。プレビュー用データベースにはテスト用のデータしかないので、業務への影響はありません(Claude Code に「プレビュー用のデータベースを作り直して」と頼めば対応してくれます)。

 

2 つ目の業務を足す 【自習】

問い合わせ管理が動いたら、備品の貸出管理や日報を足していきます。新しいアプリは作らず、同じアプリに 2 つ目の業務として追加します。手順は機能追加と同じで、画面の見た目、登録と一覧の作り、アクセス制限、データベースの扱いは、これまでの方式が引き継がれます。

プロンプトの例:

 

提案された計画に、他の業務(問い合わせ管理)のファイルを変える項目があれば、承認せずに「他の業務のファイルは変更しないでください」と伝えてください。

 

AI の機能を足す 【自習】

アプリと AI では、得意なことが違います。アプリは、決まったルールに従う処理や計算、一覧や検索、状態や担当者の共有、期限切れの通知のように、毎回同じ結果が求められることが得意です。AI は、文章を読んで分類する、下書きを作るといった、ルールにしづらいことが得意です。しかし、関係者との調整や、責任を伴う判断は AI に任せられないので、人が行います。

Cloudflare には、アプリから AI を呼び出せる Workers AI という機能があり、Worker の設定を変更するだけで使えます(設定変更は Claude Code で可能)。問い合わせ管理ボードなら、問い合わせの内容から返信の下書きを作ったり、商品分類を提案したりできます。

 

プロンプトの例:

 

AI の出力は、もっともらしく間違えることがあります。下書きとして扱い、人が内容を確かめてから使ってください。

試すだけなら、Workers の無料プランで十分ですが、業務で本格的に使うなら、有料プラン(月 $5 から。2026 年 9 月時点)を検討してください。無料プランは利用量が上限に達すると AI の機能が止まりますが、有料プランなら止まらず、性能の高いモデルも使えます。

 

うまくいかないときは

つまずいたときの対処をまとめます。上から順に試してください。

 

うまくいかなくても、マージしなければ本番のアプリは壊れません。安心して何回でも試してください。

 

AI による開発について

AI を使うと、開発やドキュメント作成の効率は大きく上がります。ただし、次のような特性もあるので、少しだけ気をつけてください。

 

これらをすべてなくすのは難しいですが、今回の進め方(最初のセッションで決めたルール、自動の検査、プレビューでの確認)には、影響を小さくする工夫を入れています。

使っていて気になることが出てきたら、Claude Code に伝えて、CLAUDE.md のルールに足してもらってください。

 

作るかどうかを判断する

アプリを作るべきか、作る価値があるかを、次の観点で考えます。

 

まず、責任範囲と構造の観点です。社内にアプリケーションエンジニアがいない場合、次に当てはまるなら、専門家に相談することを強くおすすめします。

 

 

 

なお、上に当てはまらない場合でも、個人データ(顧客や社員の氏名、連絡先など)を保存するなら、保存先の公表が必要です。Cloudflare の契約相手は米国の Cloudflare, Inc. なので、DB を東京や大阪に置いても、米国の個人情報保護の制度を把握したうえで、事業者とサーバーの国、講じている措置をプライバシーポリシーなどに書きます。書き方が分からない場合や、国内に保存したい場合は、専門家に相談してください。

 

そのうえで、作る価値があるかを考えます。

その作業が月 5 時間もかからず、間違いや漏れも起きていないなら、作らないほうが無難です。作る手間と管理する手間のほうが大きくなるからです。手順を減らす、様式をそろえるといった簡略化で済まないかも考えます。一方、月 5 時間を超える、または間違いや漏れが起きているなら、開発を検討する価値があります。

費用だけで比べれば、今回の構成はほとんどお金がかからないので(「費用の目安」で説明します)、SaaS より安く済みます。それでも、いま使っている会計ソフトやグループウェアの設定変更で済むなら、それが一番です。次に、自社の業務に合う SaaS があれば、SaaS をおすすめします。保守やセキュリティ対策、バックアップ、障害対応を提供会社に任せられるからです。設定変更では足りず、SaaS も自社のやり方に合わない、複数の SaaS が必要になる、契約するには人数が少なすぎる、といった場合に、アプリを作ります。

 

作ったアプリの管理

アプリを安全に運用するための補足です。

 

費用の目安

社内の小さな業務アプリなら、GitHub も Cloudflare も無料の範囲で使えます。無料の範囲は、おおよそ次のとおりです(2026 年 9 月時点。最新の条件は各社のサイトで確認してください)。

 

アプリを開く回数やデータベースの読み書きが上限を超えると、翌朝 9 時(日本時間)までアプリが使えなくなります。この範囲を超えそうなら、専門家に相談してください。

かかる費用は、次のとおりです。

 

Claude の Pro プランは、開発しない間は解約できます。解約してもアプリはそのまま使えるので、機能追加や修正が必要なときだけ契約する方法でも構いません。

 

アカウントは会社の資産にする

これは見落とされがちですが、とても大事なことです。

GitHub と Cloudflare を担当者の個人名義だけで使っていると、その人が辞めたとき、会社としてアプリを管理できなくなります。ソースも、データも、アプリの URL も、支払いも、その人しか触れないからです。

かといって、会社共用の ID を 1 つ作って使い回すのもやめてください。誰が何をしたか分からなくなるうえ、GitHub の利用規約でも、1 つのログインを複数人で使うことは禁じられています。ログインは各人が自分のアカウントで行い、資産は会社が持つ形にします。

 

 

 

誰が所有者で誰が管理者かは、管理台帳に書いておきます。あとから変えるのは手間がかかるので、最初に決めておくことをおすすめします。

 

アクセスできる人を管理する

Cloudflare Access でアクセスを許可した人は、入社や退職で変わっていくので、管理が必要です。

 

設定の確認や変更は、Cloudflare の管理画面で行います。

  1. Cloudflare の管理画面で Workers & Pages を開き、Access タブを開く。Worker ごとの Access ポリシーが一覧で表示されます。

  2. 対象のポリシーを開くと、今、誰がアクセスできるのかが書かれています。

    • Email domain(Emails ending in)なら、そのドメインのメールアドレスを持つ人が開けます。

    • Emails なら、そこに並んでいるメールアドレスの人だけが開けます。

    • Cloudflare account なら、この Cloudflare アカウントのメンバーだけが開けます。

  3. 変更するときは、この条件を編集して保存します。人を増やすならメールアドレスを足し、辞めた人を外すならその行を消します。

  4. 細かい条件は、Zero Trust › Access controls › Applications からも編集できます。

 

本番用とプレビュー用が別のポリシーになっている場合があるので、両方を確認してください。

メールアドレスを個別に並べる方式は、人数が少ないうちは分かりやすいものの、更新を忘れがちです。会社のドメインで指定し、退職時にメールアカウントを止める運用とそろえておくほうが、見落としが起きにくくなります。どちらの方式でも、退職の手続きにこの確認を入れ、定期的に見直す時期も決めておいてください。

アクセス制限を変えても、データは消えません。辞めた人が登録したデータも残るので、安心して変更してください。

 

データを取り出せるようにしておく

障害のとき、アプリをやめるとき、他の仕組みに移すときに備えて、本番のデータベースからデータを取り出す方法を用意しておきます。

次のどちらかを用意し、運用を始める前に一度試して、手順を管理台帳に書いておいてください。いざというときに初めて試すのでは間に合いません。

Cloudflare には、データベースを過去の時点に戻す機能(D1 Time Travel)もあります。ただし、戻せるのは無料プランで 7 日前まで(有料プランで 30 日前まで)で、コマンドラインでの操作が必要です(2026 年 9 月時点)。使うときは専門家に頼む前提で管理台帳に書いておき、これに頼りきらず、上の方法でデータを取り出しておいてください。

アプリが止まっている間、業務をどうするかも決めておきます。多くは「元の Excel やメールの運用に一時的に戻す」で足りますが、決めておくこと自体が大事です。

 

セキュリティレビュー

セキュリティ対策は、本来は最初から織り込むものです(そのために CLAUDE.md に書いています)。ただ、作ってみないと分からないこともあるので、最後にも確認します。

Cloudflare Access で利用者を絞っているので、一般公開するアプリよりリスクは小さいものの、レビューする価値はあります。

 

新しいセッションで、次のように入力します。

 

ただし、レビューするのはコードを書いたのと同じ AI です。自分で作ったものを自分で点検するので、見落としが残ることがあります。

また、安全かどうかは、アプリが何を扱うかで大きく変わります。「作るかどうかを判断する」で挙げたもの(要配慮個人情報、マイナンバー、金銭取引、秘密情報など)を扱う場合や、一般公開する場合は、レビューの結果にかかわらず専門家に相談してください。

 

管理台帳を埋める

作ったアプリを会社として管理するために、管理台帳を埋めます。管理台帳は、最初のセッションでリポジトリの中に作られています。

台帳をリポジトリの中に置いているのは、アプリとその説明が離れないようにするためです。別の場所に作った管理表は、更新されなくなりがちです。

作った直後は空欄のままで構いませんが、運用を始める前に、アカウントの名義、アクセスできる人、データの取り出し方、やめるときの手順まで埋めてください。

 

台帳を埋めるのも、AI に手伝ってもらえます。新しいセッションで、次のように指示します。

 

聞かれたことに答えていくと、台帳が埋まります。答えられない項目は、誰がいつ決めるかを書き残してください。

 

久しぶりに開発を再開するとき

アプリが使っているパッケージ(部品)には、次々と新しいバージョンが出ます。一般には、セキュリティのために更新が推奨されますが、Cloudflare Access の内側にある社内アプリなら、必ずしも最新にする必要はありません。外部からアクセスされないのでリスクが小さく、土台の部分は Cloudflare 側で更新されるからです。

ただ、久しぶりに開発を再開すると、これが問題になることがあります。Cloudflare のビルド環境が更新されていると、使っているパッケージも更新が必要になり、その副作用で、これまで動いていた機能が動かなくなることがあるからです。

そこで、久しぶりのときは、いきなり機能追加を頼まず、新しいセッションでまず次のように指示します。

PR ができたら、プレビューで今までどおり動くことを確かめてマージし、そのあと、新しいセッションで機能追加を頼みます。こうすると、動かなくなっても、パッケージ更新と機能追加のどちらが原因かすぐに分かります。

 

やめるときのことを決めておく

作ったアプリも、いつかは使わなくなります。使われないまま動き続けるアプリは、費用も、アクセス権も、中のデータも、誰にも管理されなくなります。そこで、始める前に終わり方を決めておきます。

 

これも管理台帳に書いておきます。

 

まとめ

今回の勉強会を通して、次のことが分かっていただけたら幸いです。