Skip to content

chore(husky): alinha pre-push hook com gate de CI + versiona F5-3.5#96

Merged
adm01-debug merged 1 commit into
mainfrom
chore/pre-push-alinhar-com-ci
May 8, 2026
Merged

chore(husky): alinha pre-push hook com gate de CI + versiona F5-3.5#96
adm01-debug merged 1 commit into
mainfrom
chore/pre-push-alinhar-com-ci

Conversation

@adm01-debug
Copy link
Copy Markdown
Owner

Em portugues claro pro Joaquim

Problema: o hook `pre-push` (script automatico que roda quando alguem da `git push`) estava 100% quebrado por 3 razoes pre-existentes:

  1. Lint check exigia <500 warnings — hoje sao 561
  2. Lint check exigia 0 errors — hoje sao 1.571 (ja documentado em F5-3.3)
  3. Rodava 58 arquivos de testes — sendo que 16 deles ja estao quebrados (F5-3.1)

Resultado: hook ficou inutil. `--no-verify` virou habito (licao #2 do handoff).

Solucao: trocar o hook pra rodar so os 2 gates que de fato funcionam:
```
npm run typecheck && npm run lint:baseline
```

Esse e o MESMO gate que o CI usa (apos PR #95). Hook vira espelho do CI.

O que NAO faz:

  • Nao toca em codigo de producao
  • Nao desliga testes — continuam rodando em CI normalmente
  • Nao mexe no pre-commit (continua quebrado, mas agora versionado em F5-3.5)

Validacao

```
$ sh .husky/pre-push

npm run typecheck && npm run lint:baseline
ESLint baseline gate - atual: 1571 erros baseline: 1571 erros
exit: 0 em 62s
```

Antes do PR: hook falhava por 3 motivos pre-existentes (>5 min, exit 1).

Arquivos alterados

Arquivo Linhas O que muda
`.husky/pre-push` 1 -1 / +1 Substitui comando do hook
`docs/ONBOARDING.md` -1 / +1 Atualiza descricao do hook
`docs/AUDITORIA_2026-05-07.md` +1 Adiciona F5-3.5 (pre-commit pendente)
Total 3 arquivos, +3 / -2

Risco

Vetor Avaliacao
Producao Zero (so hook local + docs)
CI Continua funcionando inalterado (mais rigoroso que hook)
Devs Hook fica usavel; `git push` deixa de precisar `--no-verify`
Reversao `git revert`

Apos este PR

  • Hook `pre-push`: ✅ usavel
  • Hook `pre-commit`: ❌ ainda quebrado (F5-3.5 pendente, junto com F5-3.3)
  • 16 testes falhando: F5-3.1, pre-requisito pra devolver `npm run test` ao hook

Refs

PROBLEMA
========
O hook .husky/pre-push rodava 3 comandos:
  npm run typecheck && npm run lint:check && npm run test -- --run --reporter=dot

Estado real desses comandos no repo hoje:
  1. typecheck: passa em 2s (saudavel)
  2. lint:check: FALHA (1567 errors + 561 warnings, --max-warnings=500)
  3. npm run test: FALHA (16 testes pre-existentes quebrados, F5-3.1)
     + tempo total 5+ min

Resultado: hook 100% vermelho desde drift do Lovable. --no-verify virou
politica de fato (licao #2 do handoff). Hook deixou de proteger qualquer
coisa.

SOLUCAO
=======
Trocar hook por:
  npm run typecheck && npm run lint:baseline

Justificativa:
- typecheck: gate barato (2s), sempre util, ja roda em CI
- lint:baseline: ESPELHO EXATO do gate de CI (apos PR #95 regenerar baseline)
- npm run test: REMOVIDO do hook ate F5-3.1 ser resolvido. Testes
  continuam rodando em CI normalmente. Quando os 16 testes forem
  consertados, devolver ao hook.

EFEITOS
=======
- Hook fica usavel: ~62s por push, exit 0 no estado limpo
- Detecta typescript errors NOVOS (gate primario)
- Detecta ESLint regressions NOVAS (gate baseline)
- CI continua mais rigoroso que hook (executa testes + 5 outros checks)
- --no-verify deixa de ser necessario em git push

PRE-COMMIT NAO RESOLVIDO
========================
O hook .husky/pre-commit (npx lint-staged com eslint --max-warnings=0)
continua quebrado para qualquer commit em arquivo com erro legado.
Versionado como F5-3.5 na auditoria pra ser resolvido junto com F5-3.3.

ARQUIVOS
========
1. .husky/pre-push - 1 linha alterada
2. docs/ONBOARDING.md - texto 'roda testes automaticamente' atualizado
3. docs/AUDITORIA_2026-05-07.md - F5-3.5 adicionado

VALIDACAO
=========
$ sh .husky/pre-push
exit: 0 em 62s

REVERSAO
========
git revert do PR. Hook volta ao formato antigo (com 3 comandos vermelhos).

REFS
====
- Licao #2 do handoff: drift do Lovable
- Bloqueador resolvido: --no-verify obrigatorio em git push
- Bloqueador NAO resolvido: --no-verify ainda obrigatorio em git commit (F5-3.5)
- F5-3.1: 16 testes pre-existentes falhando (pre-requisito pra devolver test ao hook)
Copilot AI review requested due to automatic review settings May 8, 2026 11:14
@vercel
Copy link
Copy Markdown

vercel Bot commented May 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
promo-gifts Ready Ready Preview, Comment May 8, 2026 11:15am

@adm01-debug adm01-debug merged commit 9402fda into main May 8, 2026
10 of 18 checks passed
@adm01-debug adm01-debug deleted the chore/pre-push-alinhar-com-ci branch May 8, 2026 11:15
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Este PR realinha o hook pre-push do Husky com os gates que estão efetivamente verdes no CI, tornando o fluxo de git push utilizável novamente sem depender de --no-verify, e documenta essa decisão nos materiais de onboarding/auditoria.

Changes:

  • Troca o comando do .husky/pre-push para rodar apenas npm run typecheck && npm run lint:baseline.
  • Atualiza docs/ONBOARDING.md para refletir o novo comportamento do pre-push.
  • Versiona a pendência do pre-commit como F5-3.5 em docs/AUDITORIA_2026-05-07.md.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
.husky/pre-push Substitui o gate local do pre-push por typecheck + lint:baseline.
docs/ONBOARDING.md Atualiza a documentação de onboarding para o novo gate do pre-push.
docs/AUDITORIA_2026-05-07.md Adiciona o item F5-3.5 documentando a dívida do pre-commit hook.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- **Ordem sugerida de execução:** F5-3.3.1 (zero risco, -19%) → F5-3.3.5 → F5-3.3.6 → F5-3.3.4 → F5-3.3.7 → F5-3.3.8 → F5-3.3.2 → F5-3.3.3 (mais arriscado, por último).
- **Baseline atual:** `.eslint-baseline.json` regenerado em 07/05/2026 congelando 1571 erros como linha de partida. Qualquer NOVO erro a partir daqui é bloqueado pelo gate de CI.
- [ ] **F5-3.4** Migrations duplicadas `20250103_*` (19 com sufixos `_FIXED`) — consolidar
- [ ] **F5-3.5** Habilitar pre-commit hook (`lint-staged` com `eslint --fix --max-warnings=0`) — atualmente inutilizável: bloqueia qualquer commit que toque em arquivo com erro legado, forçando uso de `git commit --no-verify` (lição #2 do handoff). Resolver junto com **F5-3.3** quando baseline de erros for atacado. Decisão filosófica pendente: aceitar warnings novos (`--quiet`) ou manter `--max-warnings=0` após limpeza? Versionado em 07/05/2026 quando o pre-push hook foi alinhado com gate de CI (commit `<a definir>`).
Comment thread docs/ONBOARDING.md
2. Crie branch `feat/<short-name>`
3. Rode `npm run lint && npm test` antes de commit
4. Husky pre-push roda testes automaticamente
4. Husky pre-push roda `typecheck` + `lint:baseline` (gate de regressão de ESLint)
adm01-debug added a commit that referenced this pull request May 8, 2026
CONTEUDO
========
1. docs/AUDITORIA_2026-05-07.md atualizado:
   - Status Fase 1: 12/15 (80%) -> 16/19 (84%)
   - Adicionada secao 1.7 Paginas orfas (F1-7.1 a F1-7.12)
   - Adicionada secao 1.8 Quick-wins infra (F1-8.1 a F1-8.5)
   - Changelog v1.3 com sumario dos 4 PRs

2. docs/HANDOFF-2026-05-07-SESSAO-NOITE.md NOVO:
   - Handoff suplementar pra proxima instancia
   - Resumo: o que foi feito, o que ficou versionado
   - Achados bonus pendentes (F1-7.11, F1-7.12)
   - Estado atual dos gates (validar no inicio da proxima sessao)
   - Checklist de primeira acao
   - Proximas opcoes estrategicas

CONTEXTO
========
Sessao de noite mergeou 4 PRs em sequencia consertando infra de CI
e fazendo a primeira faxina propriamente dita:
- PR #94 (5a3c7f5) fix smoke-tests
- PR #95 (dd33143) regenera baseline ESLint, versiona F5-3.3
- PR #96 (9402fda) alinha pre-push hook, versiona F5-3.5
- PR #97 (741af39) deleta 4 paginas orfas (-1139 linhas)

GOVERNANCA
==========
Mudanca Pequena (2 arquivos, ~200 linhas) -> merge direto na main.
Atende ao pedido do Joaquim: 'deixe bem documentado o que ja
fizemos, assim se eventualmente o chat chegar em seu limite, o
proximo agente Claude vai conseguir continuar a faxina'.

REFS
====
- F1-7, F1-8, F5-3.3, F5-3.5 versionadas
- Sessao da tarde: docs/HANDOFF-2026-05-07.md (intacto)
- Sessao de noite: docs/HANDOFF-2026-05-07-SESSAO-NOITE.md (NOVO)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants