---
name: lint-and-verify
description: Запускает проверки качества кода в pw-start-automation (ESLint, Prettier check, TypeScript). Use when user asks to run linters, lint, проверить код, CI локально, format check, typecheck, eslint, всё ок, green build, перед коммитом.
---

# Lint and verify

## Purpose

Прогнать статические проверки репозитория и убедиться, что код и форматирование в порядке (без правок — только verify; автофикс — отдельными командами).

## When to use

- После правок в `src/`, `tests/`, `eslint-plugin/`, конфигах
- Запрос: «прогони линтер», «проверь eslint», «всё ли ок с типами», «как в CI»
- Перед коммитом / PR, если пользователь явно просит проверку

## Inputs needed

- Корень репозитория (`pw-start-automation`), shell с установленными зависимостями (`npm install` уже выполнен)

## Procedure

1. **Рабочая директория** — корень проекта (где лежит `package.json`).

2. **Запустить проверки** (порядок: сначала типы, потом стиль — так быстрее ловить блокеры):

   ```bash
   npm run typecheck && npm run lint && npm run format:check
   ```

   По отдельности (если нужно изолировать сбой):

   | Команда                | Что проверяет                    |
   | ---------------------- | -------------------------------- |
   | `npm run typecheck`    | `tsc --noEmit`                   |
   | `npm run lint`         | `eslint .`                       |
   | `npm run format:check` | Prettier для `**/*.{ts,json,md}` |

3. **Интерпретация результата**
   - Все три завершились с кодом 0 — статическая проверка пройдена.
   - Любая команда упала — исправить ошибки в указанных файлах; не считать задачу выполненной, пока команды не зелёные (если пользователь не сказал «только покажи вывод»).

4. **Автоисправление** (только по запросу пользователя или после явного согласования):
   - ESLint: `npm run lint:fix`
   - Prettier: `npm run format`

5. **Не смешивать с POM-правилами** — этот скилл про инструменты; смысл кода по-прежнему в project rules и других skills.

## Optional

- Полный прогон тестов: `npm test` — не линтер, но часто нужен для «всё ок» перед merge.

## Notes

- Кастомные правила ESLint лежат в `eslint-plugin/`; при изменении плагина обязательно снова `npm run lint`.
