Files
pi-kit/skills/typescript-standards/SKILL.md
Aleksey Shakhmatov e04a2ddb72 docs(skills): fill language standards with industry defaults
Per decision to use common industry practice now and tune later:
- structures: standard layouts (go cmd/internal/pkg, python src-layout, rust cargo, ts pnpm workspaces, kotlin Gradle modules, swift SwiftPM)
- linters: default rulesets (golangci base, clippy -D warnings, ruff+mypy, typescript-eslint+prettier, ktlint+detekt, swiftlint+swiftformat)
- test runners: TS=vitest; coverage soft targets (~70-80%) marked '(пороги уточним)'
- swift deps: SwiftPM (Package.resolved), CocoaPods legacy-only
- reworded intros: values are industry defaults to be tuned, no raw TODO markers left

Verified: no TODO markers remain in *-standards; all six skills load via pi.
2026-07-16 13:25:18 +03:00

3.7 KiB
Raw Blame History

name, description
name description
typescript-standards Используй при написании, ревью и проверке кода на 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
  <feature>/
test/ | *.test.ts       # рядом с кодом или в test/

Ориентир: TS-проект/монорепо на pnpm workspaces, strict tsconfig. Эталон уточним.

Линтеры и форматирование

  • Типы: tsc --noEmit — без ошибок типов.
  • Линтер: ESLinteslint . (конфиг .eslintrc* / eslint.config.*).
  • Форматирование: Prettierprettier --check . (в CI), prettier --write . локально. Дефолт: typescript-eslint (recommended) + Prettier (дефолтный конфиг). Корпоративный пресет уточним.

Тесты

  • Прогон: vitestpnpm test (покрытие pnpm test --coverage).
  • Покрытие: мягкий ориентир ~80% для бизнес-логики. (пороги уточним)

Сборка и зависимости

  • Сборка: pnpm build (или скрипт проекта).
  • Пакетный менеджер: pnpmpnpm 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 (ставится по профилю при установке).