---
id: version-management
agent: devops
title: Analisar e recomendar o bump semântico
inputs: [diff desde a última tag]
outputs: [bump recomendado (MAJOR/MINOR/PATCH), próxima versão]
elicit: false
modes: [interactive, yolo]
---

# Analisar e recomendar o bump semântico

**Objetivo:** analisar o diff desde a última tag e recomendar o próximo incremento semântico (MAJOR,
MINOR ou PATCH), com a próxima versão calculada — base para a `release-management`.

**Pré-condições:**
- O repositório tem histórico git e ao menos uma referência de versão (tag ou versão em manifesto). Se
  não há nenhuma, **pare** e proponha `v0.1.0` como ponto de partida.

## Passos

1. **Detecte o contexto do repositório** — remoto, branch base e a última tag (`git describe --tags
   --abbrev=0`). Nunca assuma repo fixo.
2. **Colete o diff desde a última tag** (`git log {ultima-tag}..HEAD --oneline`) — os commits que
   entrarão na próxima versão. Sem commits novos → não há bump a recomendar; reporte.
3. **Classifique os commits** pelos prefixos conventional: `feat!`/`BREAKING CHANGE` → MAJOR; `feat`
   → MINOR; `fix`/`perf` → PATCH; `chore`/`docs`/`refactor` sem efeito externo → sem bump por si.
4. **Determine o maior bump presente.** Um breaking change manda MAJOR; sem breaking, qualquer feature
   manda MINOR; só fixes mandam PATCH. Aplique sobre a última versão para obter a próxima.
5. **Reporte a recomendação** — bump, próxima versão e os commits que justificam cada nível, para que o
   usuário confirme antes de uma release.

## Critério de pronto (DoD)

- [ ] Última versão detectada dinamicamente
- [ ] Diff desde a última tag coletado e classificado por tipo
- [ ] Bump recomendado coerente com SemVer (maior nível presente vence)
- [ ] Próxima versão calculada e justificada pelos commits reais

## Falha / recuperação

- **Sem tag base** → proponho `v0.1.0` e sigo a partir daí; não invento histórico.
- **Commits sem padrão conventional** → não infiro escopo; sinalizo a ambiguidade e recomendo bump
  conservador (PATCH) até o usuário esclarecer.
- **Sem commits novos desde a tag** → reporto "nada a versionar"; não recomendo bump vazio.
