別に Claude Code のプランモードが駄目という訳ではないのですが、IT 屋の範疇でいる “Plan” と、実務的な “Plan” とは大きな差があるので、そこだけ高速化したり自動化したりしても仕方がないんですよ。というのが本記事の主旨です。いわゆる、部分最適化に陥り勝ちになるので、じゃあ、全体を見渡した時に昨今の AI エージェントの Plan モードあるいは spec 駆動が、どのように実務に活用できるのか、という実験です。
プログラムを作るとか IT システムを組むとかいう範囲ではなくて、もう少し広い範囲で考えてみます。例えば、次のような要件での入札案件が出て来たとしましょう(実際に案件としてあるわけだし)。実際には入札までの設計とか見積もりとか人員の調達などが入るのですが、じゃあ、実務見積もりとしてどのくらい AI エージェントの機能が貢献できるのか? という実験をしてみます。これ、入口の部分は今書いている書籍に入ってはいるのですが、その続きはどうなるのかわからないので、結論はよくわからないところからスタートします。
Readme.md で目的を立てる
AI に資料を渡さないとスタートができないので、Readme.md にスタートとゴールの記述をします。
# 幼保小の架け橋プログラムに関する調査研究事業のまとめ
## 目的
「幼保小の架け橋プログラムに関する調査研究事業」の各都道府県の成果報告書をまとめる。
成果報告書があがっているが、フォーマットが統一されていないので、内容を整理する必要がある。
これを整理しつつ、目的のポイントを抑えて、参考となりそうな上位5件程度をピックアップしてまとめる。
## 進め方
1. 各都道府県の成果報告書を収集する。
2. ピックアップする内容、ポイントを抽出する。
3. ピックアップ項目に対して、各都道府県別の調査報告書から抜き出して、まとめる。
4. まとめた内容をレビューし、注目すべき上位5件ずつを選定する。
5. 最後に、ピックアップする項目単位で目次を作り、報告書を PDF にまとめる。
## 収集元
- 幼保小の架け橋プログラム:文部科学省 https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00002.htm
- 【幼保小の架け橋プログラム】中間成果報告会発表資料:文部科学省 https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00029.htm
- 【幼保小の架け橋プログラム】令和5年度成果報告書:文部科学省 https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00028.htm
- 【幼保小の架け橋プログラム】事業成果報告会(令和7年2月10日):文部科学省 https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00035.htm
## ピックアップ項目
- 全体的に、都道府県名、総人口、施設数を取りだす。
- 本プログラムの主旨に沿っているかチェックする
- 本プログラムの成果を確認する
- 本プログラムの次回の課題を確認する
- カリキュラム中の議事録やワークシートのリンク先をピックアップする
ピックアップ項目は、本プログラムの成果物をまとめた段階で、追加・修正する可能性がある。
いわゆる、入札案件の要件定義を自分たちで書き出すのと、見通してとしての計画を立てておきます。このあたりは、経験が必要なので IT 業界で2,3年では難しいかもしれませんが、逆に言えば非ITの実務業界としては、このあたりがスタート地点になりますよね。さらっと、A4 の用紙に1枚で書けるようになるといいです。
で、これはたたき台なので、その前身として AI を使ってもかまいません。ただし、AI の提案するプランはフルスペックなものが多いので、適度に端折らなければいけません。いわゆる、適度な予算で組めるような計画を立てないいけないのです。コツとしては、松竹梅で作っておいて、竹になるように工夫するわけですが、そのあたりは別のノウハウですね。
軽く「進め方」を書いてありますが、これは非 IT 業界の人でも可能です。
- なんらかの形で「成果物報告書」を収集する(手作業でも可)
- なんらかの形で「成果物から内容をピックアップする(手作業…というか、人が読むのも可)
というわけで、大抵は人手で頑張ります。基本 IT 屋さんも人手に頼るところもあるのですが、そこは IT 業界の強みとして、何らかのツールを使って高速化/省力化していきたいです。さらに言えば、AI エージェントなどの力を借りて、労力を下げたり、ひとよりも精度をアップさせたいわけです。そこが、非 IT の人との差別化になりますよね。IT に関してはプロなわけですから、道具を活用できるように少し頭を働かせてみようというわけです。
Plan.md を作成する
では、vscode + copilot を “plan” モードに切り替えて、データ収集とまとめのプランを立てて貰いましょう。

Plan モードって、手順を作るモードじゃなくて手順通りに進めるというモードなんですかね?このあたりが不明だけど、まあ、リンク先のファイルを読み込んで「19自治体の成果物」ってのは、たしかに正確ですね。

impliments とeditor があるので「editor」を選択しました。多分、impliments は即実行してしまうので危ういです。いったん editor で plan.prompt.md を確認しておきましょう。
# Plan: 幼保小の架け橋プログラム調査研究のまとめ
readme.md の目的を達成するため、19自治体の成果報告書(PDF形式)を収集・整理し、ピックアップ項目に基づいて上位5件を選定、最終レポートとしてPDFにまとめる計画です。
---
## Steps
1. **フォルダ構造の作成** - `data/`(年度別PDF保存用)、`analysis/`(比較分析用)、`output/`(最終成果物用)を readme.md と同階層に作成
2. **PDF一括ダウンロードスクリプトの作成** - 令和5年度・6年度成果報告書、中間報告会資料、事業成果報告会資料を19自治体分(計約70〜100ファイル)を自動取得するPowerShellまたはPythonスクリプトを作成
3. **基本情報収集シートの作成** - 19自治体(北海道、岐阜県、滋賀県、広島県、山口県、高知県、大館市、白石市、西会津町、川越市、横浜市、袋井市、掛川市、京都市、枚方市、箕面市、津和野町、高松市、竹田市)の総人口・施設数をExcel/CSVにまとめる
4. **ピックアップ項目の抽出と比較表作成** - 各報告書から「主旨との整合性」「成果」「次回課題」「カリキュラム・ワークシートのリンク」を抽出し、`analysis/summary.xlsx`に一覧化
5. **スコアリング基準に基づく上位5件の選定** - 先進性、エビデンスの質、再現可能性、地域特性の多様性を考慮して評価・ランキング
6. **最終レポートPDFの作成** - ピックアップ項目単位の目次構成で、選定した5自治体の詳細分析をまとめてPDF化
---
## Further Considerations
1. **PDFテキスト抽出ツールの選定** - 手作業で読み込むか、PyMuPDF/pdfplumberで自動抽出するか?(自動化推奨:19自治体×複数ファイル)
2. **評価基準の重み付け** - 「主旨との整合性」「成果の具体性」「課題の明確さ」のどれを優先するか?事前に決定が必要
3. **年度の扱い** - 令和5年度と6年度の両方を分析対象にするか、最新の6年度(最終年度)のみに絞るか?
---
## 対象自治体一覧(19自治体)
### 県レベル(6件)
| 自治体 |
|--------|
| 北海道 |
| 岐阜県 |
| 滋賀県 |
| 広島県 |
| 山口県 |
| 高知県 |
### 市町村レベル(13件)
| 自治体 | 所在県 |
|--------|--------|
| 大館市 | 秋田県 |
| 白石市 | 宮城県 |
| 西会津町 | 福島県 |
| 川越市 | 埼玉県 |
| 横浜市 | 神奈川県 |
| 袋井市 | 静岡県 |
| 掛川市 | 静岡県 |
| 京都市 | 京都府 |
| 枚方市 | 大阪府 |
| 箕面市 | 大阪府 |
| 津和野町 | 島根県 |
| 高松市 | 香川県 |
| 竹田市 | 大分県 |
---
## 推奨フォルダ構造
```
h:\ai-plan-junior-school-research\
├── readme.md
├── data\
│ ├── r5_reports\ # 令和5年度成果報告書
│ ├── r6_reports\ # 令和6年度成果報告書
│ ├── interim_reports\ # 中間報告会資料
│ └── final_reports\ # 事業成果報告会資料
├── analysis\
│ └── summary.xlsx # 比較分析シート
└── output\
└── final_report.pdf # 最終成果物
```
---
## 収集元URL
- 幼保小の架け橋プログラム:https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00002.htm
- 中間成果報告会発表資料:https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00029.htm
- 令和5年度成果報告書:https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00028.htm
- 事業成果報告会(令和7年2月10日):https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00035.htm
フォルダーの構成とかを作ってくれますね。このあたり、非IT業界だと日本語で作るところですが、IT屋さんとしては Python をあたりを使って自動化したいところなので、このまま使います。多分、フォルダ構成を日本語に直しても AI エージェントのほうでうまくやってくれるはずです。
Steps が具体的な手順で、Further Considerations が設定しなければいけない要素ですね。対象自治体一覧はサイト https://www.mext.go.jp/a_menu/shotou/youchien/1258019_00035.htm をざっと見て確認しておいてください。うまく抽出できている模様です。これは文部科学省のサイトがうまく構造化されているということですね。場合によっては、このあたりが読み込めないサイトもあるでしょうから注意が必要です。たぶん、JavaScript を利用した CSR のサイトは難しいので、そのあたりは手作業が必要かもしれません。
Further Considerations に追加する
## Further Considerations
1. **PDFテキスト抽出ツールの選定** - 手作業で読み込むか、PyMuPDF/pdfplumberで自動抽出するか?(自動化推奨:19自治体×複数ファイル)
Python の PyMuPDF を使って自動収集する
2. **評価基準の重み付け** - 「主旨との整合性」「成果の具体性」「課題の明確さ」のどれを優先するか?事前に決定が必要
「成果の具体性」を最優先にして評価を行って。
3. **年度の扱い** - 令和5年度と6年度の両方を分析対象にするか、最新の6年度(最終年度)のみに絞るか?
令和5年度と6年度の両方を分析対象にして。
たぶん、それぞれの項目に設定値を書いておけばいいはずです。このあたりは、うまく AI エージェントが読み取ってくれます。
この後、Plan で動かすのか Agent で動かすのかが不明なのですが、Plan モードにしたままで、Plan.prompt.md を実行してもらいましょう。

ここでは「Start Implimentation」のボタンをクリック…できあがるのかな?
自動承認を有効にするか?
vscode + copilot で動かしたときに、Allow ボタンがでて、いちいちステップ実行の確認を取ります。これ、真夜中に動かしたいばあいは「自動承認」と言う形でやってしまうのがいいのですが、現時点では悪意ある MCP の防御ができなかったり、サイトの読み込み時に不備が発生しそうなので、人間がいちいち承認するほうがよいです。

何回か同じプロンプトを動かして、安全とわかっている場合にはいいのですが、最初に動かすプロンプトの場合は要注意かなと。
あと、このスクリプトのままだと Python の仮想環境を AI エージェントが作るので初期設定がちょっと面倒ですね。Python の仮想環境だけは、あらかじめ手作業で作っておいたほうがよさそうです。
ダウンロードスクリプトとか、もうベタに作ってくれます。
# -*- coding: utf-8 -*-
"""
幼保小の架け橋プログラム - 成果報告書PDFダウンロードスクリプト
文部科学省の成果報告書ページから19自治体分のPDFを一括ダウンロードします。
"""
import os
import requests
from pathlib import Path
from urllib.parse import urljoin
import time
# ベースURL
BASE_URL = "https://www.mext.go.jp"
# 保存先ディレクトリ
DATA_DIR = Path(r"h:\ai-plan-junior-school-research\data")
# 令和5年度成果報告書(2024年7月9日公開)
R5_REPORTS = {
"北海道": {
"成果報告書": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-1.pdf",
"カリキュラム": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-2.pdf",
"成果物": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-3.pdf",
},
"岐阜県": {
"成果報告書": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-4.pdf",
"カリキュラム": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-5.pdf",
},
"滋賀県": {
"成果報告書": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-6.pdf",
"カリキュラム": "https://www.mext.go.jp/content/20240709-mxt_youji-000023526-7.pdf",
},
...
見ると分かるのですが、ファイル名がべた書きですよね。これはこれでいいのです。治具=使い捨てのツールとして、Python スクリプトが用いられているわけで、これをファイルから読み込むとか何かの設定から読み込むとかしなくて十分なのです。ダウンロードスクリプトなんて1回しか動かさないし、ファイル名なんて固定で良い訳です。
これがプログラマだったり、プログラムを外注したりするとあれこれと設計やら打合せが必要になるのですが、AI エージェントががりがりとベタで作ってくれるので、その分手間が省けます。逆に言えば、ちょっと修正したい場合(自治体を増やしたい場合とか)は、Plan.prompt.md に自治体とリンク先を追加して、もういちど AI エージェントを使って実行して貰えばいいのです。
このあたりの繰り返しが非常に高速になったのが AI エージェントの利点です。どこのブログだったかツイートだったか忘れましたが「ウォーターフォール開発のプロセスを 15 分で廻せるようになった」のが大きいです。いままでは、この部分をアジャイル開発だとか計画駆動とかで設計を練る、あるいは動作させてから考え直す、というループが必要だったのですが、AI エージェントがすべてをやり直してくれるので「高速にまわる計画駆動」ができるようなったのが大きいですね。
まあ、この部分はPDF のダウンロード&分析という比較的やりやすいところをターゲットにしているので AI エージェントが有効に働きますが、これが部品の品質点検&改良とか、食品加工での調味料の組み合わせ試験、とかになると AI エージェントだけでは回らないので工夫が必要です。そういうときは別な計画が必要になります。他にも、組み込み機器で実測とか、Android 機器の BLE 相性あわせ(これをやっている)とかは AI エージェントだけでは回りません。
分析の完了
さて、2時間ほど掛かりましたが分析レポートが作成されました。

このレポートの点数付けは analyze_reports.py の analyze_report 関数で計算しているので、単純な加点形式なのですが、ひとまず下調べとしてはよいでしょう。
def analyze_report(municipality: str) -> dict:
"""
自治体の成果報告書を分析する
Args:
municipality: 自治体名
Returns:
分析結果の辞書
"""
result = {
"自治体名": municipality.replace("_", "(") + ")" if "_" in municipality else municipality,
"成果報告書": "",
"主旨との整合性": "",
"主な成果": "",
"次回の課題": "",
"カリキュラム・ワークシート": "",
"成果の具体性スコア": 0,
"備考": ""
}
# 令和5年度成果報告書を読み込む
r5_report_path = DATA_DIR / "r5_reports" / f"{municipality}_成果報告書.pdf"
r5_text = ""
if r5_report_path.exists():
r5_text = extract_text_from_pdf(r5_report_path)
result["成果報告書"] = "あり"
else:
result["成果報告書"] = "なし"
result["備考"] = "令和5年度成果報告書が見つかりません"
本来ならば、ピックアップしたい用語などを含めて PDF を OpenAI API に流し込んで、AI にスコア判定をさせる方法がよいです。これをやるためには、plan.prompt.md を書き変えて、評価の重みづけをするツールを Python スクリプトを作るのがよいです。このあたりは、プログラマの領分になってしまうので、またの機会にしましょう。
スコア計算のツールを AI エージェントを使って作るればいいだけなのですが、プロンプトの作成と OpenAI の API キーコードが必要になってしまうので、ちょっと非 IT 業界の人には荷が重いかもしれません。このあたり、自動化をしないのであれば、ChatGPT に PDF を手作業で突っ込みながらも可能なので、要件自体は満たせます。

final_report.md を python の md-to-pdf を使って PDF ファイルに直したものです。スコアをどう見るかは、中身に確認していかないと駄目なのですが、下調べ段階としてはこれで十分でしょう。すべてを調ベルのは大変なので、優先度としてスコアの高いものから順にチェックしていけばいいのです。そこは AI の判断を信用するかどうかは別なのですが。
まあ、こんな感じで非 IT 業界でも vscode + copilot の AI エージェントを使って資料作成とか情報収集とかができるようになりますよ、という例です。特に、この手のツールをを外注したり自前で時間をかけて作る必要がなくなるのが良いかなと。Plan のほうは、自分で計画立てないと途中で頓挫しそうですが、少しは頼りになるでしょう。
参考先
https://github.com/moonmile/ai-plan-junior-school-research
追記 OpenAI API を使う
もう少し実用的な例を含めてみようと思って、OpenAI API を使ってそれぞれの報告書のスコアを出してみましょう。
Plan.prompt.md に新しい評価基準を追加します。
### 評価基準(成果の具体性スコア: 最大100点)
評価基準関数 analyze_report を OpenAI API を使って再実装する
- analyze_report_ai 関数とする
- 成果報告書の有無 20点
- 主旨との整合性 20点
主要キーワードが上手く織り込まれているかをチェック
- 主な成果 20点
成果の主張や具体的なデータ・事例の提示がされているかをチェック
- 次回の課題 20点
問題点を明らかにして、次回以降の課題が具体的に締召されているかをチェック
- カリキュラム・ワークシートの有無 20点
カリキュラムやワークシートのリンクが提供されているかをチェック
この内容を OpenAI のプロンプトと成果物の文書を一緒に渡して、評価結果を返して貰う事になります。以前は、システムプロンプトを作ったり、OpenAI API を呼び出す関数を作ったりと色々大変でしたが、いまでは AI エージェントが適切なコードを作ってくれます。

ここからはプログラマの領域に踏み込むので、非 IT 業界の方には少し辛いかもしれませんが、大丈夫です。概ねは AI エージェントがやってくれます。が、一発ではうまく動かない(大抵は JSON 形式が喰い違ってうまくいかない)のですが、これも AI エージェントが少しずつ直していってくれます。
このあたりが、AI エージェントが Excel VBA のように一般に広まるかどうかの肝ですね。いわゆる、バグ直しをしないといけないので、これは従来のプログラミングとほとんど変わりません。コードを書かない代わりに、不具合を見つけてうまく AI に指示を出すとか、自分が納得できるまで AI エージェントを働かせ続けることが必要になります。つまりは、根気がいるわけですが…ここはちょっと分かりません。私はプログラマなので慣れているのですが、一般の人はどう思うのか?
結果として、こんな風に Excel 形式で分析結果がでます。

それぞれのスコアもそれっぽく出ているので、プログラムの動きとしては問題なさそうです。
システムプロンプトに関しては、以下のようになっているので、この内容を書き変えれば別の評価基準になります。
# OpenAI クライアント(環境変数 OPENAI_API_KEY を自動的に使用)
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# 評価プロンプト
EVALUATION_PROMPT = """あなたは「幼保小の架け橋プログラム」の成果報告書を評価する専門家です。
以下の自治体の成果報告書を評価してください。
## 評価対象自治体
{municipality}
## 成果報告書の内容(抜粋)
{report_text}
## カリキュラム・成果物の有無
{materials_info}
## 評価基準(最大100点)
以下の5つの観点で各20点満点で評価してください:
### 1. 成果報告書の有無・充実度(20点)
- 成果報告書が存在するか
- 報告書の内容が充実しているか
- 構成が整理されているか
### 2. 主旨との整合性(20点)
以下の主要キーワードが適切に織り込まれているかをチェック:
- 架け橋期、5歳児、小学校1年生
- 連携、接続
- 主体的、対話的、深い学び
- 多様性、学びの基盤
### 3. 主な成果(20点)
- 成果の主張が明確か
- 具体的なデータや数値が提示されているか
- 実践事例が具体的に記載されているか
- エビデンスに基づいた成果報告になっているか
### 4. 次回の課題(20点)
- 問題点が明確に示されているか
- 次回以降の課題が具体的に提示されているか
- 改善に向けた方向性が示されているか
### 5. カリキュラム・ワークシートの有無(20点)
- カリキュラムが提供されているか
- ワークシートや成果物が提供されているか
- 他自治体でも活用可能な形式か
## 出力形式
以下のJSON形式で回答してください(コードブロックなしで純粋なJSONのみ):
{{"成果報告書スコア": 15, "成果報告書評価": "評価コメント", "主旨整合性スコア": 18, "主旨整合性評価": "評価コメント", "成果スコア": 16, "成果評価": "評価コメント", "課題スコア": 14, "課題評価": "評価コメント", "成果物スコア": 12, "成果物評価": "評価コメント", "総合スコア": 75, "総合評価": "総合的な評価コメント", "主な成果要約": "成果の要約(200文字以内)", "主な課題要約": "課題の要約(200文字以内)"}}
"""
いままで、このプロンプトを書くのが大変で「プロンプトエンジニアリング」と呼ばれていたものですが、こんな風にレポートを出したり要約を出す程度であれば、AI エージェントが作成してくれるプロンプトで構いません。それほど手を入れなくて済みます。
まあ、謎な画像AIのプロンプトならば別なのでしょうが、OpenAI API などを使って AI とやり取りするための JSON 形式や内容を変換するようなプロンプトをを作る場合には AI エージェント自身に作成してもらったほうがいいでしょう。
コード自体は、https://github.com/moonmile/ai-plan-junior-school-research/tree/openai のほうにブランチ openai にしておくので、そこからダウンロードしてください。

レポートを見ると、分析手法が書いてあります。成果の具体性スコアも変わっています。これれは、実際に報告書を読んで人間が判断する必要があります。
