---
id: create-squad
agent: squad-creator
title: Forjar um squad a partir de uma missão
inputs: [missão, restrições, tamanho desejado]
outputs: ['blueprint <squad>{json}</squad> validado', 'squads/{id}/ materializado pelo motor (squad.yaml + agents/ + tasks/ + knowledge/)']
elicit: true
modes: [interactive, yolo]
---

# Forjar um squad a partir de uma missão

**Objetivo:** transformar uma missão em um squad coeso de especialistas — blueprint completo emitido
num único bloco `<squad>{json}</squad>`, validado e materializado pelo **motor** (`nexus squad
create`) em `squads/{id}/`.

**Pré-condições:**
- A missão rastreia a um pedido/story/spec (`traceRef`). Sem rastro, **pare** e elicite — squad de
  escopo inventado não nasce (Art. IV).
- O roster core (`agents/`) foi lido NESTA sessão — o mapa de cobertura (passo 2) compara contra o
  time real, não contra memória.

## Passos

1. **Entenda a missão.** Em modo interativo (`elicit: true` — ponto sagrado), elicite: (a) a missão
   em uma frase e seu rastro (story/spec/pedido); (b) o tamanho desejado do time (default: o menor
   que cobre os gaps); (c) restrições (prazo, stack, o que está FORA do escopo). Em modo yolo,
   derive dos inputs recebidos e **declare** cada suposição no relatório — suposição silenciosa é
   invenção.
2. **Mapeie os papéis contra o core.** Liste as lentes que a missão exige e cruze com o roster real
   de `agents/`. REUSE > CREATE: o que o core cobre é **referenciado** (delegação, nunca cópia);
   só o gap real vira membro novo. Registre o mapa papel → coberto-por/gap no manifest.
3. **Desenhe o time.** Exatamente **um chief** de arquétipo `Orchestrator` + **2 a 7 especialistas**
   (fora dessa faixa a composição está errada — squad de 1 agente não nasce). Cada membro: lente
   distinta, `owns:` apontando para tasks DO squad, `delegatesTo:` apontando para o core nas
   fronteiras (git push/PR/release/MCP → @devops, SEMPRE).
4. **Preencha os templates** de `templates/squad/`: `squad-yaml-tmpl` (manifest), `chief-dna-tmpl`
   (chief com roster e delegação), `agent-dna-tmpl` (cada membro), `squad-task-tmpl` (cada task do
   squad). Todo frontmatter de agente tem que validar contra o contrato `Agent`
   (`packages/contracts/src/agent.schema.ts`); corpo segue o formato canônico de `agents/README.md`.
   Task core NUNCA é copiada para dentro do squad — é referenciada pelo slug.
5. **Emita o blueprint** — EXATAMENTE UM bloco `<squad>{json}</squad>` no output (mesma convenção
   anti-teatro do `<delegate>`: zero blocos = nada a criar; mais de um = ambíguo → recusado). O
   JSON é um `SquadBlueprint` com este shape:

   ```jsonc
   {
     "manifest": {
       "id": "kebab-case único do squad",
       "name": "nome legível",
       "mission": "a missão em uma frase",
       "version": "0.1.0",
       "chief": "id do agente chief (tem que existir em agents[])",
       "origin": "generated",
       "traceRef": "rastro da missão (story/spec/pedido)",
       "guards": { /* freios do squad (fanout/budget), nunca acima dos tetos do core */ },
       "authorities": [ "squad.{id-do-squad}.{operacao}" ]
     },
     "agents": [ { "frontmatter": { /* contrato Agent: id, name, title, icon, archetype, lens, whenToUse, authority, model, owns, delegatesTo, knowledge */ }, "body": "markdown do DNA" } ],
     "tasks": [ { "slug": "kebab-case da task", "content": "markdown completo (frontmatter + passos)" } ],
     "knowledge": [ { "ref": "categoria/nome-do-pack", "content": "markdown do knowledge pack" } ]
   }
   ```

   **Shapes que o schema EXIGE (erros mais comuns na forja):**
   - `manifest.authorities`: array de **STRINGS** no formato namespaced `"squad.{id}.{operacao}"`
     (kebab-case, ex.: `"squad.conteudo-ig.aprovar-pauta"`). **NUNCA objetos** `{operation, owner}` —
     esse shape é da Constitution do CORE, não do squad. Na dúvida, use `[]` (autoridade é opcional).
   - `knowledge[].ref`: slug kebab-case `categoria/nome-do-pack` — **sem** prefixo de caminho
     (`squads/...`), **sem** extensão `.md`, **sem** acentos/maiúsculas (ex.: `marketing/metricas-ig`,
     nunca `squads/x/knowledge/Métricas.md`). O ref também não pode colidir com um pack do root
     em `knowledge/` (o motor rejeita sombra de knowledge do core).
   - `agents[].frontmatter.archetype`: um de `Orchestrator | Builder | Sage | Guardian | Explorer | Maker`.
   - ids/slugs em geral: kebab-case ASCII `[a-z0-9-]` (sem acentos).

6. **Dispare o motor:** `nexus squad create`. O MOTOR valida o blueprint contra o schema e
   materializa `squads/{id}/` (squad.yaml + agents/ + tasks/ + knowledge/). Blueprint com issue →
   o squad NÃO nasce; corrija e re-emita. **Nunca** materialize na mão para "destravar".
7. **Prove que nasceu inteiro:** rode `validate-squad` sobre o id criado e reporte o resultado REAL
   (Lei 3). Operação do squad daí em diante é da @nexus-master — criar não é operar.

## Critério de pronto (DoD)

- [ ] Missão elicitada/derivada com `traceRef` rastreável e restrições registradas
- [ ] Mapa de cobertura papel → core/gap registrado; nenhum membro duplica o time core
- [ ] Chief é `Orchestrator`; time entre chief+2 e chief+7; lentes distintas
- [ ] Nenhuma autoridade do squad colide com as exclusivas do core
- [ ] EXATAMENTE UM bloco `<squad>{json}</squad>` emitido, com manifest/agents/tasks/knowledge completos
- [ ] Motor validou e materializou `squads/{id}/` — sem materialização manual
- [ ] `validate-squad` do squad recém-criado passou, com resultado reportado

## Falha / recuperação

- **O motor recusa o blueprint** → leia o issue apontado, corrija o blueprint e re-emita. Duas
  recusas seguidas do MESMO issue = pare e reporte com o erro exato, sem contornar o motor.
- **A missão não tem rastro** → HALT: elicite o `traceRef`; sem ele a task não prossegue.
- **Todos os papéis já são cobertos pelo core** → não crie squad: reporte que a missão é da
  @nexus-master orquestrar com o time existente (REUSE total é sucesso, não falha).
- **O time não fecha na faixa (1 membro, ou >7 gaps)** → renegocie o recorte da missão com o
  usuário: fatie a missão ou colapse lentes — não force a faixa com membro decorativo.
