mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
chore: update lint rules
This commit is contained in:
+4
-4
@@ -57,10 +57,10 @@
|
||||
|
||||
- registry нового UI содержит 122 инструмента;
|
||||
- `pnpm --dir web check` проходит без ошибок и предупреждений;
|
||||
- `pnpm --dir web lint:all` завершается с 0 errors, но с 188 warnings
|
||||
`i18n/dict-consistency` и 4 unused design tokens;
|
||||
- unit/e2e результаты считать актуальными только после отдельного прогона;
|
||||
исторические числа в `docs/archive/` не являются baseline.
|
||||
- `pnpm --dir web lint:all` завершается с 0 errors и 0 i18n warnings; остаются 4
|
||||
unused design tokens от token audit;
|
||||
- `pnpm verify` проходит; unit/e2e результаты считать актуальными только после
|
||||
отдельного прогона, исторические числа в `docs/archive/` не являются baseline.
|
||||
|
||||
Baseline и следующий шаг поддерживаются в `docs/plan-codebase-quality.md`.
|
||||
|
||||
|
||||
+4
-2
@@ -5,8 +5,8 @@
|
||||
- [x] Кросс-языковой линтер словарей (warn-only: паритет ключей, пустые
|
||||
значения, совпадение `{placeholder}`-переменных между всеми локалями) —
|
||||
правило `i18n/dict-consistency`, детали в §Фаза 8
|
||||
`docs/plan-preview-i18n.md`. Правило реализовано; доведение baseline до
|
||||
zero-warning вынесено в Q2 `docs/plan-codebase-quality.md`.
|
||||
`docs/plan-preview-i18n.md`. Правило реализовано; Q2 перевёл i18n baseline
|
||||
к zero-warning через policy-aware fallback, не меняя `/v1`.
|
||||
- [ ] проверка дублирования кода html - div с одинаковым классом и т.д. (глянуть
|
||||
что за `SonarLint` или написать кастомный линтер)
|
||||
- [ ] проверка текстов в svelte\ts\html - всё тексты должны быть через i18n
|
||||
@@ -14,6 +14,8 @@
|
||||
- [ ] консистентность комментариев - если есть описание к одному инструменту -
|
||||
оно должно быть у всех или объяснено, почему этот инструмент такой
|
||||
особенный и заслуживает комментарий
|
||||
- [ ] удалить legacy `tools.*.params` из root i18n после проверки потребителей;
|
||||
до этого Q2 держит pattern-based policy-исключение
|
||||
|
||||
## Мелочи всякие
|
||||
|
||||
|
||||
@@ -112,21 +112,22 @@ pnpm --dir web test:e2e
|
||||
|
||||
### Q2. Политика i18n и zero-warning baseline
|
||||
|
||||
**Оценка:** M. **Зависимости:** Q0, Q1.
|
||||
**Статус:** готов к ревью. **Проверено:** i18n lint даёт 0 warnings, rule-тесты
|
||||
и полный `pnpm verify` проходят. **Оценка:** M. **Зависимости:** Q0, Q1.
|
||||
|
||||
- Решить, являются ли `registry.title/description` физическими ключами словарей
|
||||
или допустимым английским fallback.
|
||||
- Не исправлять расхождения массовым allowlist-ом. Сначала классифицировать их
|
||||
на реальные пропуски и осознанные fallback-источники.
|
||||
- Дополнить словари до согласованной схемы, включая реальные пропуски в `ru.ts`.
|
||||
- После очистки включить zero-warning gate.
|
||||
- Отдельно проверить, что изменения в i18n не требуют синхронного изменения
|
||||
`v1`-словарей: новая и legacy-ветки изолированы.
|
||||
- Не начинать plural-формы до решения модели `string | PluralForms`
|
||||
(`docs/plan-preview-i18n.md:289-307`).
|
||||
|
||||
**Готово, когда:** dictionary linter даёт ноль несогласованностей без
|
||||
молчаливого подавления ошибок, а тесты словарей проходят в обеих локалях.
|
||||
- `BASE_LOCALE` — единственный источник registry-English fallback для
|
||||
`tools.*.title` и `tools.*.description`; остальные локали требуют физические
|
||||
ключи.
|
||||
- Legacy `tools.*.params` исключён pattern-based policy до отдельной очистки
|
||||
мёртвого словаря; пустые значения и placeholders не подавляются.
|
||||
- Исправлены три реальных RU option-label gaps и удалены неиспользуемые legacy
|
||||
option-группы из `ru.ts`.
|
||||
- Исправлен tie-break placeholder parity: при равенстве голосов выбирается
|
||||
`BASE_LOCALE`.
|
||||
- `lint-all` запускает ESLint с `--max-warnings=0`; token audit пока оставляет 4
|
||||
unused-token warnings отдельным debt.
|
||||
- Plural-формы остаются отдельной задачей после Q2 и не смешиваются с этим
|
||||
этапом.
|
||||
|
||||
### Q3. Тестовый контракт e2e
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# План: i18n в preview (новый UI)
|
||||
|
||||
> Статус: **частично выполнен** — базовая i18n-инфраструктура нового UI,
|
||||
> локализация ошибок и `i18n/dict-consistency` уже реализованы; zero-warning
|
||||
> baseline и plural-формы остаются Q2. Актуальные решения и ограничения — в
|
||||
> `docs/plan-codebase-quality.md`.
|
||||
> локализация ошибок, `i18n/dict-consistency` и zero-warning baseline Q2
|
||||
> реализованы; plural-формы остаются отдельной задачей. Актуальные решения и
|
||||
> ограничения — в `docs/plan-codebase-quality.md`.
|
||||
|
||||
## 1. Что получается
|
||||
|
||||
@@ -279,11 +279,11 @@
|
||||
`empty value "x.y" in en`.
|
||||
- **Паритет плейсхолдеров**: у одинакового ключа набор `{name}` одинаковый во
|
||||
всех локалях — поймать потерянную при переводе переменную.
|
||||
- **8.3** Цель — zero-warn. Сейчас `en.ts` неполный (в `tools` только
|
||||
результаты-помощники, остальной английский — из реестра), поэтому после
|
||||
включения будет много warn'ов: доводим `en.ts` до полноты `ru.ts` (секции +
|
||||
`tools` полностью, source — registry-English, без дрейфа). До достижения цели
|
||||
допускается allowlist-механизм в ядре правила для осознанных отклонений.
|
||||
- **8.3** Политика источников: `tools.*.title` и `tools.*.description` в
|
||||
`BASE_LOCALE` намеренно берутся из registry English fallback; остальные локали
|
||||
обязаны иметь физические переводы. Старый `tools.*.params` не используется
|
||||
новым UI и пока исключён policy-pattern, а не списком id. Target — zero-warn
|
||||
без молчаливых подавлений.
|
||||
- **8.4** Тесты правила — фикстуры в `web/eslint-plugins/__fixtures__/`, док в
|
||||
`web/eslint-plugins/README.md`; включение в `eslint.config.js` как `"warn"`.
|
||||
|
||||
|
||||
@@ -50,12 +50,15 @@ baseline; после закрытия известных ошибок его м
|
||||
## Errors и warnings
|
||||
|
||||
- `errors` завершают соответствующий инструмент ненулевым кодом.
|
||||
- `warnings` не завершают текущий lint автоматически, пока не включён строгий
|
||||
режим.
|
||||
- На baseline Q0 `lint:all` даёт 0 errors, 188 `i18n/dict-consistency` warnings
|
||||
и 4 unused-token warnings. Это известные долги, а не чистый результат.
|
||||
- После Q2 parity-линтер должен перейти к zero-warning, после чего можно
|
||||
включить `--max-warnings=0` без обходных allowlist-ов.
|
||||
- После Q2 ESLint запускается с `--max-warnings=0`: новые ESLint warnings
|
||||
блокируют gate.
|
||||
- Token audit пока оставляет unused-token warnings отдельным неблокирующим
|
||||
сообщением.
|
||||
- `lint:all` по-прежнему сообщает 4 unused-token warnings отдельным
|
||||
предупреждением token audit; это следующий debt Q6.
|
||||
- `dict-consistency` использует base-locale fallback для registry metadata и
|
||||
pattern-based policy для legacy `tools.*.params`; это не молчаливый
|
||||
`allowPaths`-список.
|
||||
|
||||
## CI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user