From 1bf5b526be3db8bb626c7088def5770a7b21f684 Mon Sep 17 00:00:00 2001 From: sindoring Date: Wed, 15 Jul 2026 23:35:00 +0400 Subject: [PATCH] qar(M02): close player decomposition milestone Work-Package: M02-QAR-INTEGRATOR-CLOSEOUT-001 Agent: sindo-main-codex Tests: all M02 contracts, renderer dry-run, documentation and coordination gates passed Fidelity: direct binding evidence and reference-only timing/routing are separated; remaining locomotion/camera gaps stay explicit --- coordination/claims/M02-GMP-INPUT-001.md | 1 + .../claims/M02-GMP-INPUT-PROFILE-335-001.md | 1 + coordination/claims/M02-GMP-MOVEMENT-001.md | 1 + .../M02-GMP-SANDBOX-CAPABILITIES-001.md | 1 + .../claims/M02-GMP-TERRAIN-QUERY-001.md | 1 + .../claims/M02-QAR-INTEGRATOR-CLOSEOUT-001.md | 74 +++++++++++++++++++ coordination/claims/M02-RND-CAMERA-001.md | 1 + .../M02-RND-CHARACTER-PRESENTATION-001.md | 1 + targets/02-player-decomposition.md | 70 ++++++++++++++---- targets/03-renderer-facade.md | 2 +- targets/DEVELOPMENT_ROADMAP.md | 2 +- targets/README.md | 6 +- 12 files changed, 140 insertions(+), 21 deletions(-) create mode 100644 coordination/claims/M02-QAR-INTEGRATOR-CLOSEOUT-001.md diff --git a/coordination/claims/M02-GMP-INPUT-001.md b/coordination/claims/M02-GMP-INPUT-001.md index 4ee27ea..49665ee 100644 --- a/coordination/claims/M02-GMP-INPUT-001.md +++ b/coordination/claims/M02-GMP-INPUT-001.md @@ -2,6 +2,7 @@ + ## Ownership diff --git a/coordination/claims/M02-GMP-INPUT-PROFILE-335-001.md b/coordination/claims/M02-GMP-INPUT-PROFILE-335-001.md index c764c7d..158bc42 100644 --- a/coordination/claims/M02-GMP-INPUT-PROFILE-335-001.md +++ b/coordination/claims/M02-GMP-INPUT-PROFILE-335-001.md @@ -86,6 +86,7 @@ turn consumption at the server-contract default turn rate. - Blocked by: + ## Handoff diff --git a/coordination/claims/M02-GMP-MOVEMENT-001.md b/coordination/claims/M02-GMP-MOVEMENT-001.md index d9f774f..cfa0f70 100644 --- a/coordination/claims/M02-GMP-MOVEMENT-001.md +++ b/coordination/claims/M02-GMP-MOVEMENT-001.md @@ -2,6 +2,7 @@ + ## Ownership diff --git a/coordination/claims/M02-GMP-SANDBOX-CAPABILITIES-001.md b/coordination/claims/M02-GMP-SANDBOX-CAPABILITIES-001.md index 7cbd387..a6fa3cf 100644 --- a/coordination/claims/M02-GMP-SANDBOX-CAPABILITIES-001.md +++ b/coordination/claims/M02-GMP-SANDBOX-CAPABILITIES-001.md @@ -83,6 +83,7 @@ explicit `RenderSandbox` profile and are rejected by `Blizzlike335`. - Blocked by: + ## Handoff diff --git a/coordination/claims/M02-GMP-TERRAIN-QUERY-001.md b/coordination/claims/M02-GMP-TERRAIN-QUERY-001.md index 9284fac..17c7084 100644 --- a/coordination/claims/M02-GMP-TERRAIN-QUERY-001.md +++ b/coordination/claims/M02-GMP-TERRAIN-QUERY-001.md @@ -2,6 +2,7 @@ + ## Ownership diff --git a/coordination/claims/M02-QAR-INTEGRATOR-CLOSEOUT-001.md b/coordination/claims/M02-QAR-INTEGRATOR-CLOSEOUT-001.md new file mode 100644 index 0000000..9e4be23 --- /dev/null +++ b/coordination/claims/M02-QAR-INTEGRATOR-CLOSEOUT-001.md @@ -0,0 +1,74 @@ +# M02-QAR-INTEGRATOR-CLOSEOUT-001 — M02 milestone closeout + + + +## Ownership + +- Target: M02 +- Program: QAR +- Owner/Agent ID: sindo-main-codex +- Branch: `work/sindo-main-codex/m02-integrator-closeout` +- Lease expires UTC: 2026-07-17 +- Integrator: sindo-main-codex, continuing the user-directed milestone workflow on 2026-07-15 + +## Outcome + +Audit every merged M02 package on current master, record final structural and +fidelity evidence, close M02 and activate M03 only when all target and repository +gates pass. + +## Non-goals + +- Change player, movement, terrain, camera, presentation or renderer behavior. +- Claim complete WoW 3.3.5a locomotion/camera parity. +- Implement recorded jump/fall/swim/fly, collision or timing gaps. +- Commit proprietary assets, generated UIDs, caches or user scene changes. + +## Paths + +- Exclusive: M02/M03 target status, M02 final Evidence, all M02 claim acceptance markers +- Shared/hotspots: `targets/README.md`, `targets/DEVELOPMENT_ROADMAP.md`, this claim +- Generated/ignored: local Godot imports, native DLL, renderer corpus and `user://` reports + +## Contracts and data + +- Runtime APIs, Input Map actions, fixture schemas and cache formats: unchanged +- Consumers: milestone sequence and future M03 renderer-facade packages +- Fidelity classification distinguishes direct build-12340 binding evidence, + server/reference compatibility evidence and explicitly unverified gaps + +## Dependencies + +- Requires: all seven M02 READY packages integrated through master `eb122d5` +- Blocks: M03 activation +- External state: private original-client files are hash/provenance inputs only + +## Verification + +- Commands: all M02 input/movement/capability/terrain/camera/presentation tests, + coordinate/streaming boundaries, unified renderer dry-run, documentation, + coordination and diff hygiene +- Fidelity evidence: build-12340 default binding hashes and selected facts; + pinned TrinityCore turn rate; public reference routing; explicit remaining gaps +- Performance: no runtime change; renderer baseline remains the performance guard + +## Documentation deliverables + +- M02 final target Evidence/checklist and limitation statement +- M02 claim integration-acceptance markers +- Target index and roadmap transition to M03 +- Existing API/module specifications and diagrams audited without behavioral edits + +## Simplicity and naming + +- Important names introduced: none beyond the closeout work-package ID +- Simplest approach: evidence/status-only integrator patch +- Rejected complexity: behavioral fixes or a new closeout framework +- Unavoidable complexity: explicit evidence classification prevents false 1:1 claims + +## Status + +- State: active +- Done: confirmed seven READY packages are merged into master `eb122d5` +- Next: run post-merge gates and record target/claim status only if they pass +- Blocked by: diff --git a/coordination/claims/M02-RND-CAMERA-001.md b/coordination/claims/M02-RND-CAMERA-001.md index 2ddf3f5..20314e2 100644 --- a/coordination/claims/M02-RND-CAMERA-001.md +++ b/coordination/claims/M02-RND-CAMERA-001.md @@ -90,6 +90,7 @@ no-collision sandbox baseline. - Blocked by: + ## Handoff diff --git a/coordination/claims/M02-RND-CHARACTER-PRESENTATION-001.md b/coordination/claims/M02-RND-CHARACTER-PRESENTATION-001.md index 3426a47..e719a86 100644 --- a/coordination/claims/M02-RND-CHARACTER-PRESENTATION-001.md +++ b/coordination/claims/M02-RND-CHARACTER-PRESENTATION-001.md @@ -84,6 +84,7 @@ components without changing the current sandbox presentation. - Blocked by: + ## Handoff diff --git a/targets/02-player-decomposition.md b/targets/02-player-decomposition.md index 59ad015..195df24 100644 --- a/targets/02-player-decomposition.md +++ b/targets/02-player-decomposition.md @@ -1,6 +1,7 @@ # M02 — Player Decomposition - + + ## Outcome @@ -8,14 +9,14 @@ ## Steps -- [ ] Заменить hardcoded keys на remappable Input Map actions с профилем 3.3.5a. -- [ ] Выделить `PlayerInputSource → MoveIntent`. -- [ ] Выделить local movement state/controller. -- [ ] Выделить `TerrainQuery` и убрать прямой ADT parsing из player. -- [ ] Выделить third-person camera rig и camera collision policy. -- [ ] Выделить character appearance и animation presenters. -- [ ] Оставить sprint/flight debug-функции только в sandbox profile. -- [ ] Добавить movement/camera state tests и regression scene. +- [x] Заменить hardcoded keys на remappable Input Map actions с профилем 3.3.5a. +- [x] Выделить `PlayerInputSource → MoveIntent`. +- [x] Выделить local movement state/controller. +- [x] Выделить `TerrainQuery` и убрать прямой ADT parsing из player. +- [x] Выделить third-person camera rig и camera collision policy. +- [x] Выделить character appearance и animation presenters. +- [x] Оставить sprint/flight debug-функции только в sandbox profile. +- [x] Добавить movement/camera state tests и regression scene. ## Fidelity evidence @@ -27,10 +28,47 @@ ## Evidence -- Date: -- Revision/worktree: -- Commands: -- Results: -- Fidelity comparison: -- Changed files: -- Remaining risks: +- Date: 2026-07-15 +- Revision/worktree: merged master `eb122d5`; closeout + `work/sindo-main-codex/m02-integrator-closeout`. +- Commands: `verify_player_input.gd`; `verify_local_player_movement.gd`; + `verify_player_movement_capabilities.gd`; `verify_terrain_query.gd`; + `verify_third_person_camera_rig.gd`; `verify_character_presentation.gd`; + `verify_coordinate_conversion_boundaries.gd`; `verify_streaming_focus.gd`; + `tools/run_render_baseline.ps1 -DryRun`; documentation, coordination and + diff-hygiene gates. +- Results: input PASS (`16` actions, `9` intent cases, `3` profiles, one + provenance fixture, `3` real-scene cases); movement PASS (`15` cases, `2` + state transitions); profile capabilities PASS (`3` profiles, sprint/flight + allow/reject and `2` scenes); terrain PASS (`4` contract, interpolation, + cache and `2` failure cases); camera PASS (`12` state and `3` policy cases); + presentation PASS (`9` appearance and `10` animation cases across `3` + scenes); coordinate boundary PASS (`103` files, `5` consumers); StreamingFocus + PASS (`2` runtime scenes, `3` capture tools). Renderer dry-run passed project, + material, dedupe and shutdown gates, manifest `7/7/7`, calibration maximum + error `0.000015`, server-spawn renderer and all seven planned checkpoints. +- Fidelity comparison: selected build-12340 default bindings are direct private + observations pinned by `DefaultBindings.wtf` SHA-256 + `35FFA0E4E2356A13A0633A848F9E57ABE7DF9D8A16C2245E15D33013AD2F56A5` + and `Bindings.xml` SHA-256 + `2E01276AFB7462F1417710F13B4BF1A456341F7F28CC8AE0D6D9C7442D7F6793`; + only sanitized selected facts are committed. `3.141594` rad/s keyboard turn + is pinned to TrinityCore 3.3.5 revision + `2853a621d6af91a803787a2b8a509f4ce3e0300d`; right-mouse A/D strafe routing + is supported by WoWee revision `626243e937fb93965fa583a6507ed5a1aa7dda4b`. + These two sources are compatibility references, not direct client timing/ + conditional-behavior proof. Translation speeds and camera values remain + sandbox regression baselines rather than original-client parity evidence; + jump/fall/swim/fly gameplay is not implemented by this decomposition target. + Debug sprint/free flight is proven unable to execute in `Blizzlike335`. +- Changed files: typed input intent/actions/source, local movement/capabilities, + terrain query, camera rig/collision policy, character appearance/animation + presenters, player composition, Input Map configuration, asset-free regression + scenes, sanitized input fixture, M02 verifiers, module specifications and M02 + coordination claims. +- Remaining risks: direct build-12340 timing evidence for movement/camera, + jump/fall/swim/fly, autorun, left-button camera/select behavior, active camera + collision, terrain slopes/holes/liquids, persisted keybindings, server authority, + prediction and reconciliation remain for M09/M10/M12. Runtime renderer scenes + continue to default to explicit `RenderSandbox` until an application shell + selects `Blizzlike335`. M02 makes no complete `1:1` compatibility claim. diff --git a/targets/03-renderer-facade.md b/targets/03-renderer-facade.md index 604509f..ab4fc83 100644 --- a/targets/03-renderer-facade.md +++ b/targets/03-renderer-facade.md @@ -1,6 +1,6 @@ # M03 — Renderer Facade and Safe Extraction - + ## Outcome diff --git a/targets/DEVELOPMENT_ROADMAP.md b/targets/DEVELOPMENT_ROADMAP.md index cb3b069..45335d0 100644 --- a/targets/DEVELOPMENT_ROADMAP.md +++ b/targets/DEVELOPMENT_ROADMAP.md @@ -21,7 +21,7 @@ OpenWC должен предоставить четыре согласованн - MPQ/BLP/ADT/WDT/M2/WMO native parsing и renderer vertical slice уже существуют. - Runtime streaming, terrain quality, MultiMesh M2, WMO caches, liquids, sky и character experiments находятся в рабочем состоянии, но сосредоточены в крупных orchestration scripts. -- Renderer baseline M00 завершён: paired comparison с оригинальным клиентом записывает измеренные gaps без заявления parity, а обязательные diagnostic gaps закрыты или явно классифицированы. M01 завершил coordinate, identity и streaming-focus seams; текущая работа M02 декомпозирует player input, movement, terrain query, camera и presentation без observable regression. +- Renderer baseline M00 завершён: paired comparison с оригинальным клиентом записывает измеренные gaps без заявления parity, а обязательные diagnostic gaps закрыты или явно классифицированы. M01 завершил coordinate, identity и streaming-focus seams; M02 декомпозировал player input, movement, terrain query, camera и presentation без observable regression. Текущая работа M03 закрывает renderer стабильным facade и извлекает planner/scheduler без rewrite. - Gameplay domain, network protocol, production UI/Lua, audio orchestration и server adapters в основном предстоит реализовать. - Editor plugin пока решает extraction/preview задачи, но не является полноценной authoring platform. diff --git a/targets/README.md b/targets/README.md index bdf57f2..4af3639 100644 --- a/targets/README.md +++ b/targets/README.md @@ -10,7 +10,7 @@ ## Current target -`M02` — [02-player-decomposition.md](02-player-decomposition.md) +`M03` — [03-renderer-facade.md](03-renderer-facade.md) Одновременно `ACTIVE` может быть только одна цель. Следующая цель становится `ACTIVE` после появления валидной `OPENWC_TARGET_DONE` метки у предыдущей. @@ -35,8 +35,8 @@ |---|---|---|---| | M00 | [Renderer baseline](00-render-baseline.md) | — | DONE | | M01 | [Coordinates and architecture seams](01-coordinates-and-seams.md) | M00 | DONE | -| M02 | [Player decomposition](02-player-decomposition.md) | M01 | ACTIVE | -| M03 | [Renderer facade and extraction](03-renderer-facade.md) | M02 | OPEN | +| M02 | [Player decomposition](02-player-decomposition.md) | M01 | DONE | +| M03 | [Renderer facade and extraction](03-renderer-facade.md) | M02 | ACTIVE | | 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 |