From 05276bc54978991f2ab1e60a7caadd0858a6db1d Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Fri, 29 May 2026 00:55:54 -0300 Subject: [PATCH] chore(docs): set coverage gate to 40/40/40/40 in CLAUDE.md Aligns the documented coverage gate with the v3.8.6 release decision (lowered from 75/75/75/70). Matches the threshold already set in package.json by the large feature PRs (planos 11-22). --- CLAUDE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 7be793ac14..890259a433 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,7 +11,7 @@ npm run build # Production build (Next.js 16 standalone) npm run lint # ESLint (0 errors expected; warnings are pre-existing) npm run typecheck:core # TypeScript check (should be clean) npm run typecheck:noimplicit:core # Strict check (no implicit any) -npm run test:coverage # Unit tests + coverage gate (75/75/75/70 — statements/lines/functions/branches) +npm run test:coverage # Unit tests + coverage gate (40/40/40/40 — statements/lines/functions/branches) npm run check # lint + test combined npm run check:cycles # Detect circular dependencies ``` @@ -366,14 +366,14 @@ For any non-trivial change, read the matching deep-dive first: | E2E (Playwright) | `npm run test:e2e` | | Protocol E2E (MCP+A2A) | `npm run test:protocols:e2e` | | Ecosystem | `npm run test:ecosystem` | -| Coverage gate | `npm run test:coverage` (75/75/75/70 — statements/lines/functions/branches) | +| Coverage gate | `npm run test:coverage` (40/40/40/40 — statements/lines/functions/branches) | | Coverage report | `npm run coverage:report` | **PR rule**: If you change production code in `src/`, `open-sse/`, `electron/`, or `bin/`, you must include or update tests in the same PR. **Test layer preference**: unit first → integration (multi-module or DB state) → e2e (UI/workflow only). Encode bug reproductions as automated tests before or alongside the fix. -**Copilot coverage policy**: When a PR changes production code and coverage is below 75% (statements/lines/functions) or 70% (branches), do not just report — add or update tests, rerun the coverage gate, then ask for confirmation. Include commands run, changed test files, and final coverage result in the PR report. +**Copilot coverage policy**: When a PR changes production code and coverage is below 40% (statements/lines/functions/branches), do not just report — add or update tests, rerun the coverage gate, then ask for confirmation. Include commands run, changed test files, and final coverage result in the PR report. --- @@ -419,7 +419,7 @@ git push -u origin feat/your-feature 6. Never silently swallow errors in SSE streams 7. Always validate inputs with Zod schemas 8. Always include tests when changing production code -9. Coverage must stay ≥75% (statements, lines, functions) / ≥70% (branches). Current measured: ~82%. +9. Coverage must stay ≥40% (statements, lines, functions, branches). 10. Never bypass Husky hooks (`--no-verify`, `--no-gpg-sign`) without explicit operator approval. 11. Never embed public upstream OAuth client_id/secret or Firebase Web keys as string literals — always go through `resolvePublicCred()` (`open-sse/utils/publicCreds.ts`). See `docs/security/PUBLIC_CREDS.md`. 12. Never return raw `err.stack` / `err.message` in HTTP / SSE / executor responses — always route through `buildErrorBody()` or `sanitizeErrorMessage()` (`open-sse/utils/error.ts`). See `docs/security/ERROR_SANITIZATION.md`.