Decisões
ORG-0008 — OpenSpec para toda mudança
- Status: aceita
- Data: 2026-10-18
- Decide: todo comportamento entra por change do OpenSpec, revisada antes do código
Contexto
Sem um passo de proposta revisada, o código chega antes do acordo sobre o que fazer, e a especificação, se existe, é escrita depois para descrever o que saiu.
Decisão
- Ciclo de toda change:
explore(opcional) →propose→ revisão do mantenedor →apply→sync→archive. Nenhum código de produto antes da aprovação. - Também são change: atualizar o design system, atualizar a arquitetura, subir a versão maior de uma dependência central e corrigir um bug (uma change pequena: o teste que reproduz e a correção).
- Uma change em
applypor vez; change grande se divide antes do apply. - A versão do OpenSpec CLI é fixa (
eng/tools.versions), eopenspec validate --strictroda na CI quebrando o build.
Alternativas consideradas
| Alternativa | Por que não |
|---|---|
| Issues e PRs sem especificação | Por que não: o comportamento esperado fica espalhado em conversas |
| Especificação escrita depois do código | Por que não: descreve o que saiu, não o que se queria |
Consequências
- As specs em
openspec/specs/são a verdade viva do comportamento. - Toda change tem rastro: proposta, tarefas, decisões e o arquivo final.
Mais
O detalhe está na documentação da arquitetura.