89 lines
6.3 KiB
Markdown
89 lines
6.3 KiB
Markdown
# OpenWC Targets
|
||
|
||
<!-- OPENWC_TARGET_INDEX_VERSION:1 -->
|
||
|
||
Этот каталог задаёт обязательную последовательность реализации. Архитектура описана в `docs/`, фактическое состояние renderer — в `RENDER.md`, а здесь находятся исполняемые milestones.
|
||
|
||
Полная инженерная декомпозиция всех подсистем находится в [`DEVELOPMENT_ROADMAP.md`](DEVELOPMENT_ROADMAP.md). Перед работой над milestone агент читает соответствующий subsystem plan из `targets/roadmap/`, но статус меняет только в исполняемом target-файле M00–M13.
|
||
|
||
Параллельная командная работа выполняется по [`../docs/TEAM_WORKFLOW.md`](../docs/TEAM_WORKFLOW.md): отдельные worktrees, claims, exclusive paths, contract-first и интегратор milestone.
|
||
|
||
## Current target
|
||
|
||
`M00` — [00-render-baseline.md](00-render-baseline.md)
|
||
|
||
Одновременно `ACTIVE` может быть только одна цель. Следующая цель становится `ACTIVE` после появления валидной `OPENWC_TARGET_DONE` метки у предыдущей.
|
||
|
||
Статусные метки применяются только к исполняемым файлам `targets/[0-9][0-9]-*.md`. `DEVELOPMENT_ROADMAP.md` и `targets/roadmap/` являются нормативной декомпозицией, но не создают параллельную систему статусов.
|
||
|
||
## Definition of fidelity 1:1
|
||
|
||
`1:1` означает совпадение наблюдаемого поведения с оригинальным клиентом WoW 3.3.5a build 12340 для выбранного сценария:
|
||
|
||
- wire protocol и update fields;
|
||
- игровые состояния и переходы;
|
||
- координаты, timing и server authority;
|
||
- UI/Lua/FrameXML semantics;
|
||
- выбор assets, animation, audio и visual rules;
|
||
- edge cases, ошибки и recovery.
|
||
|
||
Современные улучшения разрешены только за feature flag/profile и не могут менять `Blizzlike335` по умолчанию. Визуальная пиксельная идентичность ограничена возможностями Godot, но каждое осознанное расхождение документируется и измеряется.
|
||
|
||
## Последовательность
|
||
|
||
| ID | Цель | Зависит от | Статус |
|
||
|---|---|---|---|
|
||
| M00 | [Renderer baseline](00-render-baseline.md) | — | ACTIVE |
|
||
| M01 | [Coordinates and architecture seams](01-coordinates-and-seams.md) | M00 | OPEN |
|
||
| M02 | [Player decomposition](02-player-decomposition.md) | M01 | OPEN |
|
||
| M03 | [Renderer facade and extraction](03-renderer-facade.md) | M02 | OPEN |
|
||
| M04 | [Godot Editor shell](04-editor-shell.md) | M03 | OPEN |
|
||
| M05 | [Content Project](05-content-project.md) | M04 | OPEN |
|
||
| M06 | [Server database adapters](06-server-adapters.md) | M05 | OPEN |
|
||
| M07 | [World Editor vertical slice](07-world-editor-slice.md) | M06 | OPEN |
|
||
| M08 | [Network foundation](08-network-foundation.md) | M03 | OPEN |
|
||
| M09 | [Gameplay domain](09-gameplay-domain.md) | M08 | OPEN |
|
||
| M10 | [Playable client slice](10-playable-client.md) | M09, M03 | OPEN |
|
||
| M11 | [Quest end-to-end](11-quest-end-to-end.md) | M07, M10 | OPEN |
|
||
| M12 | [WoW 3.3.5a completeness](12-client-completeness.md) | M11 | OPEN |
|
||
| M13 | [Dungeon authoring](13-dungeon-authoring.md) | M12 foundation | OPEN |
|
||
|
||
M12 выполняется восемью completeness waves, определёнными в [`DEVELOPMENT_ROADMAP.md`](DEVELOPMENT_ROADMAP.md), а не одной массовой реализацией.
|
||
|
||
M07 и M08 могут выполняться параллельными командами только после M06/M03 соответственно и только если пользователь явно разрешил параллельную работу. Их результаты сходятся в M11.
|
||
|
||
`recast-rs` запланирован как optional navigation backend в M05, исследовательский CLI spike и world validation в M07, затем полноценная dungeon navigation validation в M13. Он не блокирует M00–M04 и не считается автоматически совместимым с server `mmaps`.
|
||
|
||
`rilua` зарегистрирован как Lua 5.1.1 runtime/test-oracle candidate для M12. До compatibility spike он не добавляется как dependency; UI строится через заменяемый `LuaRuntime`, поскольку WoW API, FrameXML, secure actions и taint не входят в готовый VM.
|
||
|
||
Wowser зарегистрирован как независимый MIT reference для M08 и M12: auth → world protocol lifecycle, binary/data handling, asset pipeline и общий client coverage. Его старый browser stack не является кандидатом на интеграцию; полезные решения принимаются только после проверки против build 12340 и server cores.
|
||
|
||
## Общий quality gate
|
||
|
||
Каждая цель должна сохранить:
|
||
|
||
- headless загрузку Godot project;
|
||
- затронутые unit/contract/integration tests;
|
||
- renderer checkpoints при изменении рендера;
|
||
- отсутствие новых нарушений dependency rules;
|
||
- обновлённые документы и diagnostics;
|
||
- выполнен documentation gate: inline public API, module spec, inputs/outputs и обязательные diagrams;
|
||
- выполнен coding gate: явные имена, KISS, отсутствие premature abstraction и необоснованной optimization;
|
||
- проходят `tools/verify_coordination.ps1` и `tools/verify_documentation.ps1`;
|
||
- воспроизводимость без proprietary данных в Git.
|
||
|
||
## Evidence format
|
||
|
||
В конце target-файла агент заполняет:
|
||
|
||
```text
|
||
## Evidence
|
||
- Date:
|
||
- Revision/worktree:
|
||
- Commands:
|
||
- Results:
|
||
- Fidelity comparison:
|
||
- Changed files:
|
||
- Remaining risks:
|
||
```
|