# ssot-step08-05-builder > Step 08-05: 機能詳細ステップ → エンティティ・CRUDマッピング(外部オーケストレーター方式・トークン最適化版) - Author: Hiroshi Kataoka - Repository: pri-Kataoka-Hiroshi/kfc_generator2 - Version: 20260126232234 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/pri-Kataoka-Hiroshi/kfc_generator2 - Web: https://mule.run/skillshub/@@pri-Kataoka-Hiroshi/kfc_generator2~ssot-step08-05-builder:20260126232234 --- --- name: ssot-step08-05-builder description: | Step 08-05: 機能詳細ステップ → エンティティ・CRUDマッピング(外部オーケストレーター方式・トークン最適化版) location: managed --- # Step 08-05: 機能詳細ステップ → エンティティ・CRUDマッピング 機能詳細(`function_detail`)のメインフローステップ(`function_detail_step` where `flow_type = 'main'`)に対し、 どのエンティティ(`business_entity_master`)に対してどのCRUD操作を行うかを定義します。 **実行方式**: 外部オーケストレーター(各機能を独立したClaude Codeセッションで処理) ## トークン最適化 オーケストレーターが以下の情報を事前取得し、サブエージェントのプロンプトに埋め込みます: - **エンティティ一覧**: 1回取得 → 全機能で共有(69機能 × クエリ削減) - **機能ごとのメインフローステップ**: 事前にJSONファイルとして保存 これにより、サブエージェントはDBクエリを実行せずに処理可能となり、 1機能あたり約1,600-2,800トークンの削減を実現します。 **重要**: このマッピングは旧 `mapping_function_table`(機能→テーブル)の代替として設計されています。 機能定義時点ではテーブルは未確定のため、より上流のエンティティと紐付けを行い、 エンティティ→コンポーネント→テーブルの経路でトレーサビリティを確保します。 ## 対象テーブル - `mapping_function_step_entity` - 機能詳細ステップ-エンティティCRUDマッピング ## 前提条件 - **Step 07が完了していること**: 機能詳細(`function_detail`, `function_detail_step`)が定義済み - **Step 08-03が完了していること**: エンティティ(`business_entity_master`)が定義済み ## 出力ファイル - `SSOT_db/sql/step08_05/{func_cd}.sql` - 機能ごとのSQL - `SSOT_db/sql/step08_05.sql` - 統合SQL(`--merge` で生成) --- ## 実行方法 ### 基本コマンド ```bash # デフォルト実行(10並列) uv run python3 .claude/skills/ssot-step08-05-builder/scripts/orchestrate_step08_05.py # 順次実行(安定性優先) uv run python3 .claude/skills/ssot-step08-05-builder/scripts/orchestrate_step08_05.py --parallel 1 ``` ### オプション一覧 | オプション | 説明 | |-----------|------| | `--parallel N` | 並列実行数(デフォルト: 10) | | `--timeout N` | 1機能のタイムアウト秒(デフォルト: 900秒) | | `--dry-run` | 実行せず対象機能のみ表示 | | `--funcs FUNC_XXX,FUNC_YYY` | 特定機能のみ処理 | | `--retry` | 前回失敗した機能のみ再実行 | | `--skip-merge` | 最終マージをスキップ | | `-v, --verbose` | 詳細ログを出力 | --- ## サブエージェント情報 ### 名前 `step08-05-function-entity-map` ### 定義ファイル `agents/step08-05-function-entity-map.md` ### 処理フロー(サブエージェント内) ``` Phase 1: 情報収集 ├─ 対象機能の詳細情報(function_master, function_detail) ├─ メインフローステップ(function_detail_step) ├─ エンティティ一覧(business_entity_master) └─ 既存マッピング(重複防止) Phase 2: マッピング設計 ├─ 各ステップのstep_what/step_howを分析 └─ エンティティへのCRUD操作を特定 Phase 3: SQL生成・テスト(2サイクル) ``` --- ## 補助スクリプト(execute_step08_05.py) ```bash # 未処理機能の一覧を表示 uv run python3 .claude/skills/ssot-step08-05-builder/scripts/execute_step08_05.py --list-pending-functions # エンティティ一覧を表示 uv run python3 .claude/skills/ssot-step08-05-builder/scripts/execute_step08_05.py --list-entities # 機能のメインフローステップを表示 uv run python3 .claude/skills/ssot-step08-05-builder/scripts/execute_step08_05.py --func-cd FUNC_XXX --query # SQLファイルをテスト uv run python3 .claude/skills/ssot-step08-05-builder/scripts/execute_step08_05.py --func-cd FUNC_XXX --sql-file path/to/sql # 統合SQLを生成 uv run python3 .claude/skills/ssot-step08-05-builder/scripts/execute_step08_05.py --merge # 詳細出力 uv run python3 .claude/skills/ssot-step08-05-builder/scripts/execute_step08_05.py --func-cd FUNC_XXX --sql-file path/to/sql -v ``` --- ## ID採番ルール | エンティティ | プレフィックス | 例 | |------------|--------------|-----| | マッピング | `MAP_STEP_ENT_` | `MAP_STEP_ENT_USER_REG_001` | --- ## CRUD操作の判断基準 | ステップ内容 | 推奨CRUD | 例 | |-------------|---------|-----| | 登録・新規作成・追加 | C (Create) | 会員を新規登録する | | 取得・参照・表示 | R (Read) | 会員情報を取得する | | 一覧取得・検索 | R(List) | 会員一覧を検索する | | 詳細取得 | R(Detail) | 会員詳細を取得する | | 更新・変更・編集 | U (Update) | 会員情報を更新する | | 削除・取消 | D (Delete) | 会員を削除する | | 複合操作 | CRUD | 会員情報を一括同期する | --- ## SQL出力例(バルクINSERT形式) ```sql -- Step 08-05: 機能詳細ステップ → エンティティ・CRUDマッピング -- Function: FUNC_USER_REGISTER BEGIN TRANSACTION; -- ============================================= -- Step 08-05: 機能ステップ-エンティティマッピング -- ============================================= INSERT INTO mapping_function_step_entity (func_step_entity_map_cd, function_detail_step_cd, business_entity_cd, crud_type, description, status) VALUES ('MAP_STEP_ENT_USER_REG_001', 'STEP_USER_REG_MAIN_01', 'ENT_MEMBER', 'C', '新規会員レコードを作成', 'Draft'), ('MAP_STEP_ENT_USER_REG_002', 'STEP_USER_REG_MAIN_02', 'ENT_MEMBER_POINT', 'C', '初期ポイントを付与', 'Draft'), ('MAP_STEP_ENT_USER_REG_003', 'STEP_USER_REG_MAIN_03', 'ENT_LINE_USER', 'R', 'LINE連携情報を取得', 'Draft'); COMMIT; ``` **重要**: - 1テーブルにつき1回のINSERT文を使用し、VALUES句に複数行をカンマ区切りで記載 - カラム名の重複記載を避けることでSQLファイルサイズを削減 - 最後の行にはカンマを付けない --- ## バリデーション項目 1. **ステップ存在確認**: `function_detail_step_cd` が存在すること 2. **メインフロー確認**: ステップが `flow_type = 'main'` であること 3. **エンティティ存在確認**: `business_entity_cd` が存在すること 4. **CRUD値確認**: `C`, `R`, `U`, `D`, `CRUD`, `R(List)`, `R(Detail)` のいずれか 5. **重複チェック**: 同一ステップ・エンティティ・CRUD の組み合わせが重複しないこと --- ## トレーサビリティ ``` function_master ↓ (1:1) function_detail ↓ (1:N) function_detail_step (flow_type='main') ↓ mapping_function_step_entity (CRUD) business_entity_master ↓ mapping_business_entity_component system_component ↓ (将来的にテーブル定義と紐づけ) table_master ``` --- ## 次のステップ 完了後、Step 09以降で実装スケルトン(画面/API/テーブル/バッチ)を定義します。 --- ## リソース - **オーケストレーター**: `scripts/orchestrate_step08_05.py` - **サブエージェント定義**: `agents/step08-05-function-entity-map.md` - **補助スクリプト**: `scripts/execute_step08_05.py` - **コマンド定義**: `.claude/commands/step08-05.md`