From 0c24f96ae1df9d070ac89e33843afa609faed703 Mon Sep 17 00:00:00 2001 From: sindoring Date: Wed, 15 Jul 2026 23:58:57 +0400 Subject: [PATCH] rnd(M03): claim streaming target planner Work-Package: M03-RND-STREAMING-PLANNER-001 Agent: sindo-main-codex Tests: not run (coordination-only commit) Fidelity: no runtime change --- .../claims/M03-RND-STREAMING-PLANNER-001.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 coordination/claims/M03-RND-STREAMING-PLANNER-001.md diff --git a/coordination/claims/M03-RND-STREAMING-PLANNER-001.md b/coordination/claims/M03-RND-STREAMING-PLANNER-001.md new file mode 100644 index 0000000..8389ea0 --- /dev/null +++ b/coordination/claims/M03-RND-STREAMING-PLANNER-001.md @@ -0,0 +1,95 @@ +# M03-RND-STREAMING-PLANNER-001 — Pure streaming target planner + + + +## Ownership + +- Target: M03 +- Program: RND +- Owner/Agent ID: sindo-main-codex +- Branch: `work/sindo-main-codex/m03-streaming-target-planner` +- Lease expires UTC: 2026-07-17 +- Integrator: M03 milestone integrator + +## Outcome + +Extract runtime/editor ADT wanted/retained-set calculation and boundary prefetch +selection from `StreamingWorldLoader` into a scene-free, deterministic +`StreamingTargetPlanner` with typed focus input and asset-free contract tests. + +## Non-goals + +- Change load/retain radii, boundary thresholds, queue priority or LOD policy. +- Move queue mutation, async jobs, cache ownership or GPU finalization. +- Extract `RenderBudgetScheduler` or asset services in this package. +- Change cache formats, renderer profiles or target milestone status. + +## Paths + +- Exclusive: `src/render/streaming/streaming_target_planner.gd`, + `src/render/streaming/streaming_target_policy.gd`, + `src/render/streaming/streaming_target_plan.gd`, + `src/tools/verify_streaming_target_planner.gd`, + `docs/modules/streaming-target-planner.md`, this claim +- Shared/hotspots: `src/scenes/streaming/streaming_world_loader.gd`, + `docs/modules/world-renderer.md`, `docs/modules/README.md`, `RENDER.md` +- Generated/ignored: `.godot`, native DLL, generated cache resources and + proprietary renderer corpus + +## Contracts and data + +- Input: immutable `GodotWorldPosition`, available-tile key set and immutable + `StreamingTargetPolicy` +- Output: immutable `StreamingTargetPlan` with focus tile plus detached + wanted/retained tile-key sets +- Tile-key representation remains the streamer's existing `_` internal key +- Schema/cache/coordinate versions: unchanged +- Consumers: `StreamingWorldLoader` runtime/editor refresh paths + +## Dependencies + +- Requires: M01 typed coordinates/focus and integrated facade package `a100ced` +- Blocks: budget scheduler extraction and planner performance regression gate +- External state: none; tests use synthetic tile catalogs + +## Verification + +- Commands: dedicated planner verifier, facade/focus/coordinate regressions, + renderer manifest/dry-run and repository gates +- Fixtures: center, edge, corner, unavailable-tile, clamped-radius and editor cases +- Fidelity evidence: expected tile sets are captured from current formulas; full + renderer dry-run retains all seven checkpoint plans +- Performance budget: planner work remains bounded by square radii and creates no + Node, Resource, task, cache or RID + +## Documentation deliverables + +- Inline API docs for planner/policy/plan +- New module specification with input/output table and data-flow diagram +- Updated world-renderer data-flow/sequence/ownership/source map +- Updated module registry and renderer notes + +## Simplicity and naming + +- Important names: `StreamingTargetPlanner`, `StreamingTargetPolicy`, + `StreamingTargetPlan` +- Simplest approach: one pure calculator plus two immutable value objects +- Rejected complexity: generic graph planner, priority framework, service + container, job ownership or duplicate available-tile catalog +- Unavoidable complexity: boundary-prefetch cross product must preserve corner + behavior and existing string tile keys +- Measured optimization evidence: no new optimization; exact extraction + +## Status + +- State: active +- Done: claim and isolated worktree created +- Next: implement pure contracts, migrate runtime/editor refresh, verify +- Blocked by: + +## Handoff + +- Commit: +- Results: +- Remaining risks: +- Documentation updated: