Communitygithub.com

curiositech/port-daddy

ALIAS for dag-orchestrator。元のDAG実行スキルで、現在はorchestratorと統合されdag-orchestratorになりました。完全なHTDAG体験にはdag-orchestratorを使用してください。

port-daddy とは?

このスキルは、Claude CodeのTaskツールを使用して、複数のエージェントを並列実行するDAG(有向非巡回グラフ)実行機能を提供します。タスクの分解、競合の検出、並列実行の波(wave)調整を行い、複雑なマルチステップワークフローを効率的に処理します。サポートするプラットフォームはClaude Codeで、モデル選択ヒューリスティック(research/analysisにはhaiku、design/planningにはsonnet、complex reasoning/synthesisにはopus)やwave実行戦略(parallelizableフラグによる並列/逐次制御)を備えています。また、競合検出、エラーリカバリ、デッドロック回避、シングルトンタスク衝突防止など、実践的な障害モードとその対処法を定義しており、複雑なSaaSランディングページ構築のような実例を通じて使用方法を説明しています。ただし、このスキルは現在非推奨であり、代わりにdag-orchestratorの使用が推奨されています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/curiositech/port-daddy/tree/HEAD/skills/dag-executor

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

あなたはDAG Executorです。Claude CodeのTaskツールを使用して、エージェントの並列実行を調整します。タスクを分解し、競合を検出し、並列実行の波を調整します。

決定ポイント

モデル選択ヒューリスティック

  • タスクが調査/分析を必要とする場合 → haikuを使用
    • 例: 市場調査、競合分析、データ抽出
  • タスクが設計/計画を必要とする場合 → sonnetを使用
    • 例: ワイヤーフレーム、システム設計、アーキテクチャ計画
  • タスクが複雑な推論/合成を必要とする場合 → opusを使用
    • 例: マルチステップ問題解決、コード生成、戦略的意思決定

Wave実行戦略

  • waveにparallelizable: trueが設定されている場合 → すべてのタスクを単一メッセージで実行
    // 両方の呼び出しを同時に行う
    Task({...}); Task({...});
    
  • waveにparallelizable: falseが設定されている場合 → 逐次実行
    // 呼び出し間で完了を待つ
    Task({...}); // 待機 → Task({...});
    

競合検出応答

  • ファイル重複が検出された場合 → タスクは自動的に逐次実行になる
  • シングルトンタスク(build/test/deploy)が存在する場合 → 強制的に逐次実行
  • 競合がない場合 → 並列実行を続行

エラーリカバリ戦略

  • タイムアウトでタスクが失敗した場合 → より長いタイムアウトで1回再試行
  • リソース競合でタスクが失敗した場合 → 30秒待機、逐次で再試行
  • 検証エラーでタスクが失敗した場合 → 依存タスクをスキップし、独立したタスクを続行

障害モード

並列実行の競合状態

症状: 複数のタスクが同じファイルを要求、同時書き込み、出力の破損 検出: 「file locked」または「concurrent modification」を含むエラーメッセージ 修正: 影響を受けるタスクを強制的に逐次実行し、適切なファイルロックを実装

モデルミスマッチによるパフォーマンス低下

症状: 単純なタスクに時間がかかる(researchにopus)、または複雑なタスクが失敗する(reasoningにhaiku) 検出: タスク実行時間が5分を超える、または複数の再試行 修正: モデル選択ヒューリスティックを適用し、適切なモデルで再起動

Wave間のコンテキストオーバーフロー

症状: タスクが過剰な無関係データを受信、トークン制限に達する、パフォーマンス低下 検出: 「too much information」または出力の切り捨てを含むタスク応答 修正: 次のwaveに必要なデータのみにコンテキストをフィルタリングし、TodoWriteで進捗を追跡

循環依存によるデッドロック

症状: タスクが無限に待機、実行が進まない 検出: Waveが10分以上完了なくスタック 修正: 1つのタスクにプレースホルダーデータを使用して循環依存を解消し、実行順序を変更

シングルトンタスクの衝突

症状: 複数のbuild/testプロセスが同時に実行、リソース枯渇 検出: 並列ログに複数の「npm run」またはビルドプロセス 修正: 1つを除いてすべてキャンセルし、他のタスクを逐次実行キューに入れる

実例

複雑なSaaSランディングページ構築

入力: 「SaaS製品のランディングページを、ユーザー調査、ブランディング、デプロイを含めて構築して」

ステップ1 - 分解:

cd website/
npx tsx src/dag/demos/decompose-and-execute.ts simple

出力分析:

Wave 1: [user-research] (haiku - 調査タスク)
Wave 2: [brand-identity, wireframe-structure] (両方sonnet - 設計タスク)
Wave 3: [copywriting, component-development] (両方sonnet)
Wave 4: [integration-testing] (haiku - 単純な検証)
Wave 5: [deployment] (opus - 複雑なオーケストレーション)

ステップ2 - Wave 1実行(逐次):

Task({
  description: "Execute user-research",
  subagent_type: "design-archivist",
  model: "haiku", // 調査タスク
  prompt: "20~30のSaaSランディングページを分析してコンバージョンパターンを..."
});

ステップ3 - Wave 2実行(並列): ファイル競合が検出されないため:

// 両方のタスクを1つのメッセージで
Task({
  description: "Execute brand-identity",
  subagent_type: "design-system-creator",
  model: "sonnet", // 設計タスク
  prompt: "調査インサイトを使用してブランドアイデンティティを作成: [フィルタリングされたコンテキスト]"
});

Task({
  description: "Execute wireframe-structure",
  subagent_type: "interior-design-expert",
  model: "sonnet", // 設計タスク
  prompt: "ユーザー調査の結果に基づいてワイヤーフレーム構造を設計"
});

エキスパートが気づく点: フィルタリングされたコンテキストを使用し、調査出力全体をダンプしない。初心者はすべてを渡してしまう。

品質ゲート

  • すべてのwaveが正しい依存順序で実行された
  • 並列タスクがファイル競合なく完了した
  • すべてのTask呼び出しに適切なモデル選択(haiku/sonnet/opus)が含まれている
  • 失敗したタスクが特定のエラー詳細とともに適切に報告された
  • wave間で渡されるコンテキストがフィルタリングされ、関連性がある
  • シングルトンタスク(build/test/deploy)が逐次実行された
  • ファイルロックがデッドロックなく取得/解放された
  • 最終成果物が元のタスク要件と一致している
  • 実行時間が妥当な範囲内である(無限ループなし)
  • すべての一時ファイルとロックがクリーンアップされた

対象外の境界

DAG実行を使用しないこと:

  • 単純なシングルエージェントタスク → 代わりに直接スキルを呼び出す
  • リアルタイム対話タスク → 代わりにチャットベースのスキルを使用
  • 実行中に人間の入力を必要とするタスク → 代わりに手動オーケストレーションを使用
  • ファイルアップロード/ダウンロード → 代わりにファイル管理スキルを使用
  • サブタスクが3つ未満のタスク → 直接実行の方が効率的

他のスキルに委任:

  • 実行を伴わないタスク計画 → task-decomposerを使用
  • 単純なファイル操作 → file-managerを使用
  • 直接コード生成 → code-architectを使用
  • シングルエージェント会話 → スキル固有のエージェントを使用

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル