W21B Wave 4 FP-as-Data / VLM Path Study
Floor plan을 T2I 이미지 산출물로만 취급하지 않고, 구조화된 geometry/data artifact와
VLM-derived spatial interpretation을 결합하는 v8 Hybrid 설계 brief다. v7 T2I
self-fidelity 개선은 evidence로 보존하고, Phase A-0 dry-run 결과를 근거로
Hybrid를 선택한다.
0. Current Failure And v7 Evidence
Problem redefinition.
지금 문제는 floor plan T2I를 조금 더 예쁘게 만드는 문제가 아니다.
FP를 T2I가 충실히 재현해야 하는 그림으로 취급하는 한, 모델은 계속 scale,
room count, furniture density, stair complexity를 임의로 해석한다.
0.1 Observed failures
- 동일 공간이 run마다 투룸처럼 보였다가 원룸처럼 보이는 layout flip이 발생했다.
- 외부 계단이나 deck처럼 단순해야 할 circulation이 복잡한 미로처럼 과해졌다.
- FP PNG가 metadata와 맞지 않으면 BG가 올바른 metadata를 따라도 사용자 눈에는 FP/BG가 불일치해 보인다.
- DB/ImageAsset에는 stale FP row가 history로 누적되지만 active 개념이 명시되지 않아 review UI에서 혼동이 발생했다.
0.2 v7 evidence to preserve
| Artifact |
Verified result |
Meaning |
| W21B-wave-4 v7 FP canary |
active FP 8, render used 8/24, semantic real VLM 8, gate pass x8 |
Rule 11 self-fidelity reduces some T2I drift. It does not eliminate the class of failure. |
| L05 visual evidence |
Before: large multi-room apartment. After: compact single-room layout with curtained sleeping zone. |
Prompt wording can help, but still depends on image-model interpretation. |
| L09 visual evidence |
Marker-label self-fidelity improved, but place richness became sparse/generic. |
Richness should be carried by data and BG prompt, not by over-detailed floor-plan art. |
Superseding decision.
기존 docs/w21b-wave4-fp-fidelity-implementation-brief-20260529/는
v7/T2I-FP evidence로 보존한다. 이 문서는 v8 후보 path를 비교하고 main path를 고르는
decision brief다. SVG를 미리 결론으로 잠그지 않는다.
1. Candidate Architecture Families
FP v8의 목표는 "예쁜 도면"이 아니라 "카메라와 BG가 참조할 수 있는 일관된 공간 정보"다.
그 공간 정보는 code-drawn SVG 좌표에서 올 수도 있고, VLM이 FP image를 읽어 추출한
좌표/공간 해석에서 올 수도 있다. 카메라뷰 10x10 projection은 FP 자체의 generic
속성이 아니라, selected shot의 camera/look-at이 확정된 뒤 계산되는 per-selected-shot
downstream artifact다.
1.1 Path comparison
| Path |
Mechanism |
Strength |
Risk |
Cost profile |
| Path-S Data/SVG |
LLM emits layout JSON with coordinates; code validates and draws deterministic SVG/raster; after selected-shot camera/look-at is known, code computes the camera-view grid. |
FP drawing drift becomes structurally impossible. Cheap after layout JSON. Easy deterministic tests. |
Depends on whether LLM can emit sane coarse rects and adjacency. |
Text LLM for layout. Image/VLM 0 for renderer/projection. |
| Path-V VLM-derived |
Use an FP image, either T2I or SVG-raster, and ask VLM to infer marker coordinates/spatial relations; after selected-shot camera/look-at is known, VLM can also derive the camera-view 10x10. |
Can interpret visual evidence and camera framing without trusting LLM coordinate JSON. |
Still depends on input FP image quality and VLM consistency. May be costlier per FP/BG. |
VLM calls for semantic readback and/or camera-view probe. |
| Hybrid SVG + VLM |
Use SVG/layout JSON or VLM-read coordinates as structural SOT; after shot decision, compute projection first and use VLM audit/fallback when confidence is low. |
Combines deterministic structure with VLM interpretation. Good fallback path. |
More moving parts; must avoid conflicting SOTs. |
Mostly text/0-cost deterministic, selective VLM only for risky cases. |
| Layer |
Old path |
v8 candidates |
| Layout source |
position_hint prose + T2I prompt |
Path-S: element_layout[] JSON. Path-V: VLM observed coordinates/spatial readback plus shot-conditioned probe. |
| FP render |
T2I PNG with model interpretation |
Path-S: deterministic SVG/raster. Path-V: simplified FP image plus VLM interpretation. Hybrid: both. |
| Self-fidelity check |
VLM checks whether PNG matches metadata after generation |
Path-S: schema/geometry validator. Path-V: VLM evidence-backed gate. Hybrid: validator plus VLM audit. |
| Camera visibility |
top-down view cone candidates from possibly drifted PNG readback |
Per-selected-shot artifact after camera/look-at is fixed. Path-S: computed from trusted coordinates. Path-V: VLM-derived from FP image plus shot camera request. Hybrid: computed first, VLM fallback/audit. |
| Place richness |
Implicit in detailed FP art |
Explicit tags/groups/density in layout JSON or VLM camera-view probe, then BG prompt contract |
Decision locked after A-0.
Do not collapse this to SVG-only or VLM-only. A-0 evidence selects
Hybrid: Path-S provides simple SVG/layout coordinates where valid, while
Path-V provides shot-conditioned projection, audit, and fallback where coordinates are weak.
2. Candidate Contracts
v8 should compare two ways to obtain a trusted coordinate/spatial SOT: Path-S layout JSON
and Path-V VLM-read FP coordinates. Camera-view projection consumes that SOT only after
shot selection/cinematography fixes the actual camera/look-at request. The final
implementation can choose one or combine them.
2.1 Path-S layout JSON top-level shape
{
"fp_id": "fp_l05_main",
"layout_grid": {
"unit": "normalized",
"width": 100,
"height": 100,
"display_downsample": 10
},
"place_semantic_tags": ["small dwelling", "compact service zone"],
"expected_visual_density": "low|medium|high",
"key_fixture_groups": [
{"group_id": "service_strip", "label": "kitchenette and bathroom fixtures"}
],
"element_layout": [ ... ],
"metadata_only_elements": [ ... ],
"validation_notes": []
}
2.2 Path-S element layout item
{
"number": 19,
"label": "sleeping mat or low bed",
"base_layer_decision": "base_persistent_furniture",
"category": "furniture",
"importance": 0.82,
"importance_reason": "used by selected background camera recommendation",
"render_on_plan": true,
"shape_kind": "rect|line|door_arc|window_line|fixture_icon|area",
"rect": {"x": 12, "y": 8, "w": 46, "h": 14},
"anchor_points": [{"kind": "center", "x": 35, "y": 15}],
"adjacent_to": [9, 20],
"opens_to": [],
"fixture_group_id": "sleeping_zone",
"camera_visibility_hint": "likely foreground|midground|background|not_visible"
}
2.3 Path-S required validator rules
- Every rendered marker number must exist in the source
numbered_elements exact-ID set.
- Every source base structural unit and opening referenced by selected BG recommendations must have a layout item.
rect must be within normalized grid bounds.
- Hard structural areas may touch or contain, but impossible overlaps are
needs_review or fail-closed.
- Rendered element count must be capped. Low-importance props become
metadata_only_elements.
- Transient/state overlay markers are never rendered on the base FP SVG/raster.
- No scenario-specific string rules. Decisions are driven by IDs, categories, base-layer decisions, and selected-shot usage.
2.4 Path-V coordinate / camera-view VLM probe shape
{
"fp_id": "fp_l05_main",
"bg_id": "L05B05",
"source_image_kind": "t2i_floor_plan|svg_raster|other",
"camera_request": {
"source": "selected_shot_camera_recommendation",
"camera_position_text": "near marker 19, facing marker 9",
"look_at_targets": [9, 20],
"lens_hint": "normal|wide|telephoto",
"use_numbered_elements": [2, 4, 8, 9, 17, 19, 20]
},
"camera_view_grid_10x10": [
[{"marker_numbers": [], "summary": "", "confidence": 0.0}, "..."],
"..."
],
"visible_elements": [
{
"number": 19,
"label": "sleeping mat or low bed",
"screen_cell": [7, 4],
"depth_band": "foreground",
"horizontal_band": "center",
"evidence": "visible rectangular low bed shape near upper-left sleeping area",
"confidence": 0.86
}
],
"place_context": {
"place_semantic_tags": ["compact dwelling"],
"expected_visual_density": "low",
"key_fixture_groups_in_frame": ["sleeping_zone"]
},
"diagnostics": []
}
2.5 Open constants for Claude to fill during implementation brief
| Decision |
Default proposal |
Reason |
| Internal grid resolution |
100x100 normalized |
Enough room for rectangles, doors, windows, and coarse projection; downsample to 10x10 for UI. |
| Rendered marker cap |
Per FP: max 18 rendered items, plus structural units/openings required by selected BGs |
Prevents over-detailed FP art while keeping selected-shot anchors visible. |
| Importance threshold |
Keep >= 0.55 or required by selected BG camera recommendation |
LLM score is advisory; selected-shot requirements override. |
| Depth bands for camera grid |
10 bands mapped to output rows 0..9 |
Matches user-requested camera image-coordinate grid. |
2.6 Open constants — Path-V & hybrid (Claude-filled)
Claude confirms the 2.5 Path-S defaults (100x100 internal grid, downsample 10x10;
rendered cap 18 counting only render_on_plan=true markers, with
selected-BG-referenced structural units/openings exempt from the cap; importance
keep-threshold 0.55 unless required by a selected BG camera recommendation; 10 depth
bands). The following Path-V / hybrid constants are filled here so A-0 can run both
paths without further blocking decisions.
| Decision |
Claude-filled value |
Reason |
| Path-V probe input image kind (A-0) |
Reuse the existing v7 T2I FP raster (the 8 active PNGs already rendered) —
0 new image cost. SVG-raster probe deferred until a Path-S
renderer exists; "both" comparison only after that. A-0 never generates a new image. |
Keeps A-0 image-cost at 0 while still exercising the real Path-V VLM probe on a
real FP image. Drift in the v7 raster is acceptable here — A-0 is testing whether the
VLM can produce coherent spatial evidence and a shot-conditioned camera-view from
any FP image plus an explicit camera request. |
| Path-V VLM call cap (A-0) |
≤ 6 VLM calls total = up to 3 FPs (L05, L09, optional L04 stairs)
× up to 2 camera views each. Hard budget guard; exceed → stop. Production per-BG cap is
decided at path-selection, not in A-0. |
A-0 is a decision probe, not coverage. A tight cap bounds spend and forces us to
read evidence rather than brute-force. |
| VLM evidence confidence threshold |
≥ 0.70 = confident placement (counts as a usable visible-element /
grid cell). < 0.70 → uncertain → routes to needs_review, never a
silent confident placement. Reuses the semantic-readback confidence convention. |
Fail-closed: a low-confidence VLM camera-view cell must not be treated as ground
truth by BG/i2i. Mirrors the Phase A semantic gate's uncertain→needs_review policy. |
| Hybrid conflict resolution (computed vs VLM disagree) |
When layout JSON passed validation: computed (Path-S) is
authoritative for element presence + screen position (deterministic geometry);
VLM is authoritative for place density + fixture-group semantics. When
layout JSON failed validation for that FP: VLM is the full fallback.
A disagreement on presence/position above one screen-cell → flag
needs_review + log both; never silently pick one. |
Geometry is exact where coords are trustworthy; VLM carries the visual/place
judgement it is better at. Disagreements surface for human review instead of a hidden
arbitrary choice — consistent with the no-silent-pick discipline. |
2.7 Projection sequencing lock
Projection is shot-conditioned.
Path-S and Path-V are coordinate/spatial-SOT producers. They do not create a final
camera-view grid as a generic FP property. The sequence is:
- obtain trusted coordinates / spatial relations from Path-S layout JSON or Path-V VLM readback,
- wait until shot selection and cinematography choose the selected shot's actual camera unit,
look-at target, lens/FOV, and framing intent,
- emit
camera_view_grid_10x10 as a per-selected-shot downstream artifact.
A-0 may use representative selected-shot camera requests only as probes to test whether each
path can support this later shot-conditioned projection.
3. Phase A-0 Dual-Path Cheap Dry-Run
Do this before committing to SVG-only or VLM-only.
Phase A-0 is a decision experiment. It compares Path-S coordinate JSON and Path-V VLM
coordinate/readback on the same known failure cases before any full renderer/BG implementation.
It may run sample camera-view probes, but those probes are explicitly conditioned on existing
selected-shot camera requests; they are not generic FP outputs.
3.1 Scope
- Targets:
fp_l05_main, fp_l09_main, and optionally fp_l04_stairs.
- Input: existing active FP prompt/dossier data and camera recommendations.
- Path-S output: layout JSON, validator report, and debug SVG/HTML preview generated from JSON.
- Path-V output: VLM-derived FP coordinate/spatial interpretation, plus shot-conditioned sample
camera_view_grid_10x10, visible elements, and evidence-backed diagnostics.
- Cost: Path-S uses text LLM only. Path-V uses a small VLM probe. Image generation remains 0.
3.2 Dry-run comparison matrix
| Check |
Path-S signal |
Path-V signal |
Decision implication |
| Layout sanity |
No out-of-bound rects, no impossible overlaps, no duplicate marker numbers. |
VLM identifies coherent spatial regions and marker visibility from FP image. |
If Path-S fails but Path-V is coherent, prefer VLM-derived path or hybrid. |
| Room-count stability |
Known compact-room case remains a single compact plan when source says so. |
VLM camera-view probe does not hallucinate extra rooms from sparse/simple FP. |
If both pass, Path-S is likely cheaper; if only VLM passes, use Path-V for projection. |
| Stair/circulation simplicity |
Route is represented as simple line/segment/landing data, not maze-like rectangles. |
VLM describes a simple route and plausible camera-view visibility. |
Repeated Path-S route failures imply a specialized route schema or Path-V fallback. |
| Place density |
Place identity survives in tags/groups and metadata-only elements, not over-rendered SVG detail. |
VLM returns useful fixture groups and density expectations for camera view. |
Use the path that best carries place richness into BG prompt without over-detailing FP. |
3.3 Path selection criteria
| Outcome |
Main path |
Rationale |
| Path-S rects are sane and preview fixes known failures. |
Path-S primary, optional VLM audit |
Cheapest and most deterministic. |
| Path-S rects unstable, but VLM coordinate readback and shot-conditioned camera-view probe are coherent. |
Path-V primary for coordinate SOT and/or camera-view; keep simple FP image as context |
Avoid trusting unreliable generated coordinates. |
| Path-S layout is good, but projection confidence is weak. |
Hybrid: SVG structure + VLM projection/audit |
Use deterministic structure while letting VLM handle screen-space interpretation. |
| Both paths fail on simple cases. |
Stop and redesign schema/prompt |
Do not proceed to BG with an untrusted spatial SOT. |
3.4 Stop conditions
- LLM cannot produce valid rectangles after two prompt attempts.
- VLM camera-view probe cannot produce evidence-backed visible elements for simple views.
- Validator catches repeated impossible adjacency for simple layouts.
- Both paths reintroduce known failures: room-count flip, maze stairs, or generic empty market.
- Hard stop (Codex-locked): if Path-S is invalid AND Path-V is
< 0.70 confidence or returns many evidence-less visible elements, do NOT
proceed to BG — Stop. A-0 is a path-selection experiment, not an implementation that
presumes success.
3.5 A-0 result contract (locked with Codex)
The A-0 runner must emit a single path_comparison_summary.json and a
side-by-side HTML, image generation 0, Path-V VLM probe within the ≤6 cap.
path_comparison_summary.json fields
targets — the FP ids probed (fp_l05_main, fp_l09_main, optional fp_l04_stairs).
path_s.layout_json_valid, path_s.validator_errors[],
path_s.preview_artifact (debug SVG/HTML path).
path_v.vlm_call_count, path_v.confident_cells_count,
path_v.uncertain_cells_count, path_v.visible_elements,
path_v.evidence_samples, and
path_v.source_image_kind (= v7_t2i_fp_raster for A-0; stamped so a
future svg_raster probe compares under the same schema).
shot_conditioning — must state that projection is per-selected-shot, not a generic FP
artifact, and include the camera request source used for each A-0 probe.
decision_recommendation ∈ {Path-S, Path-V, Hybrid, Stop} and
decision_reasons[].
Side-by-side HTML
- Per target: Path-S preview (rendered-from-JSON SVG/HTML) next to the Path-V
coordinate readback and shot-conditioned camera-view 10x10 grid + evidence, so a human can read both paths' output together.
3.6 A-0 Result And Selected Path
Selected path: Hybrid.
The runner's coarse binary recommendation was Path-V because one Path-S target
was invalid, but the human-read evidence is more specific: Path-S worked on simple / medium
layouts and Path-V was robust across all probes. Therefore the implementation path is Hybrid,
not VLM-only.
| Target |
Path-S coordinate/SVG signal |
Path-V shot-conditioned signal |
Decision |
fp_l05_main |
Valid. 18 rendered items, 17 metadata-only, expected density medium. |
Coherent. 17 confident cells / 6 uncertain cells. Low confidence for behind-camera door is sensible. |
Use Path-S layout as structure; keep Path-V for camera-view projection/audit. |
fp_l04_stairs |
Valid. 12 rendered items + 3 metadata-only; route stayed simple. |
Coherent. 11 confident cells / 4 uncertain cells. |
Use Path-S layout as structure; keep Path-V for shot-conditioned visibility. |
fp_l09_main |
Invalid by one validator error: marker #3 and #12 near-full overlap. This is not catastrophic,
but it means the coordinate path is not yet trusted for this richer retail case. |
Coherent. 7 confident cells / 2 uncertain cells and plausible open sales-floor framing. |
Use Path-V fallback for projection/visibility. Optional later prompt calibration may improve Path-S, but it is not a blocker. |
3.7 Hybrid Implementation Lock
- Path-S responsibility: simple, deterministic box/SVG structure and coordinate SOT where validator passes.
- Path-V responsibility: shot-conditioned camera-view projection, visibility reasoning, place-density evidence, and fallback where Path-S is invalid or low-confidence.
- Conflict policy: validated Path-S coordinates win for geometry; Path-V wins for visual density/place evidence. Disagreements over one screen cell or more are logged as
needs_review.
- L09 policy: do not block v8 on the single overlap. Use Path-V fallback now; keep a small optional prompt-calibration backlog if richer retail layouts repeatedly overlap.
4. Path-S Deterministic SVG Renderer
If Phase A-0 selects Path-S or hybrid, the renderer consumes validated layout JSON and emits SVG.
It must not call LLM, image, or VLM APIs. It should be simple enough that a user can inspect
the output and understand the spatial scaffold.
4.1 Rendering rules
- Use flat rectangles, lines, door arcs, window lines, and simple fixture icons.
- Use a small fixed palette by layer/category, not by scene-specific words.
- Draw marker numbers exactly once for rendered elements.
- Keep metadata-only elements out of the SVG, but list them in sidecar/debug table.
- SVG should be deterministic byte-stable for identical layout JSON.
4.2 Artifacts
| Artifact |
Purpose |
Consumer |
floor_plan_layout_plan checkpoint |
Canonical layout JSON and validator report. |
SVG renderer, coordinate projection, debug UI. |
floor_plan_svg file |
Human-readable deterministic FP artifact. |
Review UI, optional rasterization. |
floor_plan_svg_raster.png |
Compatibility image for consumers that need bitmap refs. |
BG prompt/reference adapter only if needed. |
5. Shot-Conditioned Camera-View Projection Candidates
This is the missing link in the user's proposal: convert top-down layout data into a coarse
camera-image 10x10 map so BG/i2i knows what is likely visible in the frame. This conversion
happens after a selected shot has an actual camera/look-at/lens request. The
map can be computed from trusted coordinates, derived by VLM from an FP image plus shot request,
or produced through a hybrid.
Input boundary.
Projection consumes a trusted coordinate/spatial SOT from Path-S or Path-V, plus the selected
shot's camera request. It must not be treated as an FP-level precomputed property.
5.1 Path-S computed projection algorithm sketch
- Resolve camera point
C from selected camera unit or camera marker.
- Resolve look-at point
L from target unit/marker.
- Compute
forward = normalize(L - C) and right = perpendicular(forward).
- For each rendered and metadata-only element, sample center and optional rect corners.
- Compute
depth = dot(P - C, forward) and lateral = dot(P - C, right).
- Keep points with
depth > 0 and abs(lateral / depth) <= tan(fov / 2).
- Map lateral to screen columns 0..9 and depth bands to screen rows 0..9.
5.2 Path-V VLM-derived projection
Path-V asks a VLM to read the FP image plus camera request and emit the same output class:
visible elements, camera-view grid cells, confidence, and evidence text. This is useful when
coordinate JSON is unstable or when the camera-view relation is too ambiguous for deterministic
projection.
5.3 Common output shape
{
"bg_id": "L05B05",
"fp_id": "fp_l05_main",
"selected_shot_id": "S05_Shot06",
"projection_timing": "after_selected_shot_camera_decision",
"coordinate_sot_source": "path_s_layout_json|path_v_vlm_readback|hybrid",
"camera": {
"camera_element_number": 19,
"look_at_element_number": 9,
"fov_deg": 50
},
"projection_source": "computed_from_layout|vlm_derived|hybrid",
"camera_view_grid_10x10": [
[{"markers": [], "summary": ""}, "..."],
"..."
],
"visible_elements": [
{
"number": 19,
"label": "sleeping mat or low bed",
"screen_cell": [7, 4],
"depth_band": "foreground",
"horizontal_band": "center",
"importance": 0.82,
"evidence": "coordinate projection or VLM observation"
}
],
"place_context": {
"place_semantic_tags": ["compact dwelling"],
"expected_visual_density": "low",
"key_fixture_groups_in_frame": ["sleeping_zone"]
}
}
Approximation boundary.
This is not exact 3D projection. It is a coarse screen-space planning map for
prompt and i2i guidance. That is the right level for this pipeline.
6. BG Consumption Contract
Phase C changes BG planning from "look at a detailed FP image and infer layout" to
"consume an explicit spatial scaffold plus a per-selected-shot camera-view grid and place context."
6.1 What BG receives
- Optional SVG raster image or simplified FP image for visual reference, deliberately simple.
camera_view_grid_10x10 with visible marker labels and rough screen cells, computed or VLM-derived only after the selected-shot camera/look-at decision.
- Layout JSON subset when Path-S/hybrid is selected, or VLM evidence records when Path-V is selected.
- Place richness fields:
place_semantic_tags, expected_visual_density, key_fixture_groups.
6.2 Place-richness rule
The FP artifact should not become a detailed supermarket, office, or wheelhouse illustration.
Place richness belongs in structured tags/groups, VLM evidence if selected, and BG prompt language.
The FP artifact is the geometry/position scaffold. The camera-view grid is shot-conditioned,
and the camera-view grid + BG prompt are the density and place-context SOT.
6.3 Phase C acceptance
- BG anchor plates preserve the selected spatial scaffold better than T2I-FP-derived plates.
- Known sparse/generic cases retain place identity through
key_fixture_groups and density hints.
- No transient/event state leaks into base FP artifact.
- No scenario-specific production literals. Scenario examples stay in fixtures/docs only.
7. Non-Goals And Separate Waves
| Item |
Decision |
| Render-set / generation lifecycle |
Separate wave. Needed for stale row/UI history, but not mixed into v8 layout proof. |
Per-row manual is_active |
Rejected. Active is derived from checkpoint expected sets and promoted render generation pointers. |
| Detailed aesthetic FP art |
Rejected. The artifact should be simple, readable, and stable. |
| VLM path |
Selected as part of Hybrid. Path-V is the shot-conditioned projection/audit/fallback path, not a rejected alternative. |
| Fresh project E2E |
Not for Phase A-0. Use active W20E7 fixtures to test the known failure modes first. |
8. Acceptance And Stop Conditions
8.1 Acceptance by phase
| Phase |
Acceptance |
Cost |
| A-0 dual-path dry-run |
Completed: Path-S valid on L05/L04, one L09 overlap; Path-V coherent on all probes. Hybrid selected. |
Text LLM + small VLM probe, image generation 0 |
| A selected scaffold |
Hybrid: deterministic SVG/layout coordinates where valid, VLM projection/audit/fallback where needed. |
0 external API |
| B projection |
After selected-shot camera/look-at is fixed, camera-view grid lists plausible visible elements and screen regions for representative BGs. |
0 external API for computed path; selective VLM for Path-V/hybrid |
| C BG consumption |
BG plates reflect geometry and place context without requiring detailed FP art. |
BG image canary only after A/B pass |
8.2 Stop conditions
- LLM layout JSON repeatedly violates basic geometry constraints.
- VLM camera-view probe gives non-evidence-backed or inconsistent visible element maps.
- Known failure modes reappear in preview: room-count flip, maze-like stairs, or essential place identity loss.
- Validator must rely on scenario-specific literals or substring heuristics to pass.
- BG consumption requires detailed FP art to recover place identity. That means Phase C contract is wrong.
8.3 Testing stance
- Deterministic tests cover schema, validator, SVG renderer stability if selected, and projection math if selected.
- Quality is not claimed from broad TDD. It is assessed through dry-run previews and focused visual review.
- LLM/VLM/T2I uncertainty remains experiment-driven; tests guard contracts, not aesthetics.
9. Work Split
| Role |
Primary work |
Review responsibility |
| Codex |
Plan, schema direction, acceptance gates, lightweight deterministic test definitions, cross-review. |
Check scope, stop conditions, no scenario leakage, no semantic substring shortcuts. |
| Claude |
Main implementation: prompt pack, dry-run runners, selected path implementation, projection, runner artifacts. |
Dry-run result analysis, implementation notes, focused test execution. |
| User |
Visual/intent acceptance for preview and BG results. |
Decide whether place richness and layout simplification match the intended production direction. |
Immediate next step after this brief.
Claude drafts the Hybrid v8 implementation plan: Path-S deterministic SVG/coordinate scaffold,
Path-V shot-conditioned projection/audit/fallback, and BG adapter consumption. BG image generation
remains blocked until the scaffold/projection artifacts pass their evidence gates.