promovaweb/specsfy

specsfy-specialist-gitflow

Aplicar 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.

Ver código-fonte
Documento original do Skill

Renderizado do repositório de origem, preservando títulos, exemplos, código, tabelas, links e imagens.

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

  1. 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.

  1. 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.

  1. Definir com a pessoa os nomes das branches permanentes (main de

produção, develop de integração) e os prefixos das branches de vida curta (feature/, release/, hotfix/, support/ quando aplicável).

  1. 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.

  1. 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.

  1. Coordenar a tag de versão no merge de release/* ou hotfix/* em

main, alinhando com a estratégia de versionamento já adotada pelo projeto (semver ou outra).

  1. Verificar que develop recebeu 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-ff para toda integração de feature/*, 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/* e hotfix/* partirem exatamente do commit de develop

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 em main (com tag) e em develop (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/develop sem 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, deixando develop divergente: 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 (ou git 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 develop e git 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 main para cada release/* ou hotfix/*

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-resolution quando 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-engineering quando o merge em main ou 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.

do mesmo repositório

Mais Skills

Todos os Skills
promovaweb
Comunidade

specsfy-01-inbox

Use quando o usuário enviar uma ideia, pensamento, necessidade, oportunidade ou texto livre para guardar, capturar, anotar ou retomar depois. Preserve o input integral, faça pré-processamento silencioso e crie imediatamente um arquivo timestampado em specs/inbox/. Não faça perguntas, não peça confirmação e não crie backlog, spec, tarefas, testes ou código.

instalações
1
GitHub Stars
80
Atualizado
15 de set.
promovaweb
Comunidade

specsfy-03-specify

Use quando o usuário pede para promover uma entrada ou backlog já refinado, criar, iniciar ou consolidar uma especificação nova ou ainda em Draft em spec.md. Use também quando uma transição automática exigir criar ou completar a fonte normativa inicial. Inicializa specs em specs/draft/ e aplica o MCR-10; para mudar spec aprovada use specsfy-update-spec, para captura sem perguntas use specsfy-01-inbox, para refinamento use specsfy-02-backlog e para revisão sem edição use specsfy-04-validate.

instalações
1
GitHub Stars
80
Atualizado
15 de set.
promovaweb
Comunidade

specsfy-04-validate

Use quando o usuário pede para validar, revisar, auditar ou checar se specs/{id}-{slug}/spec.md segue o formato rígido Specsfy/2.0 e está pronto para planejar. Use também quando uma transição automática pedir prova do Definition Gate ou nova validação após correção. Use antes do Ato II. Registre gates na seção 13 do mesmo arquivo; não crie checklist, relatório, plan.md ou outro artefato.

instalações
1
GitHub Stars
80
Atualizado
15 de set.
promovaweb
Comunidade

specsfy-05-tasks

Use quando o usuário quer quebrar ou decompor a especificação em tarefas, preencher ou atualizar a seção 14. Tarefas de spec.md, ordenar dependências, planejar fatias verticais ou preparar a execução. Use também quando uma transição automática pedir planejamento, replanejamento ou retomada após RED. Use somente para editar o backlog dentro da fonte única; não crie tasks.md, não escreva código nem marque trabalho como concluído.

instalações
1
GitHub Stars
80
Atualizado
15 de set.