Gitflow
SkillDev toolsAplicar e revisar o modelo Gitflow de branches (main, develop, feature/*, release/*, hotfix/*, support/*), convenção de nomes, política de merge e sequência de release/hotfix. Use quando o projeto adotar Gitflow explicitamente ou a pessoa pedir esse fluxo de branches; use também para nomear, sequenciar e fechar feature/release/hotfix num projeto que já declarou Gitflow; não proponha Gitflow por inferência a partir da estrutura do repositório, não use para resolver conflito já aberto (`$specsfy-specialist-merge-conflict-resolution`) nem para desenhar o pipeline de CI/CD (`$specsfy-specialist-delivery-engineering`).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Gitflow skill
What this skill tells your AI
The instructions your AI receives, as published by promovaweb/specsfy in specialists/specsfy-specialist-gitflow/SKILL.md and read by ahel’s review.
Quando usar
- Acionar quando a pessoa pedir explicitamente o modelo Gitflow (branches
main/master,develop,feature/*,release/*,hotfix/*) ou quando já existir configuraçãogit flow(git config --get-regexp '^gitflow\.') ou instrução do projeto declarando essa escolha. - Acionar também para nomear, sequenciar ou fechar uma branch
feature/,release/ouhotfix/dentro de um projeto que já declarou Gitflow como estratégia de branch. - Não acionar para propor Gitflow a um projeto que não pediu isso — a escolha
do modelo de branch é decisão explícita de quem conduz o projeto, nunca
inferida pela presença de uma branch chamada
developou pelo volume de branches abertas. - Não acionar para resolver um conflito já em andamento
(
$specsfy-specialist-merge-conflict-resolution) nem para desenhar o pipeline ou a promoção de artefato entre ambientes ($specsfy-specialist-delivery-engineering) — aqui o foco é a topologia e a política das branches, não a resolução textual nem a entrega.
Fluxo
- Confirmar que a pessoa pediu Gitflow explicitamente, ou apontar a configuração/instrução existente que já declara essa escolha, antes de aplicar qualquer convenção — nunca presumir Gitflow a partir da estrutura do repositório.
- Verificar o estado real das branches (
git branch -a,git config --get-regexp '^gitflow\.') para saber semain/masteredevelopjá existem e se a nomenclatura das branches auxiliares já diverge do padrão adotado. - Definir com a pessoa os nomes das branches permanentes (
mainde produção,developde integração) e os prefixos das branches de vida curta (feature/,release/,hotfix/,support/quando aplicável). - Registrar a decisão como regra confirmada do projeto (
$specsfy-aux-rulesgrava em.specsfy/RULES.md), incluindo prefixos, branch-alvo de cada tipo e política de merge — não deixar a convenção apenas verbal. - Orientar a abertura, a integração e o fechamento de cada tipo de branch:
feature/*parte de e volta paradevelop;release/*parte dedevelope vai paramainedevelop;hotfix/*parte demaine vai paramainedevelop; sempre commerge --no-ff. - Coordenar a tag de versão no merge de
release/*ouhotfix/*emmain, alinhando com a estratégia de versionamento já adotada pelo projeto (semver ou outra). - Verificar que
developrecebeu de volta toda correção aplicada emrelease/*ouhotfix/*antes de considerar o ciclo fechado — divergência aqui reaparece como regressão no próximo release.
Padrões
- Usar
git merge --no-ffpara toda integração defeature/*,release/*ehotfix/*— merge fast-forward apaga o registro de que aquela branch existiu, do qual a auditoria de release do Gitflow depende. - Nomear com prefixo consistente e o mesmo separador em todo o projeto
(
feature/<slug>,release/<versao>,hotfix/<versao-ou-slug>); não misturar convenções (feature-xefeature/yno mesmo repositório). - Fazer
release/*ehotfix/*partirem exatamente do commit dedevelopoumaincorrespondente, sem cherry-pick seletivo de commits ainda não integrados. - Aplicar em
release/*somente correção de bug, texto, documentação e preparação de release (changelog, versão) — funcionalidade nova não entra numa branch de release já aberta; volta para a próximafeature/*. - Fechar todo
hotfix/*mesclando emmain(com tag) e emdevelop(ou narelease/*aberta, se houver uma) na mesma operação — hotfix que só chega emmaindesaparece do próximo release. - Apagar a branch de vida curta (
feature/*,release/*,hotfix/*) depois do merge confirmado nos dois destinos — branch finalizada e não apagada convida retrabalho sobre código já integrado.
Antipadrões
- Push direto ou merge fast-forward em
main/developsem passar porfeature/,release/ouhotfix/: quebra a rastreabilidade que justifica adotar Gitflow em vez de um modelo mais simples. - Funcionalidade nova adicionada dentro de uma
release/*já aberta "para aproveitar a janela": aumenta o escopo testado depois do corte e atrasa a liberação sem necessidade. - Hotfix mesclado apenas em
main, deixandodevelopdivergente: a próximarelease/*cortada dedevelopreintroduz o bug já corrigido em produção. - Adotar Gitflow num projeto com deploy contínuo várias vezes ao dia: a
sobrecarga de branches longas de
release/hotfixconflita com entrega contínua; nesse contexto, avalie com a pessoa se GitHub Flow ou trunk-based atende melhor antes de aplicar Gitflow por hábito. - Confundir "temos uma branch chamada develop" com "o projeto usa Gitflow": sem a política de merge, os prefixos e o ciclo de release completos, é apenas uma branch com esse nome, não o modelo.
Validação
git log --graph --oneline --all(ougit log --first-parent main) mostrando os merges--no-ffde cadafeature/,release/ouhotfix/como commits de merge identificáveis, não commits lineares indistinguíveis.git branch -a --merged developegit branch -a --merged mainconferidos antes de apagar uma branch de vida curta, garantindo que o merge realmente aconteceu nos dois destinos esperados.- Tag de versão presente em
mainpara cadarelease/*ouhotfix/*fechado (git tag --contains <commit-do-merge>), e a mesma correção presente emdevelop(git log develop --oneline | grep <commit>ou equivalente). .specsfy/RULES.md(ou instrução equivalente do projeto) registrando a convenção de nomes e a política de merge, revisitada por$specsfy-aux-rulesquando alguém a violar.- Não declarar "o projeto segue Gitflow" apenas porque existe uma branch
develop; a evidência exige prefixos consistentes, merges--no-ffrastreáveis e o ciclo derelease/hotfixfechado nos dois destinos.
Skills relacionadas
$specsfy-specialist-merge-conflict-resolutionquando uma integração defeature/,release/ouhotfix/já em andamento gerar conflito — esta skill decide a topologia e a política de branch, a outra resolve o conflito textual ou semântico já aberto.$specsfy-specialist-delivery-engineeringquando o merge emmainou a tag de release precisar disparar pipeline, build de artefato ou promoção entre ambientes — esta skill entrega a branch e a tag corretas, a outra decide como o pipeline reage a elas.
Leia references/standards.md para o mapa completo
de branches, os comandos git flow equivalentes em Git puro e as fontes
oficiais do modelo.
Signals
- GitHub stars
- 79
- Forks
- 37
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
specsfy-specialist-gitflow- Source
- github.com/promovaweb/specsfy