Fictional sample. Every metric, status, organization, and decision on this page exists only to
demonstrate the report engine; replace it with verified project evidence before use.
This starter records one system decision in enough detail for implementation and later reversal. It keeps
the trust boundary visible instead of hiding it in framework code.
System boundary
Decision
Use one declarative compilation path
Keep Markdown, metadata, confined partials, and local assets as the public source. Compile them into static
output using package-owned renderers and a bounded event-delegated runtime.
Force
Consequence
Offline portability
No remote runtime or author-time network fetch
Agent ergonomics
No JSX, CSS, or JavaScript required
Security review
Data-only directives with explicit constraints
Deterministic output
Package versions and local source determine bytes
Runtime flow
Offline compilation boundaryDeclarative local input passes through validation and compile-time rendering into a static browser artifact.
Input and output
Build-time rendering
Diagram in words
Nodes: 4; flow layers: 4.
Layers along the flow
Local source [Input and output]
Validated model
Semantic renderer [Build-time rendering]
Static artifact [Input and output]
Connections along the flow
Local source → Validated model: parse
Validated model → Semantic renderer: typed data
Semantic renderer → Static artifact: HTML + assets
Alternatives and consequences
Alternatives considered
Package primitives
One registry, model, renderer, and bounded runtime keep every supported page on the same contract.
Custom frontend
Maximum freedom, but every page owns framework setup, security review, accessibility, and packaging.
Hosted editor
Fast visual editing, but it introduces a service dependency and weakens offline portability.
Positive
Authors provide data and semantic intent; the package owns browser behavior.
Trade-off
New interaction classes require a package release instead of arbitrary author JavaScript.
Guardrail
All filesystem references are confined before reads and all output works locally.
Rollout
Adopt the decision
Replace the sample decision and evidence in the declarative source.
Build semantic output through the shared compiler.
Open the artifact through file:// at desktop and mobile widths.
Revisit the decision when a verified requirement no longer fits the boundary.
Вымышленный пример. Все метрики, статусы, организации и решения на этой странице нужны только для
демонстрации движка отчётов; перед использованием замените их проверенными данными проекта.
Эта основа фиксирует одно системное решение с достаточной детализацией для реализации и последующего отката.
Граница доверия остаётся видимой, а не скрывается в коде фреймворка.
Граница системы
Решение
Использовать один декларативный путь сборки
Сохранить Markdown, метаданные, ограниченные partials и локальные ресурсы как публичный источник. Собирать
их в статический результат с помощью рендереров пакета и ограниченного runtime с делегированием событий.
Фактор
Последствие
Автономная переносимость
Нет удалённого runtime или сетевой загрузки при подготовке
Эргономика агента
Не требуются JSX, CSS или JavaScript
Проверка безопасности
Директивы только с данными и явными ограничениями
Детерминированный результат
Байты определяются версией пакета и локальным источником
Поток выполнения
Граница автономной сборкиДекларативный локальный вход проходит проверку и рендеринг во время сборки, а затем становится статическим браузерным артефактом.
Вход и выход
Рендеринг при сборке
Схема словами
Узлов: 4, слоёв потока: 4.
Слои по потоку
Локальный источник [Вход и выход]
Проверенная модель
Семантический рендерер [Рендеринг при сборке]
Статический артефакт [Вход и выход]
Связи по потоку
Локальный источник → Проверенная модель: разбор
Проверенная модель → Семантический рендерер: типизированные данные
Семантический рендерер → Статический артефакт: HTML и ресурсы
Альтернативы и последствия
Рассмотренные альтернативы
Примитивы пакета
Один реестр, модель, рендерер и ограниченная среда выполнения удерживают все страницы на едином контракте.
Собственный интерфейс
Максимальная свобода, но каждая страница владеет настройкой фреймворка, безопасностью, доступностью и упаковкой.
Редактор как сервис
Быстрое визуальное редактирование, но появляется зависимость от сервиса и ослабевает автономная переносимость.
Плюс
Авторы задают данные и смысловое намерение; пакет владеет браузерным поведением.
Компромисс
Новые классы взаимодействий требуют выпуска пакета вместо произвольного авторского JavaScript.
Защитная граница
Перед чтением каждый файловый путь проверяется на принадлежность корню исходников; результат работает локально.
Внедрение
Применить решение
Заменить примерное решение и доказательства в декларативном исходнике.
Собрать семантическую страницу через общий компилятор.
Открыть артефакт через file:// на компьютере и телефоне.
Пересмотреть решение, когда проверенное требование перестанет укладываться в границу.