konsistent CLI

Линтер структуры TypeScript-проекта: проверяет по правилам в konsistent.json, какие файлы, папки и экспорты должны быть в каждом пакете

  • 195 ★ репозитория
  • Последний коммит
CLIОфициальный

Расширенный доступ

Почему такой уровень

  • Проверка читает исходники и пути всего репозитория, но сама ничего не меняет
  • Скилл `konsistent-fix-violations` правит файлы, переименовывает и переносит код после вашего подтверждения
Все причины и проверки

vercel-labs/konsistent

Установка

Работает в

Ручная установка

npm install konsistent --save-dev

Для pnpm `pnpm add konsistent --save-dev`, для Bun `bun add konsistent --dev`. Запуск: `npx konsistent`.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Проверка читает исходники и пути всего репозитория, но сама ничего не меняет
  • Скилл `konsistent-fix-violations` правит файлы, переименовывает и переносит код после вашего подтверждения

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

konsistent — консольный линтер, который сверяет файлы и папки TypeScript-репозитория с объявленными шаблонами. ESLint, Biome и oxlint проверяют стиль кода внутри файла, а konsistent проверяет структуру проекта: например, что каждый пакет провайдера лежит в `packages/{providerId}`, содержит `src/index.ts` и экспортирует тип `<ProviderId>Provider`. Правила пишутся в `konsistent.json` в корне проекта. Пути задаются с переменными вроде `packages/{providerId}`, а в условиях `must` доступны наличие файлов и папок, экспорт значений и типов, причем имена можно строить из переменной функциями `toPascalCase()` и `toFlatCase()`. Карты `kebabToPascalMap` и `kebabToCamelMap` исправляют аббревиатуры, например openai в OpenAI. Команды: `konsistent` (то же, что `check`), `validate` для самого конфига, `help` и `version`. Нарушения выводятся списком, а в GitHub Actions превращаются в аннотации на диффе pull request. Для скриптов есть форматы `json` и `markdown`. Конвенцию можно пометить как предупреждение через `"severity": "warning"`; флаг `--error-on-warnings` для CI возвращает им статус ошибок. Рядом лежат два скилла. `konsistent-config` помогает агенту составить или изменить `konsistent.json`. `konsistent-fix-violations` запускает проверку, разбирает нарушения вместе с вами и правит код после вашего согласия.

Для кого. Мейнтейнерам монорепозиториев на TypeScript с десятком однотипных пакетов, в которых каждый обязан экспортировать один и тот же набор имен.

Подходит, если

  • В монорепозитории растет число пакетов провайдеров, и CI должен падать, если у нового нет `src/index.ts` или нужного типа
  • Агент пишет новый адаптер, и надо поймать, что он не унаследовал базовый класс, как остальные адаптеры
  • Нарушений набралось много, и вы хотите решить с агентом, что правится в коде, а что в самом правиле
  • В pull request нужны аннотации прямо на диффе или таблица нарушений в комментарии

Не подходит, если

  • Нужна проверка стиля, неиспользуемых переменных или лучших практик внутри файла: этим занимаются ESLint, Biome и oxlint
  • Код написан не на TypeScript: проверки строятся на экспортах и импортах TypeScript
  • Проект маленький, в нем один пакет и нечего сверять между собой

Пример запроса к агенту

Составь konsistent.json для моего монорепозитория: у каждого пакета в packages должны быть src/index.ts и экспорт типа Provider, затем запусти проверку и разбери нарушения

Ограничения

  • На npm пакет вышел в бета-версии (1.0.0-beta.13), поэтому формат `konsistent.json` и правила могут меняться.
  • По умолчанию `konsistent.json` ищется в корне проекта; если файл лежит в другом месте, нужен флаг `--config-path`.
  • Без файла конфигурации запуск завершается сообщением, что файл не прочитан.
  • Скилл `konsistent-config` намеренно составляет правила по преобладающим образцам кода, даже если часть файлов их нарушает: нулевой отчет не цель.

Как отключить. Уберите пакет командой `npm uninstall konsistent`, строку `konsistent` из `scripts` и файл `konsistent.json`. Скиллы удаляют из каталога скиллов агента.

Частые вопросы

Как установить konsistent?

Выполните `npm install konsistent --save-dev` (для pnpm `pnpm add konsistent --save-dev`, для Bun `bun add konsistent --dev`). Добавьте в `scripts` строку `"konsistent": "konsistent"` и запускайте `npm run konsistent`.

Чем konsistent отличается от ESLint?

ESLint проверяет код внутри файла, а konsistent сверяет структуру репозитория: наличие файлов, папок и экспортов в нужных местах. Запускать их стоит вместе.

Как подключить скиллы konsistent к агенту?

Выполните `npx skills add vercel-labs/konsistent --skill konsistent-config` для составления конфига и `npx skills add vercel-labs/konsistent --skill konsistent-fix-violations` для разбора нарушений.

Что делать, если нарушений слишком много?

Скорее всего, правило выбивается из кода: репозиторий не решил между двумя соглашениями. Выберите одно, обновите или смягчите правило и тогда правьте оставшийся код.

Как включить аннотации в GitHub Actions?

Ничего включать не надо: в GitHub Actions konsistent сам выводит аннотации `::error` и `::warning`, и нарушения видны прямо на диффе pull request. Формат можно задать флагом `--format`.

Обсуждение

Вопросов и отзывов пока нет.

Линтер и форматтер для JavaScript и TypeScript без настройки, с готовыми профилями под десятки ИИ-агентов и редакторов

CLIРасширенный доступ3,4 тыс.Звезды репозитория

Скилл для агентов с конвенциями TypeScript: типы, дискриминированные объединения, функции, именование, структура, React и тесты, подгружается по темам

СкиллМинимальный доступ785Звезды репозитория

CLI на Rust для TypeScript и JavaScript: мертвый код, дубликаты, циклы, сложность и границы архитектуры по одному графу, есть MCP-сервер и скиллы

CLIРасширенный доступ5,3 тыс.Звезды репозитория

Скилл ставит набор правил Oxlint, которые ловят низкокачественные шаблоны в TypeScript и JavaScript, часто оставляемые генерацией кода

СкиллРасширенный доступ6 тыс.Звезды репозитория

Три скилла и конфиг clippy: агент пишет, проверяет и переносит код на идиоматичный Rust, а правила проходят в CI

ПлагинРасширенный доступ1,7 тыс.Звезды репозитория

Задачи, документы, спецификации и решения проекта лежат файлами Markdown в репозитории, а агент читает их через CLI и MCP

CLIШирокий доступ251Звезды репозитория

Коротко о README

README объясняет пробел между линтерами стиля и структурой проекта, показывает установку, пример `konsistent.json` и вывод нарушений. Дальше идут команды, уровни серьезности, интеграция с CI и форматы вывода, а также две подсказки про скиллы для составления конфига и исправления нарушений.

Бейдж для README

Сообщить о проблеме

Foxx AIkonsistent
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.