記事一覧

2026-08-23 20:51:00

Claude in Chrome と GPTを比べてみた

Claude in Chrome と GPTを比べてみた

――AIに仕事を任せる、二つのまったく違う方法

Claude in ChromeとGPTという二つのAIエージェントの仕組みや特徴を比較したインフォグラフィック
ブラウザを直接操作するClaude in Chromeと、APIを通じて専用の仕事を行うGPT。二つは同じAIエージェントでも、設計思想が大きく異なります。

この記事の要点

前回までの記事で、Digital Supporters Clubの運営を支援する 「DSC Builder GPT」をつくってきました。

SharePointに会員用のフォルダをつくり、 決められたアクセス権を設定し、 最後に本当に正しく設定されたかを確認する。

ようやく、実際に動くところまでたどり着きました。

そこで今回は少し視点を広げ、 私が実際に作ったり使ったりした二つのAIエージェントを比較します。

一つは、今回つくったDSC Builder GPTのように、 APIを通じて、あらかじめ決められた仕事を行うタイプ。

もう一つは、Claude in Chromeのように、 AIがブラウザを見ながら人間の代わりに画面を操作するタイプです。

これは「ClaudeとGPTのどちらのAIモデルが賢いか」という比較ではありません。

Claude in Chromeというブラウザ操作型のAIエージェントと、 Custom GPT+Actions/APIでつくった専用型AIエージェントの比較です。

この記事を貫く4つの比較軸
  1. GPT型は「サービスをAIへつなぐ」
  2. Claude in Chrome型は「AIがサービスへ出かけていく」
  3. 自由度と安全性では、手綱を置く場所が違う
  4. どちらが優れているかではなく、向いている仕事が違う

1.そもそもAIエージェントとは何なのか

私は、AIエージェントを難しく考えず、

自分の代理人として、実際の仕事までしてくれるAI

と考えると分かりやすいと思っています。

これまでChatGPTを使うときは、 プロンプトで相談することが中心でした。

「これについて調べて」

「どうすればいい?」

「文章を書いて」

「SharePointではどう設定すればいい?」

AIが答えてくれる。

しかし、その答えを読んで、 実際にSharePointを開いて操作するのは自分です。

つまりAIは非常に優秀な相談相手でしたが、 仕事は最後に人間へ戻ってきました。

AIエージェントでは、 この関係が少し変わります。

「どうすればいい?」ではなく、
「これをやっておいて」と頼める。

たとえば、

「この会員が使うフォルダを準備しておいて」

と頼む。

するとAIが、自分の代わりにシステムへ働きかけ、 実際に仕事を進めます。

私はこの、

「教えて」から「やっておいて」への変化

が、AIエージェントを理解する一番分かりやすい入口だと思っています。

2.GPTが登場したとき、「AIのApp Store」が始まるように見えた

ここで少し時間を戻します。

OpenAIがGPTsを発表したのは、2023年11月でした。

特定の目的に合わせたChatGPTを、 専門的なプログラミングをしなくても作れる。

それを他の人と共有できる。

さらにActionsを使えば、 外部のAPIにつなぎ、 データを取得したり、 外部システムを動かしたりすることもできる。

そして、それらのGPTを探して使える 「GPT Store」も発表されました。

2024年1月にGPT Storeが公開されたときには、 OpenAIによれば、すでに300万を超えるカスタムGPTが作られていました。

当時は、

これからChatGPTそのものが、一つの大きなプラットフォームになっていくのではないか

という期待が大きく広がりました。

スマートフォンにアプリを追加するように、 ChatGPTの中にさまざまな専門GPTが並ぶ。

旅行のGPT。

会計のGPT。

教育のGPT。

会社独自のGPT。

そして必要なら、 それぞれが外部サービスのAPIにつながる。

考え方としては、

世の中のさまざまなサービスを、AIの側へつないでいく

方向です。

今回つくったDSC Builder GPTも、 まさにこの考え方の延長にあります。

3.DSC Builder GPT――「できる仕事」を先に定義する

DSC Builderでは、 GPTからSharePointを自由に操作できるようにはしていません。

たとえば、

「DSC0007として、この会員を準備して」

と頼む。

GPTは専用APIへ依頼します。

API側では、

  • どのSharePointサイトを操作できるか
  • どのフォルダを作れるか
  • どんな会員番号を受け付けるか
  • どんな権限を設定できるか

を、あらかじめ決めています。

つまりGPTに「何でもできる道具」を渡すのではなく、 必要な仕事だけを実行できる道具を用意する考え方です。

DSC Builderでは、さらに、

Plan

人間が確認

Apply

Verify

という流れをつくりました。

まず何を変更するか計画を出す。

私が確認する。

それから実行する。

最後に本物のSharePointから状態を読み直し、 予定と実際が一致したらPASSにする。

ここでは、 AIの自由度を意図的に小さくしています。

AIが走れる道路を先につくり、
その道路の上だけを走らせる。

そんな方法です。

4.Claude in Chrome――AIが既存のサービスへ出かけていく

Claude in Chromeは、 これとはほとんど逆の発想です。

こちらでは、 SharePoint専用APIを私が用意する必要はありません。

自分でSharePointの管理画面へログインする。

その状態で、

「この設定を確認して」

「ここを変更して」

と頼む。

するとClaudeが、 人間と同じように画面を見ながら進みます。

メニューを探す

クリックする

次の画面を開く

入力する

保存する

つまりGPT型が、

サービスをAIへつなぐ

仕組みだとすれば、 Claude in Chromeは、

AI自身が、サービスのところまで出かけていく

仕組みです。

この違いは、 かなり大きいと思います。

APIが用意されていない社内ツールや、 古いシステムや管理画面でも、 ブラウザで操作できるのであれば、 AIが人間と同じ画面を使える可能性があります。

言い換えるなら、

ブラウザそのものを、巨大な共通インターフェースとして使ってしまう

発想です。

5.二つを比較すると、こうなる

比較項目 DSC Builder GPTのようなAPI型 Claude in Chromeのようなブラウザ型
基本思想 サービスをAIへAPIで接続する AIが既存のWebサービスへ行く
操作方法 APIを直接呼び出す 画面を見てクリック・入力する
事前準備 API、認証、スキーマなどの開発が必要 拡張機能を使い、対象サイトへログインすれば始めやすい
開発知識 比較的必要 少なくて済む
操作できる範囲 あらかじめ定義した範囲 ブラウザで到達できる範囲が広い
自由度 低い 高い
実行速度 APIなので比較的速い 画面操作なので相対的に遅い
UI変更の影響 比較的小さい 画面構成変更の影響を受けやすい
APIのないシステム 原則として苦手 強い
同じ処理の反復 得意 可能だが画面状態に左右されやすい
操作範囲の制限 API側で強制しやすい 権限モード、サイト権限、ブラウザ権限などで管理
安全性の考え方 API・権限・処理フロー自体を設計段階で制限 Manual / Auto / Skipから承認・自動チェックのレベルを選択
結果検証 Expected / ActualをAPIで比較しやすい 画面や実行結果を再確認する形になりやすい
監査・ログ operationIdなどで構造化しやすい ブラウザ操作・実行履歴が中心になりやすい
向いている仕事 定型・反復・重要な業務 探索的・臨時・幅広いWeb作業
最大の魅力 確実性と制御 自由度と導入の簡単さ
最大の弱点 作るのが大変 自由である分、監督や安全設定が重要

この表をつくってみると、 単なる「便利さ」の違いではないことが分かります。

システム設計の思想そのものが違う。

のです。

6.Claude in Chromeを先に使ったから、DSC Builderをつくろうと思った

実際の順番としては、 私はDSC Builderより先にClaude in Chromeを試しました。

最初に動かしたときは、 かなり驚きました。

SharePointの管理画面をClaude自身が開き、 設定を探し、 クリックしていく。

私はほとんど見ているだけです。

「これなら、わざわざ専用のアプリをつくらなくてもいいのではないか」

とも思いました。

何しろ、準備が簡単です。

私がSharePointへログインできればいい。

細かな画面操作を全部覚えていなくても、 Claudeが探してくれます。

これは非常に大きなメリットです。

一方、しばらく見ていると、 少し違う面も見えてきました。

目的の場所を探す

クリックする

反応を待つ

違う場所へ行ったら戻る

必要ならもう一度試す

人間がブラウザを操作するのと同じなので、 ときどき少しモタモタします。

セキュリティ確認のポップアップが出れば、 そこで止まることもありました。

さらに初期には、 権限グループを誤って削除してしまったこともありました。

それ以降、

  • 今回は確認だけ
  • まだ変更しない
  • 実行前に確認する

と指示を明確にするようになりました。

この体験から、

毎回同じことをする管理作業なら、
自由に画面を操作させるより、
できる操作を最初から限定した専用の仕組みをつくった方がいいのではないか

と思ったのが、 DSC Builderをつくる一つのきっかけでした。

7.自由度と安全性は、どうしても表裏一体になる

ブラウザ型の最大の魅力は自由度です。

しかし、その自由度は、 そのまま注意すべき点にもなります。

Claude in Chromeは、 ログインしているWebページを直接操作できます。

そのため、ブラウザ型AIでは、 Webページやメールなどの中に埋め込まれた指示をAIが誤って受け取る 「プロンプトインジェクション」のようなリスクも考える必要があります。

Anthropicは、安全分類器や権限制御などの対策を用意していますが、 ブラウザを直接操作する以上、 自由度と安全性のバランスは重要になります。

現在のClaude in Chromeには、 3種類の権限モードが用意されています。

Manual

操作ごとに人間の確認を求めながら進めるモードです。

Auto

Claudeに作業を進めさせつつ、 危険と判断された操作は安全分類器によって自動的にブロックするモードです。

Skip

確認や自動チェックを行わずに進めるモードです。

つまりブラウザ型のAIでも、

どこまで人間が手綱を握るかを、利用者が選ぶ

考え方になっています。

一方、DSC Builderでは、 安全装置の考え方が少し違います。

そもそも危険な操作へ行ける道を用意しない。

別のSharePointサイトは操作できない。

任意のURLは受け付けない。

できる操作も決まっている。

つまり、

ブラウザ型
広い世界を歩けるAIを、どう安全に監督するか

API型
歩ける世界そのものを、最初から狭く設計するか

という違いがあります。

8.「GPTがプラットフォームになる」という未来と、別の未来

ここが今回、 一番面白いと思ったところです。

GPTが登場した2023年には、

ChatGPTの中に、あらゆる専門アプリが集まってくる

ような未来が見えました。

GPT Storeがあり、 専門GPTが並び、 それぞれが外部APIへ接続する。

ユーザーはまずChatGPTへ来て、 そこから必要なサービスを使う。

これは、

AIがプラットフォームになる未来

です。

しかしClaude in Chromeを使ってみると、 まったく別の未来も見えます。

今あるWebサイトや業務システムは、 そのままでいい。

SharePointも、そのまま。

管理画面も、そのまま。

人間向けにつくられた画面を、 AIも操作できるようになればいい。

つまり、

既存のソフトウェアをAI向けにつくり直さなくても、
AIが人間向けの画面を使えばいい。

という未来です。

これはかなり発想が違います。

GPT型
AIのところへ、サービスを持ってくる

Claude in Chrome型
サービスはそのままにして、AIをそこへ送り込む

私は、今回実際に両方を触ったことで、 この違いがとてもはっきり見えました。

9.では、どちらが向いているのか

ここまで比較すると、

「では、結局どちらが正しいのか」

という話になります。

しかし私は、 今のところどちらか一方になるとは思っていません。

むしろ仕事によって分かれるのではないかと思います。

API型が向いている仕事

  • 毎日、毎週、毎月、同じ処理をする
  • 権限や個人情報を扱う
  • 失敗したときの影響が大きい
  • 実行履歴を残したい
  • 同じ結果を安定して繰り返したい

ブラウザ型が向いている仕事

  • 一度しかやらないかもしれない
  • どの画面へ行くか事前に分からない
  • APIが提供されていない
  • 古い管理画面を使わなければならない
  • いろいろなWebサービスを横断したい

今の段階では、

定型業務は専用型。
探索的な仕事はブラウザ型。

という使い分けが、 かなり自然に思えます。

そして将来、 この二つが近づいていく可能性もあります。

最初はブラウザ型AIに自由に仕事をしてもらう。

よく使う仕事が見えてきたら、 それを専用のAPIやワークフローへ落とし込む。

あるいは逆に、 専用APIでは対応できない例外だけをブラウザ型へ渡す。

そんな組み合わせも考えられます。

10.Microsoftの仕組みを一通り使ってみて分かったこと

DSC Builderをつくるために、 今回はMicrosoftのさまざまなサービスを実際に使いました。

  • SharePoint
  • Microsoft Entra ID
  • Azure Functions
  • Azure Key Vault
  • 証明書
  • API
  • OpenAPI

以前から名前は知っていたものもあります。

でも、自分で組み合わせて本当に動かしてみると、 理解の仕方がまったく違います。

「ああ、Entra IDというのは、 AIにこういう身分証を持たせるためにも使えるのか」

「Key Vaultは、 この秘密をここに置くためにあるのか」

「APIというのは、 単にシステム同士をつなぐだけではなく、 AIが安全に仕事をするための“道”にもなるのか」

それまで単なる製品名だったものが、 一つの仕組みとしてつながりました。

もちろん、かなり面倒でした。

動かない。

直す。

また試す。

今度は別のところで止まる。

それでも、 自分がChatGPTへ、

「DSC0007を準備して」

と頼む。

すると、自分でつくった仕組みを通って、 本当にSharePointが動く。

これは、やはり面白い体験でした。

11.「AIが何をできるか」より、「どう仕事を渡すか」

今回、Claude in ChromeとDSC Builder GPTを比べてみて、 AIエージェントについての見方が少し変わりました。

重要なのは、

「AIはどこまで賢くなるのか」

だけではないのだと思います。

むしろ、

私たちはAIへ、どんな形で仕事を渡すのか。

そこが、これから大きなテーマになりそうです。

自由に画面を動かしてもらうのか。

専用のAPIを用意するのか。

どこまで任せるのか。

どこで人間が確認するのか。

手綱を人間が握るのか。

それとも、 手綱そのものをシステムの中へ組み込むのか。

2023年にGPT Storeが発表されたとき、 私は「AIの中にさまざまなアプリが集まる未来」を想像しました。

そして今回Claude in Chromeを使ってみて、

アプリをAIの中へ集めなくても、
AIが今あるアプリを使いに行けばいい。

という、もう一つの未来があることに気づきました。

どちらが主流になるのか。

それとも、 この二つが混ざっていくのか。

今の段階では、 まだ分かりません。

ただ、実際に作ったり使ったりしてみると、

AIエージェントという言葉の中で、
すでにかなり違う未来の形が競い始めている。

そんなことを感じています。

2026-08-17 22:12:00

ものづくりの時間が変わった――「文明の夜明け」を感じた

ものづくりの時間が変わった――「文明の夜明け」を感じた

――SharePoint版への第2章、そのとっかかりで「文明の夜明け」を感じた

AIがコードを書き、模擬SharePointを構築し、ユニットテストを実行。人間が実際のSharePoint環境で確認し、AIへ結果を返して改善する開発の流れを表したイラスト
AIがコードを書き、ユニットテストまで実行。人間が本物の環境で確かめ、その結果をまたAIへ返していきました。

この記事の要点

私はいま、Digital Supporters Clubという会員制クラブサイトをつくっています。

前回は、Microsoft Power Pagesを使った会員サイトの設計に挑戦し、 AIとの対話を繰り返した結果、 要件定義書から123件のテストケースを持つテスト仕様書までつくりました。

そして次は、SharePointを中心に、 もっと小さく実際に動くものをつくってみよう、と方向を変えました。

今回の出来事は、その第2章へ踏み出した、とっかかりでの体験です。

SharePoint版の運営を少し楽にするために、 会員ごとのフォルダ作成や権限設定を支援する 「DSC Builder」という小さな管理ツールを、 AIと一緒につくることにしました。

そこで私は初めて、 AIに実際に動くコードを全面的に書いてもらいました。

驚いたのは、それだけではありません。

AIは、そのコードを確かめるためのユニットテストまで用意し、 実際にそのユニットテストまで実行したのです。

さらに、テスト用の模擬SharePointまでPythonコードとしてつくっていました。

コードを書く。
テストを書く。
テストする。
問題があれば直す。
またテストする。

そのサイクルが、 私が現役のころに接してきたシステム開発とは、 まるで違う速度で回っていきました。

私はその様子を見ながら、

「自分はいま、文明の夜明けに立ち会っているのではないか」

と本気で感じました。

ところが、ユニットテストが通ったコードを 本物の日本語版SharePointで動かすと、 それでも問題が見つかりました。

そこで見えてきたのは、

AIがつくり、人間が現実に当て、その結果をまたAIへ返す

という、新しいものづくりの姿でした。

この記事を貫く4つの気づき
  1. AIはコードを書くだけでなく、ユニットテストをつくり、実行するところまで進んでいる
  2. AIによって「設計 → 実装 → テスト → 修正」の速度が大きく変わった
  3. ユニットテストが通っても、本物の環境でなければ分からないことがある
  4. AI時代の開発では、人間は「現実との接点」という重要な役割を持つ

今回の経験で強く感じたのは、 AIが単にコードを書くようになったのではなく、 ものをつくり、試し、直し、もう一度つくる時間の流れそのものが変わり始めている ということです。

1.第2章へ踏み出したところで、驚いた

前回の記事では、 Digital Supporters Clubの会員サイトをPower Pagesでつくろうとして、 AIと一緒に要求仕様や設計を考えていったことを書きました。

最初は、もっと簡単につくれると思っていました。

ところがAIと対話を続けるうちに、

「この場合はどうしますか」

「途中で失敗したらどうしますか」

「他の会員から本当に見えませんか」

と、一つ決めるたびに次の問いが出てきました。

その結果、要件定義からデータ設計、画面、権限、運用、 そして123件のテストケースまでつながっていきました。

そして最後に、

Power Pagesへの挑戦が第1章。

次はSharePointを中心に、まずはもっと小さく動くものをつくる。

そう書きました。

今回の出来事は、 その第2章へ踏み出した、とっかかりでの体験です。

SharePoint版をつくり始め、 その運営を少しでも楽にするための小さなツールを AIと一緒につくろうとしました。

その過程で、私は初めて、

AIに実際に動くコードを全面的に書いてもらいました。

しかも、それだけではありませんでした。

AIはユニットテストまでつくり、 実際にそのテストまで実行したのです。

これには、本当に驚きました。

2.残っていた、地味だけれど気の抜けない作業

SharePointとTeamsを使った小さな会員サイトをつくり始めると、 サイトの骨組みは少しずつ形になっていきました。

自分だけが見られる原稿の場所。

クラブの仲間に公開する作品の場所。

作品について感想を届ける場所。

Power Pages版で考えた、

「保存することと、公開することは違う」

「本人の非公開原稿は、他の会員から見えてはいけない」

という考え方も、そのまま引き継ぎました。

ところが実際に運営することを考えると、 一つ地味な作業が残りました。

新しい会員が入る

会員専用のフォルダをつくる

原稿を書く場所をつくる

届いた感想を保存する場所をつくる

公開作品のフォルダをつくる

それぞれに正しいアクセス権を設定する

作業そのものは、それほど複雑ではありません。

でも、間違えてはいけません。

本人だけが読めるはずの原稿が、 別の会員から見えてしまったら大きな問題です。

公開作品についても、 他の会員は読むことはできても、 編集できてはいけません。

会員が増えるたびに、同じ設定を行い、 最後に間違いがないか確認する。

地味ですが、かなり神経を使います。

そこで、この作業を支援する小さな管理ツールをつくることにしました。

名前は、

DSC Builder

です。

たとえば、

「DSC0007番の会員を準備して」

とGPTに伝える。

すると、

必要なフォルダをつくる

権限を設定する

本当にその通りになったか確認する

ところまで支援する。

そんな道具を目指しました。

3.最初は、大きくつくりすぎた

ところが、最初に考えたDSC Builderは、 かなり大きなものでした。

新規会員の準備だけではありません。

  • 長期間利用していない会員を見つける
  • 利用継続を確認する
  • 退会時にはアクセスを停止する
  • 一定期間データを保持する
  • 最後にはデータを削除する

入会から退会まで、 かなり広い範囲を自動化しようとしていました。

設計をレビューしていく中で、

「今の段階で、そこまでつくる必要があるだろうか」

という問いが出てきました。

以前、Power Platformのライセンス費用で立ち止まったときと、 よく似ています。

技術的につくれるか。

それだけではありません。

今、それをつくる意味があるのか。

そこで範囲を大きく縮めました。

まず試すのは、 新しい会員1人を迎えるときのSharePoint設定だけ。

休眠管理も、退会処理も、削除の自動化も、 いったん将来へ送る。

そして設計に、

「作れるものをすべて作る」のではなく、
「効果が確認できた部分だけ次へ進める」

という考え方を入れました。

実際に試す。

本当に楽になるなら続ける。

効果が小さければ、そこで止める。

前回は、仕様書をつくることで、

「このシステムを本当につくるべきか」

を考えることができました。

今回は、AI自身を使った開発にも、 同じ考え方を適用することになりました。

4.本当にコードができた

設計を何度も見直したあと、 AIに実際のコードを書いてもらいました。

ここは、はっきり書いておきたいと思います。

今回、コードそのものは全面的にAIに書いてもらいました。

私はプログラムを一行も書いていません。

私が行ったのは、

  • 何をつくりたいのか
  • どこまでつくるのか
  • どんな場合には処理を止めるのか
  • どんな結果なら成功なのか

そうしたことをAIとの対話で考えることでした。

設計が決まると、AIがコードを書きました。

それまでも、

「AIはコードを書ける」

という話は知っていました。

だから、ここまではある程度想像できました。

でも、本当に驚いたのは、その先でした。

5.AIが、ユニットテストまで実行した

AIは、コードを書いて終わりではありませんでした。

そのコードが正しく動くかを確かめるための ユニットテストも用意しました。

そして、

そのユニットテストを実際に実行しました。
コードを書く

ユニットテストを書く

ユニットテストを実行する

結果を確認する

問題があればコードを直す

またテストする

そこまでが、 ひと続きの開発作業として進んでいったのです。

私は、その様子を見ながら本当に驚きました。

自分がAIと話し合って決めた設計がコードになる。

そのコードを確かめるテストコードもできる。

そして、実際にテストが走る。

「AIはプログラムを書けるらしい」

と外から眺めていたときとは、 まったく違いました。

自分が必要としているシステムのコードが目の前で生まれ、
そのコードに対するユニットテストまで実行されていく。

その体験の重さは、 想像していたものとは違いました。

6.ものを作る時間の流れが変わった

そして、私が一番強く感じたのは、その速さでした。

要件を考える

設計する

コードを書く

テストコードを書く

テストする

問題を調べる

コードを直す

またテストする

それぞれの工程に、人の作業時間が必要でした。

もちろん、AIを使っても、 こうした工程そのものが全部なくなるわけではありません。

違ったのは、

その工程を回す速度です。

私が、

「この場合はどうなる?」

と問いかける。

AIが設計を確認する。

コードを書く。

テストを書く。

テストを実行する。

必要なら修正する。

そして、また次へ進む。

これまで別々の工程だったものが、 対話の中で次々につながっていきました。

私が現役のころに接してきたシステム開発の時間感覚とは、 明らかに違いました。

私は、

「便利になった」

とか、

「少し速くなった」

という感覚では受け止められませんでした。

ものを作るときの、時間の流れそのものが変わった。

そう感じました。

7.AIは、模擬SharePointまでPythonでつくった

さらに驚いたことがありました。

ユニットテストをするとき、 毎回本物のSharePointへ接続していたわけではありません。

AIは、テスト用の模擬SharePointをPythonコードとして書いていました。

たとえば、

  • このフォルダは存在するか
  • フォルダをつくったらどうなるか
  • どんな権限が設定されているか

といったSharePointの振る舞いを、 テスト用のPythonコードの中で再現します。

そして、その模擬SharePointを相手に ユニットテストを実行する。

いわば、小さな「模型のSharePoint」です。

つまりAIは、

実際に使うコードを書く

そのコードを試すための模擬SharePointをPythonでつくる

ユニットテストを書く

ユニットテストを実行する

ところまでやっていたのです。

私はここでも、

AIはコードを書くだけではない

と感じました。

コードをつくる。

そのコードを試すための世界までつくる。

そしてテストする。

だからこそ、

書く

試す

直す

また試す

というサイクルを、 ものすごい速度で回すことができるのだと思いました。

8.ところが、本物のSharePointでは違った

ところが、これだけテストしていても、 本物のAzureとSharePointで動かすと問題が見つかりました。

その一つが、SharePointの権限でした。

最初のコードでは、

「Full Control」

「Edit」

「Read」

という英語の名前を使って、 SharePointの権限レベルを設定しようとしていました。

ところが、私が実際に使っているのは 日本語版のSharePointです。

本物のSharePointから返ってくる表示名は、 日本語でした。

では、なぜユニットテストでは、 この問題を見つけられなかったのでしょう。

9.テストも、同じ前提でつくられていた

理由は単純でした。

実際に動くプログラムも、テスト用の模擬SharePointも、
「権限の名前は英語で返ってくる」という同じ前提でつくられていたからです。

プログラムは、

「Full Control」

を使おうとする。

模擬SharePointも、

「Full Control」

を返す。

だから、ユニットテストはPASSします。

テストの中だけを見れば、何も間違っていません。

ところが、本物の日本語版SharePointでは、 権限の表示名が日本語で返ってきました。

そこで初めて、

「英語の名前で返ってくる」という前提そのものが、
現実とは違っていた

ことが分かりました。

これは、 ユニットテストが役に立たなかったという話ではありません。

ユニットテストは、

「こちらが想定した条件の中で、コードが正しく動くか」

を確かめることには、とても役立ちます。

ただし、

その想定そのものが現実と違っている場合は、
本物の環境で動かしてみなければ気づけないことがある。

今回、私はそれを実際に体験しました。

そこでAIは、 英語や日本語といった表示名に頼るのではなく、 言語に左右されない方法で権限を判定するよう コードを修正しました。

さらに、日本語環境でも正しく判定できることを確認する ユニットテストも追加しました。

模擬SharePointで試す

本物で動かす

現実との違いが見つかる

結果をAIへ返す

AIがコードを直す

テストも直す

また試す

最初のテストで見えていなかった現実が、 本物のSharePointで見つかる。

その現実を、今度はテストの中にも取り込む。

こうしてテストも、 少しずつ現実に近づいていきました。

10.「やり直す」ことにも問題があった

もう一つ、 途中で処理に失敗した場合にも問題が見つかりました。

途中までフォルダができる。

その後で処理が止まる。

初めのコードでは、 その処理を同じ番号でもう一度実行しても、 失敗した結果を返すだけで、 その先へ進めない場合がありました。

そこで、

どこまで処理が進んでいたのかを確認する

安全に再開できる状態か判断する

再開できる場合は、その続きから進める

という形へコードを修正していきました。

この修正コードもAIが書きました。

実際のAzureやSharePointで動かすための コードやコマンドもAIが用意しました。

私は、それを実行します。

返ってきた結果やエラーをAIへ伝えます。

AIが原因を調べます。

コードを直します。

私はまた実行します。

ここでも同じ往復が続きました。

11.AIがつくり、人間が現実に当てる

今回の開発を振り返ると、 人間とAIの役割について、 前回とは少し違うものが見えてきました。

前回は、

人間が目的を示す

AIが設計案を出す

AIがレビューする

人間が判断する

設計を直す

という関係でした。

今回は、その先へ進みました。

人間が目的を示す

AIと設計する

AIがコードを書く

AIが模擬SharePointをPythonでつくる

AIがユニットテストを書く

AIがユニットテストを実行する

人間が本物の環境で動かす

現実との違いを見つける

結果をAIへ返す

AIがコードとテストを直す

もう一度、本物で試す

コードを書いたのは、AIです。

でも、完成品をAIから受け取って終わりではありませんでした。

AIがつくり、人間が現実に当て、その結果をまたAIへ返す。

そんな共同作業になりました。

12.「もう一度、つくり直そう」のコストが下がった

前回の記事で、私は、

AIが変えたのは「考え直すコスト」だった

と書きました。

人間のチームで、

「要件まで戻りましょう」

「設計をやり直しましょう」

と言うのは簡単ではありません。

でもAIとの対話なら、

「待って。この場合はどうなる?」

と思ったところから、 すぐ前へ戻れます。

今回、その先を体験しました。

コードを書いたあとでも、

「この場合は?」

と聞く。

AIが直す。

テストする。

もう一度直す。

つまりAIは、

「もう一度、つくり直してみよう」

と言えるコストまで、 大きく下げ始めていました。

作る

試す

失敗する

直す

もう一度試す

この循環そのものが、とても軽くなった。

私はそこに、 前回とはまた違う大きな変化を感じました。

13.文明の夜明けに立ち会っている

今回の経験を、私は単に、

「初めてAIにコードを書いてもらった」

という出来事としては受け止めていません。

コードを全面的にAIが書いた。

テスト用の模擬SharePointまでPythonでつくった。

ユニットテストを書いた。

そのユニットテストまで実行した。

問題があれば、コードやテストを直した。

その一連のサイクルが、 驚くほどの速度で回っていった。

私はそれを、 ニュースでも、誰かのデモでもなく、 自分が本当につくろうとしている Digital Supporters Clubの開発で経験しました。

そして、その速度を目の前で見たとき、 私が現役のころに接してきたシステム開発との違いを、 頭ではなく実感として感じました。

だから私は、本気で、

文明の夜明けに立ち会っている。

そんな実感を持ちました。

AIによって、 単にプログラミングが便利になったのではない。

人間がものをつくる方法そのものが、変わり始めている。

私はそう感じました。

私はプログラマーではありません。

プログラムも一行も書いていません。

それでも、

何をつくりたいかを考える

AIと設計する

AIがコードを書く

AIがテストする

自分が本物の環境で動かす

違いを見つける

AIへ返す

また直す

その「ものをつくる世界」の中に、 自分も入ることができました。

もちろん、AIが常に正しいわけではありません。

今回も、本物のSharePointへ当てたからこそ 分かったことがありました。

だから、人間の役割がなくなったとは感じません。

むしろ、

AIが猛烈な速度でコードとテストをつくれる時代だからこそ、
現実に当て、違いを見つける人間の役割が、よりはっきり見えてきた。

そう感じています。

Digital Supporters Clubのクラブサイトは、 まだ完成していません。

今回の出来事は、 第2章の本当にとっかかりです。

でも、そのとっかかりだけで、 私はこれまでとはまったく違う ものづくりの速度を経験しました。

作る

使う

気づく

改善する

前回、これからやろうとして書いたこの循環が、 もう実際に動き始めています。

AIと一緒につくる。

現実に当てる。

違っていたら、またAIへ返す。

そして、もう一度つくる。

第2章は、まだ始まったばかりです。

今回の開発で作成した主な設計・実装

  • Digital Supporters Club Phase 0 SharePoint / Teams ゲスト版プロトタイプ設計
  • DSC Builder GPT v0.1 ツール設計
  • Azure / Microsoft Entra ID 構築設計
  • DSC Builder API / Azure Functionsの実装コード
  • SharePointを模擬するPythonテストコード
  • DSC Builderのユニットテスト

今回のDSC Builderでは、 最初からすべてを自動化するのではなく、 まず新規会員のSharePoint利用開始準備に範囲を絞り、 実際にどの程度運営を楽にできるのかを確かめるところから始めました。

そして、この開発を通して、 AIがコードを書き、テストし、 人間が現実の環境で確かめ、その結果をまたAIへ返す という新しい開発の循環を体験することになりました。

Digital Supporters Clubの第2章は、 まだ始まったばかりです。

2026-08-15 18:05:00

AIと会員サイトをつくり始めたら、123件のテスト仕様書ができた件

AIと会員サイトをつくり始めたら、123件のテスト仕様書ができた件

――何人もの専門家が行うレビューを、AIとの対話で繰り返した「Power Pagesへの挑戦」

AIとの対話を使った会員サイト開発。要件定義、データ設計、権限設計、自動処理、画面設計、運用設計を経て、123件のテストケースへ進む流れを表したイラスト
AIとの対話を重ねながら、要件定義から123件のテストケースまで設計を深めていきました。

この記事の要点

私はいま、Digital Supporters Clubという会員制クラブサイトをつくっています。

最初の挑戦として、 Microsoft Power Pages、Dataverse、Power Automateを使った 会員サイトの設計に取り組みました。

そこで最も驚いたのは、 AIがコードを書けることではありませんでした。

本来なら、要件、データベース、画面、セキュリティ、運用、テストなど、 それぞれの専門家が行うレビューを、 AIとの対話の中で何度も繰り返せたことです。

一つの問題が見つかる。 前の設計へ戻る。 修正すると別の設計との矛盾が見つかる。 また戻る。

そんな往復を何十回も繰り返した結果、 要件定義書から始まった設計は、 最終的に123件のテストケースを持つMVPテスト仕様書まで育ちました。

そして現在は、Power Pagesにこだわらず、 SharePointを中心に、もっと小さなクラブサイトから始める方向へ進んでいます。

この記事は完成したサイトの紹介ではありません。 AIと一緒にクラブサイトをつくっていく、その第1章の記録です。

この記事を貫く4つの気づき
  1. AIは「作る人」だけでなく、「レビューする人」にもなれる
  2. 後工程から前工程へ何度でも戻れることが、仕様を強くする
  3. 仕様書は「作るため」だけでなく、「作るべきか」を判断するためにも役立つ
  4. Power Pagesへの挑戦は終わりではなく、SharePointで始めるための第1章だった

今回の経験を通して感じたのは、 AIが変えるのは単なる「作業時間」ではなく、 考え直し、レビューし、設計をやり直すコストそのものなのかもしれない ということです。

1.いちばん驚いたのは、AIがコードを書いたことではなかった

今回、AIを使って会員サイトの設計をしていて、 いちばん驚いたことがあります。

AIが文章を書けることでもありません。

プログラムを書けることでもありません。

本来なら何人もの人が関わるはずの「レビューの工程」を、 AIとの対話の中で何度も繰り返せたことでした。

システム開発では、さまざまな役割の人が関わります。

  • ビジネスの要件を整理する人
  • データベースを設計する人
  • 画面や操作の流れを考える人
  • セキュリティや権限を考える人
  • 自動処理を設計する人
  • 運用ルールを考える人
  • 最後にテストする人

それぞれが、自分の専門分野から設計を見ます。

「この場合はどうなるのか」
「この設計は、前に決めた要件と矛盾していないか」
「他の会員のデータが見えてしまうことはないか」
「途中で処理に失敗したらどうするのか」

そうやってレビューしながら、一つのシステムをつくっていきます。

今回、それに近いことが、 私一人とAIとの対話の中で起きました。

もちろん、AIがすべてを決めてくれたわけではありません。

AIが問いを出す

私が考える

方針を決める

設計書へ反映する

別の設計との矛盾が見つかる

また考える

この往復を、何十回も繰り返しました。

そして、そこから今回のクラブサイト開発が始まりました。

2.つくりたいのは、「また書きたくなる場所」

私はいま、 Digital Supporters Club という会員制クラブサイトをつくろうとしています。

目指しているのは、 SNSのように人気を競う場所ではありません。

小説。
エッセイ。
自分史。
思い出。
体験。
空想の物語。

「自分も何か書いてみたい」

そう思った人が、 自分のペースで少しずつ言葉を形にしていく場所です。

書く

保存する

また続きを書く

希望すればクラブの仲間に読んでもらう

短い感想が届く

また書く

誰かに評価してもらうためではありません。

「誰かが読んでくれた」
「言葉を届けてくれた」

という小さな体験が、また書く力になる。

そんな場所をつくりたいと思いました。

最初の技術基盤として選んだのが、 Microsoft Power Platformでした。

  • Power Pagesで会員サイトをつくる
  • Dataverseに会員や作品のデータを保存する
  • Power Automateで公開処理などを動かす

企業システムにも使われる仕組みなら、 会員ごとのアクセス権や非公開作品の保護もしっかり設計できるだろう。

そう考えました。

これが、クラブサイトづくりの最初の挑戦でした。

3.最初にAIへ伝えたのは、たった一つのイメージだった

最初から細かな仕様があったわけではありません。

AIエージェントに伝えたのは、 おおよそ次のようなことでした。

読者が自分の作品を書いて、 希望すればクラブの会員に公開して、 感想をもらえる場所をつくりたい。

そこから、要件定義を始めました。

ところが対話を始めてみると、 一見簡単そうな言葉の中に、 たくさんの決め事が隠れていることに気づきました。

たとえば、 「公開する」 という言葉です。

4.「公開する」とは、どういうことなのか

「作品を公開できるようにしたい」

最初は、それだけでした。

でも設計するためには、それだけでは足りません。

公開とは、インターネット全体への公開なのか。

クラブ会員だけへの公開なのか。

作品を書いて「保存する」を押したら公開されるのか。

作者が明示的に 「クラブ会員に公開する」 と押した場合だけなのか。

一度公開した作品を作者が書き直している途中で、 その書きかけまで他の会員に見えるのか。

公開をやめたら、 それまでに届いた感想はどうなるのか。

削除するのか。

残すのか。

残すなら、誰が読めるのか。

一つ答えると、次の問いが出てきます。

そこで、 保存することと、公開することは完全に分けよう と決めました。

書く

保存する

ここまでは本人だけ

本人が「クラブ会員に公開する」を選ぶ

初めて公開処理を行う

書いて保存しただけでは、他の人には見えない。

初期状態は必ず「自分だけ」。

さらに、本人が執筆している原稿そのものを 他の会員へ直接開放するのではなく、 公開用の別データへコピーすることにしました。

そうすれば、公開後に作者が原稿を書き直している途中でも、 その書きかけが勝手に公開されることはありません。

「公開する」という一言から、 データベースの構造まで変わっていきました。

5.完成したのは、サイトではなかった

こうして設計を進めているうちに、 当初は意識していなかった別の成果が、少しずつ形になっていきました。

まだPower Pagesの会員サイトは完成していません。

ところが、設計書は次々と出来上がっていきました。

  • 要件定義書
  • Dataverse データ設計書
  • Power Pages MVP 画面設計書
  • Power Pages テーブル権限設計書
  • Power Automate 公開処理設計書
  • Phase 1 運用ルール
  • MVP テスト仕様書

しかも、これらは一度書いて終わりではありません。

v1.0。
v1.1。
v1.2。

Dataverseのデータ設計は、 さらにv1.5まで進みました。

後工程で問題を見つけるたびに、 前の設計へ戻って直していったからです。

サイトをつくろうとしていたはずなのに、 気づけば、そのサイトをつくるための「設計の層」が 何層にも積み上がっていました。

6.画面を考えたら、要件の穴が見つかった

特に印象に残っているのが、 「感想」 の扱いです。

作品を読んだクラブ会員は、 作者へ短い感想を届けることができます。

ただし、誹謗中傷や個人情報の書き込みなど、 不適切な感想については、 運営が非表示にできるようにする。

ここまでは簡単でした。

ところが実際の画面の流れを一つずつ考えていたとき、 妙なことに気づきました。

感想が非表示になると、 その感想を書いた本人が、 通常の画面から自分の投稿へたどり着けなくなる可能性があります。

では後から、

「自分が書いた感想を削除したい」

と思ったら、どうするのでしょう。

最初の要件定義には、答えがありませんでした。

画面の小さな問題に見えました。

しかし実際には、

誰が

どの状態の

どのデータを

読めるのか

という、アクセス権そのものの問題でした。

公開中の感想。

作品の公開をやめた後の感想。

運営によって非表示にされた感想。

それらを同じ権限で扱ってよいのか。

ここから、

  • 要件
  • Dataverseのデータ構造
  • Power Pagesのアクセス権
  • Power Automateの処理
  • 運用ルール

まで見直すことになりました。

最終的には、公開中の感想と、 作者だけが読める状態になった感想とで、 アクセス経路そのものを分ける設計へ進みました。

しかし、すべてをシステム化したわけではありません。

非表示後など、 投稿者本人が通常画面から感想に到達できない場合の削除については、 Phase 1では専用機能をつくらず、 運営への個別依頼で対応することにしました。

よいシステムとは、 すべてを自動化したシステムではない。

システムで解決するもの。

人が運用で受けるもの。

その境界を決めることも、 設計なのだと思います。

7.たった一つの項目が、セキュリティの問題になった

もう一つ印象に残っているのが、 作品の「公開状態」でした。

作品には、

  • 自分だけ
  • クラブ会員に公開

という状態があります。

一見すると、会員が画面からこの二つを選択できればよさそうです。

ところが、自動処理の設計を進めている途中で疑問が出ました。

もし会員が、この公開状態を直接変更できたらどうなるのか。

本来は、

クラブ会員に公開する

公開する本文を取得する

公開用データを作成する

処理が成功したことを確認する

公開中にする

という順番です。

ところが「公開中」という管理項目だけを直接書き換えられれば、 この処理を飛び越えられる可能性があります。

そこで公開状態は、 会員が自由に変更する項目ではなく、 システムが管理する項目 に変わりました。

さらに、 「画面から項目を隠せばいい」 という話でもありませんでした。

URLを直接指定したらどうなるのか。

他人の作品のIDが分かったらどうなるのか。

内部の管理項目を書き換えようとしたらどうなるのか。

「画面に表示されないこと」と、 「アクセスできないこと」は違う。

この小さな疑問も、 最後には正式なセキュリティテストになっていきました。

8.123件のテストケースまでつながった

最終的に作成したMVPテスト仕様書には、 123件のテストケース が並びました。

たとえば、

  • 18歳の誕生日当日なら申し込めるか
  • 18歳の誕生日前日なら拒否されるか
  • 他人の非公開作品を取得できないか
  • 保存しただけでは公開されないか
  • 公開中の原稿を書き直しても公開版が勝手に変わらないか
  • 公開を停止した作品が「みんなの作品」から消えるか
  • 公開停止後の感想を他の会員が取得できないか
  • 非表示にした感想をGUIDやURLの直接指定で取得できないか
  • 利用停止になった会員のアクセス権が外れるか

といった項目です。

そして最後には、 Digital Supporters Clubで本当に実現したかった体験そのものを 確認するテストまで入っています。

書く

保存する

続きを書く

公開する

誰かが読む

感想が届く

また書く

最初は、

「作品を書いて、公開して、感想をもらえるサイトをつくりたい」

という一文でした。

それが、AIエージェントとの対話を重ねるうちに、驚くほど短い時間で123件のテスト項目へと展開していきました。

9.AIが変えたのは、「考え直すコスト」だった

今回の経験で、 私が最も大きいと感じたのはここです。

人間のチームで、

「やっぱり要件定義まで戻りましょう」

と言うのは、簡単ではありません。

  • 担当者に説明する
  • 会議を設定する
  • 設計書を修正する
  • 別の担当者がレビューする
  • 影響範囲を調べる
  • 場合によっては、すでにつくったものまで変更する

つまり、設計の手直しには、それなりのコストがかかります。

ところがAIとの対話では、

「待って。この場合はどうなる?」

と思ったところから、 すぐに前の工程へ戻ることができます。

要件を確認する

データ設計を直す

権限設計を直す

自動処理を直す

画面を直す

運用を直す

テスト項目へ落とす

これを何度でも繰り返せます。

もちろん、AIが常に正しいわけではありません。

複数のAIモデルをつかうと、AI同士の提案が違うこともあります。

最終的に、

「このサービスでは、どうするのか」

を決めるのは人間です。

考え直す。
レビューする。
前へ戻る。
もう一度確かめる。

このコストが大きく下がった。

私はここに、 AIによって変わるシステム開発の大きな可能性を感じました。

10.そして、ライセンス費用という現実がやってきた

かなり設計が進み、 「いよいよ実装へ」 という段階まで来ました。

そこで、別の問題が見えてきました。

ライセンス費用です。

Power Platformを使って、 外部の会員向けサービスを本格運用する場合、 当初考えていた以上の費用が必要になることが分かりました。

技術的には、つくれそうです。

設計も、かなり進みました。

しかし、つくれることと、 今それを選ぶべきことは同じではない。

まだ始まったばかりのクラブです。

最初から大きな仕組みを持つ必要はありません。

そこで、Power Pagesでそのまま実装することにはこだわらず、 いったん方向を変えることにしました。

現在は、手元で利用できる SharePointを中心に、もっと小さなクラブサイトから始める 方向へ進んでいます。

11.Power Pagesへの挑戦は、無駄だったのか

では、ここまで作った設計書は無駄だったのでしょうか。

私は、まったく逆だと思っています。

もし最初から画面をつくり始めていたら、

  • 非公開とは何か
  • 公開とは何か
  • 誰が、何を見ることができるのか
  • 公開を停止した後の感想をどうするのか
  • どこまでシステムで行い、どこから人が運用するのか

といった問題を、 実装しながら考えることになっていたでしょう。

今回はPower Pagesへの挑戦を通して、 それらを先に考えることができました。

そして費用まで含めて、

「この仕組みを今、本当に採用するべきか」

を判断できました。

仕様書は、 システムをつくるためだけのものではない。

そのシステムを、本当につくるべきなのかを 考えるためのものでもある。

Power Pagesで作った設計書は、 Power Pagesだけのためのものではありません。

Digital Supporters Clubで、

  • 何を大切にするのか
  • 何を守るのか
  • 何を会員本人に決めてもらうのか
  • どこまで自動化するのか

その考え方の土台になりました。

だから、Power Pagesへの挑戦は、

「作れなかったサイトの記録」

ではありません。

これからクラブサイトをつくるための、 第1回目の設計実験だった。

今は、そう考えています。

12.第2章は、SharePointから始まる

クラブサイトは、まだ完成していません。

だから、この開発記録もまだ終わりません。

次はSharePointを中心に、 まずはもっと小さく動くものをつくります。

作る

使う

気づく

改善する

最初から100点のシステムをつくるのではなく、 まず動くものをつくり、 実際に使ってみる。

そこで、本当に必要なものを見つけていく。

Power Pagesで考えたことのすべてを、 そのままSharePointへ持っていく必要はありません。

むしろ、

「これは本当にMVPに必要なのか」

と、もう一度考えられます。

ただし、

  • 会員本人の作品を守る
  • 公開は本人の意思で行う
  • 保存と公開を混同しない
  • 人とのつながりを競争にしない
  • コミュニティは「また書く」ために使う

といった基本的な考え方は変わりません。

技術は変わっても、 サービスの目的は変わらないからです。

13.AIと人間の役割は、少しずつ変わっていく

今回のPower Pagesへの挑戦を振り返ると、 AIとの関係についても、 一つ見えてきたことがあります。

AIに、

「仕様書を書いてください」

と頼めば、 それらしい文書をつくることはできます。

でも、それだけでは今回のような設計にはなりませんでした。

実際に起きていたのは、

人間が目的を示す

AIが設計案を出す

別の視点からレビューする

問題が見つかる

人間が判断する

仕様を更新する

別の設計との整合性を確認する

また問題が見つかる

という繰り返しでした。

AIは、先生でもありません。

最終決定者でもありません。

私にとってAIは、 設計者でもあり、レビュアーでもあり、 ときには「そこは本当に大丈夫ですか」と 問い返してくる相手でした。

これまで仕様書を書く仕事は、 複数の専門性を持つ人たちの協働によって成り立ってきました。

もちろん、 大規模なシステム開発で専門家が必要なくなるとは思いません。

セキュリティ、法務、インフラ、運用など、 人間の専門家による確認が重要な領域は残ります。

それでも、小さなプロジェクトの最初の段階で、

一人の人間がアイデアを持ち、 AIと何度も対話し、 要件を考え、 データを考え、 画面を考え、 権限を考え、 運用を考え、 最後にはテストまで考える。

そこまで進めることができる。

これは、少し前なら考えにくかったことだと思います。

AIが安くしたのは、 単にプログラムを書くコストではありませんでした。

「もう一度、考え直してみよう」

と言えるコストが、 大きく下がった。

Digital Supporters Clubのクラブサイトづくりは、 まだ途中です。

Power Pagesへの挑戦が第1章。

次はSharePointで、 実際に動く小さなクラブサイトをつくります。

そこで何ができるのか。

何につまずくのか。

そして、AIとの開発が次にどう変わっていくのか。

その過程も、 引き続き書き残していこうと思っています。

今回作成した主な設計ドキュメント

  • Digital Supporters Club 要件定義書
  • Dataverse データ設計書
  • Power Pages MVP 画面設計書
  • Power Pages テーブル権限設計書
  • Power Automate 公開処理設計書
  • Digital Supporters Club Phase 1 運用ルール
  • Digital Supporters Club MVP テスト仕様書

最後のMVPテスト仕様書では、 正常系だけでなく、異常系、境界値、アクセス制御、 非同期処理、運用を含め、 合計123件の正式テストケースまで整理しました。

そして次は、 この設計で得たものを持って、 SharePoint版のクラブサイトづくり へ進みます。

1