---
title: Area #7c — t2i_review v6 placeholder example abstraction (Track B Tier 3 #3, v1)
date: 2026-05-19
status: closed (spec Codex iter 5 APPROVED_FOR_PLAN + plan Codex iter 2 APPROVED_FOR_EXECUTION + W1 producer atomic `426d959` + W2 integrated test atomic `df751dd` + W3 closure docs atomic `600993b` + 후속 range-review fix-up commits 가능; W1-W3 per-wave APPROVED + W1-W3 range review / push gate pending at W3 closure commit time — Codex APPROVED_FOR_PUSH 후 즉시 `git push origin main`, final pushed range/count = external memory only)
roadmap_ref: docs/superpowers/specs/2026-05-16-track-b-semantic-debt-roadmap-design.md §5.7 Area #7 carry follow-up (Area #7c from Area #7a/#7b closure; roadmap sub-area label pending — historical Sub-area (c) = `shot_extract / shot_validator Korean grammar leak`, 본 area mapping = W3 closure 시 신규 explicit Area #7c follow-up bullet 또는 새 sub-area marker, Codex/controller re-approval 의무)
prerequisites:
  - Hygiene v1 (closed 2026-05-15, commit `91d1dfd`) — P-1 ~ P-6 1차 abstraction 보존. 본 area = P-6 v6 follow-up Phase 2 hygiene.
  - Area #6 (T2I Review Mutation Redesign, closed 2026-05-18+) — target.replace mutation 폐기 + 5 core fields structured diagnostic (id / scope / issue_code / action / hint_diagnostic) + alias contract (id = item_id = short_id, mismatch = `t2i_review.diagnostic_alias_mismatch` AppError). 본 area = v6 prompt-pack content-only example abstraction, producer/consumer/schema shape 변경 0.
  - Area #7a (visual_world_rules SOT v1, closed 2026-05-19, push `d0410eb`) — VWR producer SOT + scene_director A047 흡수 boundary preserved.
  - Area #7b (VWR Downstream Prompt Cascade, closed 2026-05-19+, push `e751e72`) — VWR consumer cascade 9 site closed boundary preserved.
non_supersedes:
  - Area #7d (cinematography closed-list SOT dual-site — `variation_recommender/v2/system.md` + `scene_extractor_v2/19.*/turn_scene_detail.md:87-91`) — 별도 area, cinematography 도메인 별개.
  - Carry-A099 (VWR system.md director_notes prose redesign V8+) — Area #7a 정합 보존.
  - Carry-A100 (VWR system.md t2i_context demonym redesign V8+) — 별도 area, t2i_context 본문 영역. 본 area `Asian/Korean` example abstraction = t2i_review v6 prompt-pack hint_diagnostic 예시 hard-prime 제거, ethnicity policy 자체 재설계 X.
  - Carry-P021 (scene_consistency 7 enumeration broad, source unresolved low-priority) — Area #7a 정합 보존.
---

# Area #7c — t2i_review v6 placeholder example abstraction (v1)

## 1. Purpose + Scope

### 1.1 Purpose

Hygiene v1 (closed `91d1dfd`) 가 audit `02-` §5 P-6 (`t2i_review/.../scene_system.md:45-78` synthetic placeholder 너무 구체 — `wet floor planks visible behind subject's hands` / `Figure A / Figure B / 벤치` / `shared bench / shared table` 등) 1차 abstraction. v6 (`prompts/_base/t2i_review/6.202605181200/`) 에서 placeholder `<frame-edge surface>` 형식 일부 적용. 그러나 잔존 concrete prime (body-part `subject's hands` / action `sits hunched` / role `'security guard'` / demonym `Asian / Korean`) 이 hint_diagnostic 작성 원칙 + detection 패턴 예시 안 남아 LLM scenario-specific bias 발생 가능. 본 area = P-6 v6 follow-up **Phase 2 hygiene**: 5 user-named site + 3 adjacent site = 8 lines/sites 까지 같은 2 prompt file (`scene_system.md` + `entity_system.md`) 안 example wording 만 generic placeholder 추상화. ethnicity/nationality policy 자체 재설계 X — 예시 wording 만 변경.

### 1.2 In-scope

- **Prompt-pack** (1 new dir / 2 file modified / 2 file byte-identical sibling):
  - `prompts/_base/t2i_review/7.202605190201/scene_system.md` (v7 major bump, replacement 적용).
  - `prompts/_base/t2i_review/7.202605190201/entity_system.md` (v7 major bump, replacement 적용).
  - `prompts/_base/t2i_review/7.202605190201/scene_schema.json` (byte-identical sibling from v6 `6.202605181200/scene_schema.json`).
  - `prompts/_base/t2i_review/7.202605190201/entity_schema.json` (byte-identical sibling from v6 `6.202605181200/entity_schema.json`).
- **Replacement surface** (**8 lines/sites** — §2 detail catalog):
  - `scene_system.md:31` body-part cue (`subject's hands`).
  - `scene_system.md:32` body-part cue (`feet visible at lower frame edge with floor below`).
  - `scene_system.md:33` body-part cue (`full silhouette including head and feet visible`).
  - `scene_system.md:39` action cue (`sits hunched in the left background`).
  - `scene_system.md:40` action+object cue (`a hand reaching ... a small object`).
  - `scene_system.md:60-61` hint_diagnostic illustration (이미 abstract, **not strict residue target** — keep concept / optional generalize).
  - `entity_system.md:33` role cue (`'security guard'`).
  - `entity_system.md:34` demonym cue (`Asian / Korean 인종 형용사`).
- **Strict residue catalog** (closed-world exact legacy phrase membership, **7 entries**): scene 31/32/33/39/40 (5) + entity 33/34 (2). scene 60-61 = not strict residue target (keep / optional generalize, residue gate 대상 X).

### 1.3 Out-of-scope

- LLM-side redesign (phrase detection mutation / target-suggestion rule 본체 등) → `03-llm-side-heuristic-audit.md` 위임.
- Area #6 (T2I Review Mutation Redesign) closed boundary — target.replace 폐기 + 5 core fields structured diagnostic + alias contract 보존. 본 area = v6 prompt-pack content-only example.
- Production code (`backend/app/.../t2i_review.py`) — shape / signature / call sequence 변경 0.
- Schema shape (`scene_schema.json` / `entity_schema.json`) — required field / type / enum 변경 0 (byte-identical sibling).
- Ethnicity / nationality policy 자체 — 예시 wording 만 변경, policy 보존.
- Carry-A100 (VWR system.md t2i_context demonym redesign V8+) — 별도 area, t2i_context 본문 영역. 본 area `Asian/Korean` example abstraction = t2i_review v6 prompt-pack 예시 hard-prime 제거 only, A100 cross-cut X.

### 1.4 Carve-out boundary preserve

- Hygiene v1 (P-6 1차 abstraction, commit `91d1dfd`) — Phase 2 정합.
- Area #6 mutation redesign closed boundary.
- Area #7a / #7b VWR SOT + downstream cascade closed boundary.
- D-2 (entity_character_list, Area #7b carve-out) 영향 0.

## 2. In-scope replacement catalog

Codex iter 2 권고 verbatim wording (replacement 적용 의무, 8 lines/sites = 7 strict residue + 1 keep-abstract):

| file:line | legacy wording / issue | required abstract wording | residue gate? |
|---|---|---|---|
| `scene_system.md:31` | `<frame-edge surface> visible behind subject's hands` (body-part cue `subject's hands`) | `<frame-edge surface> visible behind <subject-frame-edge contact cue>` (또는 `<subject body part / extended limb at frame edge>`) | strict residue (legacy phrase `subject's hands`) |
| `scene_system.md:32` | `feet visible at lower frame edge with floor below` (body-part cue + scene cue) | `<lower-frame subject cue> visible at lower frame edge with <support surface> below` | strict residue (legacy phrase `feet visible at lower frame edge with floor below`) |
| `scene_system.md:33` | `full silhouette including head and feet visible` (body-part cue) | `entire subject silhouette visible despite close/side camera height` | strict residue (legacy phrase `full silhouette including head and feet visible`) |
| `scene_system.md:39` | `Figure B sits hunched in the left background.` (action-specific posture `sits hunched`; Figure A portion unchanged generic) | `Figure B has <background posture cue> in the left background.` | strict residue (legacy phrase `sits hunched in the left background`) |
| `scene_system.md:40` | `A hand reaching from the right edge holding a small object. Another figure visible in the rear background.` (action+object cue) | `<foreground interaction cue> enters from the right edge holding <small prop>. Another figure visible in the rear background.` | strict residue (legacy phrase `a hand reaching from the right edge holding a small object`) |
| `scene_system.md:60-61` | hint_diagnostic illustration `frame-edge surface 가 카메라 vertical 위치와 모순` / `camera vertical 과 일관된 lower-frame-edge 묘사 사용` — 이미 abstract | keep concept; if touched: `frame-edge element` / `camera vertical 과 일관된 frame-edge anchor 묘사` | **not strict residue target** (keep / optional generalize) |
| `entity_system.md:33` | `보통명사 인물 'security guard' 에 국적/인종 누락` (role-specific) | `보통명사 인물 '<common-noun character role>' 에 required demographic descriptor 누락` | strict residue (legacy phrase `'security guard'`) |
| `entity_system.md:34` | `Asian / Korean 인종 형용사 추가` (concrete demonym, P-4 cousin) | `story/world evidence에 맞는 <required demographic descriptor> 추가` | strict residue (legacy phrase `Asian / Korean 인종 형용사`) |

## 3. Version policy

- **Bump**: v6 → v7 **major bump**. 새 dir = `prompts/_base/t2i_review/7.202605190201/` (W1 execution 시 UTC `YYYYMMDDHHmm` 결정).
- **Rationale**: v6 (`6.202605181200/`) = Area #6 mutation redesign prompt-pack (target.replace → 5 core fields structured diagnostic + alias contract). v7 = Phase 2 hygiene active pack (example abstraction). Major bump 으로 audit / loader / closure 추적 분리 + Area #6 boundary 보존.
- **Boundary preserve**: v6 dir 변경 0 (Area #6 closed). v7 dir 새 생성 + 4 file (2 modified + 2 byte-identical sibling).
- **Content-only change convention**: schema shape / required / enum 변경 0, prompt content 만. prompt_loader latest activation 으로 v7 active.

## 4. STEP_MANIFEST contract

- **Entry topology** (Codex iter 2 correction 흡수): `STEP_MANIFEST["t2i_review"]` **단일 entry** (split X). prompt stems = `entity_system / entity_schema / scene_system / scene_schema` **4 stem** 별도 load (`backend/app/.../t2i_review.py` 안 both stems consume).
- **schema_version preservation contract**: `STEP_MANIFEST["t2i_review"].schema_version == 1` 보존 의무 (Area #7c 안 변경 0).
- **load_prompt / load_schema 4 stem latest v7 verify**: W2 안 `load_prompt("t2i_review", "scene_system")` / `load_schema("t2i_review", "scene_schema")` / `load_prompt("t2i_review", "entity_system")` / `load_schema("t2i_review", "entity_schema")` 4 호출 모두 v7 dir resolve verify (실 API `from app.modules.prompt_loader import load_prompt, load_schema`, `backend/app/modules/pipeline/t2i_review.py:17`).
- **Manifest schema unchanged**: STEP_MANIFEST 자체 shape / required field 변경 0.

## 5. W2 integrated test wave contract

**W2 integrated test wave** (단일 commit, 단일 test file path-limited). canary semantics 검증 X — **only verifies**:

- **Closed-world exact legacy phrase absence**: 7 strict residue catalog phrase (§2 표 residue gate=strict 행) 가 새 v7 dir 안 0 strict count (substring membership only).
- **Schema sibling identity**: v7 `scene_schema.json` + `entity_schema.json` = v6 file sha256 byte-identical (2 file 모두 strict equal).
- **load_prompt / load_schema latest v7 activation**: 4 stem 모두 v7 dir resolve (path absolute / 7.202605190201/ 형식 verify).
- **STEP_MANIFEST schema_version preservation**: `STEP_MANIFEST["t2i_review"].schema_version == 1` 그대로 (Area #7c 안 변경 0).

**Test target**: 10-15 PASS (residue 7 + canary 3-8).

**Closed-world residue contract** (4-Gate 정합):
- **Exact legacy phrase membership only**: §2 표 7 entry (strict residue gate 행) substring membership check only.
- **Standalone word ban forbidden**: `hands` / `feet` / `Asian` / `Korean` / `security` / `Figure A` / `Figure B` 단독 word 검색 금지 (general English/Korean word generic context 안 정상 사용 가능, 잘못된 false-positive 회피).
- **Regex semantic 판단 금지**: residue gate 코드 = exact phrase substring membership check only (no regex pattern alternation, no fuzzy match, no semantic similarity).
- **No live LLM** + **NO VLM** (hard constraint inline, image-side VLM 의존 X).

## 6. 4-Gate Boundary Doctrine (inline)

본 area 적용 (Area #7b 정합):

- **Semantic Regex Ban**: code 안 시나리오 의존 regex 0. residue gate = closed-world exact phrase membership only.
- **Prompt Closed-List Ban**: prompt 안 LLM-instruction closed-list 변경 0 (Area #6 mutation redesign closed boundary 정합, scope 외).
- **Structured SOT Required**: t2i_review v6 producer 5 core fields (id / scope / issue_code / action / hint_diagnostic) + alias contract (id == item_id == short_id, mismatch `t2i_review.diagnostic_alias_mismatch` AppError) 보존 (Area #6 closed).
- **No Silent Fallback**: 예시 generic placeholder 사용해도 LLM emit fail-fast 보존 (alias mismatch + schema required field 강제).

<!-- HISTORICAL AUDIT TRAIL / TEMPLATE ONLY: §7 doctrine description below contains literal placeholder example syntax and ban-rule statement phrasing; grep 오해 방지 marker block 안 보존 -->

## 7. TEMPLATE ONLY doctrine (Codex Q0-light Q4 verbatim 흡수)

**spec/plan template placeholder doctrine** (Area #7b W6 fix-up cycle 흡수):

- **Template placeholders are controller-substitute targets only, not live closure claims**. spec/plan body 안 `<commit_hash>` / `<pushed_range>` / `<UTC-timestamp>` 등 placeholder = controller (Claude / Codex) substitution target only.
- **Live closure docs unresolved placeholder ban**: 본 area W3 closure docs (spec §11 Closure + roadmap §5.7 Sub-area (c) Phase mark + audit `02-` §5 P-6 row + 새 `## 14. Area #7c Closure` section append) 안 unresolved `<...>` placeholder 0. push 완료 pre-claim 금지.
- **HISTORICAL AUDIT TRAIL / TEMPLATE ONLY marker**: plan template historical/published verbatim block 안 `HISTORICAL AUDIT TRAIL / TEMPLATE ONLY` marker로 grep 오해 방지.
- **Final pushed range/count = external memory only**: push 후 external memory closure file 안 `<base>..<W3 commit>` = X commits 형식 기록. repo-local closure docs 안 = closure commit anchor + range-review/push gate pending wording (W3 commit hash anchor + 후속 range-review fix-up commits 가능 명시적 허용 wording).
- **Repo-local post-push amend X** (Codex range review 요청 시 제외).

<!-- end TEMPLATE ONLY -->


## 8. Wave structure outline

3-wave structure (small scope per Codex iter 2 verdict). 각 wave 단일 atomic commit + per-wave Codex APPROVED 의무.

### 8.1 W1 — Producer atomic (single commit)

- **Action**: 새 dir `prompts/_base/t2i_review/7.202605190201/` 생성 + 4 file (`scene_system.md` modified + `scene_schema.json` byte-identical from v6 + `entity_system.md` modified + `entity_schema.json` byte-identical from v6).
- **Replacement**: §2 catalog 7 strict residue + 1 keep-abstract = 8 line/site exact rewrite (Codex iter 2 권고 verbatim wording).
- **Path-limited git add scope**: `prompts/_base/t2i_review/7.*/`.
- **Per-wave Codex APPROVED 의무**: W1 producer atomic 후 Codex W1 per-wave review (entry sanity / per-wave / session health 3 모드).

### 8.2 W2 — Integrated test wave (single commit)

- **Action**: W2 test file 신설 (`backend/tests/.../test_area_7c_*.py`) 안 4 verify gate (§5 contract):
  - Residue gate: 7 exact legacy phrase 새 v7 dir 안 0 strict count (substring membership only).
  - Schema sibling identity: v7 `scene_schema.json` + `entity_schema.json` sha256 byte-identical from v6.
  - load_prompt / load_schema latest v7 activation: 4 stem 모두 v7 dir resolve.
  - STEP_MANIFEST schema_version preservation: `t2i_review.schema_version == 1` 보존.
- **Test target**: 10-15 PASS (residue 7 + canary 3-8).
- **No live LLM** + **NO VLM** hard constraint.
- **Path-limited git add scope**: `backend/tests/.../test_area_7c_*.py` (W2 test file new path).
- **Per-wave Codex APPROVED 의무**: W2 per-wave review.

### 8.3 W3 — Closure docs atomic (single commit)

- **Action**: 3 repo-local docs files modify (path-limited git add scope: 3 explicit paths only; 1 audit file 안 2 site edit):
  - **Spec file** (`docs/superpowers/specs/2026-05-19-area-7c-t2i-review-placeholder-hygiene-v1-design.md`): frontmatter `status: drafting` → `status: closed (...)` + 본 spec v1 안 미존재 `## 11. Closure` section 신설 append (push-complete pre-claim 금지).
  - **Roadmap** (`docs/superpowers/specs/2026-05-16-track-b-semantic-debt-roadmap-design.md`): §5.7 Area #7 carry follow-up 안 Area #7c entry 신설 append (Codex iter 4 IMPORTANT 1 권고 — historical Sub-area (c) 정의 `shot_extract / shot_validator Korean grammar leak` 재기록 X, 새 explicit Area #7c follow-up bullet 추가 또는 새 sub-area marker 신설; controller/Codex re-approval 의무).
  - **Audit `02-`** (`docs/visual-reliability-audit/2026-05-14-semantic-string-routing-debt-audit/02-prompt-side-hygiene-audit.md`): 1 file 안 2 site edit — (a) §5 P-6 row status marker append `**Status: closed by Area #7c (2026-05-19+, W1-W3; push pending until APPROVED_FOR_PUSH)**` (Codex iter 3 verbatim wording) + (b) 새 `## 14. Area #7c Closure` section append (Status + Wave commits 표 + In-scope 8 site mapping 표 + Strict residue catalog result + STEP_MANIFEST single-entry preservation + 4-Gate Doctrine + NO VLM + Carry follow-up). audit `02-` §11.2 VWR downstream 표 t2i_review row 추가 X (Codex iter 2/3 정합).
- **Range review**: W3 closure commit 후 Codex W1-W3 range review (cumulative + per-wave 정합).
- **Push gate**: Codex `APPROVED_FOR_PUSH` 후 즉시 `git push origin main` (사용자 ask 0).
- **External memory write**: push 후 closure session memory 안 final pushed range/count + origin/main HEAD 기록 (prose 형식, repo-local closure docs 안 anchor pre-claim 0).
- **Per-wave Codex APPROVED 의무**: W3 closure commit `600993b` 자체 + W1-W3 range review = 2 round 가능 (+ 후속 narrow fix-up commits 가능).

## 9. Cross-cutting + dependency + closure boundary

- **Independent** (Codex Q0-light Q3 verdict, cross-cut 0).
- **Area #6 mutation redesign closed boundary preserve** — target.replace 폐기 + 5 core fields structured diagnostic + alias contract 보존, 본 area v7 prompt content-only 변경 → producer / consumer / schema shape 영향 0.
- **Area #7a (VWR SOT) closed boundary preserve** — VWR v7 schema + scene_director v9 A047 흡수 본 area 영향 0.
- **Area #7b (VWR Downstream Cascade) closed boundary preserve** — 9 site cascade + D-2 carve-out 본 area 영향 0.
- **Carry-A100 별도** (VWR system.md t2i_context demonym redesign) — Area #7c 안 처리 = t2i_review v6 prompt-pack example 만, VWR t2i_context 본문 영역 별도 area.
- **Hygiene v1 (P-6 1차 abstraction, commit `91d1dfd`) Phase 2 정합**.
- **D-2 carve-out (entity_character_list, Area #7b)** 영향 0.

## 10. Carry follow-up + References + Codex Iter Trace

### 10.1 Carry follow-up post Area #7c closure (priority Codex post-push Q3 verdict 정합)

1. **Area #7d** — cinematography closed-list SOT dual-site (`variation_recommender/v2/system.md` + `scene_extractor_v2/19.*/turn_scene_detail.md:87-91`). medium cost / cinematography 도메인 별개.
2. **Carry-A100** — VWR system.md t2i_context demonym redesign V8+. medium cost / Area #7a 정합 보존.
3. **Carry-A099** — VWR system.md director_notes prose redesign V8+. medium-large cost / Area #7a 정합 보존.
4. **Carry-P021** — scene_consistency 7 enumeration broad (source unresolved low-priority). small cost (source 파악 후) / Area #7a 정합 보존.

### 10.2 References

- **Audit `02-`** — `docs/visual-reliability-audit/2026-05-14-semantic-string-routing-debt-audit/02-prompt-side-hygiene-audit.md` §5 P-6 (line 142-153) + §10 Boundary Notes line 228 verbatim ("본 audit 의 P-6 예시 텍스트만 hygiene scope (LLM-side redesign 별도)").
- **Roadmap §5.7 Sub-area (c)** — `docs/superpowers/specs/2026-05-16-track-b-semantic-debt-roadmap-design.md` line 385 — `(c) shot_extract / shot_validator Korean grammar leak`. 정정 의무: Sub-area (c) 정의가 t2i_review placeholder 와 어긋남 — W3 closure 시 Codex 의논 후 정정 또는 신규 Sub-area 명세.
- **Hygiene v1 closure** — commit `91d1dfd` (P-1 ~ P-6 1차 fix, 2026-05-15).
- **Area #6 closure** — Track B Tier 2 #4 (T2I Review Mutation Redesign v1, 2026-05-18+).
- **Area #7a closure** — push `d0410eb` (VWR SOT v1, 2026-05-19).
- **Area #7b closure** — push `e751e72` (VWR Downstream Cascade v1, 2026-05-19+, range `d0410eb..e751e72` = 28 commits, external memory `session_20260519_area_7b_v1_closure.md`).

### 10.3 Codex Iter Trace (spec drafting session)

- **iter 0** (handoff session post Area #7b closure): post-push 5 결정점 (CLOSE session + 5 carry priority `1) #7c / 2) #7d / 3) A100 / 4) A099 / 5) P021` + TEMPLATE ONLY doctrine wording + memory final wording 안 stale number 잔존 0 verify).
- **iter 1** (본 spec session, Q0-light scope): **APPROVED_WITH_ADJUSTMENT**. `Asian/Korean` ∈ #7c 흡수 (Carry-A100 cross-cut X). CONTINUE_SPEC_DRAFTING_THIS_SESSION. priority unchanged. TEMPLATE ONLY doctrine wording 권고. Additional guard (regex semantic 판단 금지 + closed-world exact legacy phrase membership + standalone word ban 금지 + NO VLM + spec target 150-250 lines).
- **iter 2** (본 spec session, Q1-Q7 outline brainstorming): **APPROVED_OUTLINE_WITH_NARROW_CORRECTIONS**. v7 major bump confirm + adjacent inclusion include (scene 32/33/40, 8 site total) + replacement wording 8 line verbatim + W2 integrated wave + **STEP_MANIFEST 단일 entry correction** (split X, 4 stem 별도 load) + §11 W3 append-only + **audit §11.2 row 추가 X / §5 P-6 status marker + §14 section append** + standalone word ban 금지.
- **iter 3** (본 spec session, strategy): **APPROVED_FOR_SPEC_V1_DRAFT**. Spec path OK + §1-§10 structure good with 8 site vs strict residue 분리 표현 + 3-4 col table format + audit §5 P-6 live closure wording verbatim (`**Status: closed by Area #7c (2026-05-19+, W1-W3; push pending until APPROVED_FOR_PUSH)**`, date placeholder W3 execution 시 fill-in) + §14 closure scope OK + frontmatter `status: drafting` initial + iter 4 post-commit full review (no pre-commit draft review) + `W2 integrated test wave` wording (not "canary proves semantics").
- **iter 4** (post commit `5118e5e`): **NEEDS_REVISION_MINOR** (3 IMPORTANT + 1 MINOR — frontmatter Sub-area (c) false reference + W3 4 file → 3 file + §11 deferred section 제거 + prompt_loader API wording 흡수).
- **iter 5** (spec amend 1 narrow re-review post `1032dbc`): **APPROVED_FOR_PLAN** + CONTINUE_PLAN_DRAFTING_THIS_SESSION.

## 11. Closure (2026-05-19+)

### 11.1 Status + Closure Anchor

- **Status**: closed at W3 closure commit anchor `600993b` (W1-W3 range review/push gate pending at W3 closure commit time — Codex `APPROVED_FOR_PUSH` 후 즉시 `git push origin main` ([[feedback_push_no_user_ask]] 정합)). Final pushed range/count = recorded in external memory only after push (live closure docs 안 push-complete pre-claim 0, [[feedback_codex_mcp_discussion_workflow]] + TEMPLATE ONLY doctrine 정합).
- **Closure commit anchor**: W3 closure commit `600993b` (path-limited 3 explicit paths). 후속 range-review fix-up commits 가능 — final pushed range/count = external memory only.

### 11.2 Wave Commit Table

| Wave | Commit | Action | Line stats |
|---|---|---|---|
| W1 | `426d959` | Producer atomic (4 file: 2 prompt modified + 2 schema byte-identical sibling; 7 strict residue + 1 keep-abstract = 8 site replacement; v7 major bump `7.202605190201`) | +249/-0 |
| W2 | `df751dd` | Integrated test atomic (5 verify gate: residue 7 strict + schema sibling sha256 2 + load_prompt/load_schema 4 stem + STEP_MANIFEST schema_version preservation + `_resolve_stem_in_pack` 4 stem v7 source-path proof; 14 PASS in 0.12s, no live LLM + NO VLM + no regex semantic) | +205/-0 |
| W3 | `600993b` (W3 closure, + 후속 range-review fix-up commits 가능) | Closure docs atomic (3 file path-limited: 본 spec frontmatter status closed + §11 Closure section append + roadmap `2026-05-16-track-b-semantic-debt-roadmap-design.md` §5.7 Sub-area (b) Phase 2 Area #7b entry 직후 Area #7c follow-up bullet append + audit `02-prompt-side-hygiene-audit.md` §5 P-6 row Status marker append + §14 Area #7c Closure section append) | +128/-9 |

### 11.3 In-Scope 8 Site Mapping

| file:line | replacement surface | residue gate? | result |
|---|---|---|---|
| `scene_system.md:31` | body-part cue (`subject's hands`) | strict residue | 0 count (W2 Gate (a) PASS) |
| `scene_system.md:32` | body-part cue (`feet visible at lower frame edge with floor below`) | strict residue | 0 count (W2 Gate (a) PASS) |
| `scene_system.md:33` | body-part cue (`full silhouette including head and feet visible`) | strict residue | 0 count (W2 Gate (a) PASS) |
| `scene_system.md:39` | action cue (`sits hunched in the left background`) | strict residue | 0 count (W2 Gate (a) PASS) |
| `scene_system.md:40` | action+object cue (`a hand reaching from the right edge holding a small object`) | strict residue | 0 count (W2 Gate (a) PASS) |
| `scene_system.md:60-61` | hint_diagnostic illustration | not strict residue target | keep concept (Codex iter 2 verbatim) |
| `entity_system.md:33` | role cue (`'security guard'`) | strict residue | 0 count (W2 Gate (a) PASS) |
| `entity_system.md:34` | demonym cue (`Asian / Korean 인종 형용사`) | strict residue | 0 count (W2 Gate (a) PASS) |

### 11.4 Strict Residue Catalog Result

7 entry exact legacy phrase substring membership check — new v7 dir `prompts/_base/t2i_review/7.202605190201/` 안 0 strict count (closed-world membership only, no regex semantic, standalone word ban prohibition). W2 `test_residue_gate_scene_strict_phrase_absent` + `test_residue_gate_entity_strict_phrase_absent` + `test_residue_gate_total_count` 3 PASS.

### 11.5 STEP_MANIFEST Single-Entry Preservation + load_prompt/load_schema 4 stem Activation

- `STEP_MANIFEST["t2i_review"].schema_version == 1` 보존 (Area #7c content-only, 변경 0). W2 `test_step_manifest_t2i_review_schema_version_preserved` PASS.
- prompt stems `scene_system / scene_schema / entity_system / entity_schema` 4 stem `load_prompt` / `load_schema` API 모두 v7 dir resolve (W2 `test_load_prompt_*` + `test_load_schema_*` 4 PASS + `_resolve_stem_in_pack` 4 stem v7 source-path proof 4 PASS — v6/v7 schema byte-identical blind spot 보완).

### 11.6 Closure Verdict

- **Spec iter 0-5**: Codex iter 0 (handoff session post Area #7b closure) + iter 1 (Q0-light scope `APPROVED_WITH_ADJUSTMENT`) + iter 2 (Q1-Q7 outline `APPROVED_OUTLINE_WITH_NARROW_CORRECTIONS`) + iter 3 (strategy `APPROVED_FOR_SPEC_V1_DRAFT`) + iter 4 (spec quality post `5118e5e` `NEEDS_REVISION_MINOR`) + iter 5 (spec amend 1 narrow re-review post `1032dbc` `APPROVED_FOR_PLAN`).
- **Plan iter 0-2**: Codex iter 0 (plan strategy `APPROVED_FOR_PLAN_V1_DRAFT`) + iter 1 (plan quality post `1d41801` `NEEDS_REVISION_MINOR`) + iter 2 (plan amend 1 narrow re-review post `3bf7c22` `APPROVED_FOR_EXECUTION`).
- **W1-W2 per-wave APPROVED**: W1 producer per-wave `APPROVED_FOR_W2` + CONTINUE_W2_THIS_SESSION + W2 integrated test per-wave `APPROVED_FOR_W3` + CLOSE_HANDOFF_W3_FRESH.
- **W3 per-wave + W1-W3 range review**: pending at W3 closure commit time. Codex `APPROVED_FOR_PUSH` 후 즉시 `git push origin main`; final pushed range/count = external memory only.
- **4-Gate Boundary Doctrine** reaffirm: Semantic Regex Ban / Prompt Closed-List Ban / Structured SOT Required / No Silent Fallback.
- **TEMPLATE ONLY doctrine** reaffirm: controller-substitute targets only, not live closure claims. HISTORICAL AUDIT TRAIL marker block 안 design-time placeholder 보존, live closure docs 안 unresolved placeholder 0 + push-complete pre-claim 0.
- **NO VLM hard constraint** reaffirm.

### 11.7 Carry Follow-up Post Area #7c

Priority (Codex post-push Q3 verdict 정합, Area #7b closure carry list 흡수):

1. **Area #7d** — cinematography closed-list SOT dual-site (`variation_recommender/v2/system.md` + `scene_extractor_v2/19.*/turn_scene_detail.md:87-91`). medium cost / cinematography 도메인 별개.
2. **Carry-A100** — VWR system.md t2i_context demonym redesign V8+. medium cost / Area #7a 정합 보존.
3. **Carry-A099** — VWR system.md director_notes prose redesign V8+. medium-large cost / Area #7a 정합 보존.
4. **Carry-P021** — scene_consistency 7 enumeration broad (source unresolved low-priority). small cost (source 파악 후) / Area #7a 정합 보존.
