---
name: orquestrar-agentes
description: >
  Protocolo de colaboração e handoff entre agentes especializados do ecossistema Azteca.
  Define como agentes passam contexto, comunicam resultados e resolvem dependências.
scope: global
---

# Skill: Orquestrar Agentes

Use esta skill sempre que uma tarefa exigir a colaboração de dois ou mais agentes especializados, ou quando precisar entender quem deve fazer o quê em uma implementação complexa.

---

## PASSO 1 — Identificar os agentes envolvidos

Antes de qualquer implementação, mapear quais agentes são necessários:

| Tarefa | Agente responsável |
|--------|-------------------|
| Definir arquitetura, contratos de API, schemas | `@arquiteto` |
| Implementar backend (rotas, serviços, banco) | `@back` |
| Implementar frontend (telas, componentes, fluxos) | `@front` |
| Garantir qualidade e criar testes | `@testes` |
| Configurar infraestrutura e deploy | `@deploy` |
| Criar/atualizar documentação | `@documentacao` |
| Revisar e melhorar UX | `@ux` |
| Criar materiais de venda e marketing | `@comercial` |

---

## PASSO 2 — Definir a sequência de handoff

Toda tarefa complexa segue uma ordem de precedência:

```
1. @arquiteto   → define e especifica
2. @back        → implementa backend + schemas *-comuns
3. @front       → implementa frontend (consome *-comuns)
4. @ux          → revisa experiência (paralelo com front)
5. @testes      → valida qualidade
6. @deploy      → empacota e publica
7. @documentacao → documenta (pode ser paralelo)
8. @comercial   → cria materiais (após documentação)
```

Agentes podem trabalhar em paralelo quando não há dependência direta:
- `@ux` e `@front` podem colaborar em paralelo
- `@documentacao` pode trabalhar em paralelo com `@testes`
- `@comercial` é sempre o último da cadeia

---

## PASSO 3 — Formato de mensagem entre agentes

Quando um agente precisa comunicar resultado ou delegar tarefa para outro, usar o formato:

```markdown
**De:** @arquiteto
**Para:** @back
**Tipo:** especificação | resultado | bloqueio | revisão

## Contexto
[O que foi decidido/implementado/identificado]

## Entrega
[O que o agente destinatário precisa fazer ou receber]

## Dependências
[Arquivos, schemas, endpoints ou decisões que o destinatário precisa conhecer]

## Critérios de aceite
[Como saber que a tarefa do destinatário está completa]
```

---

## PASSO 4 — Regras de escopo entre agentes

### Permitido ✅

```
@arquiteto → pode delegar para qualquer agente
@back      → pode enviar schemas e endpoints para @front (via *-comuns)
@front     → pode solicitar revisão de @ux
@ux        → pode propor melhorias para @front
@testes    → pode reportar bugs para @back e @front
@documentacao → pode documentar artefatos de qualquer agente
@deploy    → recebe builds de @back e @front
```

### Proibido ❌

```
@front     ✗ não importa código de @back diretamente
@back      ✗ não cria componentes Vue ou lógica de interface
@comercial ✗ não promete features que @arquiteto não aprovou
@testes    ✗ não modifica código de produção
@ux        ✗ não implementa código Vue — apenas orienta @front
```

---

## PASSO 5 — Resolução de conflitos

Quando dois agentes têm visões diferentes:

1. **Técnico vs. UX:** `@arquiteto` arbitra, priorizando viabilidade técnica com mínimo impacto na UX
2. **Back vs. Front (sobre contrato de API):** `@arquiteto` define o contrato no schema `*-comuns`
3. **Documentação vs. Implementação:** O código é a verdade — `@documentacao` atualiza para refletir o código
4. **Comercial vs. Produto:** `@arquiteto` define o que existe; `@comercial` comunica apenas o real

---

## PASSO 6 — Fluxos típicos de colaboração

### Fluxo: Nova feature completa

```
@arquiteto → especifica schema e contrato de API
     ↓
@back → implementa endpoint + atualiza *-comuns
     ↓
@front → implementa tela consumindo *-comuns
     ↓ (paralelo)
@ux → revisa UX da tela
     ↓
@testes → valida back + front
     ↓
@deploy → publica
     ↓ (paralelo)
@documentacao → documenta
     ↓
@comercial → cria material de divulgação
```

### Fluxo: Correção de bug crítico

```
@testes → identifica e documenta bug
     ↓
@back ou @front → corrige
     ↓
@testes → valida correção
     ↓
@deploy → hotfix
```

### Fluxo: Melhoria de UX

```
@ux → identifica problema e propõe melhoria
     ↓
@arquiteto → avalia impacto técnico
     ↓
@front → implementa
     ↓
@ux → valida
```

---

## Checklist de orquestração

- [ ] Agentes necessários identificados?
- [ ] Sequência de handoff definida?
- [ ] Dependências entre agentes mapeadas?
- [ ] Critérios de aceite definidos para cada entrega?
- [ ] Conflitos potenciais identificados e árbitro definido?

---

## Referências

- Rule: `global/rules/autonomia-agente`
- Rule: `global/rules/fronteiras-monorepo`
- Personas: `agents/*/persona`
