From a629bedccfc0e3d57c6746cc01c1780c32ffc778 Mon Sep 17 00:00:00 2001 From: sindoring Date: Wed, 15 Jul 2026 23:43:50 +0400 Subject: [PATCH] rnd(M03): claim renderer facade seam Work-Package: M03-RND-FACADE-001 Agent: sindo-main-codex Tests: not run (coordination-only commit) Fidelity: no runtime change --- coordination/claims/M03-RND-FACADE-001.md | 93 +++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 coordination/claims/M03-RND-FACADE-001.md diff --git a/coordination/claims/M03-RND-FACADE-001.md b/coordination/claims/M03-RND-FACADE-001.md new file mode 100644 index 0000000..7f8f447 --- /dev/null +++ b/coordination/claims/M03-RND-FACADE-001.md @@ -0,0 +1,93 @@ +# M03-RND-FACADE-001 — Renderer facade first seam + + + +## Ownership + +- Target: M03 +- Program: RND +- Owner/Agent ID: sindo-main-codex +- Branch: `work/sindo-main-codex/m03-renderer-facade` +- Lease expires UTC: 2026-07-17 +- Integrator: M03 milestone integrator + +## Outcome + +Introduce `WorldRenderFacade` as the only runtime/tool caller surface for typed +streaming focus updates and read-only renderer metrics, while retaining +`StreamingWorldLoader` as the unchanged internal implementation. + +## Non-goals + +- Extract the pure target planner or budget scheduler in this package. +- Add environment or entity-presentation commands before their contracts exist. +- Replace the M02 `TerrainQuery` gameplay boundary in this package. +- Change streaming radii, queues, cache formats, visuals or quality presets. +- Mark M03 complete or edit its checklist/Evidence. + +## Paths + +- Exclusive: `src/render/world_render_facade.gd`, + `src/tools/verify_world_render_facade.gd`, this claim +- Shared/hotspots: both runtime streaming scenes, three renderer capture/probe + tools, `src/tools/verify_streaming_focus.gd`, `docs/modules/world-renderer.md`, + `docs/modules/README.md`, `RENDER.md` +- Generated/ignored: local `.godot`, native build outputs, caches and proprietary + renderer corpus + +## Contracts and data + +- Public API: `set_streaming_focus`, `refresh_streaming_focus`, + `renderer_metrics_snapshot` +- Scene adapter: explicit `streaming_focus_source_path` owned by the facade +- Internal implementation seam: `streaming_world_loader_path`; callers must not + read streamer queues or call its methods directly +- Schema/cache/coordinate contracts: unchanged +- Consumers: runtime scenes, capture tool and renderer probes + +## Dependencies + +- Requires: M01 `StreamingFocus` and merged M02 closeout on master `4f566b1` +- Blocks: environment/entity/ground facade contracts and planner extraction +- External state: none; contract verification uses a test double + +## Verification + +- Commands: dedicated facade verifier, streaming-focus regression, renderer + baseline manifest/dry-run, coordinate boundary and repository gates +- Fixtures: typed focus, source Node3D and read-only metrics test double +- Fidelity evidence: no renderer configuration, planner, queue, placement, + visibility, material, animation or cache behavior changes +- Performance budget: one source position sample per process frame; target + recomputation remains throttled inside the existing streamer + +## Documentation deliverables + +- Inline public API docs for facade properties and methods +- Updated world-renderer module specification +- Updated data-flow, sequence and dependency diagrams +- Updated source map/status and renderer notes + +## Simplicity and naming + +- Important names: `WorldRenderFacade`, `renderer_metrics_snapshot` +- Simplest approach: one small Node adapter delegating to the existing streamer +- Rejected complexity: service container, generic command bus, streamer rewrite + or duplicate queue/cache state +- Unavoidable complexity: scene-relative source and implementation paths are + resolved on the main thread with explicit diagnostics +- Measured optimization evidence: not applicable; behavior-preserving seam + +## Status + +- State: active +- Done: worktree and bounded claim created +- Next: implement facade, migrate runtime/tool consumers, document and verify +- Blocked by: + +## Handoff + +- Commit: +- Results: +- Remaining risks: +- Documentation updated: