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

dma init

Bootstrap DMA-папок, конфига, скрипта в package.json и AGENTS.md без перезаписи существующих файлов.

npx @derived-modular/cli init [path]

path по умолчанию — текущая директория. Только один package/app: в monorepo запускайте внутри apps/<name>, а не в корне workspace (если только вы сами не хотите src/ в корне).

Что делает

Строгий create-if-missing / append-only:

АртефактПоведение
{srcRoot}/Создаётся, если нет (по умолчанию src)
Composition rootСоздаёт app/, если уже нет pages/ или routes/
features/, shared/Создаются, если нет
services/Не создаётся (появляется при первой promotion)
dma.config.tsТолько если в пакете нет никакого dma.config.*
package.jsonscripts.dmaДобавляет dma check ., если нет dma и dma:check; JSON перезаписывается с отступом 2
AGENTS.mdСоздаёт или дописывает блок DMA между маркерами <!-- dma:begin --> / <!-- dma:end -->; существующий текст не затирает

Конфиги ESLint / Biome / Oxlint не трогает — только подсказки в stdout.

Безопасность

  • Никогда не перезаписывает существующие файлы.
  • Идемпотентен: повторный init всё пропускает.
  • Если в AGENTS.md уже есть заголовок вида ## … DMA без маркеров — append пропускается с предупреждением.

Флаги

init не принимает --format, --roots, --include-packages. Опциональный --config можно передать для разрешения srcRoot при scaffold.

Коды выхода

КодЗначение
0Успех (в том числе всё skipped)
2Плохие аргументы / неожиданная ошибка IO

Дальше

npm install -D @derived-modular/cli
npx @derived-modular/cli check .

Опциональные правила в редакторе: ESLint, Oxlint, Biome. Agent skill: AI и агенты.

On this page