# Padrão de Versionamento — Fábrica de Apps

> **planilhaprofissional.com** · Regras de versão para código, documentação e deploy

---

## 1. Versionamento Semântico (SemVer)

Formato: **`MAJOR.MINOR.PATCH`** (ex.: `1.2.3`)

| Incremento | Quando usar | Exemplo |
|------------|-------------|---------|
| **MAJOR** | Mudança incompatível (breaking change) | `1.0.0` → `2.0.0` |
| **MINOR** | Nova funcionalidade compatível | `1.0.0` → `1.1.0` |
| **PATCH** | Correção de bug compatível | `1.0.0` → `1.0.1` |

Aplicar em:
- Repositório de cada app (`package.json` → `version`)
- PRD do app (capítulo Informações Gerais)
- Tags no GitHub (`v1.2.3`)
- CHANGELOG.md de cada projeto

---

## 2. Controle de versão do PRD

Cada PRD de app deve ter:

| Campo | Onde |
|-------|------|
| Versão atual | Capítulo 1 — Informações Gerais |
| Histórico | Capítulo 32 — Histórico de Alterações |
| Tabela resumo | Capítulo 31 — Controle de Versões |

**Regra:** toda alteração relevante no PRD incrementa a versão do documento (ex.: `PRD v1.0` → `PRD v1.1`).

---

## 3. Commits padronizados (Conventional Commits)

```
<tipo>(<escopo>): <descrição curta>

[corpo opcional]
```

| Tipo | Uso |
|------|-----|
| `feat` | Nova funcionalidade |
| `fix` | Correção de bug |
| `docs` | Documentação (PRD, README) |
| `style` | Formatação, sem mudança de lógica |
| `refactor` | Refatoração |
| `test` | Testes |
| `chore` | Build, dependências, CI |

**Exemplos:**
```
feat(auth): adicionar tela alterar senha
fix(footer): corrigir link whatsapp no rodapé
docs(prd): atualizar escopo do módulo dashboard
```

---

## 4. CHANGELOG.md (formato Keep a Changelog)

```markdown
## [1.1.0] — 2026-07-15

### Adicionado
- Aba Comece Aqui com link do YouTube

### Corrigido
- Rodapé ausente na tela de login
```

Seções: `Adicionado` · `Alterado` · `Corrigido` · `Removido` · `Segurança`

---

## 5. Tags e releases no GitHub

1. Finalizar sprint / entrega
2. Atualizar `CHANGELOG.md` e versão em `package.json`
3. Commit: `chore(release): v1.1.0`
4. Criar tag: `git tag v1.1.0`
5. Push: `git push origin v1.1.0`
6. GitHub Release com notas do CHANGELOG

---

## 6. Ambientes (Vercel + Supabase)

| Ambiente | Branch Git | Vercel | Supabase | Uso |
|----------|------------|--------|----------|-----|
| **Desenvolvimento** | `develop` | Preview | Projeto Dev | Desenvolvimento diário |
| **Homologação** | `staging` | Preview dedicado | Projeto Staging | Testes antes de produção |
| **Produção** | `main` | Production | Projeto Prod | Clientes finais |

**Regras:**
- Nunca deploy direto em `main` sem passar por homologação
- Variáveis de ambiente separadas por ambiente (`.env.local`, Vercel Dashboard)
- Schema Supabase: mesmo nome de schema por app em cada ambiente (`petcare`, `financas`, etc.)

---

## 7. Versionamento do repositório PRD Modelo

Este repositório (`prd-modelo`) segue SemVer independente dos apps:

- `1.0.0` — Consolidação inicial do framework
- `1.1.0` — Novos requisitos obrigatórios (rodapé, Comece Aqui, schema isolado, etc.)

Histórico: [CHANGELOG.md](../../CHANGELOG.md) na raiz.

---

## 8. Checklist antes de cada release

- [ ] Versão atualizada em `package.json`
- [ ] `CHANGELOG.md` atualizado
- [ ] PRD do app atualizado (cap. 31 e 32)
- [ ] Testes Playwright passando
- [ ] [REQUISITOS_OBRIGATORIOS_APPS.md](REQUISITOS_OBRIGATORIOS_APPS.md) verificado
- [ ] Tag Git criada
- [ ] Deploy homologação validado antes de produção

---

*Documento de referência fixa — planilhaprofissional.com*
