diff options
| author | Valentin Popov <valentin@popov.link> | 2026-02-19 10:07:04 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-02-19 10:07:04 +0300 |
| commit | 0d7ae6a017b8b2bf26c5c14c39cb62b599e8262d (patch) | |
| tree | 6398ba4a13d22656af75395db6de2e4f84d6c875 /docs/specs/coverage-audit.md | |
| parent | a281ffa32ea615670d369503692f057b2dc60e6f (diff) | |
| download | fparkan-0d7ae6a017b8b2bf26c5c14c39cb62b599e8262d.tar.xz fparkan-0d7ae6a017b8b2bf26c5c14c39cb62b599e8262d.zip | |
Документирование и обновление спецификаций
- Обновлены спецификации `runtime-pipeline`, `sound`, `terrain-map-loading`, `texture`, `ui` и `wear`.
- Добавлены разделы о статусе покрытия и оставшихся задачах для достижения 100% завершенности.
- Внесены уточнения по архитектурным ролям, минимальным контрактам и требованиям к toolchain для каждой подсистемы.
- Уточнены форматы данных и правила взаимодействия между компонентами системы.
Diffstat (limited to 'docs/specs/coverage-audit.md')
| -rw-r--r-- | docs/specs/coverage-audit.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/specs/coverage-audit.md b/docs/specs/coverage-audit.md new file mode 100644 index 0000000..638f4c1 --- /dev/null +++ b/docs/specs/coverage-audit.md @@ -0,0 +1,51 @@ +# Documentation coverage audit + +Дата аудита: `2026-02-19` +Корпус данных: `testdata/Parkan - Iron Strategy` + +## 1. Проверка форматов архивов + +Результаты: + +- `NRes`: `120` архивов, roundtrip `120/120` (byte-identical) +- `RsLi`: `2` архива, roundtrip `2/2` (byte-identical) +- подтвержден один совместимый quirk: `sprites.lib`, entry `23`, `deflate EOF+1` + +Инструмент: + +- `tools/archive_roundtrip_validator.py` + +## 2. Проверка рендерных форматов + +Результаты: + +- `MSH`: `435/435` валидны +- `Texm`: `518/518` валидны +- `FXID`: `923/923` валидны +- `Terrain/Map` (`Land.msh` + `Land.map`): `33/33` без ошибок/предупреждений + +Инструменты: + +- `tools/msh_doc_validator.py` +- `tools/fxid_abs100_audit.py` +- `tools/terrain_map_doc_validator.py` + +## 3. Глобальный статус по подсистемам + +| Подсистема | Статус | Что блокирует 100% | +|---|---|---| +| Архивы (`NRes`, `RsLi`) | практически закрыта | формализация редких не-ASCII/служебных edge-case | +| 3D geometry (`MSH core`) | высокая готовность | семантика opaque-полей и канонический writer «с нуля» | +| Animation (`Res8/Res19`) | высокая готовность | полный FP-parity на всех edge-case | +| Material/Wear/Texture | высокая готовность | полная field-level семантика служебных флагов и writer-профиль | +| FXID | высокая готовность | полная field-level семантика payload по каждому opcode | +| Terrain/Areal map formats | высокая готовность | доменная семантика `class_id/logic_flag`, ветка `poly_count>0` | +| Render pipeline | хорошая | полный pixel-parity набор эталонных кадров в CI | +| AI/Behavior/Control/Missions/UI/Sound/Network | начальное покрытие | требуется полная спецификация форматов и runtime-контрактов | + +## 4. План доведения до 100% + +1. Закрыть field-level семантику opaque/служебных полей в 3D/FX/terrain подсистемах. +2. Завершить canonical writer paths для авторинга новых ассетов без copy-through. +3. Зафиксировать и автоматизировать pixel/frame parity-критерии в CI. +4. Расширить подсистемные спецификации (`AI`, `Behavior`, `Missions`, `Control`, `UI`, `Sound`, `Network`) до уровня «полный формат + полный runtime-контракт + parity-тесты». |
