Ir para o conteúdo

Funcionalidades Avançadas

Essas funcionalidades habilitam fluxos de trabalho SDD colaborativos, em grande escala e em paralelo. Elas partem do ciclo de vida principal — certifique-se de estar familiarizado com o Fluxo SDD antes de utilizá-las.

1. Ramificação de Specs

Ferramentas: branch_spec, merge_spec_branch

Pense nas ramificações de specs como branches do Git — mas para os seus planos. Crie uma variante A/B para explorar uma abordagem de implementação diferente antes de se comprometer com uma.

Quando usar:

  • Decisões de arquitetura com múltiplas abordagens válidas
  • Experimentos de UI (spec A de redesign vs. spec B incremental)
  • Quando um stakeholder solicita uma estimativa alternativa

Quando NÃO usar

Não crie ramificações de specs para pequenas alterações de redação ou correções de erros de digitação. Ramificações são para estratégias de implementação fundamentalmente diferentes — se ambas as abordagens tocam os mesmos arquivos, resolva a decisão primeiro e depois implemente.

Como funciona:

  1. Ramifique uma spec existente para criar uma variante:
"Ramifique a spec SPEC-042 como variant-B com abordagem de microsserviços"
→ branch_spec(specId: "SPEC-042", branchName: "variant-b", description: "...")
  1. Desenvolva ambas as variantes de forma independente. Cada ramificação tem seus próprios critérios de aceitação e PLAN.md.

  2. Compare as estimativas e escolha a vencedora. Depois, faça o merge:

"Faça o merge da branch variant-b na spec SPEC-042"
→ merge_spec_branch(specId: "SPEC-042", branchName: "variant-b")

O Planu detecta conflitos entre variantes e sinaliza critérios que se contradizem antes do merge.


2. Federação de Specs

Ferramentas: federate_specs, federation_status

Compartilhe e sincronize specs entre múltiplos repositórios. Essencial para monorepos, microsserviços e equipes de plataforma.

Quando usar:

  • A equipe de plataforma possui specs compartilhadas (autenticação, pagamentos, logging)
  • Monorepo com múltiplos serviços que compartilham requisitos
  • Specs de contratos de API compartilhadas entre repos de frontend e backend

Quando NÃO usar

Não federe specs que estejam fortemente acopladas aos internos de um único serviço. A federação é para contratos compartilhados — não para replicar detalhes de implementação entre repos.

Como funciona:

  1. No repositório fonte, publique uma spec para um destino downstream:
"Federe a spec SPEC-010 para team/payments-service"
→ federate_specs(...)
  1. No repositório destino, a spec aparece como somente leitura com um link para a origem. As equipes downstream podem referenciá-la, mas não modificá-la diretamente.

  2. As alterações sincronizam automaticamente ou sob demanda. Verifique o estado da sincronização a qualquer momento:

"Verifique o status de federação"
→ federation_status()

O relatório de status mostra quais specs estão à frente, atrás ou em conflito com sua origem.


3. Orquestração de Equipes de Agentes

Ferramentas: plan_team_distribution, orchestrate_runtime, orchestrate_agents

Distribua uma spec grande entre múltiplos agentes de IA em paralelo, cada um com propriedade exclusiva sobre arquivos específicos.

Quando usar:

  • Specs que tocam 5+ módulos independentes
  • Grandes refatorações com limites de arquivos bem definidos
  • Funcionalidades urgentes que podem ser paralelizadas

Quando NÃO usar

Não orquestre specs pequenas (menos de 3 arquivos). O custo de coordenação supera o tempo economizado. Evite também a orquestração quando os módulos estão fortemente acoplados — os agentes não conseguem resolver conflitos entre arquivos no meio da execução.

Como funciona:

  1. Planeje a distribuição — o Planu analisa a spec e propõe as atribuições de agentes:
"Planeje a distribuição da equipe para SPEC-099"
→ plan_team_distribution(specId: "SPEC-099")
→ Resultado: 3 agentes, atribuições de arquivos, tempo estimado
  1. Lance a orquestração — os agentes trabalham em paralelo, cada um com seus arquivos atribuídos:
"Orquestre SPEC-099 com 3 agentes"
→ orchestrate_runtime(specId: "SPEC-099", agentCount: 3)
→ Agentes trabalham em paralelo, Planu monitora o progresso
  1. Monitore e finalize:
"Verifique o status da orquestração"
→ orchestrate_agents(action: "status")

Regras que o Planu aplica:

  • Cada agente possui arquivos exclusivos — sem edições concorrentes
  • Os testes de integração são executados após todos os agentes concluírem
  • Os conflitos são sinalizados, não resolvidos automaticamente

Próximos Passos

Junte-se à comunidadeFaça perguntas, compartilhe feedback e conecte-se com outros desenvolvedores usando Planu.
Entrar no Discord