chore: add lint rules, fix script\configs

This commit is contained in:
2026-10-08 04:51:15 +05:00
parent 76039f7bf3
commit 0e8c2478a1
32 changed files with 753 additions and 272 deletions
+28
View File
@@ -131,6 +131,34 @@ report-only (`warn`), baseline — 0 срабатываний.
- Тесты: `__tests__/no-hardcoded-user-text.test.ts` — `RuleTester` на
svelte-eslint-parser плюс прямые кейсы `hasUserWords`.
## Плагин conventions: текстовые конвенции
- `conventions/ascii-only` — в файлах, заданных scope'ом конфига (`*.test.ts`,
`*.spec.ts`, `e2e/**`), только ASCII: типографика и неанглийский текст в
`describe`/`it` и ожиданиях мешают поиску и скрывают хардкод локализованных
строк. Осознанные глифы (например `×` в пайплайне) — через опцию `allowChars`
в `eslint.config.js`. Один репорт на строку.
- `conventions/comments-english` — комментарии только на английском, по **белому
списку**: комментарий обязан быть ASCII, поэтому ловятся любые письменности
(кириллица, CJK, арабский), а не один конкретный алфавит; осознанные глифы —
через опцию `allowChars`. Строковые литералы не трогаем — локализованные
значения легальны в словарях.
- `conventions/comment-format` — два мягких потолка: `maxBlockLines` (по
умолчанию 5) строк на один блок комментариев и `maxRatio` (по умолчанию 0.15)
— доля комментарных строк от непустых строк файла; density проверяется только
в файлах от `minLines` непустых строк (в конфиге 100), иначе любая шапка в
маленьком файле даёт ложное превышение. Превышение — сигнал к рефакторингу
кода, а не к сжатию комментария.
Scope правил комментариев — не только `src/`: сами плагины, `scripts/` и
`*.config.*` живут по тем же конвенциям (dogfooding, их baseline вычищен до
нуля). Фикстуры и тесты правил (`__fixtures__/`, `__tests__/`) — намеренные
входные кейсы и из scope исключены. В `src/` baseline ненулевой, поэтому все три
правила введены warn-only и в `lint:all` отключены через override в
`scripts/lint-all.mjs`, пока не сделана чистка (`docs/backlog.md`, раздел «Тесты
и lint»). Тесты: `__tests__/ascii-only.test.ts`,
`__tests__/comments-english.test.ts`, `__tests__/comment-format.test.ts`.
## Токены-префиксы (целевой словарь дизайна)
- Цвета: `--color-*`, бренд `--brand-main` / `--brand-alt` — единственные две