並列開発スキル
概要
大きな実装タスクを、ファイル単位の独立したタスクに分割する。 各タスクはコンフリクトなく並列実行できるように設計される。
原則
1. ファイル単位で分割
- •1タスク = 1ファイル(または強く関連する2-3ファイル)
- •同じファイルを複数タスクが編集しない
2. 依存関係を明確に
- •依存グラフを作成(A → B は「AがBに依存」)
- •依存がないタスクは並列実行可能
- •依存があるタスクは順次実行
3. インターフェース先行
- •trait/型定義を先に作成
- •実装は型が決まってから並列化
分割フロー
code
1. 機能を分析 ↓ 2. 関連ファイルをリストアップ ↓ 3. 依存関係を分析 ↓ 4. 独立タスクにグルーピング ↓ 5. 実行順序を決定(依存グラフから) ↓ 6. タスク定義を生成
タスク定義フォーマット
各タスクは以下の情報を持つ:
markdown
### Task: [タスク名] **ファイル**: [対象ファイルパス] **依存**: [依存するタスク名、なければ "なし"] **並列グループ**: [同時実行可能なグループ番号] **内容**: - [具体的な実装内容] - [期待される成果物] **入力(前提)**: - [必要な型定義やtrait] **出力(成果物)**: - [作成される型、関数、モジュール]
並列グループの概念
code
Group 1 (並列実行可能) ├── Task A: types.rs ├── Task B: error.rs └── Task C: config.rs Group 2 (Group 1 完了後) ├── Task D: lib.rs (A, B, C に依存) └── Task E: utils.rs (A に依存) Group 3 (Group 2 完了後) └── Task F: main.rs (D, E に依存)
出力形式
スキル実行後、以下を生成:
- •
タスク一覧ドキュメント (
docs/parallel-tasks-[phase].md)- •全タスクの定義
- •依存グラフ(Mermaid記法)
- •実行順序
- •
タスクエージェント用プロンプト
- •各タスクの具体的な指示
- •必要なコンテキスト
使用例
Phase 2 (embed-core + embed-ort) の分割例
code
Group 1 (型定義 - 並列) ├── embed-core/src/lib.rs # Embedder trait ├── common/src/types.rs # Embedding型 └── common/src/error.rs # EmbedError Group 2 (ユーティリティ - 並列) ├── embed-core/src/normalize.rs # L2正規化 └── embed-core/src/fusion.rs # ベクトル融合 Group 3 (ONNX実装 - 並列) ├── embed-ort/src/preprocess.rs # 画像前処理 ├── embed-ort/src/clip.rs # CLIP推論 └── embed-ort/src/mclip.rs # mCLIP推論 Group 4 (統合) └── embed-ort/src/lib.rs # エクスポート
注意事項
- •150-500行ルールを守る
- •型定義は必ず先行
- •テストは実装と同じタスクに含める
- •コンフリクト回避が最優先