chore: update lint rules

This commit is contained in:
2026-09-25 15:52:30 +05:00
parent ebb2176a2c
commit c1d2957ba5
13 changed files with 268 additions and 116 deletions
+15 -14
View File
@@ -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