Вбудовані перевірки
Вбудовані перевірки налаштовуються через devManager.quality.builtin.*. Більшість використовують чистий Node.js (файлова система + регулярки) без зовнішніх залежностей; деякі викликають npx або зовнішній CLI, якщо він доступний — і коректно пропускаються, якщо його немає. Всі перевірки увімкнені за замовчуванням.
CLI-перевірки (Semgrep, Trivy, Bandit тощо) описані окремо: CLI-перевірки →.
Середовище розробки
Docker Compose
Запускає docker compose ps (або docker-compose ps) і перевіряє, що всі сервіси з Compose-файлу мають статус running. Помилка — якщо сервіс зупинено, перезапускається або завершив роботу.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dockerComposePs.enabled | true |
Колізії портів
Сканує скрипти package.json, launch-конфіги VS Code, Compose-файли та .env* на наявність номерів портів. Попереджає, якщо один порт зустрічається більше ніж в одному контексті.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.portCollisions.enabled | true |
Здоров’я dev-сервера
Надсилає HTTP GET на налаштований health-шлях dev-сервера. Помилка — якщо сервер повертає не 2xx або не відповідає протягом таймауту.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.devServerHealth.enabled | true |
devManager.quality.builtin.devServerHealth.healthPath | "/" |
devManager.quality.builtin.devServerHealth.timeoutMs | 2000 |
Логи dev-сервера
Сканує лог-файли dev-сервера на рядки, що відповідають патерну помилок. Попереджає при знаходженні відповідних рядків.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.devServerLogs.enabled | false |
Дрейф задач
Порівнює devManager.project.servers (задані скрипти) з tasks.json у VS Code та виявляє відсутні або застарілі визначення задач.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.tasksDrift.enabled | true |
Лінтери та форматери
ESLint
Запускає конфіг ESLint вашого проєкту (eslint.config.js, .eslintrc.*) і виводить порушення стилю та якості коду. Пропускається, якщо конфіг ESLint не знайдено.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.eslint.enabled | true |
devManager.quality.builtin.eslint.maxWarnings | 0 |
devManager.quality.builtin.eslint.path | "" (auto) |
Biome
Запускає biome check за наявності biome.json (або biome.jsonc). Охоплює лінтинг, форматування та сортування імпортів за один прохід.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.biome.enabled | true |
devManager.quality.builtin.biome.path | "" (auto) |
OXLint
Запускає ультра-швидкий лінтер Oxc, якщо він налаштований у репо (.oxlintrc.json або oxlint у скриптах package.json). До 100× швидший за ESLint.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.oxlint.enabled | true |
devManager.quality.builtin.oxlint.path | "" (auto) |
Prettier
Запускає prettier --check по всіх вихідних файлах. Помилка, якщо будь-який файл відрізняється від відформатованої Prettier версії. Пропускається без конфіга Prettier.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.prettierCheck.enabled | true |
devManager.quality.builtin.prettierCheck.path | "" (auto) |
Stylelint
Запускає Stylelint для CSS, SCSS та Less файлів. Пропускається без конфіга Stylelint.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.stylelint.enabled | true |
devManager.quality.builtin.stylelint.path | "" (auto) |
TypeScript та JavaScript
Floating Promises
Виявляє виклики, що повертають Promise, які не є ані await-нутими, ані повертаються, ані явно оброблені .then()/.catch(). Floating promise мовчки проковтує помилки.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.floatingPromises.enabled | true |
Неправильне async/await
Виявляє async-колбеки у Array.forEach(), .then() без відповідного .catch(), та ігноровані результати Promise.all() / Promise.race().
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.asyncAwaitMisuse.enabled | true |
Обробка помилок
Виявляє порожні блоки catch {}, catch (e) {} що ігнорують помилку, Python except: pass, та Ruby rescue без тіла.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.errorHandling.enabled | true |
Типи повернення
Повідомляє про TypeScript функції та методи без явної анотації типу повернення. Налаштовуються пороги попередження/помилки.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.returnTypes.enabled | true |
devManager.quality.builtin.returnTypes.warnAt | 10 |
devManager.quality.builtin.returnTypes.failAt | 50 |
Відсутні типи повернення
Схожа перевірка — повідомляє про TypeScript функції/методи без явних типів повернення, фокусуючись на експортованих сутностях.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.missingReturnTypes.enabled | true |
Залежності React-хуків
Перевіряє масиви залежностей у useEffect, useCallback, useMemo та useLayoutEffect. Виконується лише якщо в package.json є react.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.reactHooksDeps.enabled | true |
Правила React-хуків
Виявляє виклики useEffect / useCallback / useMemo, у яких повністю відсутній масив залежностей (другий аргумент).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.reactHookRules.enabled | true |
Небезпечні патерни
Позначає небезпечні конструкції: eval(), new Function(), присвоєння innerHTML, document.write() та dangerouslySetInnerHTML.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dangerousPatterns.enabled | true |
Небезпечний HTTP
Позначає звичайні URL http:// у вихідних файлах, де слід використовувати https://. Ігнорує localhost, тестові дані та рядки лише в коментарях.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.insecureHttp.enabled | true |
Гігієна імпортів
Перевіряє wildcard-імпорти import * as, непослідовні патерни розширень файлів та само-імпорти.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.importHygiene.enabled | true |
Вартість імпорту
Оцінює розмір (minified+gzip) кожного імпорту в бандлі та попереджає, коли окремий імпорт перевищує поріг.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.importCost.enabled | true |
devManager.quality.builtin.importCost.warnKb | 50 |
devManager.quality.builtin.importCost.failKb | 200 |
Focused-тести
Попереджає, якщо у закомічених тестових файлах знайдено модифікатори .only(), fit(), fdescribe() або test.only(). Також запускається як live-діагностика при збереженні.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.noFocusedTests.enabled | true |
devManager.quality.builtin.noFocusedTests.realtime | true |
devManager.quality.builtin.noFocusedTests.precommit | false |
Перевірка tsconfig
Аудит tsconfig.json на відсутні флаги суворого режиму (strict, noImplicitAny, strictNullChecks) та важливі налаштування компілятора.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.tsconfigSanity.enabled | true |
React та Next.js
Доступність
Перевіряє файли JSX, TSX, HTML, Vue та Svelte на типові проблеми доступності: відсутній alt у зображень, порожній декоративний alt, непідписані елементи <input>, <button> та <a>.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.a11y.enabled | true |
Класи Tailwind
Виявляє конфліктуючі або дублікативні утиліти Tailwind CSS на одному елементі (наприклад text-sm text-base).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.tailwindClasses.enabled | true |
Межа Next.js
Позначає модулі 'use client' що імпортують з server-only або використовують Node.js-only API. Виконується лише якщо в package.json є next.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.nextjsBoundary.enabled | true |
Архітектура та імпорти
Циклічні імпорти
Виявляє цикли імпортів у JavaScript/TypeScript проєктах з використанням dependency-cruiser, або власним DFS-обходом якщо інструмент відсутній.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.circularImports.enabled | true |
Barrel-файли
Позначає великі index.ts/js файли з реекспортами. Великі barrel-файли змушують бандлери включати весь barrel, блокуючи tree-shaking.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.barrelFiles.enabled | true |
devManager.quality.builtin.barrelFiles.warnAt | 20 |
devManager.quality.builtin.barrelFiles.failAt | 50 |
Метрики зв’язаності
Вимірює аферентний (вхідний) та еферентний (вихідний) coupling кожного модуля та позначає архітектурно нестабільні файли.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.couplingMetrics.enabled | true |
devManager.quality.builtin.couplingMetrics.warnAt | 0.8 |
Міжшарові імпорти
Перевіряє allow-list імпортів, заданий у devManager.quality.builtin.projectStructure.layers. Виявляє заборонені напрямки (наприклад ui → database).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.crossLayerImports.enabled | true |
Інвентар компонентів
Групує схожі UI-компоненти та хуки за шаблоном імен для виявлення можливостей консолідації.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.componentInventory.enabled | true |
Важкі імпорти
Виявляє імпорти цілих великих бібліотек, що блокують tree-shaking (import _ from 'lodash', import moment from 'moment'). Пропонує іменовані або subpath-імпорти.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.heavyImports.enabled | true |
Глибина імпортів
Попереджає, коли ланцюги відносних імпортів перевищують налаштований ліміт (наприклад ../../../../utils).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.importDepth.enabled | true |
devManager.quality.builtin.importDepth.warnDepth | 4 |
devManager.quality.builtin.importDepth.failDepth | 6 |
Розмір і складність коду
Кількість рядків
Попереджає, коли вихідні файли перевищують налаштовані ліміти рядків. Також запускається як live-діагностика при збереженні.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.lineCount.enabled | true |
devManager.quality.builtin.lineCount.realtime | true |
devManager.quality.builtin.lineCount.precommit | false |
devManager.quality.builtin.lineCount.warnLines | 300 |
devManager.quality.builtin.lineCount.failLines | 500 |
Довжина функцій
Попереджає, коли функції або методи перевищують налаштовані ліміти рядків.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.functionLength.enabled | true |
devManager.quality.builtin.functionLength.warnLines | 40 |
devManager.quality.builtin.functionLength.failLines | 80 |
Цикломатична складність
Вимірює цикломатичну складність кожної функції та попереджає при перевищенні ліміту.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.complexity.enabled | true |
devManager.quality.builtin.complexity.warnScore | 10 |
devManager.quality.builtin.complexity.failScore | 20 |
Розмір файлу
Позначає вихідні файли, що перевищують налаштовані ліміти розміру в КБ. Також запускається як live-діагностика при збереженні.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.fileSize.enabled | true |
devManager.quality.builtin.fileSize.realtime | true |
devManager.quality.builtin.fileSize.precommit | false |
devManager.quality.builtin.fileSize.warnKb | 50 |
devManager.quality.builtin.fileSize.failKb | 200 |
Довгі рядки
Попереджає, коли забагато рядків у файлі перевищують ліміт ширини колонки.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.longLines.enabled | true |
devManager.quality.builtin.longLines.maxLength | 120 |
devManager.quality.builtin.longLines.warnPct | 5 |
Глибина директорій
Попереджає, коли вкладеність папок перевищує налаштований ліміт глибини.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.directoryDepth.enabled | true |
devManager.quality.builtin.directoryDepth.warnDepth | 7 |
devManager.quality.builtin.directoryDepth.failDepth | 10 |
Кількість залежностей
Попереджає, коли проєкт накопичує забагато прямих dependencies (без devDependencies) у package.json.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dependencyCount.enabled | true |
devManager.quality.builtin.dependencyCount.warnAt | 50 |
devManager.quality.builtin.dependencyCount.failAt | 100 |
Кількість параметрів
Попереджає, коли функції або методи оголошують забагато параметрів. Велика кількість параметрів часто вказує, що функція робить занадто багато — варто згрупувати аргументи в об’єкт options.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.parameterCount.enabled | true |
devManager.quality.builtin.parameterCount.warnAt | 4 |
devManager.quality.builtin.parameterCount.failAt | 7 |
Типобезпека
Покриття TypeScript any
Підраховує використання any у TypeScript: явні анотації : any, касти (as any) та any у дженериках.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.anyCoverage.enabled | true |
devManager.quality.builtin.anyCoverage.warnAt | 10 |
devManager.quality.builtin.anyCoverage.failAt | 50 |
Покриття типами
Вимірює загальне покриття типами TypeScript за допомогою type-coverage CLI. Пропускається, якщо type-coverage не встановлено.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.typeCoverage.enabled | true |
devManager.quality.builtin.typeCoverage.atLeast | 80 |
Покриття JSDoc
Вимірює покриття JSDoc-коментарями для експортованих функцій, класів та інтерфейсів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.jsdocCoverage.enabled | true |
devManager.quality.builtin.jsdocCoverage.warnAt | 50 |
devManager.quality.builtin.jsdocCoverage.failAt | 20 |
Типобезпека
Виявляє обходи системи типів TypeScript: as any, @ts-ignore, @ts-expect-error та подібні патерни придушення, що послаблюють статичні гарантії.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.typeSafety.enabled | true |
Non-null assertions
Попереджає про надмірне використання постфіксного оператора !. Часте використання ! сигналізує про місця, де реальні null-перевірки були б безпечнішими.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.nonNullAssertions.enabled | true |
devManager.quality.builtin.nonNullAssertions.warnAt | 10 |
Аудит tsconfig
Перевіряє налаштування суворості tsconfig.json: strict, noImplicitAny, strictNullChecks, noUncheckedIndexedAccess, exactOptionalPropertyTypes. Пропонує ввімкнути флаги, що покращують безпеку.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.tsConfig.enabled | true |
Використання enum
Позначає TypeScript enum-декларації, які безпечніше замінити на const-об’єкти або рядкові union-типи. TypeScript enum має неочевидну поведінку та генерує зайвий код.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.enumUsage.enabled | true |
Широкі типи
Виявляє надто широкі TypeScript-типи: Record<K, any>, Array<any>, loose object та bare Function як параметр або тип повернення.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.broadTypes.enabled | true |
Консистентність Zod
Виявляє розбіжності між Zod-схемами та TypeScript-типами, які вони мають валідувати. Позначає дубльовані визначення форм, де можна використати z.infer<>.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.zodConsistency.enabled | true |
Zod Any
Виявляє поля z.any() у Zod-схемах. Поле z.any() мовчки пропускає що завгодно, включаючи некоректні дані.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.zodAny.enabled | true |
ESLint Disable
Підраховує коментарі eslint-disable та придушення на рівні файлу. Велика кількість вказує на систематичний обхід лінтера. Також запускається як live-діагностика при збереженні.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.eslintDisable.enabled | true |
devManager.quality.builtin.eslintDisable.realtime | true |
devManager.quality.builtin.eslintDisable.precommit | false |
devManager.quality.builtin.eslintDisable.warnAt | 5 |
N+1 запити
Виявляє ORM-патерни/запити, що викликають N+1 round-trips: findOne/.find() у циклах, відсутні include/with для вкладених відносин (Prisma, Drizzle, Sequelize, TypeORM).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.nPlusOne.enabled | true |
Сумісність з Edge Runtime
Виявляє Node.js-only API (fs, path, crypto, CJS require) у файлах, що виконуватимуться в edge / worker-рантаймах (Cloudflare Workers, Vercel Edge, Deno Deploy).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.edgeCompat.enabled | true |
Межа use client
Позначає Next.js модулі 'use client', що імпортують з server-only або використовують серверні API (клієнти БД, Prisma, Node.js fs/crypto). Такі імпорти спричиняють важко відтворювані runtime-помилки.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.useClientBoundary.enabled | true |
Якість тестів
Співвідношення тестів
Вимірює співвідношення тестових файлів до вихідних. Попереджає, коли тестів мало відносно розміру кодової бази.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.testRatio.enabled | true |
devManager.quality.builtin.testRatio.warnAt | 0.2 |
Порожні тести
Виявляє блоки it(), test(), describe(), def test_ та #[test] без assertions.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.emptyTests.enabled | true |
Прогалини в покритті тестами
Визначає вихідні файли з низьким або нульовим покриттям тестами шляхом пошуку відповідних тестових файлів. Не запускає тести — використовує евристику назв файлів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.testCoverageGaps.enabled | false |
devManager.quality.builtin.testCoverageGaps.untestedSampleLimit | 30 |
LCOV-покриття
Читає існуючий lcov.info або coverage-summary.json (згенерований вашим тест-ранером) та звітує про покриття рядків, гілок та функцій без повторного запуску тестів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.lcovCoverage.enabled | true |
devManager.quality.builtin.lcovCoverage.warnAt | 70 |
devManager.quality.builtin.lcovCoverage.failAt | 50 |
Гігієна коду
Лічильник TODO
Підраховує маркери TODO, FIXME, HACK, BUG, XXX та NOSONAR у коментарях. Попереджає при перевищенні порогу.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.todoCount.enabled | true |
devManager.quality.builtin.todoCount.warnAt | 20 |
devManager.quality.builtin.todoCount.failAt | 50 |
Закоментований код
Виявляє великі блоки закоментованого вихідного коду.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.commentedCode.enabled | true |
Дублікати файлів
Виявляє файли з однаковим вмістом (SHA-256 хеш) але різними іменами.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.duplicateFiles.enabled | true |
Змішані відступи
Виявляє файли, що змішують таби та пробіли в одному файлі непослідовно.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.mixedIndent.enabled | true |
Кодування
Виявляє вихідні файли з кодуванням, відмінним від UTF-8.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.encoding.enabled | true |
Магічні числа
Виявляє жорстко закодовані числові літерали, які варто замінити на іменовані константи. Ігнорує загальні значення 0, 1, -1.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.magicNumbers.enabled | true |
devManager.quality.builtin.magicNumbers.warnAt | 10 |
Відлагоджувальний код
Виявляє відлагоджувальні оператори у вихідних файлах: console.log, print(), debugger, var_dump(), dd(). Ігнорує console.error/console.warn.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.debugLeaks.enabled | true |
Витоки секретів
Сканує вихідні файли на патерни жорстко закодованих API-ключів, токенів, паролів та приватних ключів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.secretLeaks.enabled | true |
Перевірка .gitignore
Виявляє файли, що відстежуються git, але відповідають патернам у .gitignore.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.gitignoreCheck.enabled | true |
Маркери конфліктів злиття
Виявляє незрозумілі маркери git-конфліктів (<<<<<<<, =======, >>>>>>>) у вихідних файлах. Live-діагностика підсвічує кожен маркер при наборі та збереженні з рівнем помилки.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.mergeConflictMarker.enabled | true |
devManager.quality.builtin.mergeConflictMarker.realtime | true |
devManager.quality.builtin.mergeConflictMarker.precommit | false |
Заголовок ліцензії
Перевіряє наявність обов’язкового заголовка ліцензії в перших 30 рядках вихідних файлів. Активується лише коли налаштовано licenseHeader.pattern (наприклад, SPDX-License-Identifier).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.licenseHeader.enabled | true |
devManager.quality.builtin.licenseHeader.realtime | true |
devManager.quality.builtin.licenseHeader.precommit | false |
devManager.quality.builtin.licenseHeader.pattern | "" |
devManager.quality.builtin.licenseHeader.warnThreshold | 1 |
devManager.quality.builtin.licenseHeader.failThreshold | 10 |
Документація та текст
Перевірка README
Перевіряє наявність README.md, що він не порожній та містить обов’язкові розділи: Installation, Usage, Contributing та License. Також запускається як live-діагностика при збереженні файлу README.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.readmeCheck.enabled | true |
devManager.quality.builtin.readmeCheck.realtime | true |
devManager.quality.builtin.readmeCheck.precommit | false |
Перевірка Changelog
Валідує CHANGELOG.md відповідно до формату Keep a Changelog: розділ ## [Unreleased], заголовки версій та стандартні підрозділи. Також запускається як live-діагностика при збереженні файлу CHANGELOG.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.changelogCheck.enabled | true |
devManager.quality.builtin.changelogCheck.realtime | true |
devManager.quality.builtin.changelogCheck.precommit | false |
Перевірка CODEOWNERS
Перевіряє .github/CODEOWNERS на коректні шляхи файлів, валідні GitHub-логіни/команди та наявність catch-all правила *. Також запускається як live-діагностика при збереженні CODEOWNERS.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.codeownersCheck.enabled | true |
devManager.quality.builtin.codeownersCheck.realtime | true |
devManager.quality.builtin.codeownersCheck.precommit | false |
i18n ключі
Перевіряє, що кожен ключ перекладу, на який є посилання в коді, існує у всіх налаштованих файлах локалізації, а файли локалізації не містять застарілих ключів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.i18nKeys.enabled | true |
Vale
Запускає Vale для перевірки стилістичної консистентності документації. Потрібен vale у PATH та конфіг .vale.ini. Детальніше: CLI-перевірки → Vale.
Alex
Запускає alex для виявлення нечутливих або недоречних формулювань у документації та коментарях.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.alex.enabled | true |
Lychee
Перевіряє всі гіперпосилання у Markdown та HTML файлах на наявність справних URL.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.lychee.enabled | true |
Конфігурація проєкту
Консистентність .env
Порівнює .env та .env.example. Попереджає, якщо .env.example містить ключі, відсутні у .env. Помилка, якщо .env містить ключі, відсутні у .env.example (незадокументований секрет).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.envConsistency.enabled | true |
Лінтер .env
Лінтує .env файли на проблеми: дублікати ключів, відсутні значення, некоректний синтаксис.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dotenvLinter.enabled | true |
Валідація JSON-схеми
Для JSON та YAML файлів з полем $schema перевіряє, що URI схеми синтаксично коректний, а для локальних шляхів — що файл схеми існує на диску. Виявляє опечатки в URI та зламані локальні посилання без мережевих запитів та зовнішніх інструментів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.jsonSchemaValidate.enabled | true |
devManager.quality.builtin.jsonSchemaValidate.realtime | true |
devManager.quality.builtin.jsonSchemaValidate.precommit | false |
Синхронізація lockfile
Виявляє відсутній lockfile при наявному маніфесті, або lockfile старіший за маніфест. Підтримує npm, yarn, pnpm, Cargo, Go, Composer та Poetry.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.lockfileSync.enabled | true |
Консистентність версії Node
Виявляє розбіжності версій Node.js між .nvmrc, .node-version, .tool-versions, package.json engines.node та Dockerfile FROM node:.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.nodeVersionConsistency.enabled | true |
Актуальність збірки
Попереджає, якщо директорія артефактів збірки (dist/, build/, out/) старіша за вихідні файли.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.buildFreshness.enabled | true |
Монорепо Workspaces
Перевіряє конфігурації npm/pnpm/yarn workspaces на дрейф версій між пакетами.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.monorepoWorkspaces.enabled | true |
Перевірка package.json
Валідує структуру package.json: обов’язкові поля, валідні скрипти та типові антипатерни.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.packageJsonSanity.enabled | true |
Мертві експорти
Виявляє експортовані функції, типи та константи, що ніколи не імпортуються в проєкті.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.deadExports.enabled | false |
Застарілі фіча-флаги
Виявляє константи фіча-флагів (булеві IS_*_ENABLED, FEATURE_*, FLAG_*), що мають постійне значення понад налаштовану кількість днів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.staleFlags.enabled | false |
Бюджет бандлу
Перевіряє, що розміри JavaScript-бандлів вкладаються в налаштовані бюджети. Використовує існуючу статистику webpack або маніфест Vite — не перезбирає.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.bundleBudget.enabled | false |
devManager.quality.builtin.bundleBudget.warnKb | 200 |
devManager.quality.builtin.bundleBudget.failKb | 500 |
Architecture DSL
Валідує декларативний файл визначення архітектури (.arch.yaml / arch.json), що описує шари та власників модулів. Помилка при розбіжності структури репо з задекларованою архітектурою.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.archDsl.enabled | false |
Безпека
Trojan Source
Виявляє двонаправлені Unicode управляючі символи (RLO, LRO, RLI, LRI, PDI, BIDI), що можуть приховати шкідливий код від рецензентів (CVE-2021-42574).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.trojanSource.enabled | true |
Аудит GitHub Actions
Аудит файлів .github/workflows/*.yml на проблеми безпеки: незакріплені SHA action-ів, зловживання pull_request_target, ризики ін’єкції ${{ github.event.* }}, жорстко закодовані секрети.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.actionsAudit.enabled | true |
Harden Runner
Перевіряє GitHub Actions workflow на відсутні кроки StepSecurity Harden Runner, що запобігають ексфільтрації та несподіваним мережевим викликам.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.hardenRunnerAudit.enabled | true |
SBOM
Генерує (або перевіряє існуючий) Software Bill of Materials та валідує відповідно до налаштованого формату (SPDX, CycloneDX).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.sbom.enabled | false |
CodeQL (вбудований)
Запускає CodeQL запити локально для глибокого семантичного аналізу вразливостей. Потрібен CodeQL CLI. Для хмарної інтеграції CodeQL — Хмарні провайдери якості → CodeQL.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.codeql.enabled | false |
Accessibility Check
Розширений аудит доступності за правилами WCAG 2.1 AA: контрастність кольорів, управління фокусом, ролі ARIA-landmark, підписи форм.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.a11yCheck.enabled | true |
Row Level Security
Перевіряє SQL-файли міграцій PostgreSQL на таблиці без ALTER TABLE ... ENABLE ROW LEVEL SECURITY або CREATE POLICY. Допомагає виявити прогалини в RLS до виходу в продакшн.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.rlsCheck.enabled | true |
OpenSSF Scorecard
Запускає OpenSSF Scorecard для оцінки стану безпеки проєкту за 18 вимірами. Потрібен CLI scorecard.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.scorecard.enabled | false |
Контейнери та Docker
Dockle
Запускає Dockle для перевірки Docker-образів на відповідність CIS Docker Benchmark. Потрібен dockle у PATH.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dockle.enabled | true |
Grype
Сканує контейнерні образи та файлові системи на CVE за допомогою Grype. Потрібен grype у PATH.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.grype.enabled | true |
devManager.quality.builtin.grype.failOnSeverity | "HIGH" |
Dive
Аналізує ефективність шарів Docker-образу на витрачений простір за допомогою Dive. Потрібен dive у PATH.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dive.enabled | true |
devManager.quality.builtin.dive.warnPct | 10 |
API та схеми
OASDiff (OpenAPI)
Виявляє breaking changes між OpenAPI-специфікацією поточної гілки та базовою. Потрібен oasdiff у PATH.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.oasdiff.enabled | true |
GraphQL Inspector
Виявляє breaking changes у GraphQL-схемах між поточною та базовою гілками.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.graphqlInspector.enabled | true |
Buf Breaking (Protobuf)
Виявляє breaking changes у Protobuf-схемах за допомогою buf CLI. Потрібен buf у PATH.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.bufBreaking.enabled | true |
Бандл та продуктивність
Size Limit
Перевіряє розміри JS/TS бандлів відповідно до порогів size-limit, налаштованих у package.json.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.sizeLimit.enabled | true |
Lighthouse CI
Запускає Lighthouse CI для вимірювання продуктивності, доступності, SEO та best-practice-балів. Потрібен @lhci/cli та конфіг lighthouserc.*.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.lighthouseCi.enabled | false |
Публікація npm-пакетів
Are The Types Wrong
Перевіряє npm package exports на сумісність з TypeScript. Корисно для авторів бібліотек.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.attw.enabled | false |
Publint
Валідує поля exports, main, module та types у package.json за допомогою publint.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.publint.enabled | false |
Lockfile Lint
Валідує формат lockfile та попереджає про нестандартні реєстри або підозрілі записи.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.lockfileLint.enabled | false |
npm Provenance
Перевіряє, що npm пакети проєкту опубліковані з npm provenance attestation (SLSA build provenance).
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.npmProvenance.enabled | false |
Syncpack
Перевіряє консистентність версій пакетів у монорепо за допомогою syncpack.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.syncpack.enabled | false |
Manypkg
Перевіряє обмеження пакетів монорепо за допомогою manypkg.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.manypkg.enabled | false |
CI/CD та спостережуваність
Sentry Source Maps
Перевіряє, що source maps Sentry завантажені для останнього релізу.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.sentrySourcemaps.enabled | false |
Promptfoo
Запускає тести promptfoo для валідації поведінки LLM-промптів. Виявляє регресії промптів до виходу в продакшн.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.promptfoo.enabled | false |
act
Запускає GitHub Actions workflows локально за допомогою act для виявлення помилок workflows до push. Потрібен act у PATH та Docker.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.act.enabled | false |
База даних і міграції
Prisma Validate
Запускає prisma validate для перевірки синтаксичної коректності Prisma-схеми. Підтримує одиночний prisma/schema.prisma та multi-file prisma/schema/*.prisma.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.prismaValidate.enabled | true |
| Перевірка | Що виявляє |
|---|---|
| Prisma Validate | prisma validate, якщо доступний Prisma CLI |
| Prisma Migrate Status | Відкладені / розсинхронізовані міграції Prisma |
| Drizzle Check | Узгодженість схеми Drizzle з міграціями |
| No Manual Migrations | Ручний SQL міграцій (Drizzle, Prisma, Atlas) |
| Migrations CI Gate | Відсутня CI-перевірка міграцій у GitHub Actions |
pgTAP
Перевіряє наявність pgTAP тестів (.sql файли з pgtap) для PostgreSQL проєктів із значною історією міграцій.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.pgtapPresence.enabled | false |
Sqruff
Запускає sqruff SQL-лінтер для виявлення стилістичних проблем та антипатернів. Потрібен sqruff у PATH.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.sqruff.enabled | false |
No Manual Migrations
Виявляє зміни у SQL-файлах міграцій, не узгоджені з генератором.
| Стек | Як це зроблено |
|---|---|
| Drizzle | Регенерує міграції у тимчасовій директорії та порівнює з реальними. |
| Prisma | prisma migrate diff порівнює схему з застосованими міграціями. |
| Atlas | atlas migrate validate — перевіряє checksums atlas.sum. |
| Усі | При checkRemoved: true сканує git-історію на видалені/перейменовані файли міграцій. |
"devManager.quality.builtin.noManualMigrations.enabled": true,"devManager.quality.builtin.noManualMigrations.severity": "error","devManager.quality.builtin.noManualMigrations.adapters": ["drizzle", "prisma", "atlas"],"devManager.quality.builtin.noManualMigrations.checkRemoved": true,"devManager.quality.builtin.noManualMigrations.gitLookback": 50Migrations CI Gate
Помилка, якщо в Prisma/Drizzle/Atlas проєкті немає GitHub Actions workflow з командами перевірки міграцій.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.migrationsCiGate.enabled | true |
Контекст AI-агента — рівень користувача
Валідує user-level файли контексту агента: ~/.claude/CLAUDE.md, ~/.codex/AGENTS.md, ~/.cursor/rules/**, ~/.cursor/skills/** та глобальні інструкції Gemini.
| Перевірка | Що виявляє |
|---|---|
| CLAUDE.md | Занадто великий або структурно некоректний CLAUDE.md на рівні користувача |
| Codex | Занадто великий або структурно некоректний AGENTS.md для Codex |
| Cursor Rules | Відсутній/некоректний frontmatter у ~/.cursor/rules/*.mdc |
| Gemini | Занадто великий файл інструкцій Gemini |
| Global Inventory | Підраховує всі файли контексту агента по всіх платформах |
| Skills | Валідує ~/.cursor/skills/** SKILL.md файли |
| Total Budget | Загальний бюджет токенів по всіх user-level файлах |
| Cyrillic | Кирилиця в інструкціях (~2.75× дорожча за токенами) |
| Secrets in Context | Витікші API-ключі у user-level файлах контексту |
"devManager.quality.builtin.agentContextUser.enabled": trueКонтекст AI-агента
Перевірки на рівні проєкту для всіх файлів, які читає AI-агент перед дією (AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md, правила Cursor / Windsurf / Zed, slash-команди, chatmodes, Anthropic Skills та @import-графи).
| Перевірка | Що виявляє |
|---|---|
| Context Budget | Сумарний бюджет токенів по всіх файлах контексту |
| Line Count / File Size | Ліміти на рядки/розмір AGENTS.md, CLAUDE.md, copilot-instructions.md |
| Recommended Sections | 10 обов’язкових розділів AGENTS.md |
| Structure Block Drift | Блок <!-- SNAKEFLOW:STRUCTURE --> в AGENTS.md розійшовся з налаштуваннями |
| Import Graph | @import-ланцюги глибші ніж 5 рівнів або циклічні |
| Cursor Rules Frontmatter | YAML frontmatter для .cursor/rules/*.mdc |
| CLAUDE.md ↔ AGENTS.md Sync | Значне розходження між цими двома файлами |
| Absolute Paths | Машинно-специфічні шляхи, що ламаються на інших машинах |
| Secrets in Context | Витікші ключі у файлах контексту |
| Cyrillic Outside Code | Кирилиця в інструкціях (~2.75× дорожча токенами) |
| Orphaned / Duplicate Rules | Незалучені або дубльовані файли правил |
"devManager.quality.builtin.agentContext.enabled": trueСтруктура проєкту
Валідує напрямки імпортів між архітектурними шарами, задекларованими в devManager.quality.builtin.projectStructure.layers.
{ "name": "auth", "path": "src/auth/**", "canImport": ["utils"], "exceptions": [ { "file": "src/auth/service.ts", "canImport": ["utils", "crypto"] } ]}Детальніше: dependency-cruiser.
"devManager.quality.builtin.projectStructure.enabled": trueБезпека і надійність
Небезпечний DOM
Виявляє використання небезпечних DOM API — dangerouslySetInnerHTML, document.write, innerHTML =, eval() та new Function() — що можуть призвести до XSS-вразливостей у JavaScript і TypeScript файлах. Запускається on-type і on-save з debounce 400 мс.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.unsafeDom.enabled | true |
devManager.quality.builtin.unsafeDom.realtime | true |
devManager.quality.builtin.unsafeDom.precommit | false |
Regex DoS
Виявляє регулярні вирази з вкладеними квантифікаторами, що можуть призвести до катастрофічного відступу (ReDoS). Патерни на зразок (.+)+ або (a*)* можуть заморозити event loop на adversarial-вхідних даних. Запускається on-save для JS/TS файлів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.regexDoS.enabled | true |
devManager.quality.builtin.regexDoS.realtime | true |
devManager.quality.builtin.regexDoS.precommit | false |
Стиль коду
Порядок імпортів
Виявляє блоки імпортів у невірному порядку: спочатку зовнішні пакети, потім workspace-імпорти, потім відносні. Запускається on-save для JS/TS/JSX/TSX без виклику ESLint.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.importSortDelta.enabled | true |
devManager.quality.builtin.importSortDelta.realtime | true |
devManager.quality.builtin.importSortDelta.precommit | false |
Дублікати рядкових літералів
Знаходить повторювані рядкові літерали у JSX/TSX файлах для виділення в i18n. Позначаються лише рядки довжиною більше minLength символів, що зустрічаються мінімум minCount разів у одному файлі. Запускається on-save.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.duplicateStringLiteral.enabled | true |
devManager.quality.builtin.duplicateStringLiteral.realtime | true |
devManager.quality.builtin.duplicateStringLiteral.precommit | false |
devManager.quality.builtin.duplicateStringLiteral.minLength | 10 |
devManager.quality.builtin.duplicateStringLiteral.minCount | 3 |
Портативність shebang
Попереджає, коли shell-скрипти використовують непортабельний абсолютний shebang (напр. #!/bin/bash) замість портабельного #!/usr/bin/env bash. Запускається on-save для shell-скриптів.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.shebangPortability.enabled | true |
devManager.quality.builtin.shebangPortability.realtime | true |
devManager.quality.builtin.shebangPortability.precommit | false |
Маніфести мов
Санітарна перевірка Cargo.toml
Перевіряє маніфести Rust Cargo.toml на наявність обов’язкової секції [package] та ключових полів: name, version, edition. Аналог перевірки package.json для Rust-проєктів. Запускається on-save.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.cargoToml.enabled | true |
devManager.quality.builtin.cargoToml.realtime | true |
devManager.quality.builtin.cargoToml.precommit | false |
Санітарна перевірка pyproject.toml
Перевіряє маніфести Python pyproject.toml на наявність обов’язкової секції [project] (PEP 517/518) або [tool.poetry] (Poetry). Запускається on-save.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.pyProject.enabled | true |
devManager.quality.builtin.pyProject.realtime | true |
devManager.quality.builtin.pyProject.precommit | false |
Git та версіювання
Git LFS Pointer
Виявляє бінарні файли, що є Git LFS-покажчиками замість реального вмісту. Покажчик починається з version https://git-lfs.github.com/spec/v1. Запустіть git lfs pull для отримання реального вмісту. Запускається on-save.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.gitLfsPointer.enabled | true |
devManager.quality.builtin.gitLfsPointer.realtime | true |
devManager.quality.builtin.gitLfsPointer.precommit | false |
Відставання гілки від main
Перевіряє, на скільки комітів поточна гілка відстає від remote main за допомогою git rev-list --count HEAD..origin/<mainBranch>. Запускається як workspace-інтервальна перевірка кожні 5 хвилин та попереджає про необхідність rebase.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.branchBehindMain.enabled | true |
devManager.quality.builtin.branchBehindMain.realtime | true |
devManager.quality.builtin.branchBehindMain.precommit | false |
devManager.quality.builtin.branchBehindMain.mainBranch | "main" |
devManager.quality.builtin.branchBehindMain.warnAt | 10 |
devManager.quality.builtin.branchBehindMain.failAt | 50 |
Runtime / Інфраструктура
Перевірка зайнятості порту
Виявляє, коли порти dev-сервера, зазначені у package.json scripts, вже зайняті перед запуском сервера. Запускається кожні 10 секунд як workspace-інтервальна перевірка та слідкує за змінами package.json. Доповнює існуючу перевірку Port Collisions.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.prebindPort.enabled | true |
devManager.quality.builtin.prebindPort.realtime | true |
devManager.quality.builtin.prebindPort.precommit | false |
Сповіщення про ресурси Docker
Моніторить запущені Docker-контейнери через docker stats --no-stream та попереджає при перевищенні налаштованих порогів CPU або пам’яті. Слідкує за docker-compose.yml / compose.yml та опитує кожні 30 секунд.
| Налаштування | За замовчуванням |
|---|---|
devManager.quality.builtin.dockerResourceAlert.enabled | true |
devManager.quality.builtin.dockerResourceAlert.realtime | true |
devManager.quality.builtin.dockerResourceAlert.precommit | false |
devManager.quality.builtin.dockerResourceAlert.cpu | 80 |
devManager.quality.builtin.dockerResourceAlert.mem | 90 |
Пороги налаштувань
Кожна вбудована перевірка підтримує enabled. Більшість числових перевірок мають warnAt/failAt:
"devManager.quality.builtin.lineCount.warnLines": 300,"devManager.quality.builtin.lineCount.failLines": 500,"devManager.quality.builtin.complexity.warnScore": 10,"devManager.quality.builtin.complexity.failScore": 20,"devManager.quality.builtin.dependencyCount.warnAt": 50,"devManager.quality.builtin.dependencyCount.failAt": 100Повністю вимкнути перевірку:
"devManager.quality.builtin.magicNumbers.enabled": falseTypeScript Check (tscCheck) — запускає npx tsc --noEmit — детальніше: CLI-перевірки → tsc.