How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/promovaweb/specsfy --skill specsfy-specialist-gitflowBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Gitflow
Quando usar
- Acionar quando a pessoa pedir explicitamente o modelo Gitflow (branches
main/master, develop, feature/*, release/*, hotfix/*) ou quando já existir configuração git 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/ ou hotfix/ 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 develop ou 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 se main/master e develop já 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, develop de 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-rules
grava 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 para develop; release/* parte de develop e vai para main e develop; hotfix/* parte de main e vai para main e develop; sempre com merge --no-ff.
- Coordenar a tag de versão no merge de
release/*ouhotfix/*em
main, alinhando com a estratégia de versionamento já adotada pelo projeto (semver ou outra).
- Verificar que
developrecebeu de volta toda correção aplicada em
release/* ou hotfix/* 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/*
e hotfix/* — 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-x e feature/y no mesmo repositório).
- Fazer
release/*ehotfix/*partirem exatamente do commit dedevelop
ou main correspondente, 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óxima feature/*.
- Fechar todo
hotfix/*mesclando emmain(com tag) e emdevelop(ou na
release/* aberta, se houver uma) na mesma operação — hotfix que só chega em main desaparece 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 por
feature/, release/ ou hotfix/: 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óxima
release/* cortada de develop reintroduz 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/hotfix conflita 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-ff de cada feature/, release/ ou hotfix/ como commits de merge identificáveis, não commits lineares indistinguíveis.
git branch -a --merged developegit branch -a --merged main
conferidos 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 em develop (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-rules quando 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-ff rastreáveis e o ciclo de release/hotfix fechado nos dois destinos.
Skills relacionadas
$specsfy-specialist-merge-conflict-resolutionquando uma integração de
feature/, release/ ou hotfix/ 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.



