mcpField
F
flutter-parallel-agents

flutter-parallel-agents

github.com/vp-kエージェントワークフロー1438 回インストール11 週間前に更新
リポジトリ

flutter-parallel-agents について

flutter-parallel-agentsは、独立したFlutterの実装やテスト作業を複数のエージェントで調整するスキルです。並行可能性の判断、担当範囲の設定、結果の確認と統合を案内します。

主な機能

  1. 01タスクの並行可否を判断
  2. 02エージェントに明確な範囲を割り当て
  3. 03機能、レイヤー、テスト単位で分担
  4. 04変更の競合を確認
  5. 05統合後にFlutterの解析とテストを実行

活用シーン

  1. 01独立したFlutter機能の並行実装
  2. 02原因の異なるテスト失敗の調査
  3. 03ファイルが重ならないアーキテクチャ層の分担

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vp-k/flutter-craft --skill flutter-parallel-agents

インストール後、Claude Code で/flutter-parallel-agentsを入力して読み込まれたか確認します。

詳細

並列 Flutter エージェントのディスパッチ

概要

互いに無関係なタスク(異なる機能、異なるテストファイル、異なるバグ)が複数ある場合、それらを順番に進めると時間がかかります。それぞれの調査は独立しているため、並行して進められます。

基本原則: 独立した問題領域ごとにエージェントを1つ割り当てます。並行して作業させましょう。

開始時に宣言: 「これらのタスクに対応するため、flutter-parallel-agents スキルを使用します。」

使用する場面

Multiple tasks/failures?
├─ NO  → Single agent handles it
└─ YES → Are they independent?
         ├─ NO (related) → Single agent investigates all
         └─ YES → Can they work in parallel?
                  ├─ NO (shared state/files) → Sequential agents
                  └─ YES → Parallel dispatch (this skill)

次の場合に使用します:

  • 根本原因の異なる複数のテストファイルで失敗が発生している
  • 異なる領域で複数の機能を実装する
  • それぞれの問題を、他の問題のコンテキストなしで理解できる
  • 調査間に共有状態がない
  • 異なるクリーンアーキテクチャのレイヤーを作業する

次の場合は使用しないでください:

  • 失敗に関連性がある(一つを修正すると他も直る可能性がある)
  • タスクが同じファイルを変更する
  • タスク間に依存関係がある
  • まずシステム全体の状態を理解する必要がある

Flutter 固有の並列シナリオ

独立したレイヤータスク
lib/features/auth/
├── domain/      ← Agent 1: Implement entities & interfaces
├── data/        ← Agent 2: Implement models & datasources
└── presentation/ ← Wait for Agents 1 & 2 (has dependencies)

並列化できるもの: Domain レイヤーと Data レイヤー(異なるファイル) 並列化できないもの: Presentation は Domain に依存する

独立した機能タスク
lib/features/
├── auth/        ← Agent 1: Auth feature
├── profile/     ← Agent 2: Profile feature
└── settings/    ← Agent 3: Settings feature

並列化できるもの: 3つすべて(異なる機能フォルダー)

独立したテスト修正
test/features/
├── auth/data/repositories/auth_repo_test.dart      ← Agent 1
├── profile/presentation/bloc/profile_bloc_test.dart ← Agent 2
└── settings/data/datasources/settings_ds_test.dart  ← Agent 3

並列化できるもの: 異なる機能の異なるテストファイル

作業パターン

1. 独立した領域を特定する

影響を受ける対象ごとにタスクを分類します。

  • 機能 A:ユーザー認証
  • 機能 B:プロフィール管理
  • 機能 C:設定の保存

各領域は独立しています。認証を修正しても設定には影響しません。

2. エージェントに焦点を絞ったタスクを作成する

各エージェントに次の内容を渡します。

  • 具体的な範囲: 1つの機能またはテスト領域
  • 明確な目標: 実装または修正する内容
  • 制約: 他の機能は変更しない
  • 期待する出力: 実施内容の概要
3. 並列にディスパッチする

実装には subagent_type: "flutter-craft:flutter-dart-specialist" を使用します。 このエージェントの定義には Flutter/Dart の規範(Riverpod のパターン、 ウィジェットの原則、推奨パッケージ)が含まれているため、プロンプトはタスクの内容だけにできます。

Task("Implement auth domain layer - entities and repository interface")
Task("Implement profile domain layer - entities and repository interface")
Task("Implement settings domain layer - entities and repository interface")
// All three run concurrently, each as flutter-craft:flutter-dart-specialist
4. レビューして統合する

エージェントから結果が返されたら、次の作業を行います。

  • 各概要を読む
  • 修正が競合しないことを確認する
  • flutter analyze を実行する
  • flutter test を実行する
  • すべての変更を統合する

エージェントプロンプトの構成

Implement the [Layer] layer for [Feature] feature.

## Scope
lib/features/[feature]/[layer]/

## Files to Create
- entities/[entity].dart
- repositories/[repository].dart (interface)

## Requirements
[Paste specific requirements from plan]

## Constraints
- ONLY modify files in lib/features/[feature]/[layer]/
- Do NOT touch other features
- Follow Clean Architecture principles
- Run flutter analyze before committing

## Expected Output
- Summary of what you created
- flutter analyze result
- Commit message used

例:機能実装を並列に進める

シナリオ: 3つの機能の Domain レイヤーを実装する必要がある

判断: 各 Domain レイヤーは独立している

ディスパッチ:

Agent 1 → Implement auth/domain/ (User entity, AuthRepository interface)
Agent 2 → Implement profile/domain/ (Profile entity, ProfileRepository interface)
Agent 3 → Implement settings/domain/ (Settings entity, SettingsRepository interface)

結果:

  • エージェント 1:User エンティティと AuthRepository を作成 ✅
  • エージェント 2:Profile エンティティと ProfileRepository を作成 ✅
  • エージェント 3:Settings エンティティと SettingsRepository を作成 ✅

統合:

flutter analyze  # All clean
flutter test     # All pass
git log --oneline -3  # See all three commits

よくある間違い

❌ 範囲が広すぎる:「すべての機能を実装する」— エージェントが迷います ✅ 具体的にする:「auth/domain レイヤーを実装する」— 範囲を絞れます

❌ 依存するタスクを並列に進める:Domain より先に Data レイヤーを作業する ✅ 正しい順序:まず Domain、その後 Data を並列に作業する

❌ 同じファイル:2つのエージェントが pubspec.yaml を編集する ✅ 競合を避ける:各エージェントの担当ファイルを分離する

使用しない場面

  • 順次処理が必要な依存関係: Data レイヤーには Domain レイヤーが先に必要
  • 共有ファイル: 複数のエージェントが同じファイルを必要とする
  • 機能をまたぐ依存関係: 機能 B が機能 A からインポートする
  • 全体的なコンテキストが必要: 理解するにはアプリ全体を見る必要がある

検証

エージェントから結果が返されたら、次の作業を行います。

  1. 各概要をレビューする — 変更内容を把握する
  2. 競合を確認する — エージェントが同じファイルを編集していないか確認する
  3. flutter analyze を実行する — すべてのコードに問題がないことを確認する
  4. flutter test を実行する — テストが通ることを確認する
  5. インポートを確認する — 循環依存がないことを確認する
flutter analyze
flutter test
git diff --stat  # See all changes

メリット

  1. 並列化 — 複数の実装を同時に進められる
  2. 集中 — 各エージェントの担当範囲が狭い
  3. 独立性 — エージェント同士が干渉しない
  4. 速度 — 1つの問題を解決する時間で N 個の問題を解決できる

コメント