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
This commit is contained in:
2026-07-15 23:43:50 +04:00
parent 4f566b1957
commit a629bedccf
+93
View File
@@ -0,0 +1,93 @@
# M03-RND-FACADE-001 — Renderer facade first seam
<!-- OPENWC_CLAIM:M03-RND-FACADE-001:sindo-main-codex:2026-07-17 -->
## 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: