--- name: typescript-standards description: Используй при написании, ревью и проверке кода на TypeScript/JavaScript в наших проектах — структура пакета, запуск eslint/prettier/tsc, тесты, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь TS/JS-код, готовишь MR, а также в командах /bugfix, /feature и /review для фронтенд/Node-репозиториев. --- # Стандарты TypeScript Один из наших языков — **TypeScript** (фронтенд и Node-сервисы). Ниже — общепринятые дефолты экосистемы; значения под M.Video заполнены дефолтами индустрии — тюним позже. ## Структура Ориентир (уточняется под компанию): ``` package.json tsconfig.json src/ index.ts / test/ | *.test.ts # рядом с кодом или в test/ ``` > Ориентир: TS-проект/монорепо на pnpm workspaces, strict `tsconfig`. Эталон уточним. ## Линтеры и форматирование - Типы: `tsc --noEmit` — без ошибок типов. - Линтер: **ESLint** — `eslint .` (конфиг `.eslintrc*` / `eslint.config.*`). - Форматирование: **Prettier** — `prettier --check .` (в CI), `prettier --write .` локально. Дефолт: typescript-eslint (recommended) + Prettier (дефолтный конфиг). Корпоративный пресет уточним. ## Тесты - Прогон: **vitest** — `pnpm test` (покрытие `pnpm test --coverage`). - Покрытие: мягкий ориентир ~80% для бизнес-логики. (пороги уточним) ## Сборка и зависимости - Сборка: `pnpm build` (или скрипт проекта). - Пакетный менеджер: **pnpm** — `pnpm install`; lock `pnpm-lock.yaml` коммитим. ## Коммиты и MR - **Формат коммитов:** Conventional Commits (`feat:`, `fix:`, `chore:`, `docs:`, `refactor:`, `test:` …). - **Ветки и деплой:** фича-ветки — от `main` (в имя ветки желательно включать ключ тикета). Деплой управляется ветками/тегами: ветка `release-*` → раскатка на **stage**; тег `v*` → раскатка в **прод**. Ветки `release-*` и теги `v*` без необходимости не пушь — `permission-gate` переспросит. - **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые ветки запрещён — расширение `permission-gate` дополнительно переспросит. - Перед MR: `tsc --noEmit`, `eslint .`, `prettier --check .`, тесты — всё зелёное. - Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`). ## Чек-лист перед MR - [ ] `tsc --noEmit` без ошибок - [ ] `eslint .` чисто - [ ] `prettier --check .` чисто - [ ] тесты зелёные, есть тесты на новую логику / фикс - [ ] нет секретов и закоммиченных `.env` - [ ] описание MR со ссылкой на тикет > Для UI-задач полезен скилл `frontend-design` (ставится по профилю при установке).