Derived Modular Arch
Инструменты

Обзор инструментов

Гибридная модель enforcement: полный граф в CLI, быстрая обратная связь в редакторе.

DMA проверяет архитектуру гибридно: тяжёлый аудит графа — в CLI, лёгкие подсказки по файлу — в линтерах.

Правило, которое нельзя проверить машиной, со временем перестают соблюдать. Поэтому ядро — npx @derived-modular/cli check, а не «настроили ESLint и забыли».

Две поверхности

ИнструментГде запускатьРоль
npx @derived-modular/cli checkCI, pre-pushЖёсткая блокировка: граф, циклы, предикаты входящих рёбер
npx @derived-modular/cli doctorЛокальноМягкие сигналы роста (код выхода 0)
Навык агента dmaCursor, Claude Code, …Алгоритм размещения и запреты для LLM
ESLint / Oxlint / BiomeРедактор, lint scriptЧетыре file-scoped правила

Всегда запускайте npx @derived-modular/cli check в CI. Линтеры — дополнение для скорости, не замена.

Матрица покрытия

Правилоdma checkdma doctorESLint / OxlintBiome
layer-directionэвристика
feature-to-featureэвристика
public-apiэвристика
no-barrelэвристика
no-cycle
предикаты входящих рёбер
сигналы эволюции

Циклы и «feature с входящими рёбрами должен быть service» — свойства графа. Один файл линтеру не виден весь граф, поэтому эти правила только в CLI.

Почему недостаточно одних линтеров → Почему CLI, а не только линтеры.

Пакеты

ПакетНазначение
@derived-modular/clicheck + doctor
@derived-modular/eslint-pluginESLint, плоская конфигурация
@derived-modular/oxlint-pluginТе же правила для Oxlint
@derived-modular/biome-pluginGritQL-эвристики (слабее)
@derived-modular/boundariesОбщая классификация путей для CLI и ESLint
Навык dma (skills/dma)Навык агента — не npm-пакет; npx skills add … --навык dma

Рекомендуемый workflow

  1. Локально: ESLint (или Biome/Oxlint) при сохранении — ловит очевидные импорты
  2. Перед push: npx @derived-modular/cli check .
  3. Время от времени: npx @derived-modular/cli doctor . — посмотреть, что пора вынести или промоутить
  4. В CI: npx @derived-modular/cli check . --format json (или SARIF для GitHub Code Scanning)

Что выбрать

СитуацияРекомендация
Уже есть ESLint 9+ с плоской конфигурацией@derived-modular/eslint-plugin
Biome как единый линтер/форматтер@derived-modular/biome-plugin + всё равно dma check в CI
Oxlint для скорости@derived-modular/oxlint-plugin (alpha)
Только CI, без редактораДостаточно @derived-modular/cli

Что дальше

On this page