Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@intent-driven/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@intent-driven/cli
CLI для bootstrap новых доменов в парадигме Intent-Driven Frontend через интерактивный LLM-диалог.
Установка и запуск
Без установки, через npx:
ANTHROPIC_API_KEY=sk-ant-... npx @intent-driven/cli init my-domainИли глобально:
npm install -g @intent-driven/cli
export ANTHROPIC_API_KEY=sk-ant-...
idf init my-domainAPI-ключ Claude получить: https://console.anthropic.com/
Что делает idf init <name>
Ведёт короткий диалог из 5 шагов:
- Описание домена — 1-2 предложения от тебя.
- Сущности — Claude предлагает 3-7 ключевых entity на основе описания.
- Роли — Claude предлагает 1-3 роли с base (
owner/viewer/agent/observer). - Намерения — Claude выводит 8-15 атомарных интентов; ты multiselect-ом оставляешь нужные.
- Генерация — пишет файлы и валидирует через
crystallizeV2.
На выходе — каталог <name>/ с готовой стартовой структурой:
<name>/
domain.js ─ ontology + intents + projections
seed.js ─ начальный мир для smoke-тестов
test/crystallize.test.js ─ vitest-проверки
package.json ─ зависимости (@intent-driven/core, vitest)
README.md ─ описание доменаПосле cd <name> && npm install && npm test — всё должно зеленеть.
Опции
idf init <name> [options]
-m, --model LLM-модель: haiku | sonnet | opus (default: sonnet)
-o, --out Каталог для генерации (default: ./<name>)
-h, --help
-v, --versionМодели:
haiku(Claude Haiku 4.5) — самая быстрая и дешёвая, для простых доменовsonnet(Claude Sonnet 4.6) — баланс качества и скорости (default)opus(Claude Opus 4.6) — лучшее качество для сложных domain'ов
Подключение сгенерированного домена к прототипу
В клонированном DubovskiyIM/idf:
- Скопируй каталог
<name>/вsrc/domains/<name>/. - Зарегистрируй в
src/prototype.jsxкак новый пункт переключателя:import myDomainDef from "./domains/my-domain/domain.js"; import myDomainSeed from "./domains/my-domain/seed.js"; // … добавить в DOMAINS / SEEDS map
npm run dev— твой домен станет доступен через переключатель в шапке.
Что считается «сгенерированным»
CLI не угадывает бизнес-логику. То, что он генерирует — каркас, который:
- Проходит
crystallizeV2без ошибок. - Имеет corretные типы полей (
money,datetime,boolean,entityRefвыводятся из имён). - Имеет правильную структуру
particlesв каждом intent'е. - Генерирует базовый набор
catalog+detailпроекций для каждой non-reference entity.
Что не генерируется автоматически:
- Условия (
conditions) — нужно добавить вручную,Claudeих не выводит без знания бизнес-правил. - Кастомные projections —
dashboard,wizard,canvas(только catalog/detail из коробки). - Многосущностные effects (например, batch-изменения) — простые add/replace/remove.
После генерации домен — стартовая точка для итеративной правки.
idf import
Импорт схемы из внешних источников в IDF-ontology.
idf import prisma
idf import prisma --file schema.prisma --out src/domains/api/ontology.jsidf import openapi
idf import openapi --file openapi.yaml --out src/domains/api/ontology.jsidf import postgres
idf import postgres --url postgresql://user:pass@localhost/mydb --out src/domains/api/ontology.jsidf import nestjs-typeorm
Сканирует NestJS+TypeORM проект (*.entity.ts + *.controller.ts) и генерирует ontology.
idf import nestjs-typeorm --src ./src --out src/domains/api/ontology.js
idf import nestjs-typeorm --src ./apps/backend/src --no-guardsФлаги:
--src <dir>(required) — root user-проекта для рекурсивного скана--out <file>(defaultsrc/domains/default/ontology.js)--name <name>— domain name (defaultdefault)--no-guards— отключить Guards → roles mapping
Скоп v1.0
В этой версии — только команда init. В планах для следующих минорных:
idf add intent <name>— добавить намерение к существующему доменуidf validate <path>— прогон conformance-тестов из spec- Поддержка не-Anthropic LLM (OpenAI, локальные)
Issues / feature requests: https://github.com/DubovskiyIM/idf-sdk/issues
Лицензия
MIT.