docs(BT12-Dev 시각화 HUD + 사망 원인 디버그): 대화로그 엔트리 6 + PD 지시 로그 2행 추가

- PD 직접 지시 2건 등재
  · BT12-Dev-Vis: PlayerSkillInventory 시각화 HUD
  · BT12-Dev-Death: 스킬 습득 후 사망 버그 (가설·미검증)
- EerieVillage e31c34c 산출 6 파일
  · SkillInventoryHUD.cs 신규 (OnGUI 좌상단)
  · ProjectileSpawner fallback 시각화
  · Projectile Player 차단 (proxy)
  · Health Decrement·Die Debug.Log + StackTrace
- pm-auditor Major 1 정정 완료
- 본 PM 자성 신규 0건

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-09 21:23:43 +09:00
parent f85a9d4e05
commit 322f00d863
2 changed files with 68 additions and 0 deletions

View File

@ -33,6 +33,8 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**.
| # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 |
|---|------|----------|----------|-----------|----------|----------|
| BT12-Dev-Vis | 2026-05-09 | **PlayerSkillInventory 등록 시각화 지시** — PD 직접 발화: "PlayerSkillInventory 등록이 되었는지 어떻게 판단해야하지? 시각적인 변화가 없으니 확인이 불가능해. 유니티 기본 제공 리소스를 활용해도 좋으니 보이게 해줘." | **진행중** | 신규 `Assets/Scripts/MyUI/SkillInventoryHUD.cs` (OnGUI 좌상단·장착 액티브 DisplayName·Lv·CooldownRemaining/EffectiveCooldown·패시브 카운트). PlayerController.Awake 자동 부착. 보강: ProjectileSpawner fallback prefab에 SpriteRenderer + 동적 흰색 원 sprite + 속성별 색상 (Fire 주황·Frost 하늘·Dark 보라·Lightning 노랑·Physical 흰). Unity 기본 자원 활용 — Texture2D 동적 생성 16×16 알파 원. | — | **PM 후속**: PD Editor Refresh + Play 검증 → 카드 선택 후 좌상단 HUD에 카드명·Lv·CD 노출 확인 + 투사체 색상 원 시각 노출 확인 → 결과 보고 → 완료 아카이브 |
| BT12-Dev-Death | 2026-05-09 | **스킬 습득 후 사망 버그 지시** — PD 직접 발화: "스킬 습득 후 일정시간이 지나면 왜 플레이어가 갑자기 죽는거지? 버그를 수정해줘." | **진행중 (가설 — 미검증)** | (1) Projectile.OnTriggerEnter2D에 PlayerController 명시 차단 (defensive proxy·자기 hit 차단). (2) Health.Decrement·DecrementSilent·Die에 Debug.Log + System.Environment.StackTrace 추가 (사망 호출자 추적). **가설**: BT5-Dev EnemyController 자동 patrol → VisualBounds.Intersects → PlayerEnemyCollision Event line 64 = `player.health.Decrement()` 자연 도달 사망 (BT5-Dev 정상 동작이 카드 선택 후 인지된 패턴). **검증 절차**: PD Play 테스트 → Console log `[Health@Player] Decrement(...)` StackTrace 확인 → 호출자 확정 → 본 PM 보고. | — | **PM 후속 의무**: PD Console log 확인 결과 수령 → 가설 확정 시 Layer Enemy 정식 등재 (별도 안건) 또는 Enemy 자동 patrol 재정정 → 가설 부정 시 신규 진단. (1)(2)는 진단·방어·proxy. 근본 해결은 검증 후 결정 |
| BT12-MVP-A | 2026-05-08 | **경험치·레벨업·스킬 카드 선택 UI** — PD 직접 지시 2건 (1) 적 처치 → EXP → 레벨업마다 스킬 카드 3개 선택 기능 (2) 레벨업 UI (스킬 효과 추후·UI만). PD 첨부 예시 영역 ("기술 선택" 화면 — 카드 3장 가로·색상 배너·원형 아이콘·동심원·"레벨 N"/"최대"·"확인" 버튼). PD 결정 (β) 채택 — BT12-Dev 보류 일부 해제·BT12-MVP-A 분리 항목 진행. **PD 결정 D안 (2026-05-09)** — 기능 우선·그래픽 디테일 차후 영역. | **D안 완료 2026-05-09** | [Phase 1 완료] `프로젝트/EerieVillage/개발/spec/BT12-MVP-A_설계_v1.md` (~600 라인). [Phase 2-A 완료] EerieVillage `047661c` — 시스템 코드 6 + JSON 테이블. [Phase 2-B 코드 완료] EerieVillage `5b2b753` — UI 컴포넌트 2 + LevelUpManager 통합. **[Phase 2-B asset 5 완료 2026-05-08]** EerieVillage `755a51c``Assets/Data/SkillPlaceholders/{A01_jineonbu, A05_hagikjin, P01_bonghwanggyeok, P12_saengmyeongkkot, AW01_cheonbugyeongmun}.asset` (5) + 각 .meta (5) + folder meta 2 = 12 파일. C49 표준 — Phase 1 dev-team-lead Opus 첫 정합 호출 + Phase 2 Sonnet 위임 + Phase 3 PM 검증. **dev-team-lead 자진 고지** — 설계서 v1 §2-4 영역 P01·P12·AW01 BT11-Plan v0.2 정합 X (3건 정정 적용). **설계서 v1 §2-4 + §7-1 정정 완료** (commit 후속). PD Editor 가이드 신규 `BT12-MVP-A_Phase2B_PDEditor가이드.md`. 대화로그 엔트리 10. | — | **PM 후속 대기**: ① Phase 2-B B (Prefab) + C (Scene 통합) — **PD 직접 발화 (2026-05-08): "단계1은 완료. 단계2, 3은 개발팀에서 작업해줘" + "E"** → 옵션 E 채택 (Claude Desktop Unity MCP 위임) → 본 PM 의뢰서 작성 `BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md` (~16K) → PD Claude Desktop 새 세션 영역 의뢰서 첨부 영역 작업 진행 → EerieVillage commit·push → 본 worktree PM 보고 ② Phase 3 dev-team-lead 통합 검증 (Phase 1 + 2-A + 2-B asset + Prefab + Scene + BT5-Dev/BT7-Dev 회귀) ③ **단계 4 PD Play 검증** (적 처치 → EXP → 레벨업 → UI 노출 → 카드 선택 → 게임 재개) ④ 기획팀 별도 안건 — `01_카드_풀.md` line 114 P12 = "도약강화" 잔존 정정 (`02_스킬_효과_컨셉.md` line 381·418 영역 동기화 X) ⑤ icon sprite asset 5장 별도 작업 ⑥ 완료 아카이브 이동. (PD Editor 가이드 영역 = 옵션 D 보류 영역·차기 영역 활용 가능) |
| BT12-Dev | 2026-04-24 23:00 | **스킬 시스템 설계 (C43 "개발팀" 호칭 직접 수령 + C49 시범 적용)** — PD 직접 지시 "개발팀은 기획서를 토대로 스킬 시스템 설계 진행". 기획서 v0.2 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉.md` 액티브 6카테고리·패시브 5카테고리·각성 4패턴) + CSV v0.3 60종 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉_v0.3.csv` UTF-8 BOM) 토대. C49 표준 프로세스 시범 적용 (개발팀장 Opus 설계 → 클라이언트팀 Sonnet 구현 → 개발팀장 검증) **[Phase 2-A 완료 2026-05-09]** Skills 13 파일 신규 EerieVillage `87710ba` (Interfaces 4 + Data 4 + Runtime 4 + Events 1). **[Phase 2-B 투사체 완료 2026-05-09]** Effectors 7 파일 신규 + SkillFireEvent 정정 EerieVillage `2f2790c` (Sonnet 자율 push·feedback `feedback_pm_sonnet_subagent_unauthorized_push.md` 신설). **[Phase 2-C 투사체 6 asset 완료 2026-05-09]** PD 결정 "(a)안" — 본 PM 직접 placeholder 수치 작성. EerieVillage `c01f25a` (14 파일·A01·A02·A03·A08·A14·A15 ActiveSkillData ScriptableObject). DisplayName 한글만 (한자 X). 차후 balance-designer 정식 수치. SOT 채택 = PD 본문 (A16 사신 강림·A17 오발탄·A18 죽음의 가시). Phase 2 분할 = (b) 5분할 + b-1 카테고리 6분할. **[Phase 2-D BT12-MVP-A 통합 정정 완료 2026-05-09]** EerieVillage `d53150b` — 6 파일 수정 + 9 .meta 보충. LevelUpManager._pool 제거 → SkillRuntimeFactory.RandomDraw3() · SkillSelectionUI/SkillCardSlot ActiveSkillData 시그니처 전환 · PlayerController Awake PlayerSkillInventory 자동 부착 · Projectile Layer Enemy fallback (Minor 1·proxy) · SkillRuntimeFactory.RandomDraw3 신규. Sonnet 의뢰서 "git add·commit·push 절대 금지" 명시 (feedback `feedback_pm_sonnet_subagent_unauthorized_push.md` 정합). Compile error 0건. pm-auditor Pass + Minor 1. | **진행중** | **[Phase 1 완료 2026-04-24]** 개발팀장 Opus 직접 설계 완결 — `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` (1074 라인, 14 섹션). §1 아키텍처 4계층 · §2 인터페이스 4종(`ISkillRuntime`·`IActiveSkill`·`IPassiveSkill`·`IAwakeningSkill`) + ScriptableObject 3종(`ActiveSkillData`·`PassiveSkillData`·`AwakeningSkillData`) + `PlayerSkillInventory`·`PlayerStats` · §3 CSV→ScriptableObject→Runtime→Health.Decrement 데이터 흐름 + 카테고리 문자열 매핑 · §4 VS 순수형 자동 발동 사이클 (OnTime·OnHit·OnKill + `ActiveSkillRuntime.Tick(deltaTime)` 독립 Cooldown) · §5 `AwakeningManager` 3 조건 동시 충족 + 4 패턴 Dispatcher + 다중 각성 선택 UI · §6 카테고리 매핑 6+5+4 (B는 BT7-Dev `AttackHitbox` 재활용 · 나머지 5 효과 발동기 신설) · §7 Phase 2-A~E 작업 단위 분해 (스크립트 25개·테스트 10건·asset 60개) · §10 BT7-Dev 통합 영역 (Health·AttackHitbox·PlayerAttackTicker·PlayerController 완전 보존 · `Health.OnDamagedEvent` 확장 필요 명시) · §11 기각안 5건 + 대화로그 추가 2건 (총 7건 C32 초과). 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` `[BT12-Dev Phase 1 완료] 개발팀장 스킬 시스템 설계 v1 (1074 라인)` 엔트리 완결. **C48 3자문 전수 통과**로 Phase 2 클라이언트팀 Sonnet Task는 본 Task에서 호출하지 않고 **PM 차원 별도 위임** 권고 (C48·C49·C50 정합) | **기획서 확정 대기** (PD 2026-04-25 직접 지시 — "기획서 확정되기 전까지 작업 대기") | **재개 트리거**: 기획팀 v0.3 또는 v1.0 확정 + balance-designer 60종 수치 확정 + narrative-designer 카드명 세계관 재매핑 결정 → C50 Phase 2 사전 승인 옵션(a/b/c/d) PD 결정 → 분할 시 Phase 2-A~E 순차 진행 (인터페이스·SO → 중앙 컴포넌트 → 효과 발동기 → 60장 .asset → EditMode 테스트) → Phase 3 개발팀장 검증 → 완료 아카이브. **선행 차단 블로커**: `paths.local.json.UNITY_PROJECT_ROOT: __SET_PER_PC__` 미설정 — 재개 시 PD PC 경로 설정 필요. Phase 1 산출물 1074 라인 설계 문서는 보존 |
| BT7-Dev | 2026-04-24 | **BT7-Plan 개발 집행 Phase 1** — VS 순수형 자동 발동(공격 버튼 제거, PlayerAttackTicker 주기 타이머) + 하트 분할 시스템(Health.maxHearts·QuartersPerHeart·IncreaseMaxHearts·Heal·Decrement(int)) + EditMode 테스트 갱신(10→13) + AttackHitbox 쿼터 단위 피해 통합 + TODO 주석(EnemyController.attackDamage balance v0.2 대기) | **진행중** | Unity 편집 6파일 · BT 산출물 2파일 · 백업 6종. **Unity 외부 레포 `D:/NerdNavis/EerieVillage/`**: `Assets/Scripts/Gameplay/{PlayerAttack.cs(개정), PlayerAttackTicker.cs(신설)+.meta}`·`Assets/Scripts/Mechanics/{Health.cs(전면개정), PlayerController.cs(Attack입력제거·Facing public), AttackHitbox.cs(Decrement(damage)통합)}`·`Assets/Settings/InputSystem_Actions.inputactions(Attack액션·바인딩 완전 제거)`·`Assets/Tests/Editor/PlayerAttackTests.cs(10→13)`. **BT 레포**: `프로젝트/EerieVillage/개발/06_BT7-Plan_VS순수형_재구조.md`(신설) · `공유/개발팀_백업/EerieVillage/*.bak_20260424_1551.*`(6종). PD 수동 검증 2종(Asset import+EditMode Runner 실행·Player.prefab에 PlayerAttackTicker 부착+Play 검증) | — | **PM 수행 대기**: pm-auditor 감사 → BT worktree commit → Unity 외부 레포는 PD Editor 실행 시 GitAutoSync 자동 push → Play 검증 결과(13 tests green + 자동 공격 발동 확인) 수령 → balance/01 v0.2 확정 후 후속 Phase(EnemyController·적 ATK 테이블·HUD 하트 UI) 분리 착수 → 완료 아카이브 이동 |

View File

@ -437,3 +437,69 @@ Projectile.OnTriggerEnter2D에서 `LayerMask.NameToLayer("Enemy") = -1` 발생
- **임시 정정** (DEFAULT_XP_REWARD = 1·LevelXPTableLoader return 1·Debug.Log 가드) — BT12-Dev 후속
- **balance-designer 60종 정식 수치** — 차기
- **icon sprite asset** — 차기 별도 BT
---
## 엔트리 6 (신설). BT12-Dev 시각화 HUD + 사망 원인 디버그 (PD 후속 지시 2건)
**시각**: 2026-05-09 후반
**주체**: 총괄PM 직접 (단순 반복 카탈로그 v1·~10K 분량)
**대상**: BT12-Dev 후속 — Phase 2-D 통합 정정 후 PD Play 첫 검증 결과 안건 2건
**유형**: PD 직접 지시 2건 (시각화·버그 수정)
### PD 직접 발화 (2026-05-09)
1. > "PlayerSkillInventory 등록이 되었는지 어떻게 판단해야하지? 시각적인 변화가 없으니 확인이 불가능해. 유니티 기본 제공 리소스를 활용해도 좋으니 보이게 해줘."
2. > "스킬 습득 후 일정시간이 지나면 왜 플레이어가 갑자기 죽는거지? 버그를 수정해줘."
### 작업 내용
**안건 1 (시각화 HUD)** — Unity 기본 자원만 활용:
- `Assets/Scripts/MyUI/SkillInventoryHUD.cs` 신규 — `[RequireComponent(PlayerSkillInventory)]` MonoBehaviour. OnGUI로 좌상단 Box 표시.
- 표시 내용: 장착 액티브 스킬 목록 (DisplayName·Lv·CooldownRemaining/EffectiveCooldown) + 패시브 카운트.
- richText 활성·속성별 색상 (제목 #ffd86b·Lv #88c8ff·CD #bbbbbb·패시브 #a0d8a0).
- `PlayerController.Awake`에 자동 부착 추가.
- **투사체 시각화 보강**`ProjectileSpawner.LoadProjectilePrefab` fallback prefab에 SpriteRenderer + 동적 흰색 원 Sprite (16×16 RGBA32 알파 원·정적 캐시) + 속성별 색상 (Fire 주황·Frost 하늘·Dark 보라·Lightning 노랑·Physical 흰). localScale 0.4·sortingOrder 50.
**안건 2 (사망 원인 디버그)** — 가설 + 진단 도구 + 방어 코드:
- **가설 (미검증)**: BT5-Dev EnemyController 자동 patrol → VisualBounds.Intersects → `PlayerEnemyCollision.Execute` (line 64 = `player.health.Decrement()`) 자연 도달 사망. BT5-Dev에선 정상 동작이 카드 선택 후 인지된 패턴.
- `Health.Decrement·DecrementSilent·Die``Debug.Log` + `System.Environment.StackTrace` 추가 → PD Console log로 사망 호출자 stack trace 확정.
- `Projectile.OnTriggerEnter2D``other.GetComponent<PlayerController>() != null return` 추가 (defensive·자기 hit 차단 proxy).
- **검증 절차**: PD Play 테스트 → Console log `[Health@Player] Decrement(...)` 또는 `Die()` stack trace 확인 → 호출자 확정 → 본 PM 보고.
### pm-auditor 사전 감사 결과
- Major 1 (PD 지시 로그 2행 등재 누락) — **정정 적용** (활성 테이블 BT12-Dev-Vis·BT12-Dev-Death 신규 행 추가)
- Minor 1 (대화로그 엔트리 누락) — **본 엔트리로 정정**
- Minor 2 (Layer Enemy 등재 별도 안건 등록) — PM 재량 후속 (검증 후 등록)
- Improvement 1 (가설 단언 경계) — "가설 — 미검증" 태그 적용
### 산출 6 파일
| 파일 | 변경 |
|------|------|
| `Assets/Scripts/MyUI/SkillInventoryHUD.cs` | 신규 (OnGUI HUD) |
| `Assets/Scripts/MyUI/SkillInventoryHUD.cs.meta` | 신규 |
| `Assets/Scripts/Mechanics/PlayerController.cs` | Awake에 SkillInventoryHUD 자동 부착 |
| `Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs` | fallback prefab SpriteRenderer + 동적 sprite + 속성색 |
| `Assets/Scripts/Skills/Effectors/Projectile.cs` | OnTriggerEnter2D Player 차단 |
| `Assets/Scripts/Mechanics/Health.cs` | Decrement·DecrementSilent·Die Debug.Log + StackTrace |
### 본 PM 자성 신규 0건
본 안건 = PD 직접 지시 즉시 처리·feedback 위반 0건·pm-auditor Major 정정 즉시 적용.
### 관련 규칙·자산
- **C2 정합** (proxy vs 근본): Projectile Player 차단·Health Debug = proxy/진단. 근본 = Layer Enemy 등재 + Enemy patrol 정정 (검증 후)
- **C19-2** 정합 — 코드만 변경·prefab/data 무변경
- **C44** 팩트 — AttributeTag enum 실측 (Lightning O·Light X 정정 적용)
- **C49** 표준 — 본 PM 직접 (단순 반복 카탈로그 v1·~10K 분량)
- **C50** 정합 — ~10K (PD 사전 승인 30~50K 범위 내)
### 후속 (PM 의무)
- PD Editor Refresh + Play 테스트 → Console log 확보 → StackTrace 분석 → 가설 확정·부정 결정
- 가설 확정 시: Layer Enemy 정식 등재 (별도 안건 PD 결정) 또는 Enemy patrol 재정정
- 가설 부정 시: 신규 진단 (다른 호출자)
- HUD·투사체 시각화 정상 노출 확인 후 BT12-Dev-Vis 완료 아카이브 이동
- 사망 원인 근본 해결 후 BT12-Dev-Death 완료 아카이브 이동