P23-03 actual repair22 run9188297752224103a0c191ee8846faf4 is TERMINAL worker_blocked, after preserving useful changes in SAME worktree (checker +28lines, local tests+42lines, actual small R13 negative fixture, R23_REPAIR_NOTES). No renderer changes. Actual56 local tests PASS. This is not an external owner/permission block; your earlier implementation constraints need a concrete feasible presentation decision. Do not reset/reimplement preserved work, create duplicate tasks/workers, or ask the owner to invent UI constants. User authorizes routine original-faithful rendering fixes and removed individual caps. Original immutable7 conditions/all6/30/88 remain exact. No original acceptance weakening, hiding observations, fake truth or new gameplay values.
Actual worker proof and full report:
# P23-03 repair inspection

Scope: the seven immutable acceptance conditions and existing allowed paths.
Validation: local Python syntax and checker unit tests only; no Godot execution.

Read the immutable acceptance spec, recorded concrete implementation direction,
existing Phase 0 API map, renderer, actor art, and independent checker.
The R13 provider stdout, command, and prompt SHA256 values match 01-actual.json.
The actual structured review contains 8 frames and 132 rows. Its summary's
168-row claim is not used to replace the structured rows. False judgments remain
false. The reader-request-0003 whole screenshot confirms overlapping actors and
obscured traffic presentation. Historical runtime evidence is unchanged.

Root native/OS evidence for a new candidate, the 177-test full regression, and
independent Opus all-condition review remain required and are not worker tests.

## Status: blocked; partial independent checker preparation only

The renderer repair and traffic geometry/layer audit are **not implemented**.
No claim of submission readiness or acceptance is made. No renderer, Runtime,
policy, immutable spec, source authority pin, or historical evidence was changed.

### Placement specification gap and concrete failing evidence

In the original `os-pair/A/reader-request-0003/request.json`, SHA256
`7dc3ee0bcc428e9d103726ee2448c767f1dd4107f9490833dc860c0b5140068c`,
the decoded report contains guests `os-p23-012` through `os-p23-015`, all
`MOVING`, logical cell `[1,1,0]`, with no service or queue request. Their
tracks' `from` and `cell` are both `[1,1,0]`. The current cell is 64x96 pixels
(`traffic` row 40's inset rect is `[709,390,60,92]`). Each actor's current
draw/report footprint is 48x54 pixels: the 16x18 PixelPeople grid at scale 3.
The four rectangles require area 10368, while the cell has area 6144.
Consequently offsets alone, preserving those sizes and containing all four
rectangles in that cell, cannot satisfy the requested nonoverlap invariant.
This is already present in the supplied evidence, not a hypothetical load.

Source references: `world_preview.gd::_cell_dimensions`, `_actor_drawing`,
`_tracked_actor_position`; checker `drawing_rectangle_rows` and
`compare_actor_geometry`; `pixel_people.gd`'s 16x18 drawing grid.

The direction specifies offsets inside room/cell art, containment consistent
with logical cell/state, retained motion, and no visual redesign. It does not
resolve what presentation change is permitted when existing footprints cannot
fit. Shrinking actors or expanding the permitted projection area could solve
this capacity issue, but neither is silently treated here as authorized by an
offset repair. This is a question about the admissible presentation, not a
claim that every possible rendering solution is impossible.

Minimal proposal for the owner: specify whether deterministic scale reduction
within the original logical cell is permitted (including the required readable
minimum and behavior when it still cannot fit), or define an allowed room/lane
projection for these non-queued moving actors. No Runtime capacity change,
actor omission, or acceptance waiver is proposed. Retain all seven conditions.

### Independent work preserved

Added `validate_actor_nonoverlap` to both the semantic geometry path and offline
drawing-row gate. It recomputes full footprints from raw `at`/`scale`, includes
cabin passengers, rejects duplicate identities and invalid numeric geometry,
and does not use eligibility labels or asserted booleans. Edge contact is
allowed; positive-area overlap is rejected with actor identities.

Five added unit tests cover edge contact, overlap despite forged verdicts and
off-screen labels, cabin/floor overlap, invalid footprints, and the actual R13
false row 11 against staff row 29. The small historical-negative fixture copies
only the needed raw drawing inputs and preserves `[11,false,false,false]` with
request/manifest hashes. Its inputs were checked against the original typed
report. The original review files and all their rows remain untouched.

The original manifest hash matches
`53aa8e2f12e5d0a089529457fcd55ee1ba0600e8dffff2225bb8b057d007fe1a`;
all crops in that manifest pass SHA verification. Opened the whole decoded image
and crops 11, 29, 40 directly; crops 11 and 29 show the same covered figure.

Still missing: collision-free renderer placement, draw-consumed band rectangle,
actual layer/geometry audits, and the requested additional cell/state, band,
layer, and stale-frame negatives. Passing these local tests does not resolve
those missing deliverables.

### Local checks actually run

Before edits:
`PYTHONDONTWRITEBYTECODE=1 python3 tools/test_p23_life_observation_evidence.py`
returned exit 0, `Ran 51 tests in 0.142s`, `OK`.

After edits the same command returned exit 0,
`Ran 56 tests in 0.093s`, `OK`.

Syntax command (no bytecode output):
```
python3 -c 'from pathlib import Path; files=["tools/check_p23_life_observation_evidence.py","tools/test_p23_life_observation_evidence.py","tools/run_p23_life_observation.py"]; [(compile(Path(p).read_bytes(),p,"exec"),print("syntax OK:",p)) for p in files]'
```
Exit 0; printed `syntax OK:` for each of those three files.
`git diff --check` returned exit 0 with no output (read-only check).
No Godot, native/OS, full regression, provider, Runner, git write, or agent
execution occurred. The initial shell heredoc attempt failed before execution
because the shell could not create its temporary file; subsequent inspection
used `python3 -c`.

Please inspect the ORIGINAL work/acceptance and relevant current renderer/PixelPeople sources (all available in your cwd). Resolve the geometry policy concretely within already-authorized read-only presentation scope. Previous instructions combined unchanged48x54px footprints, all-actor full-rect nonoverlap and containment in64x96px cell; 4*48*54>64*96, so offsets alone cannot meet that. Distinguish original semantic observability from an overconstrained implementation proposal; do not manufacture new impossible gates. Still MUST fix actual guest fully covered bystaff and unreadabletraffic, preserve alloriginal observations/ids/state/logicalcell/queueorder/motion/selection/FRONTBACK, and require honest actual independent category/state/position judgments. Do not loosen the immutablechecker pixel evidence or ignore the12false.
Choose a SINGLE implementable complete rendering policy, explicitly authorizing any needed deterministic presentation-size fitting from existing cell/glyph dimensions, or an existing-room/lane projection or faithful aggregation with retained all-state traceability if that better satisfies the original. No arbitrary gameplay capacity/stock/mana/cost or invented readability minimum. Explain handling of the actual4moving occupants and denser cases, passenger/floor cases and queue lanes. Required readability must be established by meaningful tests + actual OS image review, not a made-up number or automatic tiny-sprite pass. If full-bounding-box nonoverlap is only your proposed mechanism rather than original acceptance, refine it transparently with source-grounded proof instead of silently keeping an impossible rule. No drop/outside reinterpretation or metadata-only closure. Keep sources/guards/actual rendering consistent and all real negatives.
Also traffic direction conflict to resolve explicitly: prior reason said draw traffic above inactiveart/actors; latest runnegative list said band aboveactors shouldfail. State exact required pass ordering and geometry so worker doesn't guess. Keep existing colours/densityvalues/style, actual geometry+draworder independently computed, Rootindependent visual decisions stillmandatory. No newassets/UIentry or Runtime/save changes.
Return valid request-repair for actualRunnerblocked, with a COMPLETE concrete resolution and actualAstra continuation direction in reason. After normal repair transition I will request recorded run. This is existing permitted technical design, not a new product-spec/value approval. If a truly normative unresolved requirement remains, identify exact original clause and continue all independent accepted work; don't invent or ask for routine UI authority. Root also fixed sourceproofpath procedure: nextactualnative directlycanonicalbuild, no permissive relocation source changes. Root keeps allfailed receipts and historical49 evidence. Root nativeOS/full177/allconditionreview/integration/final remain mandatory on new candidate.
