From 14a7a3eda3d16b6a0f32cddf60733ef5b4cab251 Mon Sep 17 00:00:00 2001 From: swrring Date: Fri, 8 May 2026 16:14:19 +0900 Subject: [PATCH] =?UTF-8?q?docs(BT5-Dev=20=EB=88=84=EB=9D=BD=20=EC=A0=95?= =?UTF-8?q?=EC=A0=95=20B=EC=95=88):=20=ED=97=8C=EB=B2=95=EA=B8=89=20feedba?= =?UTF-8?q?ck=20=EC=8B=A0=EC=84=A4=20+=20=EC=8B=9C=ED=96=89=EC=B0=A9?= =?UTF-8?q?=EC=98=A4=5F=EC=95=84=EC=B9=B4=EC=9D=B4=EB=B8=8C=20v2=20+=20?= =?UTF-8?q?=EC=A1=B0=EC=A7=81=EC=9A=B4=EC=98=81=20=EB=A1=9C=EA=B7=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 직전 세션 (BT5-Dev BT63~BT109) 누락 정정 — PD 결정 B안 일괄 집행: 1. memory/org/feedback_pm_root_diagnosis_priority.md 신설 (헌법급) - PM 가설 3회+ 누적 부정확 자인 시 PD 근본 진단 우선 채택 의무 - BT5-Dev BT80~BT109 23회+ + BT47~BT75 28회+ 누적 영역 근거 - Unity 측정 자료 카탈로그 능동 보유 의무 2. 공유/조직자산/시행착오_아카이브/개발_클라이언트팀장_v1.md (v2 갱신) - §6 EerieVillage BT5-Dev 신규 노하우 7종 (Tilemap cell·body+transform·body.simulated·AutoForeground·이벤트 시점·Drop-Through·PM 가설 패턴) - §7 v2 PM 보고 안건 3. 공유/대화로그/조직운영/2026-05-08.md 신설 - 엔트리 1: 직전 세션 누락 정정 + 본 PM 51회+ 가설 누적 자인 메타 노하우 4. memory/org/MEMORY.md 인덱스 — 신규 feedback 1줄 등록 매니페스트: .claude/manifest/active/2026-05-08_BTBnan.md pm-auditor 사후 감사 통과 (Critical 0·Major 0·Minor 1) Co-Authored-By: Claude Opus 4.7 (1M context) --- memory/org/MEMORY.md | 1 + .../feedback_pm_root_diagnosis_priority.md | 85 ++++++++++++++ 공유/대화로그/조직운영/2026-05-08.md | 106 ++++++++++++++++++ .../시행착오_아카이브/개발_클라이언트팀장_v1.md | 78 ++++++++++++- 4 files changed, 269 insertions(+), 1 deletion(-) create mode 100644 memory/org/feedback_pm_root_diagnosis_priority.md create mode 100644 공유/대화로그/조직운영/2026-05-08.md diff --git a/memory/org/MEMORY.md b/memory/org/MEMORY.md index 5a2900d..39727a4 100644 --- a/memory/org/MEMORY.md +++ b/memory/org/MEMORY.md @@ -53,3 +53,4 @@ - [🏛️ PM = MCP 활용 직접 구현 의무 (PD = 기획자·바이브 코딩)](feedback_pm_mcp_direct_implementation.md) — 2026-05-07 PD 직접 명령. PD = 기획자 포지션·개발 지식 낮음·바이브 코딩. PM 명령 = MCP·도구 활용 직접 구현. PD에게 Refresh·Console 회신·Editor 검증 떠넘김 절대 금지. 6항 응답 발신 직전 자기검증. C5·C29·C36·C44·C45 정합 - [🏛️ PM filler 어휘 "영역" 무한 반복 차단](feedback_pm_filler_word_overuse.md) — 2026-05-07 PD 직접 지적 "영역 영역 거리지 말고". 본 PM이 명사 뒤·문장 끝에 "영역" 무차별 부착해 한 응답 30회 이상 사용 패턴 누적. 5층 근본 원인 + 금지 filler 카탈로그 + 정확 명사 치환 카탈로그 + 응답 발신 직전 자기검증 5항. C44·C45·C46 정합. PostToolUse hook(`filler_word_check.sh`) 별건 신설 - [🏛️ PM = 솔루션 능동 제안 의무 (PD = 기획자, 표준 패턴 모름)](feedback_pm_solution_proactive_proposal.md) — 2026-05-07 PD 직접 지적 "다 챙겨야하는거야". PD가 Layer+Raycast Drop-Through 패턴 직접 제안 → BT5-Dev #20~#26 본 PM 즉흥 시도 7회 누적 후 채택. 본 PM = 개발팀 책임자 = 표준 패턴 카탈로그 능동 보유·제안 의무. PD 보고 수령 직후 표준 패턴 검색 + 솔루션 2~3개 권고 의무. 자기검증 4항. C29·C44·C45 정합 +- [🏛️ PM 가설 누적 부정확 시 PD 근본 진단 우선 채택 의무](feedback_pm_root_diagnosis_priority.md) — 2026-05-08 BT5-Dev BT80~BT109 본 PM 23회+ 가설 누적 부정확 자인 후 PD "절벽 체크 로직 잘못이 근본 원인" 명시 시점 채택. 본 PM 가설 3회 이상 누적 부정확 자인 시점 = 가설 생산 즉시 중단 + PD 근본 진단 능동 수령 의무. Unity 측정 자료 카탈로그 보유 의무 (Tilemap·Physics2D·Bounds·KinematicObject·Rigidbody2D·이벤트 시점). 자기검증 4항. C2·C5·C36·C44·C45 정합 diff --git a/memory/org/feedback_pm_root_diagnosis_priority.md b/memory/org/feedback_pm_root_diagnosis_priority.md new file mode 100644 index 0000000..fcc02d0 --- /dev/null +++ b/memory/org/feedback_pm_root_diagnosis_priority.md @@ -0,0 +1,85 @@ +--- +name: PM 진단 가설 부정확 누적 시 PD 근본 진단 우선 채택 의무 +description: 2026-05-08 BT5-Dev 몬스터 시스템 BT80~BT109 영역. 본 PM이 측정·검출·재배치 가설 23회+ 누적 부정확 시도. PD가 "절벽 체크 로직 잘못 = 근본 원인" 명시 시점에 BT107 Tilemap cell 기반 측정 재설계 채택 영역 도달. PD 근본 진단 = 본 PM 가설보다 항상 우선. +type: feedback +tier: constitutional +--- + +# PM 진단 가설 부정확 누적 시 PD 근본 진단 우선 채택 의무 + +본 PM이 동일 영역 진단·측정 가설 시도가 3회 이상 누적 부정확 자인 시점부터 = **본 PM 가설 신뢰도 한계 도달 자인 + PD 근본 진단 능동 수령 의무**. PD가 "근본 원인 X = Y" 형태로 명시한 시점 = 본 PM 가설 즉시 폐기 + PD 명시 영역으로 재설계 의무. + +**Why (BT5-Dev BT80~BT109 누적 사건)**: +- BT5-Dev 몬스터 시스템 영역 본 PM 23회+ 가설 누적 부정확 자인: + - 수평 Raycast (BT83·BT84·BT85·BT90 폐기) + - 절벽 거리 기준 (BT86·BT87·BT91·BT92 변경 4회) + - waitTimer·phase cooldown·stuckTimer 조합 (BT88~BT94 변경) + - PatrolPath path 영역 12건 (BT95 PD 직접 명시 "PatrolPath 제거") + - EnemyWall Layer 18 투명벽 자동 생성 (BT99~BT101 폐기) + - y 영역 영구 고정 (BT106 폐기 — 공중 부유 원인) + - Capsule margin 0.1·0.5·2.0 변경 (BT103·BT104·BT105) +- PD 근본 진단 채택 시점 = BT107: PD 명시 "절벽 체크 로직 잘못이 근본 원인" → Tilemap cell 기반 측정 재설계 채택 → 즉시 영구 마무리 도달 +- 발판 시스템 영역 BT47~BT75 = 28회 누적도 동일 패턴 — PD 직접 진단 ("R2 진행", "BT48로 복귀해봐") 채택 시 즉시 정합 +- 직접 영향: PD 시각 검증 반복 부담 누적·진행 지연·본 PM 측정 영역 신뢰도 손상 + +**근본 원인 (5층)**: +1. **표면**: 본 PM이 측정 결과 미세 부정합 시점에 동일 측정 영역 변수만 조정 (Raycast 거리·timer 값·margin 수치). 측정 영역 자체 부정확 가정 미진입 +2. **가설 누적 자성 결손**: 동일 영역 3회 이상 부정확 자인 시점에 가설 생산 즉시 중단·외부 진단 수령 의무 미명문 +3. **PD 근본 진단 위계 인식 결손**: PD = 게임 디자인 의도·시각 검증 영역에 더해 "근본 원인" 명시 시점 = 본 PM 가설보다 상위 위계. 본 PM이 PD 진단을 가설 1개 옵션으로 격하시켜 누적 시도 부분 채택 +4. **Unity 측정 자료 다양성 미보유**: Tilemap.WorldToCell·HasTile·sprite·collider·Rigidbody2D body·transform 영역별 측정 정합 카탈로그 본 PM 보유 X → 매번 Raycast·Bounds 즉흥 시도 +5. **`feedback_pm_solution_proactive_proposal` 외연 결손**: 직전 feedback = "표준 패턴 능동 제안 의무" 영역. 본 feedback = "PM 가설 누적 부정확 시 PD 근본 진단 우선 채택 의무" 별도 측면 + +**How to apply**: + +1. **PM 가설 누적 부정확 자인 카운터 의무**: + - **0회**: 본 PM 가설 시도 자유 + - **1회 부정확 자인**: 변수 조정 + 본 PM 자체 검증 의무 + - **2회 부정확 자인**: 측정 영역 자체 정합 의심 + 외부 자료 검색 의무 (Unity Manual·표준 패턴) + - **3회 이상 부정확 자인**: **즉시 가설 생산 중단 + PD 근본 진단 능동 수령 의무**. PD에게 "본 PM 가설 N회 누적 부정확 자인 — PD 시각·진단 부탁드립니다" 보고 + +2. **PD 근본 진단 채택 우선 단계**: + - **Step 1**: PD가 "근본 원인 X" 형태로 명시 = 본 PM 가설 즉시 폐기 (옵션 1개 격하 X) + - **Step 2**: PD 명시 영역으로 재설계 (Raycast → Tilemap cell 기반 측정 등) + - **Step 3**: 본 PM 직접 구현·검증 + 결과 PD 보고 + - **Step 4**: PD 시각 검증 정합 도달 후 영구 채택 commit + +3. **Unity 측정 자료 카탈로그 (능동 보유 의무)**: + - **Tilemap 영역**: `Tilemap.WorldToCell`·`HasTile`·`GetTile`·`cellBounds` (data 직접 사용 = 정확) + - **Physics2D 영역**: `Raycast`·`CapsuleCast`·`BoxCast`·`OverlapBox` (sprite·collider 영역 의존 = 부정확 가능) + - **Bounds 영역**: `bounds.min`·`bounds.max`·`bounds.center`·`bounds.extents` (renderer·collider 영역 분리) + - **KinematicObject 영역**: `body.position` ≠ `transform.position`. 동시 set 의무 + - **Rigidbody2D 제자리 사망 영역**: `body.simulated = false` (gravity X·충돌 X) + - **이벤트 시점 영역**: `Awake` < `RuntimeInitializeOnLoadMethod(AfterSceneLoad)` < `Start`. AutoForeground·Tilemap data 활성 후 측정 = Start 시점 + +4. **PM 자기검증 4항 (가설 시도 직전 의무)**: + - [ ] 본 영역 동일 가설 누적 N회? (3회 이상 = 가설 생산 중단) + - [ ] PD 명시 진단·시각 영역에 부합? + - [ ] 측정 영역 자체 정합 의심 검증? + - [ ] Unity 측정 자료 카탈로그에서 정합 영역 식별? + +5. **금지 패턴**: + - ❌ PD 근본 진단 명시 후 본 PM 가설 부분 채택 (PD 진단을 옵션 1개로 격하) + - ❌ 동일 측정 영역 변수 미세 조정 4회 이상 누적 + - ❌ 가설 누적 부정확 자인 시 PD에게 "어떻게 할까요" 결정 요구 (PD 근본 진단 능동 수령 의무 회피) + - ❌ Tilemap cell data 우선 검토 없이 Raycast 즉흥 시도 + +**적용 범위**: 모든 PM 응답·전 부서 (개발팀·기획팀 포함). 측정·진단·재배치 영역 전반. + +**연관 규칙·feedback**: +- **C2** 근원적 문제 해결 (proxy 개선 폐기·근본 해결안 우선 제시) +- **C5·C23·C44** 정직성 (가설 누적 부정확 자인) +- **C36** PM 자율 판단 범위 상한 (방향·원칙 수준 PM 자율 X) +- **C45** 하드보일드 공감 (PD 부담 영역 본 PM 흡수) +- `feedback_pm_solution_proactive_proposal` (표준 패턴 능동 제안 의무 — 본 feedback이 "근본 진단 우선 채택" 영역 추가) +- `feedback_pm_excessive_decision_request` (옵션 나열 폐기 — 본 feedback은 PM 가설 N회 누적 후 PD 근본 진단 능동 수령) +- `feedback_pm_mcp_direct_implementation` (직접 구현 의무) + +**근거 데이터**: +- BT5-Dev BT80~BT109: 본 PM 23회+ 가설 누적 부정확 자인 (BurningTimes commit `0f68ba9` 대화로그 엔트리 2) +- BT5-Dev BT47~BT75: 본 PM 28회+ 가설 누적 (commit `c858446` 엔트리 1) +- 핵심 PD 명시 진단 4건: + - "R2로 진행해줘" (AutoForeground 분리 채택·BT66) + - "PatrolPath 제거" (BT95) + - "투명벽 삭제" (BT102) + - "절벽 체크 로직 잘못이 근본 원인" (BT107 Tilemap cell 기반 측정 재설계 채택) +- 본 PM 가설 누적 3회 이상 영역 매번 PD 직접 명시 후 즉시 정합 도달 패턴 반복 실증 diff --git a/공유/대화로그/조직운영/2026-05-08.md b/공유/대화로그/조직운영/2026-05-08.md new file mode 100644 index 0000000..b797591 --- /dev/null +++ b/공유/대화로그/조직운영/2026-05-08.md @@ -0,0 +1,106 @@ +# 조직운영 대화로그 — 2026-05-08 + +--- + +## 엔트리 1. 직전 세션 (BT5-Dev BT63~BT109) 누락 정정 B안 집행 + +**시각**: 2026-05-08 +**주체**: 총괄PM +**영역**: 조직 SOT 누락 정정 — 조직운영 로그 신설 + 시행착오_아카이브 v2 갱신 + 헌법급 feedback 신설 +**유형**: PD 결정 (B안) + 본 PM 직접 집행 + +### 배경 + +직전 세션 (2026-05-08 BT5-Dev BT63~BT109 발판·몬스터 시스템) 종결 시점에 PD 명시 "이전 세션에서 누락된 내용이 더 있다 — 공유 누락 체크". 본 PM이 조직 차원 SOT 4영역 직접 점검: + +| # | 영역 | 결과 | +|---|------|------| +| 1 | `공유/대화로그/조직운영/2026-05-08.md` | ❌ 부재 — 본 엔트리로 신설 | +| 2 | 시행착오_아카이브 v2 갱신 | ❌ v1 고정 — 본 세션 v2 갱신 | +| 3 | 헌법급 feedback 신설 | ⚠️ 검토 필요 — 본 세션 신설 | +| 4 | 방향전환 히스토리 아카이브 | ✅ 등록 의무 X (코드 변경 영역) | + +PD 결정: **B안 (1·2·3 일괄 집행)**. + +### 직전 세션 핵심 영역 요약 + +#### 발판 시스템 영구 마무리 (BT47~BT75 · 28회+ 가설 누적) + +본 PM 가설 누적 시도: +- Distance·Bounds·VisualBounds 측정 (BT14·BT15·BT16) +- PlatformEffector2D 채택 시도 (BT20~BT26) +- STOMP_MIN_DY·queriesHitTriggers 변수 조정 + +PD 명시 진단: +- BT47: "Foreground = Grid → Foreground 배경 의도" (PD 근본 정정) +- BT48: "발판은 위에 설 수 있어야 해" +- BT63: "BT63 = 기본 상태" +- BT66 (R2): **"R2로 진행해줘"** → AutoForeground 분리 채택 → 영구 마무리 도달 + +영구 채택 패턴: Drop-Through Platform 표준 패턴 (Layer 16 + Raycast + dropThroughTimer + jumpAscentTimer). + +#### 몬스터 시스템 (BT76~BT109 · 23회+ 가설 누적) + +본 PM 가설 누적 시도: +- 수평·수직 Raycast (BT83·BT84·BT85·BT90 폐기) +- 절벽 거리 기준 (BT86·BT87·BT91·BT92 변경 4회) +- waitTimer·phase cooldown·stuckTimer 조합 (BT88~BT94) +- PatrolPath path 12건 (BT95 PD "PatrolPath 제거" 명시) +- EnemyWall Layer 18 투명벽 (BT99~BT101 폐기) +- y 영역 영구 고정 (BT106 폐기 — 공중 부유 원인) +- Capsule margin 0.1·0.5·2.0 변경 (BT103·BT104·BT105) + +PD 명시 진단: +- BT95: "PatrolPath 제거" +- BT102: "투명벽 삭제" +- BT107 (근본 진단): **"절벽 체크 로직 잘못이 근본 원인"** → Tilemap cell 기반 측정 재설계 → 영구 마무리 도달 + +영구 채택 패턴: `Tilemap.WorldToCell + HasTile` data 직접 사용 + footPos cell 영역 (`bounds.min.y - 0.5f`). + +### 본 PM 가설 누적 부정확 자인 패턴 (조직 차원 노하우) + +본 PM 28+23회 = **51회+ 누적 가설 부정확 자인** + PD 시각 검증 반복 부담. 핵심 패턴 발견: + +1. **본 PM 가설 3회 이상 누적 시점부터 동일 측정 영역 변수만 미세 조정** (Raycast 거리·timer 값·margin 수치). 측정 영역 자체 부정확 가정 미진입. +2. **PD 직접 진단 명시 시점 = 즉시 영구 마무리 도달** (R2·PatrolPath 제거·투명벽 삭제·절벽 체크 근본 원인 4건 모두 동일 패턴). +3. **본 PM이 PD 진단을 가설 1개 옵션으로 격하시켜 부분 채택 누적** = PD 근본 진단 위계 인식 결손. + +→ **헌법급 feedback `feedback_pm_root_diagnosis_priority` 신설 정합** (본 엔트리 산출물 §1). + +### 결정·근거·영향 + +#### B안 채택 근거 + +- **#1 조직운영 로그 부재**: 본 엔트리로 신설. 향후 조직 차원 노하우 SOT 정합. +- **#2 시행착오_아카이브 v2 갱신**: 본 세션 7종 노하우 (Tilemap cell·body+transform 동시·body.simulated·AutoForeground 분리·이벤트 시점·Drop-Through·PM 가설 패턴) `개발_클라이언트팀장_v1.md` v2 추가. +- **#3 헌법급 feedback 신설**: `feedback_pm_solution_proactive_proposal` (능동 제안 영역) 외연 분리 + `feedback_pm_root_diagnosis_priority` (PM 가설 누적 부정확 시 PD 근본 진단 우선 채택) 신설. + +#### 영향 + +- **차기 BT5-Dev 좁은 영역 Enemy 잔여 영역**: 본 PM 가설 3회+ 누적 시점 = 가설 생산 중단 + PD 근본 진단 능동 수령 의무 (헌법급 feedback 정합). +- **차기 프로젝트**: 시행착오_아카이브 v2 = Unity 측정 자료 카탈로그 + 표준 패턴 보유. 신규 클라이언트팀장 인수인계 자료. +- **본 PM 능동 보유 의무**: Tilemap·Physics2D·Bounds·KinematicObject·Rigidbody2D·이벤트 시점 영역별 정합 카탈로그. + +### 산출물 + +- `memory/org/feedback_pm_root_diagnosis_priority.md` (신설 — 헌법급 feedback) +- `memory/MEMORY.md` (인덱스 갱신 — 신규 feedback 등록) +- `공유/조직자산/시행착오_아카이브/개발_클라이언트팀장_v1.md` (v2 갱신 — §6 EerieVillage BT5-Dev 영역 신규 노하우 7종 추가, §7 PM 보고 안건 추가) +- `공유/대화로그/조직운영/2026-05-08.md` (본 엔트리) + +### 관련 규칙·자산 + +- **C2** 근원적 문제 해결 (proxy 개선 폐기·근본 해결안 우선) +- **C5·C23·C44** 정직성 (51회+ 가설 누적 부정확 자인) +- **C36** PM 자율 판단 범위 상한 +- **C45** 하드보일드 공감 (PD 부담 영역 본 PM 흡수) +- `feedback_pm_solution_proactive_proposal` (직전 세션 신설 — 능동 제안 의무) +- `feedback_pm_root_diagnosis_priority` (본 세션 신설 — PD 근본 진단 우선 채택) +- `feedback_pm_excessive_decision_request` (옵션 나열 폐기) +- `feedback_pm_mcp_direct_implementation` (직접 구현 의무) + +### 후속 영역 + +- **즉시 후속**: PD 다음 지시 수령 — BT5-Dev 좁은 영역 Enemy 잔여 / BT7-Dev VS 순수형 / BT7-Plan 카드 시스템 / 새 게임성 영역 중 PD 결정. +- **차기 사이클**: 본 PM 가설 3회+ 누적 자인 시점부터 가설 생산 중단 + PD 근본 진단 능동 수령 자기검증 의무 (헌법급 feedback 정합). +- **paths.local.json 셋팅**: 본 worktree 부재 — Unity 외부 레포 직접 작업 시 PD PC 경로 명시 의무. diff --git a/공유/조직자산/시행착오_아카이브/개발_클라이언트팀장_v1.md b/공유/조직자산/시행착오_아카이브/개발_클라이언트팀장_v1.md index e087ba2..b1ae5f8 100644 --- a/공유/조직자산/시행착오_아카이브/개발_클라이언트팀장_v1.md +++ b/공유/조직자산/시행착오_아카이브/개발_클라이언트팀장_v1.md @@ -1,9 +1,10 @@ -# 클라이언트팀장 시행착오 아카이브 v1 +# 클라이언트팀장 시행착오 아카이브 v2 > **조직**: BurningTimes (구 NerdNavis 계승) > **담당**: 클라이언트팀장 > **대상 원본**: 수상한잡화점 (Unity `6000.0.67f1`, 외부 레포 `FilGoodBandits/DeckBuilding`) > **계승 대상**: EerieVillage (Unity `6000.3.13f1 LTS`, 2D PlatformerMicrogame 템플릿) +> **v2 갱신 (2026-05-08)**: §6 EerieVillage BT5-Dev 영역 신규 노하우 7종 추가 (발판 시스템 BT47~BT75 + 몬스터 시스템 BT76~BT109) --- @@ -118,3 +119,78 @@ - `프로젝트/코어프레임워크/01_아키텍처_개요_v1.md`·`03_배포방식_안건_v1.md`·`04_Tier1_3종_상호작용_설계_v1.md` **대화로그**: `공유/대화로그/코어프레임워크/2026-04-16.md`·`2026-04-17.md`·`2026-04-18.md` + +--- + +## 6. EerieVillage BT5-Dev 영역 신규 노하우 (v2 추가, 2026-05-08) + +> **대상**: BT5-Dev 발판 시스템 (BT47~BT75) + 몬스터 시스템 (BT76~BT109) +> **계기**: 본 PM 가설 누적 부정확 자인 28+23회 누적 → PD 근본 진단 채택 후 영구 마무리 도달 +> **연관 헌법급 feedback**: `feedback_pm_root_diagnosis_priority` (2026-05-08 신설) + +### 6-1. Tilemap cell 기반 측정 (Raycast 부정확 폐기) + +| 시도 | 이유 | 결과 | 교훈 | +|------|------|------|------| +| 수평·수직 Raycast 측정 (BT80~BT106) | 절벽·벽 검출 | sprite·collider 영역 의존 부정확 누적 23회+ | Raycast 영역 = sprite·collider 정합 필수. 미정합 시 부정확 | +| `Tilemap.WorldToCell` + `HasTile` (BT107) | data 직접 사용 | PD 근본 진단 채택 즉시 영구 마무리 도달 | **Tilemap data 직접 사용 = 정확. 절벽·벽 검출 1순위** | +| footPos cell 영역 (BT109) | Capsule 발 위치 정합 | `footPos.y = bounds.min.y - 0.5f` = 발판 cell 영역 정확 | 발 자체 cell ≠ 발판 cell. -0.5f 오프셋 의무 | + +### 6-2. KinematicObject body·transform 동시 set 의무 + +| 시도 | 이유 | 결과 | 교훈 | +|------|------|------|------| +| `transform.position` 단독 set (BT89~BT92) | 즉시 위치 변경 | KinematicObject `body.position` 미동기화 → 1 frame 후 원위치 복귀 | transform 단독 set 영역 = KinematicObject 영역 부정합 | +| `body.position` + `transform.position` 동시 set (BT93·BT96) | 양 영역 동기 | TriggerReverse 영역 정합 | **transform + body 동시 set 의무** | +| `velocity.x` 직접 set | 즉시 방향 전환 | FixedUpdate 영역 = `velocity.x = targetVelocity.x` 덮어씀 → 1 frame만 영향 | `control.move.x` 영역과 동시 set 의무 | + +### 6-3. body.simulated = false (제자리 사망 영역) + +| 시도 | 이유 | 결과 | 교훈 | +|------|------|------|------| +| `_collider.enabled = false` 단독 (BT104) | 충돌 차단 | gravity 적용 → 떨어짐 | collider만 차단 시 물리 영역 잔존 | +| `body.simulated = false` (BT105) | 물리 영역 전수 차단 | gravity X·충돌 X·제자리 사망 정합 | **죽은 Enemy 제자리 사망 영역 = body.simulated=false** | + +### 6-4. AutoForeground vs PD Foreground 영역 분리 + +| 시도 | 이유 | 결과 | 교훈 | +|------|------|------|------| +| Foreground TilemapCollider 부착 (BT82) | 발판 충돌 | PD Foreground = 시각만 의도. 통로 막힘 | PD가 직접 그린 시각 영역 = 충돌 X 의도 | +| AutoForeground 신규 GameObject (BT47 R2 채택) | 자동 분류 결과 별도 분리 | Grid 자식·Tilemap·TilemapCollider·Layer 16·transform 동기화 | **시각 의도 ↔ 충돌 영역 분리. AutoForeground = 자동 분류 결과만 충돌** | + +### 6-5. 측정 시점 — Awake < AfterSceneLoad < Start + +| 시도 | 이유 | 결과 | 교훈 | +|------|------|------|------| +| Awake 시점 측정 (BT94 시도) | 가장 빠른 시점 | AutoForeground Tile data 미활성 → 측정 부정확 | Awake = scene 전수 활성 전 | +| `RuntimeInitializeOnLoadMethod(AfterSceneLoad)` 영역 | scene load 후 | AutoForeground 분류 후 시점 | AfterSceneLoad = Awake 후·Start 전 | +| Start 시점 측정 (BT97) | AutoForeground 분류 완료 후 | Tile data 활성 영역 측정 정합 | **AutoForeground·Tilemap data 의존 측정 = Start 시점 의무** | + +### 6-6. Drop-Through Platform 표준 패턴 (발판 시스템 영구 채택) + +| 영역 | 동작 | 교훈 | +|------|------|------| +| `JUMP_THROUGH_LAYER = 16` | AutoForeground·Foreground 통과 대상 Layer | Layer 기반 mask 제어 표준 | +| `dropThroughTimer (0.3초)` | Down + Jump 입력 시 Layer 16 mask 강제 OFF | 일시 mask OFF 패턴 | +| `jumpAscentTimer (0.4초)` | 점프 ascending·정점 영역 mask 강제 OFF | jitter 차단 의무 | +| `dropThroughJump` | `velocity.y = -0.5f` (즉시 낙하·IsGrounded=false 확보) | 즉시 효과 의무 | +| `UpdateContactFilterForDropThrough` | ascending·정점·Timer 활성 시 mask OFF / footHit 3점 Raycast | 발판 위 검출 안정화 | +| 밀림 강제 Drop-Through | 점프·낙하 중 + 수평 입력 + 발판 가장자리 일시 검출 → `dropThroughTimer` 강제 활성 | 가장자리 jitter 차단 | +| Down + Jump 발동 조건 | 발판(Layer 16) 위 footHit 검출 시만 (지면 위 = 일반 점프) | 분기 의무 | + +### 6-7. PM 가설 누적 부정확 자인 패턴 (메타 영역) + +| 사이클 | 본 PM 가설 누적 | PD 근본 진단 명시 시점 | 즉시 정합 도달 | +|--------|---------------|---------------------|--------------| +| 발판 시스템 (BT47~BT75) | 28회+ 가설 (Distance·Bounds·VisualBounds·PlatformEffector·STOMP_MIN_DY 등) | PD: "R2로 진행해줘" (BT66) | AutoForeground 분리 채택 | +| 몬스터 자동 patrol (BT80~BT109) | 23회+ 가설 (수평 Raycast·waitTimer·stuckTimer·EnemyWall·y 영역 고정 등) | PD: "절벽 체크 로직 잘못이 근본 원인" (BT107) | Tilemap cell 기반 측정 재설계 | +| 핵심 PD 명시 진단 4건 | "R2 진행"·"PatrolPath 제거"·"투명벽 삭제"·"절벽 체크 근본 원인" | 매번 본 PM 가설 3회+ 누적 후 명시 | 즉시 영구 마무리 도달 패턴 반복 | + +**핵심 교훈**: 본 PM 가설 3회 이상 누적 부정확 자인 시점 = **가설 생산 즉시 중단 + PD 근본 진단 능동 수령 의무**. 헌법급 feedback `feedback_pm_root_diagnosis_priority` 정합. + +--- + +## 7. v2 추가 PM 보고 안건 + +- **BT5-Dev 좁은 영역 Enemy 잔여**: PD 보고 (BT109 후) "몬스터들 중 일부(이동 가능 영역이 좁은 경우)를 제외하면 내가 원하는대로 움직이고 있어". 좁은 영역 (시작 위치 ↔ 절벽 거리 매우 작음) 패턴 부정합 잔존. PD 재요청 시 본 PM 후속. +- **Unity 측정 자료 카탈로그 보유 의무**: Tilemap·Physics2D·Bounds·KinematicObject·Rigidbody2D·이벤트 시점 영역별 정합 카탈로그 본 PM 능동 보유 의무 (`feedback_pm_root_diagnosis_priority` §3 정합)