About specsfy-specialist-gitflow
A Gitflow specialist skill for projects that have explicitly chosen the Gitflow branching model. It guides branch naming, merges, release tags, and closing branch cycles without assuming Gitflow from repository structure alone.
Key features
- 01Confirm Gitflow is explicitly adopted
- 02Define permanent branches and naming prefixes
- 03Guide feature, release, and hotfix branch cycles
- 04Use traceable no-fast-forward merges
- 05Check release tags and back-merges
Use cases
- 01Name and integrate a feature branch in a Gitflow project
- 02Prepare and close a release branch
- 03Propagate a hotfix to main and develop
- 04Verify branch policy and release history
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ promovaweb/ specsfy --skill specsfy-specialist-gitflowAfter installing, type/specsfy-specialist-gitflowin Claude Code to confirm it loaded.
Bundled filesagents/openai.yamlreferences/standards.md
Details
From the project READMEGitflow
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.
Comments
Markdown supported