---
phase: implementation
agent: implementation-advisor
agent_version: 1
generated_at: 2026-06-22T10:00:00+09:00
---

# 파일 소유권 맵 (W3-2 댓글/리뷰 고도화)

설계 §1 파일 영향 맵 기준. 동일 파일 = 정확히 1 worker. 상호의존 파일은 단일 worker 묶음.

| 파일 | 담당 worker | worker id | 변경 유형 | 의존 |
|---|---|---|---|---|
| docs/game-reviews-ddl.sql | migration-writer | W-DDL | append+주석갱신 | - |
| db/schema.sql | migration-writer | W-DDL | 동기화+주석갱신 | - |
| src/.../util/TextNormalizer.java | code-writer | W-BE | create | - |
| src/.../data/ReviewAxisRow.java | code-writer | W-BE | create | - |
| src/.../mapper/GameReviewAxesMapper.java | code-writer | W-BE | create | ReviewAxisRow |
| src/.../mapper/GameReviewStatsMapper.java | code-writer | W-BE | create | - |
| src/.../data/GameCommentData.java | code-writer | W-BE | modify | - |
| src/.../data/GameReviewData.java | code-writer | W-BE | modify | - |
| src/.../mapper/GameCommentsMapper.java | code-writer | W-BE | modify | GameCommentData |
| src/.../mapper/GameReviewsMapper.java | code-writer | W-BE | modify | GameReviewData |
| src/.../controller/api/GameCommentController.java | code-writer | W-BE | modify | 위 매퍼/data/util |
| src/.../controller/api/GameReviewController.java | code-writer | W-BE | modify | 위 매퍼/data/util |
| src/main/webapp/WEB-INF/views/game-detail.jsp | code-writer | W-FE | modify | (BE API 계약 — 설계 §3 고정) |
| src/test/.../GameCommentControllerTest.java | code-writer | W-TEST | modify | W-BE 시그니처 |
| src/test/.../GameReviewControllerTest.java | code-writer | W-TEST | modify | W-BE 시그니처 |
| src/test/.../BibimbapApplicationTests.java | code-writer | W-TEST | modify | 신규 @Mapper |

## 불변식 점검
- W-BE 가 매퍼/data/util/컨트롤러 11파일 동시 소유 (상호 시그니처 의존 → 단일 worker 순차).
- W-FE jsp 단독 — BE 와 파일 충돌 0. API 계약은 설계 §3 으로 고정되어 BE 코드 미참조 가능 → 병렬 가능.
- W-DDL 2파일 독립 — 코드 무참조 → 선행 병렬 가능.
- W-TEST 는 W-BE 시그니처 확정 필요 → W-BE 완료 후 순차 spawn.

## spawn 순서
1. wave A (병렬): W-DDL, W-FE, W-BE  ← 상호 파일 충돌 0
2. wave B (순차): W-TEST  ← W-BE 완료 후 (컨트롤러 시그니처 의존)

## planned_workers: 4 (W-DDL, W-FE, W-BE, W-TEST)

---

# 파일 소유권 맵 (FIX LOOP L1 — verification RED 8건)

| 파일 | 담당 worker | worker id | 변경 유형 | 의존 |
|---|---|---|---|---|
| src/test/.../GameReviewControllerTest.java | (advisor 직접) | - | modify | - |

## L1 planned_workers vs actual_workers
- planned_workers: 1
- actual_workers: 0 (advisor 직접)
- 전환 사유: 파일 수 1 < 8 AND 예상 변경 줄수 ~8줄 < 500 → advisor 직접 실행 선택. 정밀 문자열 치환 8곳, worker spawn overhead 가 작업량 초과.

## L1 근본 원인 (진단 결과)
- **가설 1 (테스트 계약 미갱신) 단독 확정.** 컨트롤러 버그 아님.
- 실패 8건 전부 POST body 10자 미만 → 컨트롤러가 design.md AC-9(본문 trim 후 10자 미만 거부) 에 따라 정당하게 400 반환.
- 가설 2(axes 바인딩) 무관: 테스트가 controller.createReview(...) 를 6개 위치 인자로 직접 호출 → MockMvc 폼바인딩 경로 미사용. 검증 순서도 design §5.3 정합 확인.
- 수정 방향: 컨트롤러/FINAL SPEC 계약 불변. 테스트 요청 body 만 10자 이상으로 갱신 (행위 검증 보존).
