公開デモを実機で確かめ、顧客ヒアリングメモから要件定義書・ER図・API仕様・シーケンス図を導く3時間。Day2の実装が走れる設計まで仕上げます。
本日のゴールと3日間の俯瞰を共有。[10分]
Claude Code 起動、配布物のCI緑、公開URL接続まで。[15分]
本物のシステムを動かして現状仕様と改善余地を掴む。[20分]
本編+補足を読み、要確認・矛盾・暗黙前提を抜き出す。[30分]
10分
Claude Code で MoSCoW 整理。数値要件の取りこぼしを検知。[35分]
ER図(Mermaid)と OpenAPI 3.0 YAML を起こす。[30分]
3ユースケースをシーケンス化、自分の目で設計を点検。[20分]
持ち帰る3点と次回への宿題。[10分]
3日間で何を作り、Day1で何を出し切るかを共有します。
| Day | テーマ | 主成果物 | 翌日への引き継ぎ |
|---|---|---|---|
| Day1(本日) | 要件定義・設計 | 要件定義書、ER図、API仕様、シーケンス図 | 設計が粗いと Day2で詰まる |
| Day2(5/21) | 実装・テスト | 動く FastAPI、ユニット+結合テスト | テスト薄いと Day3の CI で落ちる |
| Day3(5/28) | Docker・CI/CD | docker-compose、Actions 全ジョブ緑 | 本研修の到達点 |
[Q] を頭に付けて投げてください。エラーログ全文の貼り付け歓迎です。詰まった方には休憩時間も含めて個別フォローします。
JBS の EMU 組織配下にあるリポジトリで作業します。個人 GitHub への push は禁止です。clone 先のローカルフォルダ名は 0514-<EMUアカウント名> です。ハンズオンガイド中の 0514-21-28_配布 という表記は読み替えてください。
長い指示を一度に投げるより、短く区切って確認する方が出力品質が安定します。Day1は特に「生成→読み返して数値要件が消えていないか確認」の往復が重要です。
Givery 株式会社、安田 光喜です。AI 駆動開発研修を担当しています。本日もよろしくお願いします。
15分で Claude Code が起動し、配布物の CI が緑になり、公開デモにアクセスできる状態を作ります。
事務局共有の EMU 上 0514-<EMUアカウント名> リポジトリを VSCode で開いてください。未完了の方は GitHub の Fork ボタン → リネーム → 個別clone を実行。
プロンプト先頭に (.venv) が付いたら有効化成功です。
下記4つを順に実行し、すべて成功することを確認してください。Day1開始時点で CI が緑になる状態が用意されています。
VSCode の内蔵ターミナルで claude を実行。サインイン未完了なら claude /login でブラウザ認証を済ませてください。
起動したら最初の動作確認として、次のように打ってみてください。
Claude Code が CLAUDE.md を読み、技術スタックとディレクトリ構成を返してくるはずです。
ブラウザで下記を開いてください。Day1全体で参照します。
1画面目に8件のチケット一覧が表示されれば接続成功です。
claude コマンドでチャット起動20分使って本物のシステムを触り、現状仕様と仕込まれた改善余地を自分の言葉で把握します。Day2で何を作るかの解像度が上がります。
情報システム部長から「3日でプロトタイプを動かしてほしい」と依頼を受けたところです。手元には顧客ヒアリングメモがあるだけ。まずは前任が雑に作った既存システムを動かしてみて、改善余地を含めた現状仕様を掴むのが本日の入口です。
詳細は docs/project_overview.md を読んでください。
管理 UI の左ペインで状態フィルタを切り替え、8件のチケットがどう分布しているか観察。SLA違反 バッジが付いているチケットを2件探してください。
「VPN接続が突然できなくなった」をクリック。詳細ページのボタンで → in_progress → → resolved と順に変えてみてください。続いて → hoge を押すと、無効な状態に変わってしまいます。本来は弾くべき遷移です。
同じチケット詳細でコメントを追加。本文に <script>alert('x')</script> や、改行5行以上の長文、空文字を入れてみてください。すべて警告なしで通ります。
左ペインのフォームでタイトル空欄+本文空欄でも起票できることを確認。タイトルに1000文字以上を貼っても通ります。
/api/sla/violations を直接開いてください。実装が雑で、起票から1時間経つと自動で違反扱いになっています。本来は優先度別の SLA 時間を見るべきです。
/docs から GET /api/tickets/999 を実行。エラーレスポンスの形を覚えてください。続いて PATCH /api/tickets/999 でも404を出して、形が微妙に違うことに気づくはずです。
「これ大丈夫か」と感じた挙動を3つ以上、チャットに投稿してください。Session04のヒアリングメモ読解と突き合わせます。
30分使って docs/hearing_memo.md と docs/hearing_memo_supplementary.md を読み、論点を抜き出します。生成 AI に投げる前に、自分の頭で全体像を掴むのが目的です。
docs/hearing_memo.md を上から読みます。発言者ごとに困りごとの粒度が違うことに注目。部長は経営目線、リーダーは運用目線、ユーザー代表は現場目線です。
docs/hearing_memo_supplementary.md で、本編に書かれていた「要確認事項」がどう解決されているかを確認してください。SLA 時間表、再オープン可否、添付ファイル制限、SLA 違反通知方法の4点です。
docs/architecture_constraints.md を3分で確認。ピーク50ユーザー、レスポンス1秒以内、データ保持3年、認証は Entra ID(研修ではスタブ)。これらは要件定義書の非機能要件節にそのまま反映します。
自分なりに次の表を埋めてみてください。Markdown でも紙でも OK。これが Session05で Claude Code に投げる前提情報になります。
Session03で見つけた「これ大丈夫か」と、ヒアリングメモから読み取った「あるべき姿」がどう食い違っているか、対比表を頭の中で作ってください。これが Day2の実装で直す内容そのものです。
例: ヒアリングでは「状態遷移は単方向」「SLA 時間は優先度別」と言っているが、公開デモは「任意の文字列が status に通る」「SLA は起票から1時間で違反扱い」になっている。
下記は講師が想定する論点の一部です。自分の整理と比較してみてください。
35分使って Claude Code に要件定義書を起こさせ、自分の目で精査します。「生成→読み返し→修正指示」を3ループ回すのが目安です。
docs/requirements.md を空ファイルで作成。これから Claude Code がここを埋めていきます。
下記プロンプトをそのまま投げてください。CLAUDE.md の指示書を読んで、ヒアリングメモから要件定義書を起こします。
Claude Code は数値要件を抜かしたり、ヒアリングにない要件を勝手に追加することがあります。下記を読み返してチェックしてください。
気づいた点を箇条書きで指摘して修正させます。例:
各機能要件が「これだけでテストケースが書けるか」目線で読み直してください。書けない要件は曖昧な書き方になっています。Claude Code に「テストケースを書ける粒度に分解して」と頼んで詰めます。
30分でデータモデル(Mermaid ER図)と API 仕様(OpenAPI 3.0 YAML)を生成。Day2の実装はこの2つを正として進めます。
下記プロンプトで Mermaid の erDiagram を起こします。
状態遷移は要件定義の核です。open → in_progress → waiting_customer → resolved → closed の単方向、resolved → open の再オープン許可、closed は最終状態という制約を図示。
Claude Code が描いた図が要件と一致するか必ず確認してください。
下記の観点で読み返してください。
https://editor.swagger.io/ に貼って構文エラーがないか確認してください。Claude Code が出した OpenAPI は構文ミスを含むことがあります。
20分でシーケンス図3種を起こし、設計全体を Strict Reviewer モードで点検します。
Claude Code のチャットモードを strict-reviewer に切り替えます。
指摘を全て反映する時間はないので、致命的なものだけ直してください。軽微なものは Day2冒頭で扱います。
確定したら git に commit。
push したら自分の PR ページか Actions タブで CI が緑になることを確認してください(docs/ 配下のみの変更なので lint や test は影響しないはず)。
Day1で確定した成果物と、Day2までに各自で詰めておく宿題を整理します。
docs/requirements.md 要件定義書(MoSCoW、非機能要件、要確認事項込み)docs/data_model.md ER 図と状態遷移図docs/openapi.yaml API 仕様(エラーコード一覧含む)docs/sequence_diagrams.md 主要3ユースケースのシーケンス図Day2(5/21)は本日の設計を元に FastAPI + SQLAlchemy 2.0で実装します。テストカバレッジ80% を目標にし、CI 全ジョブを緑のまま保ちながら開発を進めます。事前に .github/chatmodes/strict-reviewer.chatmode.md と .github/instructions/sqlalchemy.instructions.md に目を通しておくとスムーズです。