VendeeDocs
Desenvolvimento

GitHub — Convenções

Branches, commits e pull requests

Repositório

vendee-turborepo (privado) — hospedado na organização usevendee.

Branch Strategy

BranchUso
mainBranch de produção — sempre deployável
feat/<ISSUE-ID>-descricaoNova funcionalidade
fix/<ISSUE-ID>-descricaoCorreção de bug
refactor/<ISSUE-ID>-descricaoRefatoração

Sem branch develop ou staging. O fluxo é direto: feature branch → PR → main.

Commit Messages

Formato convencional com ID da issue:

<prefixo>: descrição curta (ISSUE-ID)

Prefixos válidos:

PrefixoUso
featFuncionalidade nova
fixCorreção de bug
refactorRefatoração sem mudança de comportamento
choreTarefas de infra, build, deps
docsAlterações de documentação
styleFormatação, espaços, ponto-e-vírgula
testAdicionar ou corrigir testes

Exemplos:

feat: add activity status border to deal card (CRM-1)
fix: deal card badge not updating on stage change (CRM-2)
refactor: extract pipeline filters into hook (CRM-4)

PR Template

## What
Brief description of what was implemented.

## Issue
Ref CRM-XX

## How to test
Steps to verify the implementation manually.

No corpo do PR usamos Ref CRM-XX, não Closes CRM-XX. A integração GitHub → Linear move o status conforme os eventos do PR, mas a issue só vai para Done quando o responsável testa na preview e move manualmente. Merge sozinho não fecha a issue.

Automação de status (GitHub → Linear)

EventoStatus
Branch criadaIn Progress
PR abertoIn Progress
PR mergeadoIn Review
Rodrigo testa e aprovaDone (manual)

Regras

  • Uma issue = um branch = um PR. Nunca misturar issues no mesmo branch.
  • PR sempre aponta para main.
  • Incluir Ref <ISSUE-ID> na descrição (não Closes).
  • Nunca fazer push direto na main.
  • Se a tarefa crescer, quebre em mais issues — não empilhe escopo num PR só.

Checklist pré-PR

Antes de abrir o PR, rode localmente:

bun run check-types      # tsc -b (project references) — NUNCA tsc --noEmit diretamente
bun run lint             # zero warnings
bun run build            # build completo

bun run check-types usa tsc -b por causa das project references do monorepo. Rodar tsc --noEmit num app isolado pode passar verde mas quebrar o build da Vercel — sempre use o script do package.json.

On this page