docs(config): atualiza design log com Frente D
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -343,6 +343,32 @@
|
|||||||
3. **Master-login stub + WorkspacePrismaPool** (frente arquitetural — depende do PRD).
|
3. **Master-login stub + WorkspacePrismaPool** (frente arquitetural — depende do PRD).
|
||||||
4. **OpenTelemetry SDK** plugar quando entrar no catálogo.
|
4. **OpenTelemetry SDK** plugar quando entrar no catálogo.
|
||||||
|
|
||||||
|
### 2026-05-27 — Frente D (ESLint boundaries + Husky + commitlint + gitleaks) CONCLUÍDA ✅
|
||||||
|
- **Escopo da sessão:** Higiene de PR — guardrails de qualidade antes da primeira feature de domínio.
|
||||||
|
- **D1 — Tags Nx + depConstraints:**
|
||||||
|
- Tags `scope:api|web|shared`, `type:app|e2e|util`, `domain:shared` adicionadas em todos os 5 projetos (e2e estavam vazios).
|
||||||
|
- `eslint.config.mjs` depConstraints substituído por regras explícitas em 3 eixos:
|
||||||
|
- `scope`: api só usa api+shared; web só usa web+shared; shared não importa código de app-scope.
|
||||||
|
- `type`: apps dependem só de libs (feature/util/data); e2e só do seu app-par + utils; utils são folha.
|
||||||
|
- `nx run-many --skip-nx-cache` verde em todos os 3 projetos com as novas regras.
|
||||||
|
- **D2 — Husky + lint-staged:**
|
||||||
|
- `husky 9` + `lint-staged 17` instalados. `prepare: "husky"` no `package.json`.
|
||||||
|
- `pre-commit`: `eslint --max-warnings=0` + `prettier --check` só nos arquivos staged (rápido, sem varrer repo inteiro).
|
||||||
|
- **D3 — commitlint:**
|
||||||
|
- `@commitlint/cli` + `@commitlint/config-conventional` instalados.
|
||||||
|
- `commitlint.config.js`: tipo obrigatório, subject lowercase, scope enum como `warn` (não `error` — permite escopos novos sem bloquear), body/footer ilimitados.
|
||||||
|
- Hook `commit-msg` ativo. Smoke test: mensagem inválida → 2 erros; mensagem válida → pass.
|
||||||
|
- **D4 — gitleaks via Docker:**
|
||||||
|
- `.gitleaks.toml` criado com `useDefault = true` + allowlist para `.agents/`, `.claude/`, `tmp/`, `.env.example`, `pnpm-lock.yaml`.
|
||||||
|
- Iteração em 3 rodadas para zerar falsos positivos: (1) JWTs de exemplo em BMad skills → excluir `.agents/` e `.claude/`; (2) `tmp/gitleaks-report.json` autopoluindo scan → excluir `tmp/` + adicionar ao `.gitignore`; (3) zero leaks no tree completo.
|
||||||
|
- Pre-commit roda via `docker run --rm -v ... zricethezav/gitleaks:latest`; fallback silencioso se Docker indisponível (socket sem permissão no contexto do hook — comportamento correto; CI usa binário nativo).
|
||||||
|
- **Pegadinha do commit-msg:** subject-case do commitlint rejeita "F" maiúsculo em "Frente D" — subject deve ser lowercase. Corrigido na mensagem de commit.
|
||||||
|
- **Pegadinha Docker no hook:** `sg docker` não funciona em hooks não-interativos. Solução: fallback com `echo` + warning, e usar `sudo usermod -aG docker $USER` + logout/login para resolver permanentemente no desktop dev.
|
||||||
|
- **Pendente próxima sessão (ordem atualizada):**
|
||||||
|
1. **PRD WDS** via `/bmad-prd create` antes de modelar qualquer domínio. Desbloqueia master-login + WorkspacePrismaPool.
|
||||||
|
2. **Master-login stub + WorkspacePrismaPool** (frente arquitetural pesada — depende do PRD).
|
||||||
|
3. **OpenTelemetry SDK** plugar quando entrar no catálogo.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## About This Folder
|
## About This Folder
|
||||||
|
|||||||
Reference in New Issue
Block a user