chore(husky): alinha pre-push hook com gate de CI + versiona F5-3.5#96
Merged
Conversation
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)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
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-pushpara rodar apenasnpm run typecheck && npm run lint:baseline. - Atualiza
docs/ONBOARDING.mdpara refletir o novo comportamento do pre-push. - Versiona a pendência do
pre-commitcomo F5-3.5 emdocs/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>`). |
| 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)
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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:
Validacao
```
$ sh .husky/pre-push
Antes do PR: hook falhava por 3 motivos pre-existentes (>5 min, exit 1).
Arquivos alterados
Risco
Apos este PR
Refs