Pular para o conteúdo

Skill: Versionamento

Localização: .cursor/skills/versionamento/SKILL.md Escopo: projeto (ativo apenas neste repositório) Ativação: automática quando o usuário solicita commit, release, tag, CHANGELOG ou incremento de versão


A skill versionamento garante que todo commit e release do projeto SinergIA siga um processo padronizado e rastreável, cobrindo desde a inspeção de arquivos staged até a criação de tags Git anotadas.


Quando o usuário pede commit ou release, o agente executa nesta ordem:

  1. Inspecionar staged — verificar o que está e o que não deve estar
  2. Determinar tipo de mudança — definir o escopo SemVer
  3. Redigir mensagem — padrão Conventional Commits em português
  4. Atualizar versão — nos arquivos de versão do projeto
  5. Atualizar CHANGELOG — antes do commit
  6. Commitar e tagear — commit + tag anotada (em releases)

Antes de qualquer commit, o agente verifica que nenhum dos itens abaixo está staged:

CategoriaExemplos bloqueados
Segredos / credenciais.env, *.pem, *.key, secrets.*, credentials.*
Build / compilaçãodist/, build/, target/, *.class, *.pyc, __pycache__/
Dependênciasnode_modules/, vendor/, .venv/, venv/
IDE / OS.idea/, .vscode/, .DS_Store, Thumbs.db
Logs / temporários*.log, *.tmp, *.bak, TEST*.xml
Mídia pesada*.mp4, *.avi, *.mov, *.tiff, *.flv, *.wmv
Artefatos empacotados*.jar, *.war, *.exe, *.app

IncrementoQuando usarExemplo
MAJORBreaking change — quebra compatibilidade1.x.x → 2.0.0
MINORNova funcionalidade retrocompatível1.2.x → 1.3.0
PATCHCorreção de bug retrocompatível1.2.3 → 1.2.4

Formato:

<tipo>(<escopo>): <descrição curta>
[corpo opcional — explica o porquê, não o quê]
[rodapé opcional: BREAKING CHANGE, refs a issues]

Tipos válidos:

TipoUso
featNova funcionalidade
fixCorreção de bug
docsApenas documentação
refactorRefatoração sem nova feature nem bugfix
testAdição ou correção de testes
choreTarefas de manutenção (CI, deps, config)
styleFormatação, espaçamento
perfMelhoria de desempenho
ciMudanças em pipelines
buildSistema de build, dependências externas
revertReverte commit anterior

Regras: imperativo, minúsculo, sem ponto final, máximo 72 caracteres, em português.


ArquivoCampo
package.json"version"
pubspec.yamlversion:
pyproject.tomlversion =
pom.xml<version>
docs/projeto SinergIA.mdTabela de histórico de versões

Atualizar CHANGELOG.md na raiz antes de cada release. Estrutura padrão Keep a Changelog:

## [X.Y.Z] — YYYY-MM-DD
### Adicionado
### Alterado
### Corrigido
### Removido
### Breaking Changes

Terminal window
git tag -a vX.Y.Z -m "release: vX.Y.Z — <resumo>"
git push origin vX.Y.Z
  • Sempre tags anotadas (-a), nunca leves
  • Formato: vMAJOR.MINOR.PATCH

- [ ] Nenhum arquivo proibido staged
- [ ] Tipo e escopo do commit definidos
- [ ] Mensagem segue Conventional Commits em português
- [ ] CHANGELOG atualizado (se release)
- [ ] Versão incrementada nos arquivos aplicáveis (se release)
- [ ] Tag criada e enviada (se release)

Referências: Conventional Commits · SemVer · Keep a Changelog