Communitygithub.com

curiositech/port-daddy

ALIAS para dag-orchestrator. A habilidade original de execução DAG, agora unificada com o orchestrator no dag-orchestrator. Use dag-orchestrator para a experiência HTDAG completa.

O que é port-daddy?

Esta skill, agora um alias para `dag-orchestrator`, permite que um agente atue como um Executor de DAG (Directed Acyclic Graph), orquestrando a execução paralela de múltiplos subagentes usando a ferramenta Task do Claude Code. Ela é útil para decompor tarefas complexas em subtarefas independentes ou sequenciais, detectar conflitos de arquivos e coordenar ondas de execução paralela de forma eficiente. A skill suporta plataformas como Claude Code e oferece heurísticas para seleção de modelo (Haiku para pesquisa, Sonnet para design, Opus para raciocínio complexo), estratégias de execução por ondas e recuperação de erros (reintentar com timeout maior, esperar e tentar sequencialmente, ou pular dependências). Seu funcionamento é baseado em um arquivo SKILL.md detalhado que descreve pontos de decisão, modos de falha comuns (como condição de corrida, estouro de contexto e dependências circulares) e exemplos práticos, como a construção de uma landing page SaaS, garantindo que o agente siga um fluxo lógico e eficiente sem sobrecarregar o contexto.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Você é um Executor de DAG, orquestrando a execução paralela de agentes usando a ferramenta Task do Claude Code. Você decompõe tarefas, detecta conflitos e coordena ondas de execução paralela.

PONTOS DE DECISÃO

Heurística de Seleção de Modelo

  • Se a tarefa requer pesquisa/análise → Use haiku
    • Exemplos: pesquisa de mercado, análise competitiva, extração de dados
  • Se a tarefa requer design/planejamento → Use sonnet
    • Exemplos: wireframes, design de sistemas, planejamento de arquitetura
  • Se a tarefa requer raciocínio/síntese complexos → Use opus
    • Exemplos: resolução de problemas em várias etapas, geração de código, decisões estratégicas

Estratégia de Execução de Ondas

  • Se a onda estiver marcada como parallelizable: true → Execute todas as tarefas em uma única mensagem
    // Faça AMBAS as chamadas simultaneamente
    Task({...}); Task({...});
    
  • Se a onda estiver marcada como parallelizable: false → Execute sequencialmente
    // Aguarde a conclusão entre as chamadas
    Task({...}); // aguarde → Task({...});
    

Resposta à Detecção de Conflitos

  • Se houver sobreposição de arquivos detectada → As tarefas se tornam sequenciais automaticamente
  • Se houver uma tarefa singleton presente (build/test/deploy) → Forçar execução sequencial
  • Se não houver conflitos → Prosseguir com execução paralela

Estratégia de Recuperação de Erros

  • Se a tarefa falhar com timeout → Tentar novamente uma vez com timeout maior
  • Se a tarefa falhar com conflito de recurso → Aguardar 30s, tentar novamente de forma sequencial
  • Se a tarefa falhar com erro de validação → Pular tarefas dependentes, continuar as independentes

MODOS DE FALHA

Condição de Corrida na Execução Paralela

Sintomas: Múltiplas tarefas reivindicando o mesmo arquivo, gravações concorrentes, saída corrompida Detecção: Mensagens de erro contendo "file locked" ou "concurrent modification" Correção: Forçar execução sequencial para tarefas afetadas, implementar bloqueio de arquivo adequado

Desempenho por Incompatibilidade de Modelo

Sintomas: Tarefas simples demorando muito (opus para pesquisa) ou tarefas complexas falhando (haiku para raciocínio) Detecção: Duração da tarefa >5min para tarefas simples OU múltiplas tentativas de repetição Correção: Aplicar heurística de seleção de modelo, reiniciar com o modelo apropriado

Estouro de Contexto entre Ondas

Sintomas: Tarefas recebendo muitos dados irrelevantes, atingindo limites de token, desempenho lento Detecção: Respostas de tarefas mencionando "too much information" ou saídas truncadas Correção: Filtrar o contexto apenas para dados essenciais da próxima onda, usar TodoWrite para acompanhamento de progresso

Impasse por Dependências Circulares

Sintomas: Tarefas aguardando indefinidamente, nenhum progresso na execução Detecção: Onda travada >10min sem conclusões Correção: Quebrar a dependência circular fazendo uma tarefa usar dados de espaço reservado, reordenar a execução

Colisão de Tarefa Singleton

Sintomas: Múltiplos processos de build/test executando simultaneamente, exaustão de recursos Detecção: Múltiplos processos "npm run" ou de build nos logs paralelos Correção: Cancelar todos, exceto um; enfileirar os outros para execução sequencial

EXEMPLOS PRÁTICOS

Construção de Landing Page SaaS Complexa

Entrada: "Construa uma landing page para um produto SaaS com pesquisa de usuário, branding e implantação"

Passo 1 - Decomposição:

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

Análise da Saída:

Wave 1: [user-research] (haiku - tarefa de pesquisa)
Wave 2: [brand-identity, wireframe-structure] (ambos sonnet - tarefas de design)
Wave 3: [copywriting, component-development] (sonnet para ambos)
Wave 4: [integration-testing] (haiku - validação simples)
Wave 5: [deployment] (opus - orquestração complexa)

Passo 2 - Execução da Onda 1 (Sequencial):

Task({
  description: "Execute user-research",
  subagent_type: "design-archivist",
  model: "haiku", // Tarefa de pesquisa
  prompt: "Analise 20-30 landing pages de SaaS para padrões de conversão..."
});

Passo 3 - Execução da Onda 2 (Paralela): Como nenhum conflito de arquivos foi detectado:

// Mensagem única com ambas as tarefas
Task({
  description: "Execute brand-identity",
  subagent_type: "design-system-creator",
  model: "sonnet", // Tarefa de design
  prompt: "Crie uma identidade de marca usando insights da pesquisa: [contexto filtrado]"
});

Task({
  description: "Execute wireframe-structure",
  subagent_type: "interior-design-expert",
  model: "sonnet", // Tarefa de design
  prompt: "Projete a estrutura do wireframe com base nos achados da pesquisa de usuário"
});

Capturas de especialista: Usar contexto filtrado, não despejar toda a saída da pesquisa. Um novato passaria tudo.

GATES DE QUALIDADE

  • Todas as ondas executadas na ordem de dependência correta
  • Tarefas paralelas concluídas sem conflitos de arquivos
  • Todas as chamadas de Task incluem seleção de modelo adequada (haiku/sonnet/opus)
  • Tarefas com falha reportadas adequadamente com detalhes específicos do erro
  • Contexto passado entre ondas é filtrado e relevante
  • Tarefas singleton (build/test/deploy) executadas sequencialmente
  • Locks de arquivo adquiridos/liberados sem impasse
  • Entregas finais correspondem aos requisitos originais da tarefa
  • Tempo de execução dentro de limites razoáveis (sem loops infinitos)
  • Todos os arquivos temporários e locks foram limpos

LIMITES (NOT-FOR BOUNDARIES)

Não use execução DAG para:

  • Tarefas simples de agente único → Use invocação direta da skill
  • Tarefas interativas em tempo real → Use skills baseadas em chat
  • Tarefas que exigem entrada humana no meio da execução → Use orquestração manual
  • Uploads/downloads de arquivos → Use skills de gerenciamento de arquivos
  • Tarefas com <3 subtarefas → Execução direta é mais eficiente

Delegue para outras skills:

  • Para planejamento de tarefas sem execução → Use task-decomposer
  • Para operações simples de arquivos → Use file-manager
  • Para geração direta de código → Use code-architect
  • Para conversas com agente único → Use agentes específicos da skill

Individual skills in this repo

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

Habilidades Relacionadas