Files
open-wc/coordination/claims/M03-RND-INTERNAL-ACCESS-GATE-001.md
T

4.4 KiB

M03-RND-INTERNAL-ACCESS-GATE-001 — Streamer internal access gate

Ownership

  • Target: M03
  • Program: RND
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m03-streamer-internal-access-gate
  • Lease expires UTC: 2026-07-18
  • Integrator: M03 milestone integrator

Outcome

Add an automated repository boundary gate proving gameplay code and Godot EditorPlugin implementations do not access StreamingWorldLoader private queue, task, cache or tile-state fields.

Non-goals

  • Change renderer behavior, queues, jobs, cache formats or facade contracts.
  • Ban scene composition references to the loader script or facade adapter path.
  • Migrate renderer-only diagnostic probes that inspect internal readiness/terrain; those require the later metrics/ground-query facade contract.
  • Mark M03 complete.

Paths

  • Exclusive: src/tools/verify_renderer_internal_access.gd, this claim
  • Shared/hotspots: docs/modules/world-renderer.md, RENDER.md, targets/03-renderer-facade.md
  • Read-only scan scope: src/gameplay/**/*.gd, src/editor/**/*.gd, Godot EditorPlugin package scripts under src/**/*.gd and addons/**/*.gd, and the streamer field declarations

Contracts and data

  • Input: repository GDScript source and actual private streamer declarations
  • Output: deterministic pass/fail diagnostics with consumer path and symbol
  • Runtime, scene, cache, coordinate and asset contracts: unchanged

Dependencies

  • Requires: integrated facade and scheduler master a023d76
  • Blocks: safe service extraction and M03 dependency regression acceptance
  • External state: none

Verification

  • Commands: dedicated internal-access gate, facade regression, coordination, documentation and diff gates
  • Fixtures: gameplay source discovery, EditorPlugin discovery and synthetic forbidden symbol detection
  • Fidelity evidence: source-only enforcement; no runtime or visual code changes
  • Performance budget: one bounded repository source scan in a headless test process

Documentation deliverables

  • World-renderer boundary/verification/known-gap/source-map updates
  • Renderer implementation note documenting diagnostic-tool exception
  • No new module spec because this package adds a verifier to the existing renderer module

Simplicity and naming

  • Important name: verify_renderer_internal_access.gd
  • Simplest approach: derive forbidden fields from the current streamer instead of maintaining a second hand-written queue list
  • Rejected complexity: language plugin, custom linter framework or runtime proxy
  • Unavoidable complexity: recursive source discovery expands each actual EditorPlugin root to its package scripts while excluding reference mirrors

Status

  • State: ready-for-review
  • Done: derived 43 private renderer symbols, scanned seven gameplay and nine EditorPlugin-package sources, added synthetic positive/negative fixtures and docs
  • Next: M03 integrator reviews and merges b58bf2c
  • Blocked by:

Handoff

  • Commit: b58bf2c
  • Results: repository gate derives private queue/task/cache/state declarations from the streamer and rejects external member/reflection access in gameplay and EditorPlugin package sources. Current scope passes with 43/7/9 inventory counts.
  • Verification: internal access, facade and budget scheduler headless contracts; Godot editor scan with local ignored dependencies; coordination, documentation and diff gates passed.
  • Fidelity: source-only enforcement changes no runtime configuration, queue order, cache version, placement, material, animation or visibility behavior. No build-12340 parity claim is added.
  • External/local inputs: ignored native DLL and two generated ADT resource scripts were copied from master only for facade/editor smoke and then removed. Proprietary extracted world data was unavailable, producing expected degraded-data diagnostics.
  • Remaining risks: renderer diagnostic terrain probe remains an explicit exception; whitespace-obfuscated dynamic reflection is outside the lightweight source gate; future non-EditorPlugin authoring code is already prohibited by repository policy.
  • Documentation: world-renderer boundary/verification/capability/known-gap/source map and RENDER.md implementation note updated; no new module was introduced.