Vitest config consolidation: одна shared конфигурация для всех пакетов
## Что это
В монорепо 20+ packages, у каждого свой vitest.config.ts. Большинство — копипаст с минимальными differences. Vision: `vitest.shared.ts` + per-package extends.
Что входит:
- `vitest.shared.ts` в root: общие resolve / plugins / test.setupFiles / coverage thresholds
- Каждый package extends shared с минимальными overrides (например, jsdom vs node env)
- Удаление duplicate setup-файлов
- Stronger TS-types для shared config
- Documentation: «как добавить новую config-overrride»
- Migration via codemod (jscodeshift)
- CI gate: detect drift через config-diff probe
## Зачем
Сегодня изменение одного дефолта (например, coverage threshold) = ходить по 20 файлам. С shared config — одно изменение, эффект везде. Это уменьшает «бухгалтерский» техдолг и accelerates новых разработчиков.
## Источники вдохновения
- [openclaw/clownfish](https://github.com/openclaw/clownfish)
- [JoshuaKGoldberg/TypeStat](https://github.com/JoshuaKGoldberg/TypeStat)
- [localstack/localstack](https://github.com/localstack/localstack)
## 🔗 Linear
- [PZD-363](https://linear.app/kuhjie/issue/PZD-363) — backing ticket