Часть VI. Conformance (набросок)
Этот раздел — карта для будущей нормативной спеки, не сама спека. Полная матрица классов с JSON-Schema приложениями, test fixtures и edge cases появится в docs/spec-v0.1/. Ниже — аксиомы, которых конформная реализация обязана придерживаться на любом уровне.
22. Классы L1–L4
Формат определяет четыре класса конформности, каждый — subset предыдущего. Класс задаёт, что реализация обязана поддерживать, и что она может опустить.
L1 — Minimum. Реализация умеет:
- парсить онтологию (entities, fields, roles, invariants)
- парсить namespace намерений (intents с effects)
- складывать Φ (append-only log)
- выполнять fold(Φ) → world
L1-реализация может не иметь UI, не иметь кристаллизации, не иметь материализаций. Это — минимальный читатель формата, достаточный для audit-инструментов, миграций, серверной автоматизации без авторских проекций.
L2 — Crystallize. L1 плюс:
- базовая кристаллизация (
crystallize(intents, ontology, projection, [], {}) → artifact) - хотя бы один архетип (минимум —
detail) - assignToSlots без Pattern Bank
- mergeProjections для авторских override'ов
L2 достаточна для реализаций, которые работают только с machine-interface: agent API, document generation. UI может отсутствовать.
L3 — Four materializations. L2 плюс:
- Pattern Bank matching (без
structure.apply) - все четыре материализации (pixel, voice, agent API, document) с единым viewer-scoping
- минимум два архетипа (обычно
catalogиdetail)
L3 — достаточный класс для большинства production-реализаций, покрывающий типичные use-case'ы.
L4 — Full. L3 плюс:
- Pattern Bank с
structure.apply(фаза 5 кристаллизации) - все шесть видов инвариантов (role-capability, referential, transition, cardinality, aggregate, expression)
- irreversibility с integrity-правилом в валидаторе
- темпоральный scheduler (системные намерения
schedule_timer/revoke_timer) - custom canvas / primitive extension points
L4 — полная референсная реализация. Эталонный класс для экстенсивных доменов (fintech, logistics, ERP), где требуется весь арсенал формата.
Внедрение формата начинается с L1 и может остановиться на L2 или L3 для специфичных задач. Переход L3 → L4 не является обязательным; инструменты, не работающие с темпоральностью или structural patterns, могут оставаться на L3 неограниченно.
23. Инварианты формата
Четыре аксиомы, которые конформная реализация обязана гарантировать:
1. Детерминизм кристаллизации.
crystallize(intents, ontology, projection, patternBank, features) — чистая функция. Два вызова с идентичным входом возвращают идентичный артефакт. Никаких скрытых состояний, временны́х зависимостей, LLM-побочных эффектов, обращений к сетевым источникам.
Следствие: артефакт может быть кеширован по content hash входа; регенерация при изменении preference не теряет неизменённые части; тестирование артефактов возможно через equality check.
2. Viewer-scoping — тип данных, не фильтр.
viewerWorld = filterWorldForRole(world, viewer, ontology). Это — тип данных для конкретного viewer'а, не постобработочный фильтр render'а. Любая материализация читает viewerWorld, не world. Agent API получает viewerWorld в JSON; pixel-renderer — в memory; voice — в turns; document — в graph-узлах.
Следствие: новая материализация получает безопасность бесплатно. Добавление viewer-сценария не требует пересмотра ACL-политик в каждом читателе.
3. Irreversibility — свойство эффекта, не процесса.
Эффект с context.__irr = { point: "high", at: <past ISO> } не может быть отменён через α: "remove" на целевой сущности. α: "replace" (forward correction) разрешён всегда.
Integrity-правило проверяется валидатором при confirm; на нарушении — reject. Это делает irreversibility декларативной: каждый автор намерения решает, какие эффекты irreversible, и формат принуждает движок уважать это решение во всех последующих обращениях.
Прецеденты __irr:"high" в референсной реализации: capture_payment (delivery), confirm_deal (freelance), approve_journal_entry / submit_attestation / amend_attestation / sign_off_cycle_404 / file_amendment (compliance/SOX ICFR — evidence-lock и §302 personal accountability CFO).
4. Audit trail через Φ.
Любое изменение мира происходит через confirmed effect в Φ. Мир не редактируется in-place (никаких world[entity][field] = value). Это означает, что история мира полная — каждое изменение имеет свидетеля.
Следствие: rebuild from Φ всегда даёт текущее состояние мира; причинность сохраняется; audit-запросы (кто изменил это поле? когда? каким намерением?) отвечаются запросом к Φ, не требуют отдельной audit-инфраструктуры.
Эти четыре инварианта не обсуждаются. Любая реализация, нарушающая один из них, не является конформной — вне зависимости от класса L1–L4.