アプリ開発・CI/CD・コンテナ
このセミナーは、計画ドキュメント(仕様書)をもとに実装する開発スタイルを前提としています。
参考記事: AI 協働で仕様書アレルギー克服!開発時間を 1 週間 →2 日に短縮する実践法
SDD(Specification-Driven Development)が注目される背景
なぜツールを限定しないのか
実践的なアプローチ
フロント・バックで独立に型定義を生成し、齟齬が発生
型定義が曖昧、エラーハンドリングが不十分
過去の実装を忘れ、一貫性のないコードが生成される
参照している情報があっても、更新を無視して生成してしまう
AI に全体像を一度に提供できる環境
ポイント: AI に「正しいコンテキスト」を提供する基盤を作る
モノレポで一元管理 → AI に全体像を一度に提供
参考記事: AI チャットで話すだけ!X 予約投稿を完全自動化するシステム構築術
コンテキストの分断
コンテキストの一元管理
ルート CLAUDE.md → プロジェクト全体像
サブディレクトリ CLAUDE.md → 各領域の詳細ルール
/docs/CLAUDE.md
/application/backend/CLAUDE.md
/application/frontend/CLAUDE.md
詳細: モノレポ ×AI 協業環境構築術
次のステップ
この基盤の上で、3 フェーズ開発を実践する
300 文字で意図を伝えるのは文豪でも困難
3 つのフェーズ
workspace/ ├── application/ # 実装コード(4つのアプリ) │ ├── frontend/ # Next.js 15 + React 19 │ ├── backend/ # NestJS 11 │ ├── x-scheduler/ # Azure Functions │ └── mcp-functions/ # Azure Functions ├── docs/ # 計画・知見 │ ├── features/ # 機能仕様書 │ ├── research/ # 実装レビュー │ ├── data/ # 調査データ │ └── templates/ # テンプレート ├── CLAUDE.md # ルートレベル設定 └── package.json # モノレポ設定
計画フェーズ
実装フェーズ
ディレクトリ = フェーズ
1 つの計画で複数アプリを編集
知見収集も統括的に
この基盤とワークフローの上で、型定義を自動化する
/application/backend/
/application/frontend/
AI は DTO クラスを編集するだけで、フロントエンドの型定義が自動更新されることを理解
自動生成パイプラインを構築しても、エラー型を定義しなければ型安全性が崩壊する
エラーレスポンスがany型になる
any
リンターエラーが大量発生
エラーハンドリングが作れない
RFC 7807(Problem Details for HTTP APIs)準拠
各エンドポイントでエラー型を明示的に定義
エラー型を定義しないと、自動生成パイプラインの恩恵が半減する
型安全性の崩壊
try { await api.createUser(data); } catch (error: any) { // errorが何を持っているか不明 console.error(error.message); // ↑ 実行時エラーの可能性 }
型安全なエラーハンドリング
try { await api.createUser(data); } catch (error: ApiError) { // errorの型が明確 console.error(error.detail); // ↑ IDEの補完が効く // AIも正しいコードを生成 }
人間が注力すべきこと
DTO レビューは必須
AI は自動生成だけ担当
結論: ちゃんと仕様書も作ろう!DTO の質の担保(レビュー)をしっかりと!
/** * DO NOT EDIT THIS FILE * * This file is auto-generated from OpenAPI specification. * If you need to make changes, edit the DTO in backend/ * and run `npm run generate:api` to regenerate this file. */
効果: AI がファイルを読んだ際に、編集してはいけないことを理解
## 自動生成ファイル 以下のファイルは自動生成されています。直接編集しないでください: - `lib/api/generated.ts` - `types/generated/` 変更が必要な場合: 1. `backend/` の DTO を修正 2. `npm run generate:api` で再生成
効果: AI が CLAUDE.md を読み込んだ時点でルールを把握
現実的な課題
対策:レビューで確認
.gitattributes
全自動生成の限界
パーツ提供の利点
ツール選定を間違えてはいけない
要件の理解と最適化
パーツ設計の品質管理
パーツの組み立て
なぜ粗悪なパーツだったのか
反省点 必要なものだけを高品質で提供することが重要。
mode: "single" → 直接エクスポート client: "axios-functions" → パーツのみ生成(型定義 + Axios 関数)
問題点
自動生成フック数: 41 個
改善点
自動生成フック数: 0 個
結果: 自動生成フック 41 個 → 9 個(必要な分だけ手動実装)
実測データ
Axios の関数がパーツとして提供されていた
Q: エラー型を定義しないとどうなりますか?
A: エラーレスポンスがany型になり、実行時エラーが頻発します。IDE の補完も効かず、型安全性が失われます。
Q: バンドルサイズは本当に削減されますか?
A: 実測で 20-30%削減を確認しています。不要な SWR フックを生成しないことで、大幅な削減が実現できます。
重要: 完璧を目指さず、小さく始めて効果を実感することが成功の鍵
RAG もどきでの効率化
参考記事: 検証 → 記事化で知見を資産化!Claude Code×RAG もどきで AI 技術ブログ執筆を効率化
目的
記録内容
変換プロセス
/docs/features/
/docs/research/
/application/
research-doc.md
no1-article.md
測定条件: 中規模記事(800-1000 行)での実測値
Before: 現象を後から眺めて「ブログ書くか」みたいな感じ
After: 検証の過程を全部ドキュメント化
結果: 検証を明確な意識を持って行うようになった
今日から始める環境整備で、AI 協働開発を加速させましょう
モノレポ ×AI 協業環境構築術 CLAUDE.md 階層構造、モノレポと AI 協業の相性、コンテキスト管理
明日から始められる 3 フェーズ開発手法 計画・実装・検証の 3 フェーズ詳細、フェーズ分離のメリット
AI 協働で仕様書アレルギー克服!開発時間を 1 週間 →2 日に短縮 仕様書ベース開発の効果測定、手戻り削減の実測データ
検証 → 記事化で知見を資産化!Claude Code×RAG もどき 4 フェーズワークフロー、RAG もどきシステム、記事執筆効率化
AI 開発で型定義を同期!DTO から OpenAPI・Frontend まで完全自動化 DTO → OpenAPI → Frontend 型定義の自動生成、エラー型設計の重要性
Orval 設定最適化でバンドル 20-30%削減! SWR フック自動生成からパーツ提供へ移行、47 ファイル移行で 70-79%効率化
SIOS Tech Lab(技術ブログ) AI 協業開発シリーズを連載中、実測データに基づく実践的な記事
本セミナーのスライド 本日の資料を Web 公開、SVG 図解もすべて利用可能