Формат описания приложения.
IDF — не фреймворк и не no-code генератор. Это спецификация формы данных, в одном ряду с OpenAPI и JSON-LD. Адаптеры, рендерер, голосовой слой, агентский API и документ — читатели формата. Каждый превращает один артефакт в свою среду.
Всё остальное — производное.
Приложение в IDF полностью описывается четырьмя сущностями. UI, агентская схема, документ, speech-script — функции над этими четырьмя. Ни одна из функций не содержит скрытого состояния и не требует рантайм-интерпретации LLM.
Четыре объекта. Больше ничего.
Онтология описывает домен. Намерения — декларативные частицы изменения. Проекции — авторский контракт. Φ — лог confirmed-эффектов, единственный источник истины.
Типизированные сущности с read/write matrix, роли (5 баз: owner · viewer · agent · observer · admin), инварианты, правила реактивной автоматизации.
Не функция и не handler — запись формата: ownerRole, requiredFields, conditions, effects. Эмиттятся в Φ через generic effect handler.
Какие намерения образуют один экран, диалог, страницу. Preference поверх Pattern Bank — вход кристаллизации, не snapshot.
Упорядоченная последовательность confirmed-эффектов. Мир не хранится — вычисляется как fold(Φ). Audit trail бесплатный.
Объём референсной реализации.
Один движок, девять наборов определений. 9 доменов × 1 ontology × 0 runtime LLM. Живой implementation status.
Один артефакт. Четыре среды.
Pixels, voice, agent API, document — архитектурно равноправны. Все читают один viewerWorld = filterWorldForRole(world, viewer, ontology). Безопасность — свойство формата, а не рендера.
| Материализация | Контракт | Endpoint / API |
|---|---|---|
| 01Pixels | Renderer + adapter + Token Bridge. 4 UI-адаптера: Mantine, shadcn (doodle), Apple visionOS-glass, AntD. Capability surface для graceful fallback. |
ProjectionRendererV2 |
| 02Voice | Speech-script из turns (system · assistant · prompts). Brevity: top-3 для catalog, money читается «два с половиной миллиона рублей». |
/api/voice/:domain/:projection |
| 03Agent API | JSON-schema намерений, viewer-scoped world snapshot, exec endpoint. Preapproval guard с 5 предикатами: active · notExpired · maxAmount · csvInclude · dailySum. |
/api/agent/:domain/{schema, world, exec} |
| 04Document | Structured document-граф: sections · tables · fields · badges. HTML для печати и чтения, JSON для индексации и архивов. |
/api/document/:domain/:projection |
# 1. agent schema — что роль может сделать curl /api/agent/invest/schema?as=advisor # 2. speech-script для голосового ассистента curl /api/voice/reflect/home?format=ssml # 3. документ-граф для отчёта curl /api/document/invest/portfolio?format=html
Две формулы. Остальное — следствия.
Мир — свёртка лога. Артефакт — чистая функция от входа. Эти две формулы задают всю алгебру формата: fold, filterWorldForRole, crystallize. Тот же вход — тот же выход, всегда.
// мир — не хранимое состояние, а свёртка эффектов world = fold(Φ_confirmed) // каждый читатель получает свой срез мира по роли viewerWorld = filterWorldForRole(world, viewer, ontology) // артефакт — чистая функция, перегенерируем из тех же входов artifact = crystallize(intents, ontology, projection, patterns, features)
Детерминизм обязателен: два вызова с идентичным входом возвращают идентичный артефакт. Это делает артефакт кешируемым по content hash, сравнимым diff'ом и проверяемым через equality.
Уместен в авторстве. Исключён из рантайма.
Ни одно решение, влияющее на состояние мира или рендер, не зависит от непредсказуемого провайдера. Детерминизм формата не соседствует с LLM — он его исключает.
- Вывод онтологии из описания доменаDraft сущностей, полей, ролей, начальных намерений — автор подтверждает или отвергает.
- Crystallize enrichment — labels, iconHintsWitness с reliability «heuristic»; требует подтверждения.
- Pattern suggestionCandidate-паттерны из живых приложений; promotion в stable через falsification-fixtures.
- Рендер артефакта в DOMPure functions. Zero LLM calls.
- Валидация и применение намеренийИнварианты проверяются декларативно.
- Voice / document / agent APIЧистые функции над артефактом.
- Anchoring witness'овПромоция требует доказательства, не LLM-подтверждения.
Девять доменов валидации.
Каждый домен толкает формат в новую форму задачи: транзакционную, коммуникационную, аналитическую. Все — из одной онтологии через один кристаллизатор.
| intents | Домен | Характер |
|---|---|---|
| 225 | Sales | Аукционная барахолка. 11 сущностей, 4 роли, полный lifecycle заказа. Чисто-кристаллизационный — без ManualUI. |
| 100 | Messenger | Real-time чат. WebSocket, WebRTC, threads, реакции. |
| 58 | Invest | AntD enterprise-fintech. 4 роли, 7 правил Rules Engine, 3 внешних ML-сервиса, все 4 v1.5 extensions в одном домене. |
| 56 | LifeQuest | Цели + привычки. Shadcn-doodle, mobile-first, 6 custom canvas. |
| 47 | Reflect | Дневник эмоций по Yale RULER. Apple visionOS-glass, 6 analytical canvas. |
| 45 | Delivery | Food last-mile. 5 ролей, map-primitive, temporal scheduler, irreversible capture_payment. |
| 22 | Booking | Service booking. Темпоральные предикаты, первое применение scheduler'а. |
| 17 | Planning | Коллективные опросы. Кворум, фазы, phase-aware CTA. |
| 15 | Workflow | Визуальный редактор процессов. React Flow canvas, топологический executor. |
Три входа по возрастанию глубины.
Быстрый путь — прочитать 5 слайдов онбординга. Средний — манифест v2 (timeless-документ формата). Глубокий — установить SDK и сгенерировать свой домен через CLI.
| 15 минОнбординг | Пять слайдов с диаграммами и кодом — базовые идеи формата за один присест. Стрелки / пробел / клик по точкам для навигации. |
./onboarding.html → |
| 1 часМанифест v2 | 26 глав в 8 частях: тезис, объекты формата, алгебра, четыре читателя, авторство, conformance, границы, перспектива. |
docs/manifesto-v2.md → |
| 1 деньСвой домен | CLI ведёт 5-шаговый LLM-диалог (Claude haiku/sonnet/opus) и генерирует каталог домена с ontology, intents, projections. |
npx @intent-driven/cli init <name> |
| живоеImpl status | Что реализовано и валидировано на практике. Обновляется вместе с кодом; манифест остаётся timeless. |
implementation-status.md → |