137 lines
9.0 KiB
Markdown
137 lines
9.0 KiB
Markdown
# План редизайна пользовательской поверхности Scientia
|
|
|
|
## Обзор
|
|
|
|
| Фаза | Результат | Статус |
|
|
|------|-----------|--------|
|
|
| 1 | Зафиксирован baseline до редизайна | [x] |
|
|
| 2 | В корне оставлен один настраиваемый `main.typ` | [x] |
|
|
| 3 | Публичные инструкции и компилируемые примеры перенесены в `docs/` | [x] |
|
|
| 4 | Выбор типа выполняется задачей VS Code, private media — одним параметром | [x] |
|
|
| 5 | Полная регрессия и визуальная приёмка | [x] |
|
|
|
|
## План миграции
|
|
|
|
**Текущее до редизайна**: пользовательская справка находилась в скрытой `.template/help/`, конфигурация была разделена между `document.typ`, `main.typ`, `draft.typ` и `clean-copy.typ`, а учебные примеры лежали среди developer fixtures.
|
|
|
|
**Целевое состояние**: автор видит `main.typ`, `chapters/`, `assets/` и `docs/`. Режим задаётся одной переменной. Примеры четырёх типов документов и форматирования видимы, компилируемы и используются как заготовки. Приватная папка подключается одним параметром и содержит настройки индивидуальных подписей.
|
|
|
|
**Стратегия**: атомарное переключение пользовательского контракта без compatibility-файлов. Обратная совместимость не требуется.
|
|
|
|
| Фаза | Rollback |
|
|
|------|----------|
|
|
| 1 | Не требуется: только фиксация baseline |
|
|
| 2 | Восстановить предыдущие четыре корневых файла одним change set |
|
|
| 3 | Вернуть справку в `.template/help/`, не меняя библиотеку |
|
|
| 4 | Отключить задачи и использовать обычную сборку с placeholders |
|
|
| 5 | Откатить конкретную правку, повторить compile и visual suites |
|
|
|
|
---
|
|
|
|
## Фаза 1 — Зафиксировать baseline
|
|
|
|
**Цель**: доказать работоспособность библиотеки до изменения пользовательского контракта.
|
|
**Результат**: unit, negative, company matrix, semantic и visual suites проходят.
|
|
**Трудоёмкость**: S
|
|
**Статус**: [x] Готово
|
|
|
|
### Задачи
|
|
|
|
- [x] Сохранить compile и visual baseline (→ [Модуль: Тестирование](../modules/testing.md))
|
|
- [x] Зафиксировать Typst 0.15.1 (→ [ADR-0001](adr/0001-typst-015.md))
|
|
|
|
### Тесты
|
|
|
|
- [x] Unit: domain и numbering
|
|
- [x] Интеграционный: четыре профиля и компании
|
|
- [x] Визуальный: утверждённые snapshot pages
|
|
|
|
---
|
|
|
|
## Фаза 2 — Оставить один `main.typ`
|
|
|
|
**Цель**: сделать все ежедневные настройки и `#include` видимыми в одном файле.
|
|
**Результат**: `document.typ`, `draft.typ` и `clean-copy.typ` отсутствуют; режим выбирается в `main.typ`.
|
|
**Трудоёмкость**: M
|
|
**Статус**: [x] Готово
|
|
|
|
### Задачи
|
|
|
|
- [x] Перенести компанию, режим, metadata и порядок глав в `main.typ` (→ [Рабочее пространство автора](../modules/author-workspace.md))
|
|
- [x] Сохранить единый фасад импорта (→ [Публичный фасад](../modules/facade.md))
|
|
- [x] Проверить profile/options contract (→ [Документ](../modules/domain-document.md))
|
|
- [x] Сохранить границы организаций, сторон и приложений (→ [Организация](../modules/domain-company.md), [Стороны](../modules/domain-parties.md), [Приложения](../modules/domain-attachments.md))
|
|
- [x] Проверить application flow и загрузку компаний (→ [Сборка](../modules/application-render.md), [Ресурсы компаний](../modules/infrastructure-assets.md))
|
|
|
|
### Тесты
|
|
|
|
- [x] Static: единственный root entrypoint
|
|
- [x] Интеграционный: `final`, `draft`, `clean-copy` через profile fixtures
|
|
- [x] Ручной: порядок глав меняется только списком `#include`
|
|
|
|
---
|
|
|
|
## Фаза 3 — Открыть документацию и примеры
|
|
|
|
**Цель**: дать автору видимую справку и копируемые примеры без чтения реализации.
|
|
**Результат**: `docs/` содержит навигацию, четыре полных документа и каталог оформления.
|
|
**Трудоёмкость**: L
|
|
**Статус**: [x] Готово
|
|
|
|
### Задачи
|
|
|
|
- [x] Разделить публичную и developer-документацию (→ [Публичная документация](../modules/user-documentation.md))
|
|
- [x] Сделать примеры источником выбора типа документа (→ [Публичные примеры](../modules/starter-packs.md))
|
|
- [x] Показать таблицы, формулы, подписи и media blocks (→ [Компоненты](../modules/components.md), [Основа вёрстки](../modules/presentation-foundation.md))
|
|
- [x] Показать ссылки, bibliography и numbering (→ [Ссылки](../modules/references.md), [Нумерация](../modules/numbering.md))
|
|
- [x] Подготовить адекватные примеры профилей (→ [Отчёт](../modules/presentation-report.md), [Письмо](../modules/presentation-letter.md), [ТКП](../modules/presentation-commercial-offer.md), [Договор](../modules/presentation-contract.md))
|
|
|
|
### Тесты
|
|
|
|
- [x] Интеграционный: пять публичных примеров компилируются
|
|
- [x] Semantic: ожидаемые подписи, ссылки, приложения и реквизиты присутствуют
|
|
- [x] Ручной: весь `docs/` доступен из корневого README
|
|
|
|
---
|
|
|
|
## Фаза 4 — Упростить VS Code и приватные данные
|
|
|
|
**Цель**: оставить одну build task и безопасно подключать папку `.private` одним параметром.
|
|
**Результат**: выбор типа создаёт backup, обычная сборка работает с private media и без неё, отсутствующая подпись не ломает документ.
|
|
**Трудоёмкость**: M
|
|
**Статус**: [x] Готово
|
|
|
|
### Задачи
|
|
|
|
- [x] Оставить в Typewriter единственный `main.typ` и обновить задачи (→ [Рабочая область VS Code](../modules/vscode-workspace.md))
|
|
- [x] Добавить публичный справочник сотрудников, фиксированные PNG names и private offsets (→ [Приватные ресурсы](../modules/private-assets.md))
|
|
- [x] Использовать conditional import при явном `use-private-assets` (→ [ADR-0010](adr/0010-private-folder-and-employees.md))
|
|
|
|
### Тесты
|
|
|
|
- [x] Static: `.vscode/` синхронизируется, `docs/` не скрыт
|
|
- [x] Интеграционный: clean fork компилируется без `.private`
|
|
- [x] Интеграционный: private compile отображает реальные подписи и offsets
|
|
- [x] Интеграционный: `enabled: false` оставляет пустую строку без ошибки
|
|
|
|
---
|
|
|
|
## Фаза 5 — Hardening и выпуск
|
|
|
|
**Цель**: подтвердить отсутствие мёртвых путей, утечек и визуальных дефектов.
|
|
**Результат**: полный harness проходит, Markdown-ссылки валидны, приватные ресурсы игнорируются.
|
|
**Трудоёмкость**: M
|
|
**Статус**: [x] Готово
|
|
|
|
### Задачи
|
|
|
|
- [x] Обновить static workspace contract (→ [Тестирование](../modules/testing.md))
|
|
- [x] Удалить скрытые дубликаты примеров и notes (→ [Публичная документация](../modules/user-documentation.md))
|
|
- [x] Проверить визуально все страницы публичных примеров (→ [ADR-0006](adr/0006-visual-regression.md))
|
|
|
|
### Тесты
|
|
|
|
- [x] Полный automated harness
|
|
- [x] Аудит Markdown links и legacy paths
|
|
- [x] Визуальная проверка contact sheets и проблемных страниц
|