---
id: spec-tmpl
kind: template
agent: pm
produces: docs/specs/{slug}-spec.md
---

# Spec: {nome da feature}

**Status:** Draft
**Classe de complexidade:** {SIMPLE | STANDARD | COMPLEX}
**Requisitos de origem:** {docs/specs/{slug}-requirements.json}
**Autor:** @pm (Morgan)
**Data:** {data}

## Contexto e Problema

> O "por quê" elicitado no gather. Toda afirmação aqui rastreia a um requisito ou achado — No Invention.

- **Problema:** {a dor que motiva a spec}
- **Usuário/stakeholder:** {quem pediu e quem usa}
- **Resultado esperado:** {o que muda quando isto existir}

## Requisitos Formalizados

> Cada item carrega seu ID de origem (FR/NFR/CON ou achado de pesquisa). Sem origem = não entra.

### Funcionais
| ID | Requisito | Origem | Critério de aceite (verificável) |
|---|---|---|---|
| FR-1 | {comportamento esperado} | {req-id / achado} | {testável sim/não} |

### Não-Funcionais
| ID | Categoria | Requisito | Critério mensurável |
|---|---|---|---|
| NFR-1 | {performance/segurança/...} | {restrição} | {limite verificável} |

### Restrições
| ID | Restrição | Origem |
|---|---|---|
| CON-1 | {limite externo} | {req-id / decisão} |

## Comportamento Esperado

> Cenários no formato dado/quando/então. Cada cenário mapeia a um FR.

- **Cenário {n}** (FR-{x}): dado {contexto}, quando {ação}, então {resultado observável}.

## Interfaces e Contratos

> Entradas, saídas e contratos que a feature expõe ou consome. Estrutura, não implementação.

- **Entradas:** {dados/parâmetros}
- **Saídas:** {retorno/efeito}
- **Contrato/Interface:** {assinatura/forma do payload}

## Fora de Escopo

> O que esta spec deliberadamente NÃO cobre — protege o recorte e a crítica.

- {item excluído}

## Critérios de Aceite Globais

> Como a feature inteira é considerada concluída. Verificável.

1. {critério global testável}

## Riscos e Dependências

| Tipo | Item | Impacto | Mitigação |
|---|---|---|---|
| Dependência | {serviço/dado/spec} | {o que trava} | {plano} |
| Risco | {o que pode falhar} | {severidade} | {redução} |

## Gate de Rastreabilidade (No Invention, Art. IV)

> Cada FR/NFR/CON acima aponta para uma origem. Esta tabela prova o rastro — entrada para a crítica @qa.

| Item da spec | Origem rastreada |
|---|---|
| FR-{n} | {req-id / NFR / CON / achado de pesquisa} |

## Próximos Passos (Spec Pipeline)

- Crítica da spec → @qa (`critique.json`)
- Plano de implementação → @architect (`implementation.yaml`)
- Arquitetura/tecnologia → @architect
