4gray and Claude Opus 5
9b7776a901
chore(lint): hold tests to their own max-lines ceiling ( #1306 )
...
* chore(lint): hold tests to their own max-lines ceiling
The flat 400-line cap treated a spec like a component. A spec is a flat
list of independent cases, so hitting the cap there produces arbitrary
`-2.spec.ts` splits and hides coverage instead of surfacing design debt —
65 of the 138 files over the limit were tests.
Production code keeps 400. Tests (`**/*.spec.ts`, `**/*.e2e.ts`, and
everything under `apps/*-e2e/**`) get 1200. Blank lines and comments no
longer count, so a docblock can't be the reason a file must be split.
Both limits now live in tools/eslint/max-lines-config.mjs, imported by
eslint.config.mjs and the baseline generator alike. The generator decides
who belongs on the list by running ESLint's own max-lines rule instead of
counting lines itself — a private reimplementation would disagree with the
rule the moment either side changed (a `//` inside a template literal is
enough) and yield a baseline that turns CI red while looking correct.
The baseline drops 126 -> 68 entries with nothing added, and six now-dead
`eslint-disable max-lines` directives are removed. A new eslint-tools test
asserts the committed baseline still matches what the generator produces,
so a stale entry or a forgotten regeneration fails CI.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
* chore(lint): classify eslint-tools in the coverage policy
A project with a `test` target must be assigned a coverage tier, so
adding eslint-tools broke `coverage:policy:check` before the unit suite
even ran. Tier B alongside packaging and release-tools: these are Node
tests over lint tooling, and a coverage percentage across a generated
list would not mean anything.
CI runs Tier B/C through its own `--run-non-tier-a` step, so the
baseline-consistency test executes there rather than being skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com >
2026-07-29 08:08:04 +02:00
..
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 02:15:59 +02:00
2026-07-29 08:08:04 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 10:34:22 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-29 08:08:04 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 08:08:04 +02:00
2026-07-29 08:08:04 +02:00
2026-07-28 21:30:35 +02:00
2026-07-29 08:08:04 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 02:15:58 +02:00
2026-07-27 02:15:58 +02:00
2026-07-27 10:34:22 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-26 09:25:51 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 02:15:58 +02:00
2026-07-27 02:15:58 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 02:27:57 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-27 10:34:22 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 21:30:35 +02:00
2026-07-28 21:30:35 +02:00
2026-07-28 21:30:35 +02:00
2026-07-27 02:15:59 +02:00
2026-07-27 02:15:59 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 22:55:49 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 22:55:49 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 08:08:04 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-29 01:05:32 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00
2026-07-28 08:08:07 +02:00