Часть V. Авторство
19. Где уместен LLM
IDF — формат, в котором LLM отсутствует в рантайме. Это означает: ни одно решение, влияющее на состояние мира (confirm, reject, invariant check) или на рендер артефакта, не зависит от непредсказуемого провайдера. Детерминизм формата не соседствует с LLM; он его исключает.
Это не означает, что LLM бесполезен. Напротив, он уместен в трёх местах формата — все на этапе проектирования:
(а) Вывод онтологии из описания домена. Автор описывает домен текстом: «приложение для отслеживания привычек, в котором пользователь задаёт себе цели, видит ежедневные задачи и оценивает прогресс». LLM превращает описание в draft онтологии: сущности (Goal, Task, Habit, HabitLog), поля с типами и read/write matrix, роли, начальные намерения. Draft — не истина; автор подтверждает, корректирует или отвергает. После подтверждения онтология становится частью формата — декларативная, проверяемая, без скрытых LLM-допущений.
(б) Crystallize enrichment. Артефакт после кристаллизации — структура слотов и контролов. Но labels, placeholder'ы, iconHints, explanation-теггинги — это частично натурально-языковые строки, которые LLM может предложить. Enrichment — это witness-of-heuristic: reliability "heuristic", caveat «это предположение, требующее подтверждения». Автор принимает/отвергает enrichment; принятые — становятся частью projection или онтологии.
(в) Pattern suggestion. Pattern Bank расширяется постепенно. LLM-researcher pipeline просматривает живые приложения, находит повторяющиеся структурные паттерны, формулирует trigger-предикат и rationale, предлагает их как candidate-паттерны. Candidate становится stable после human review и добавления falsification-fixtures.
Что исключено из LLM:
- Runtime UI — рендер артефакта в DOM происходит детерминированно, без LLM-стороны
- Execute — валидация и применение намерений не обращаются к LLM
- Materialize — voice, agent API, document не генерируются LLM; они порождаются чистыми функциями над артефактом
- Анкеринг без witness-of-proof — переход witness'а от
reliability: "heuristic"к более сильному классу требует декларативного доказательства, не LLM-подтверждения
Формат проектирует так, чтобы LLM можно было заменить любой другой design-time эвристикой (grep+линтеры, rule-based recommendation engine, human-only) без изменения формата и его гарантий.
Открытая epistemic задача: anchoring promotion writer (механизм превращения heuristic-witness в anchored-witness через counterexample-search). Пока не формализован; является частью дорожной карты формата.
20. Authored vs derived
Каждый элемент артефакта имеет происхождение: он либо authored (автор проекции зафиксировал его), либо derived (движок вывел его из намерений и онтологии через кристаллизацию).
Это различие — первоклассное свойство артефакта. Его можно прочесть в artifact.witnesses[]: derived-элементы несут witness с соответствующим basis (pattern-bank, heuristic, структурный вывод), authored-элементы — witness с basis authored или отсутствуют (authored данные «не нуждаются в свидетельстве»).
Формат даёт автору два различающихся механизма влияния на derived-часть:
-
Preference (input modifier):
projection.patterns = { enabled: [...], disabled: [...] }. Preference — часть входа кристаллизации. Артефакт остаётся чистой функцией:(intents, ontology, projection + preference, patternBank, features) → artifact. Два разных preference → два разных артефакта, оба валидны, оба рестоурабельны. -
Slot-override (output freeze): авторская projection.slots явно переопределяет слот артефакта. Это — модификатор выхода, обход кристаллизации для данной части. Свойство «артефакт = f(input)» для этой части теряется: slot-override freeze'ит artifact-фрагмент.
Различие принципиальное для воспроизводимости. Preference сохраняет возможность rebuild-from-input; slot-override — не сохраняет. Формат не запрещает slot-override, но рекомендует preference как первый выбор:
- Если желаемое поведение можно выразить как выбор из stable-паттернов Pattern Bank'а или другой flag'и — preference.
- Если paradigma принципиально не уложена в преференсы (новый архитектурный приём, не предусмотренный форматом) — slot-override с явной заметкой для code review.
- Если slot-override становится распространённым на конкретный случай — это сигнал расширить Pattern Bank или онтологию, а не тиражировать override.
Authored vs derived — не дихотомия «мой код vs движка». Это epistemological различие: derived-часть имеет формальное происхождение, authored — декларативное решение автора. Оба вида артефактов валидны; их микширование — свобода автора, обратная сторона — собственная ответственность за reproducibility.
21. Authoring environment
Studio — отдельный инструмент исследования формата: визуализация онтологии как графа, Pattern Inspector для prototype-preview кристаллизации, viewer/role switching, Φ-playback. Формально Studio не является частью формата и не требуется для конформной реализации. Она — среда авторства, опциональная надстройка над форматом.
Важно, что Studio не участвует в рантайме. Если автор использует Studio при проектировании домена и потом поставляет его в production, никакой элемент рантайма не знает о существовании Studio. Это следует из строгого разделения:
- Формат — описание (онтология, намерения, проекции, Pattern Bank)
- Реализация — читатели формата (adapter, voice, agent, document)
- Studio — инструмент работы с описанием (design-time)
Studio может быть реализована разными способами и разными командами — на React, как CLI, как LSP-plugin. Это также не ограничивает формат.
Концептуально Studio воплощает тезис, что формат читаем: его можно загрузить, отрендерить граф, прогнать falsification-fixtures, увидеть Pattern Bank match'и. Это — способ валидации гипотезы «формат достаточно ясен, чтобы быть auditable'ным». Наличие или отсутствие Studio — не аксиома формата, но её возможность — важный качественный тест.