-- Views
August 08, 26
スライド概要
山梨のPythonコミュニティ「Shingen.py」が主催する、初心者歓迎のもくもく開発会 (2026.08.08) の資料です。
今回は、山梨県のオープンデータ「やまなしデータプラットフォーム」や「山梨県オープンデータカタログサイト」を題材に、LLMやAIコーディングエージェントを活用しながら、アイデア出しからプロダクト開発まで取り組みました。
事業会社で働くソフトウェアエンジニアです。 (C, C++, Python, C#, VB.NET, TypeScript, etc.) Shingen.py で 地域のPythonコミュニティ活動に参加しています。 https://shingenpy.connpass.com/
SHINGEN.PY もくもく開発会 AI AGENT MVP GUIDE 2026 AIエージェント駆動開発 の進め方 (3 時間で動く MVP を作ろう ) コードを書かせる前に、目的・データ・完成条件を決め 2026.08.08 Hiroki Abe よう (SSoT)
こんにちは、 Shingen.py です 2019 年1月から、学び合いと地域連携を続けています 2019.01 山梨でスタート 学び合い 互いにインプット/アウトプット 01 OPEN DATA ユニーク参加者 イベント開催 111 回 165 名 山中湖 2024 年〜 開発合宿も開催 山梨県主催AIハッカソンを毎年サポート
SHINGEN.PY 自己紹介 あべ ひろき AIエージェント駆動開発でつくったもの x 組込みソフト開発、生産技術、新 規事業開発を経て、現在はソフト ウェアエンジニアです。 個人でも各種アプリ開発に取り組んでい ます Tech News Radio 海外テックニュースを 10 分で。毎朝、厳選した注 目ニュースをラジオ形式の Podcast と記事で自動 配信。 FY24 の山梨AIハッカソンのテーマから着 想 (山梨観光ラジオ )。 指定メディアから情報収集 → ブログ化 → 2 人の 掛合ラジオ台本 → 音声化 (Text to Speech) → 著 作権・免責・事実検証 に配慮し安全寄りに配信 するパイプラインシステムです。 02 SELF INTRODUCTION 記事・ Audio
OPEN DATA SHINGEN.PY 山梨オープンデータ について 03 YAMANASHI OPENDATA
OPEN DATA SHINGEN.PY 山梨のオープンデータは 2種類あります 用途とファイル形式で、探す場所を選びます 01 02 やまなし データプラットフォーム 山梨県オープンデータ カタログサイト カテゴリ・地域・更新順で探せる CSV / Excel、ダッシュボード、 API カテゴリ・形式・組織・更新日で検索 CSVから PDFまで、掲載対象が幅広い 試作を始めやすい入口 行政データを広く探す入口 まずは CSV / XLSXを 1件選び、中身を見 てみましょう。 データ自体を AIに探させる手もあります。 05 OPEN DATA SHINGEN.PY
DATA PLATFORM SHINGEN.PY まずデータプラットフォーム 県・市町村のデータを、検索・可視化・ 探し方 01 カテゴリ CSV XLS XLSX 地域 市町村から探す 03 API で活用 使いやすい理由 人口・経済・教育など 02 をオススメします 更新順 ダッシュボードで全体像を確認 ツキノワグマ目撃情報 / 市町村別人口 / イベント情報 など 最近のデータを見る API は開発者ポータルで事前申請 が必要ですが 今回は勉強会向けに使えるキーがあります! 06 DATA PLATFORM SHINGEN.PY
CATALOG SITE SHINGEN.PY 幅広く探すなら県のカタログサイト 約9,800 件を、条件で絞って検索できます( 検索条件 2026.08.06 時点) アプリに使うときの近道 キーワード カテゴリ ライセンス データ形式 更新日 組織 CSV / XLSX 表として読み、検索・集計しやすい PDF 変換や手入力が必要な場合がある HTML / DOC 元ページと更新日を確認して使う 最初に「データ形式」で絞ると迷いにくい 07 CATALOG SITE です SHINGEN.PY
BEFORE USE SHINGEN.PY 使う前の確認事項 つぎの 4点に注意してください 01 出典・規約 02 更新日・対象期間 URLと利用日を記録 加工したら「加工して作成」と明記 03 構造・品質 最新とは限らない 年度・地域・集計単位を確認 04 API ・保存 列名・単位・文字コード 欠損・重複・表記揺れを確認 データ名・出典 URL ・取得日・加工内容を 08 BEFORE USE APIは事前申請を確認 元ファイルと取得日を残す プロジェクトの DATA.md (後述)に残しましょう SHINGEN.PY
SHINGEN.PY MVP 開発・ AIエージェント駆動開発 のポイント 09 POINT
GOAL SHINGEN.PY MVP は1つの利用場面が動くこと を目指そう 01 1人の 利用者 誰の問題を解く ? 02 + 1つの データ 何を事実として使う? 03 + 1つの 操作 = 動く MVP 何が実際に動く? 全部入りより 、 デモできる一本 10 GOAL SHINGEN.PY
SCOPE SHINGEN.PY 横に広げず、 縦に1本 未完成の5機能 完成した 1操作 地図 45% 検索 30% お気に入り 15% ログイン 5% データを読む 条件で絞る 1件表示する 出典を表示 0% 通知 実際に操作 どれもデモできない 未完成の5機能より、完成した 1操作 11 SCOPE SHINGEN.PY
AGENT -DRIVEN SHINGEN.PY AIが一貫して作業できる環境をつくる 雰囲気での依頼 (Vive Coding) 「地図アプリを 作って」 コードが出る 動作確認は人任せ 前提が会話に埋もれる 12 AGENT -DRIVEN AIエージェント駆動開発 (作業ループ) 調 査 計 画 実 装 実 行 検 証 記 録 01 02 03 04 05 06 AIを コード生成 者 ではなく、開発チーム の一員として扱 いましょう SHINGEN.PY
ROLES SHINGEN.PY 監督・ 判断は人間、作業は AI 人間が決める AIに任せる WHO / WHY / DONE RESEARCH / BUILD / VERIFY 01 誰の問題を解くか 02 何を正しいとするか リポジトリとデータを調査 実装計画をつくる コードとテストを編集 03 どこまで作れば完成か 04 どのリスクを許容するか 実行結果を確認 README と記録を更新 人間が基準を 厳密に決めるほど、 AIの作業は安定します 13 ROLES SHINGEN.PY
FACTS SHINGEN.PY 画面より先に、データと完成条件を データを確認 決める SSoTを保つための完成条件を設定 Single Source of Truth 施設名 住所 緯度 更新日 A公園 甲府市… 35.66 8/1 B施設 笛吹市… — 7/15 C広場 北杜市… 35.88 6/30 D館 出所 甲斐市… 構造 35.71 品質 PROJECT.md 事実を 1枚に 解決したい問題 誰が、どんな場面で困る? MVP 今回動かす1つの利用場面 使用データ 提供元・ URL・更新日・条件 完成条件 確認できる条件を 3〜5個 今回やらない ログイン・課金・高度な推薦 — 利用条件 … AIと人間が、同じ前提を 共有する ファイルを作ります 14 FACTS SHINGEN.PY
PLAN SHINGEN.PY 最初は「作って」ではなく「調べて AIへの最初の依頼 まだ実装しないでください。 1. データ構造と品質を確認 」 から 合意のゲート 調査 データの事実 計画 小さな手順 合意 人が確認 実装 ここで初めて着手 2. 2 時間で作れるMVPを提案 3. 必要なファイルと手順を整理 4. 不明点と仮定を分ける 5. 完成条件を具体化 調査 → 計画 → 合意 → 実装 15 PLAN SHINGEN.PY
SHINGEN.PY AIエージェント駆動開発用 テンプレート 16 PLAN
SHINGEN.PY テンプレートを テンプレートを複製して つかってはじめましょう 始める作りになっています 。 導入は3段階 Template 1 2 03 複製 確認 開発を始める CLONE CONFIRM INITIAL_PROMPT Git Clone もしくは Zip を取得 README.md を確認 repository AIエージェント開発の 簡易版テンプレート 1人の利用者が、 1つのデータを使 い、 1つの操作を最後まで行える MVP 」を作るための出発点です gh : shingen - py /template_20260808 17 STARTER KIT 新しい MVP の作成へ この テンプレートはあくまで例で利用は必須ではありません。自分のスタイルで 進めて構いません !テンプレート はPython 前提の構成になって います 。 また、本格的な開発に不足する要素 があります (CI/CD, 品質ゲート , アーキテクチャ規定等 )
SHINGEN.PY Sample MVP サンプルプロジェクトを見てみましょう テンプレートから作った、山梨のオープンデータ活用 MVP です。 主要操作は3ステップ Sample 1 2 3 repository 山梨クマ 目撃マップ Web site 山梨県内のクマ目撃情報を 、 期間と市町村で絞り込み 、 地図で確認できるサンプルです 。 (Claude Code, Opus 5 (Max) gh:shingen で作成) - py/sample_20260808 実際に公開するときは、プ 18 STARTER KIT 期間を選ぶ 市町村を選ぶ 地図で確認 FILTER PERIOD SELECT AREA VIEW MAP 直近7日・ 30 日/ 今季/すべて 件数を見ながら 地域を絞る 日時・場所・状況・ 出典を確認 テンプレートから作った「縦切り MVP 」の実例です。 1人の利用者 × 1つのデータ × 1つの主要操作 山梨県のオープンデータを加工して使用。 位置は目安/危険度判定なし/リアルタイムではありません。 ライバシーポリシ ー/免責事項/連絡先を確認! | 有料機能:特定商取引法に基づく表示義務を確認 ! github.com/shingen - py/sample_20260808
FILE MAP SHINGEN.PY PROJECT → DATA → TASKSの順で決めましょう 3文書が確定すると、 AIが迷わず実装できます PROJECT.md DATA.md TASKS.md 01 02 03 誰の何を作るか 何を事実として使うか 次に何をするか ベースとなる 文書(作成済み) 19 FILE MAP README.md AGENTS.md (CLUADE .md ) PROMPTS.md tests/ 人間向けの手順 AIの作業ルール 順番に使う依頼文 自動確認 SHINGEN.PY
FIRST PROMPT SHINGEN.PY AIとの壁打ちで PROJECT.md を決める AIに実装を頼む前に、 1問ずつ質問してもらいます (PROMPTS.md から下記をコピペします ) このテンプレートを使って、新しいMVPを作ります。 まだコードやファイルは変更しないでください。 付属サンプルを、私が作りたいMVPだと解釈しないでください。 私が作りたいものは 「[作りたいものの一言説明]」です。 PROJECT.mdを決めるため、 一度に1問ずつ質問してください。 AIが聞く 6つ 1 誰が使う? 2 いつ困る? 3 どのデータ? 4 1つの操作は? 5 何が分かれば成功? 6 今回は作らないもの? 案を見てから、反映を頼む 20 FIRST PROMPT SHINGEN.PY
PROJECT SHINGEN.PY PROJECT.md で決めるもの MVP の骨格になります 01 04 プロジェクト名 02 使うデータ 05 対象利用者 03 1つの操作 06 困る場面 成功した状態 AIが案を提示 → 人間が確認 → 「 PROJECT.md に反映してください 21 PROJECT 」 SHINGEN.PY
DATA SHINGEN.PY DATA.md を決める モデル /ハーネスによっては PROJECT.md を作 るチャットで DATA.md/TASKS.md の作成まで 進む場合があります。 DATA.md は、データの事実と扱い方を決めます PROJECT.md の次に、 AIから 1問ずつ聞いてもらいます 出所と利用条件 1 データ名 / 提供者 2 サンプル or 実データ 3 取得元URL / ライセンス 4 取得日 / 更新頻度 5 画面に表示する出所 列とエラーの扱い 列名|必須|意味|例|使う場所 ファイル名・形式・文字コード 最初は5〜20件 欠損 / 重複 / 表記揺れ 0件・列不足・読込失敗 実データの利用条件と出所は、人間が元サイトで確認 22 DATA SHINGEN.PY
TASK PLANNING SHINGEN.PY TASKS.md は、 AIの案を人間が確定する ZIP を開いただけでは、自分の MVP 用タスクは生成されません PROJECT + DATA AIが提案 人間が確認 AIが反映 人間が確定 まだ編集しない 範囲・順番・完成条件 doing は1件 AIに渡す条件 PROJECT.mdとDATA.mdを読み、TASKS.mdの案を作ってください。 1タスク30分以内 / 完成条件つき / データ処理と画面を分ける / テストと出所を含める / 3時間で終わらない機能は入れない / まだ編集しない。 確認後:「この案を 23 TASK PLANNING TASKS.md へ反映してください」 SHINGEN.PY
ONE TASK LOOP SHINGEN.PY TASKS.md のタスクを 1件ずつ進める 予定 → 変更 → テスト → 人間の確認を、短く繰り返します そのまま使える依頼文 AGENTS.md に従って、 TASKS.md の [T-xxx] だけを実行。 最初に予定を3項目以内で説明。 変更後は自動テストを実行。 画面で確認する操作を3つ以内で報告。 最後に TASKS.md を更新。 1 2 3 4 予定 変更 テスト 確認 T-003 CSV読込を変更 完成条件:テストで確認できる doing は同時に1件だけ 24 ONE TASK LOOP SHINGEN.PY
ONE TASK LOOP SHINGEN.PY 完成の確認ポイント 動く・使える・説明できる、がそろったら 01 MVP 完成です 02 03 自動テスト 人間が画面操作 1分デモ データ処理 構文チェック 主要操作・ 0件 出所・エラー案内 誰のため / データ 操作 / 残したこと 未完成は todo / blocked として残す 25 DEFINITION OF DONE SHINGEN.PY
SHINGEN.PY Shioji 上級者向けテンプレート 仕様は変わっても、 AIエージェントが通る “航路”は同じにする 長時間、仕様を逸脱せずに自走させたいときにおすすめ 導入は3段階 潮路 01 骨格と仕様を分け、人間の確定を明示する 02 03 shioji AIエージェント開発の プロセスひな型 何を作るか プロジェクトごと どう作るか Shioji で共通化 gh:hroabe / shioji 26 AI AGENT- DRIVEN DEVELOPMENT 骨格を写す 仕様を注ぐ 開発を始める COPIER INCEPTION_PROMPT INITIAL_PROMPT 生成直後から CIを通す 提案を作り 人間が確定 単発または 自走モード 文書だけでなく、守らせる仕組みまで配る SSoT 文書レイヤ 検証ゲート 自走モード 上位は人間専管 下位はAIが更新 local ・ pre -commit ・ CI を同じ規則で実行 記録・停止条件・ 人間ゲートを標準化 github.com/hroabe/shioji
START KIT SHINGEN.PY それでは開発に取り組みましょう! 以降の資料にもポイントをまとめています。 適宜ご参照ください。
RECOVERY SHINGEN.PY 詰まったら、足すより捨てる 症状 救済方法 ずっと設計中 サンプルデータ 1件で動かす エラー修正がループ エラー全文・環境・再現手順を渡す 見た目だけ完成 実データと完成条件で確認する 時間が足りない ログイン・通知・推薦を削る 残り 30 分になったら、新機能の追加を止める 10 | RECOVERY SHINGEN.PY
LOOP SHINGEN.PY 小さく変えて、毎回動かす 1回に1機能 大きな指示を一度で終わらせない 確認 計画 小さく 実装 起動 検証 記録 成功した状態を残す Git / TASKS.md / README ✓起動コマンドが成功 08 | LOOP ✓実データが表示 ✓結果と制約を報告 SHINGEN.PY
TIMELINE SHINGEN.PY もくもく会向け おすすめタイムライン 3つの節目で、完成へ寄せる 縦切りを実装 定義とデータ 安定化とデモ 調査 → 計画 → 起動 → 検証 誰 / データ / PROJECT.md README / 出典 / 制約 / 発表 0分 11 | TIMELINE 180 分 45 分 90 分 150 分 スコープ確認 一度起動 新機能停止 誰 / データ / 1操作 途中でも画面を見る 仕上げに切り替える SHINGEN.PY