parallel-feature-development) は何をしますか?
ファイル所有権戦略、競合回避ルール、およびマルチエージェント実装のための統合パターンを用いて、並行機能開発を調整します。大規模機能を独立した作業ストリームに分割する際、2つ以上のエージェントが同じシステムの異なるレイヤーを同時に実装する必要がある場合、共有コードベースでマージ競合を防ぐためのファイル所有権を確立する場合、インターフェース契約を設計して並行実装者が互いのAPIを完成前に利用できるようにする場合、またはフルスタック機能に垂直スライスと水平レイヤーのどちらを使用するかを決定する場合にこのスキルを使用します。
概要
並行機能開発は、複数のエージェントが独立して作業しながら、統合時に最小限の競合で済むようにするための構造化されたアプローチを提供します。このスキルは、機能を効果的に分割し、明確な所有権を確立し、シームレスな統合を保証するための戦略をカバーします。
主な戦略
1. ファイル所有権
各ファイルまたはディレクトリを1つのエージェントに割り当てます。競合を避けるために、異なるエージェントが同じファイルを同時に編集しないようにします。
- 所有権マッピング: エージェントごとに所有権が割り当てられたファイルのマッピングを作成します。
- 境界ファイル: 各エージェントが自分のファイルのみを変更することを保証します。
2. 競合回避
並行開発中のマージ競合を最小限に抑えるルールを定義します。
- 所有境界: ファイルの所有権を厳密に守ります。
- インターフェースファースト: 実装前にインターフェース契約に同意します。
- 段階的統合: 頻繁に統合して競合を早期に検出します。
3. 統合パターン
並行して開発されたコンポーネントを統合するためのパターン。
- ブランチ戦略: 機能ブランチまたはトランクベース開発を使用します。
- 継続的統合: 変更を頻繁に統合します。
- テストゲート: 統合前にテストを実行します。
いつ使用するか
- 大規模機能を独立した作業ストリームに分割する場合。
- 2つ以上のエージェントが同じシステムの異なるレイヤーを同時に実装する必要がある場合。
- 共有コードベースでマージ競合を防ぐためのファイル所有権を確立する場合。
- インターフェース契約を設計して、並行実装者が互いのAPIを完成前に利用できるようにする場合。
- フルスタック機能に垂直スライスと水平レイヤーのどちらを使用するかを決定する場合。
垂直スライスと水平レイヤー
- 垂直スライス: 機能をUI、ビジネスロジック、データベース全体にわたるエンドツーエンドのスライスに分割します。各エージェントが完全な機能を実装するため、所有権が明確になります。
- 水平レイヤー: 機能をレイヤー(例:UI、API、データベース)に分割します。異なるエージェントが異なるレイヤーで作業できますが、インターフェース調整が必要です。
| アプローチ | 利点 | 欠点 |
|---|---|---|
| 垂直スライス | 所有権が明確、統合が少ない | 重複する可能性がある |
| 水平レイヤー | 専門化、再利用性 | インターフェース調整が必要 |
使用方法
このスキルをアクティブにするには、プロンプトに以下を含めてください:
スキル: parallel-feature-development
そして、以下を指定してください:
- 作業するエージェントの数
- 実装する機能
- 優先するアーキテクチャ(垂直スライス/水平レイヤー)
- ファイル所有権ルール
- 統合戦略
- インターフェース契約(該当する場合)
例
スキル: parallel-feature-development
エージェント: 3
機能: Eコマースチェックアウト
アーキテクチャ: 垂直スライス
エージェント1: カート管理(UI + ロジック + DB)
エージェント2: 支払い処理(UI + ロジック + DB)
エージェント3: 注文確認(UI + ロジック + DB)
所有権:
- エージェント1: cart/ ディレクトリ全体
- エージェント2: payment/ ディレクトリ全体
- エージェント3: order/ ディレクトリ全体
統合戦略: 機能ブランチ、1日2回の統合
参考
ライセンス
MIT