Initial commit

This commit is contained in:
malysheva committed 2026-10-09 04:24:38 +00:00
commit c534d5ce80
163 files changed
+11500

No files matched your search

@@ -0,0 +1,48 @@
# Модуль: Отчёт
**Ответственность**: реализует профиль научно-технического отчёта как стартовую заготовку, не влияя на деловые документы.
**Расположение**: `.template/lib/presentation/profiles/report.typ`
## Публичный интерфейс
| Символ | Тип | Описание |
|--------|-----|----------|
| `report-profile()` | конструктор `DocumentProfile` | Принимает метаданные отчёта и безопасные defaults |
| `render-report()` | renderer-функция | Собирает титул, служебные страницы, body, библиографии и приложения |
| `report-metadata()` | чистая функция | Нормализует название, тему, договор, этап, том, год и режим исследования |
| `report-validators()` | массив functions | Проверяет обязательные поля и совместимость опций |
## Зависимости
| Модуль | Что использует |
|--------|----------------|
| `.template/lib/domain/document.typ` | `DocumentProfile`, `DocumentContext` |
| `.template/lib/domain/parties.typ` | Approval и список исполнителей |
| `.template/lib/appendices.typ` | Локальный контекст заголовков, страниц и нумерации файлов приложений |
| `.template/lib/presentation/foundation.typ` | Общую страницу, typography и render mode |
| `.template/lib/presentation/components.typ` | Title primitives, signature rows, tables, formula |
| `.template/lib/presentation/references.typ` | Cross-references и bibliography sections |
| `.template/lib/shared/numbering.typ` | Нумерацию глав, фигур, формул и приложений |
## Инварианты
- Все report-specific `set/show/state` локальны `render-report()`.
- Титульный лист, список исполнителей и содержание независимо включаются параметрами `show_title_page`, `show_executors` и `show_outline`.
- `draft/clean-copy` не загружает изображения подписей и печатей при соответствующей media policy.
- Отключённая служебная страница не оставляет пустого листа или лишнего разрыва; первая отображаемая страница получает номер 1.
- Counters фигур, таблиц и формул сбрасываются только в границах отчётной главы.
- `appendices` содержит только уникальные `path`; название и label принадлежат первому заголовку подключённого файла.
- Приложения используют собственную стратегию numbering без изменения других profiles; `attachment()` остаётся моделью писем и договоров.
- Bibliographies представлены массивом секций; renderer не ограничивает их количество одним `refs.bib`.
- Пользовательский body не изменяется и размещается после служебных страниц.
## Намеренно НЕ обрабатывает
- Адресата исходящего письма.
- Стоимость и срок действия ТКП.
- Стороны и реквизиты договора.
- Загрузку компании и пользовательских файлов.
## Заметки для агента
> Legacy renderer в `.template/lib/report.typ` является функциональной спецификацией, но его API можно менять. Переносите секции по одной и после каждой сравнивайте snapshots. Сохраните проверенные решения вокруг heading gaps, paragraph indent, continuation tables и executor signatures, пока тест не докажет, что упрощение безопасно.