From caf835d7ccd8f719a2984dafdb513a5b3a39de8e Mon Sep 17 00:00:00 2001 From: swrring Date: Fri, 8 May 2026 19:58:57 +0900 Subject: [PATCH] =?UTF-8?q?docs(BT12-MVP-A=20Phase=202-B=20B+C=20Claude=20?= =?UTF-8?q?Desktop=20=EC=9D=98=EB=A2=B0=EC=84=9C=C2=B7=EC=98=B5=EC=85=98?= =?UTF-8?q?=20E=20=EC=B1=84=ED=83=9D):=20pm-auditor=20Major=201=20?= =?UTF-8?q?=EC=A0=95=EC=A0=95=20+=20=EB=8C=80=ED=99=94=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=20=EC=97=94=ED=8A=B8=EB=A6=AC=2011=20+=20PD=20=EC=A7=80?= =?UTF-8?q?=EC=8B=9C=20=EB=A1=9C=EA=B7=B8=20=EA=B0=B1=EC=8B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD 직접 발화 (2026-05-08): - "단계1은 완료. 단계2, 3은 개발팀에서 작업해줘(Assets/Prefabs/UI/SkillSelectionCanvas.prefab생성 포함)" - 본 PM 4 옵션 (E·D·F·A) 보고 → PD: "E" 산출물: - BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md (신규·~16K) - §1 환경 사전 점검 + §2 단계 2 Prefab 생성 (Hierarchy 28 GameObject·field 32 매핑) - §3 단계 3 Scene 통합 + §4 검증 + §5 commit·push 절차 - §8 Unity MCP 호출 절차 권고 (manage_asset·manage_gameobject·manage_scene) - 대화로그 엔트리 11 (PD 발화 + dev-team-lead Phase 1 재분석 4 옵션 보존 + pm-auditor 감사) - 개발팀 PD 지시 로그 BT12-MVP-A 사후조치 갱신 (옵션 E 채택·단계 4 PD Play 검증·기획팀 별도 안건) dev-team-lead Phase 1 재분석 핵심 발견: - Unity MCP 본 worktree (Claude Code) 사용 X (Claude Desktop ↔ stdio uvx ↔ MCP for Unity 전용) - 4 옵션 (E·D·F·A) 카탈로그·1차 권고 = E (회귀 위험 1/10 ↓·Editor API 활용) pm-auditor 사전 감사 정정 (Major 1 + Minor 1 + Improvement 2): - Major 1: 의뢰서 PD 원문 직접 인용 추가 (C42-2 A 형식) - Minor 1: 대화로그 엔트리 11 추가 (C32) - Improvement 1: dev-team-lead Phase 1 재분석 산출물 본 worktree 보존 (엔트리 11) - Improvement 2: PD Editor 가이드 ↔ Claude Desktop 의뢰서 외연 분리 명시 (C36) 본 PM 자성 누적 4건 (#4 신규 — PD 원문 인용 부재 자성). C49 표준 - Phase 1 재분석 (재호출) + Phase 2 Claude Desktop 위임 + Phase 3 본 worktree dev-team-lead 검증 후속 PD 영역 후속 절차: 1. Claude Desktop 새 세션 시작 + 의뢰서 첨부 2. Claude Desktop dev-team-lead → Unity MCP 자동화 → Prefab + Scene 통합 + EerieVillage commit·push 3. 본 worktree PM 보고 → Phase 3 검증 → 단계 4 PD Play 검증 --- 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md | 2 +- 공유/대화로그/EerieVillage/2026-05-08.md | 117 ++++++ .../spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md | 343 ++++++++++++++++++ 3 files changed, 461 insertions(+), 1 deletion(-) create mode 100644 프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md diff --git a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md index 273e0c5..8568cb3 100644 --- a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md +++ b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md @@ -33,7 +33,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**. | # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 | |---|------|----------|----------|-----------|----------|----------| -| BT12-MVP-A | 2026-05-08 | **경험치·레벨업·스킬 카드 선택 UI** — PD 직접 지시 2건 (1) 적 처치 → EXP → 레벨업마다 스킬 카드 3개 선택 기능 (2) 레벨업 UI (스킬 효과 추후·UI만). PD 첨부 예시 영역 ("기술 선택" 화면 — 카드 3장 가로·색상 배너·원형 아이콘·동심원·"레벨 N"/"최대"·"확인" 버튼). PD 결정 (β) 채택 — BT12-Dev 보류 일부 해제·BT12-MVP-A 분리 항목 진행. | **진행중** | [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 Editor 직접 작업 영역 (가이드 정합) → 완료 후 EerieVillage commit·push ② Phase 3 dev-team-lead 통합 검증 (Phase 1 + 2-A + 2-B asset + 2-B Editor 통합 + BT5-Dev/BT7-Dev 회귀) ③ 기획팀 별도 안건 — `01_카드_풀.md` line 114 P12 = "도약강화" 잔존 정정 (`02_스킬_효과_컨셉.md` line 381·418 영역 동기화 X) ④ icon sprite asset 5장 별도 작업 ⑤ 완료 아카이브 이동 | +| BT12-MVP-A | 2026-05-08 | **경험치·레벨업·스킬 카드 선택 UI** — PD 직접 지시 2건 (1) 적 처치 → EXP → 레벨업마다 스킬 카드 3개 선택 기능 (2) 레벨업 UI (스킬 효과 추후·UI만). PD 첨부 예시 영역 ("기술 선택" 화면 — 카드 3장 가로·색상 배너·원형 아이콘·동심원·"레벨 N"/"최대"·"확인" 버튼). PD 결정 (β) 채택 — BT12-Dev 보류 일부 해제·BT12-MVP-A 분리 항목 진행. | **진행중** | [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 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) 분리 착수 → 완료 아카이브 이동 | | BT5-Dev | 2026-04-23 (2026-05-07 신규 지시 추가) | **EerieVillage Phase 3 파일럿 (개발)** — ①Unity git 초기화·자동 sync ②캐릭터 교체·이동·공격·i-frame ③템플릿 분석 ④~~PlayerTestGirl 아틀라스~~ (2026-05-07 폐기) ⑤**Hero1 정식 캐릭터 교체** (2026-05-07 신규) — `E:/EerieVillage/Assets/Character/Sprites/Hero1/` 37 PNG 자산 적용 + 캐릭터 리소스 규칙 SOT 신설 (모션 8종 + 상태 전환 룰: idle⇄combatidle 5초 타이머·hit 인터럽트 보호·jump·resurrection 시퀀스·death) | **진행중** | [1·3단계 완료] `9f689c1` 원격 push · `scripts/unity_auto_sync.sh` · `01~03_*.md` 분석 3종 [2단계 v0.2 완료] Player·Enemy prefab + 8 EditMode tests [**3단계 PlayerTestGirl 폐기 결정 2026-05-07**] PD 지시로 Hero1 정식 자산 교체. PlayerTestGirl 자산 5종(meta·Idle.anim·Run.anim·Attack.anim·controller·prefab)은 Hero1 기반 재작성 + 신규 자산 추가 (PlayerCombatIdle·PlayerJump·PlayerHit·PlayerResurrection·PlayerDeath.anim). 기존 Player*.png 9종은 `_archive/` 백업 + Hero1 단독 사용. Player.controller 전면 재설계 + Health.cs hit 인터럽트 보호 + 부활 시스템 추가. [**5단계 Hero1 적용 진행중 2026-05-07**] PD 결정 5건 A안 일괄 채택 (`combat idle`→`combatidle` rename·death 모션 8종 확장·jump 1프레임 정합·기존 9종 archive 백업·Land/Spawn/Victory 미사용). 본 PM 매니페스트 등록(`2026-05-07_123431`) + pm-auditor 사전 감사 통과(Critical 0·Major 0·Minor 1·Improvement 2). 본 세션 = `strange-turing-c6797e` worktree 자동 재생성 — 본 작업 후 §6-A 절차 인계 영역 | `프로젝트/EerieVillage/개발/05_PlayerTestGirl_아틀라스_적용.md` (폐기 표기 영역) · `프로젝트/EerieVillage/개발/spec/캐릭터_리소스_규칙_v1.md` (신설) · `프로젝트/EerieVillage/개발/06_Hero1_적용_설계.md` (개발팀장 Opus Phase 1 설계 산출 예정) · Unity 영향 자산 (개발팀장 위임): `Assets/Character/{Sprites/Hero1/*, Animations/{PlayerIdle,PlayerRun,PlayerAttack,PlayerCombatIdle,PlayerJump,PlayerHit,PlayerResurrection,PlayerDeath,Player.controller}}` · `Assets/Prefabs/Player.prefab` · `Assets/Scripts/Mechanics/Health.cs` · `Assets/Tests/Editor/PlayerAttackTests.cs` · `공유/대화로그/EerieVillage/2026-05-07.md` (신설) | — | **C49 표준 프로세스 진행중**: ① 매니페스트 등록 + pm-auditor 감사 ✅ ② 캐릭터 리소스 규칙 SOT 신설 ✅ ③ 개발팀장 Opus Phase 1 설계 ✅ ④ 클라이언트팀 Sonnet Phase 2 적용 ✅ ⑤ 개발팀장 Opus Phase 3 검증 ✅ ⑥ commit `13976e2` + main push ✅ ⑦ **CS0101 사건 + D 옵션 후속 정정** ✅ (PD Editor 실행 시 `.cs.bak_*.cs` 컴파일 에러 → Unity bak_2026* 28 파일 전수 삭제 + Phase 1 §12 백업 명세 전면 정정 + feedback 2종 등록 [`feedback_pm_excessive_decision_request` 헌법급 + `feedback_unity_backup_compile_pollution`]) ⑧ **Hero1 facing 반전 + Collider2D 시각 정합 1차** ✅ (PD 지시 → PM 즉시 처리 — `feedback_pm_excessive_decision_request` 첫 적용. PlayerController spriteRenderer·animator 자식 fallback + Player.prefab BoxCollider2D Size 0.32×0.54→0.45×1.2 + Offset (-0.09,-0.14)→(0,-0.05). PM 시각 판단 실패 — Hero1 "우측 향함"으로 잘못 판단) ⑨ **facing 로직 반전 + Collider Offset 양수 재정정 2차** ✅ ⑩ **피격 무적 깜빡임 + 밟기 복원 + 사망 입력 차단 + 부활 팝업 + 부활 무적** ✅ ⑪ **밟기 점프 판정 강화·Bounce 1/3·낙사 위치 복귀·최적화** ✅ ⑫ **밟기 위치 단독 판정·Enemy Trigger 통과·낙사 카메라 외 대기** ✅ ⑬~㉒ **BT5-Dev #20~#47 발판 시스템 28회 시도** ✅ (2026-05-07 본 세션 진행 — Drop-Through Platform 표준 패턴 도달까지). 핵심: ⑰ Enemy m_Layer 13→14·m_TagString Untagged 진정한 근본 / ㉒ KinematicObject contactFilter 캐싱 영역 진정한 근본 (개발팀장 Opus 진단) / 최종 BT47 Level Tilemap 공중 Tile 자동 영역 Foreground 이동 + Layer 16 + Tile m_ColliderType=Sprite 강제. 헌법급 feedback 5종 신설 (excessive_decision_request·external_repo_commit_omission·mcp_direct_implementation·filler_word_overuse·solution_proactive_proposal). filler_word_check.sh hook 신설. Unity MCP server install 완료 (재시작 후 활성). EerieVillage commit `1024e08` BT47 → ㉓ PD Refresh+Play 검증 (공중 발판 점프·이동 통과·착지) → 완료 아카이브 이동. 세션 종결 인수인계서: `공유/조직공지/2026-05-07_BT5-Dev_세션종결인수인계.md` → ㉔ **BT5-Dev #63~#109 발판·몬스터 시스템** (2026-05-08 본 세션) ✅ — [발판 시스템 영구 마무리 BT63~BT75] Drop-Through 패턴·R2 (AutoForeground 분리)·Down+Jump·가장자리 jitter 차단 [몬스터 sprite 교체 BT76~BT79] M001 늑대 4 모션 (Idle·Run·Hurt·Death)·flipX 정합 [자동 patrol·낭떠러지 차단·밟기 처치 BT80~BT109] 23회+ 가설 누적 부정확 자인 후 PD 근본 진단(절벽 체크 로직 자체 결함) 채택 → BT107 Tilemap.WorldToCell + HasTile 기반 측정 재설계·BT109 footPos.y = bounds.min.y - 0.5f 정정 [EnemyDeath 강화 BT104·BT105] body.simulated=false 제자리 사망·death 애니메이션·1초 Destroy. EerieVillage commit `3dfc466` (BT109). 세션 종결 인수인계서 `공유/조직공지/2026-05-08_BT5-Dev_세션종결인수인계.md`. **잔여**: 좁은 영역(시작 위치 ↔ 절벽 거리 매우 작음) Enemy 패턴 부정합 (PD "일부 제외 정합" — PD 재요청 시 후속) | diff --git a/공유/대화로그/EerieVillage/2026-05-08.md b/공유/대화로그/EerieVillage/2026-05-08.md index 159e682..7891ed8 100644 --- a/공유/대화로그/EerieVillage/2026-05-08.md +++ b/공유/대화로그/EerieVillage/2026-05-08.md @@ -955,3 +955,120 @@ A Assets/Data/SkillPlaceholders/A01_jineonbu.asset - **기획팀 별도 안건**: `01_카드_풀.md` P12 영역 정정 (구 P12 폐기·신 P12 = 생명의 꽃 동기화) - **icon sprite asset 5장**: 별도 영역 작업 (placeholder sprite·하트·검·방패·바람·달 등) - **BT12-Dev 본격**: 60종 카드 효과 영역 (기획서 v0.3 확정 대기) + +--- + +## 엔트리 11. BT12-MVP-A Phase 2-B B+C — Claude Desktop Unity MCP 위임 의뢰서 (옵션 E 채택) + +**시각**: 2026-05-08 후반 (세션 resume 후·BurningTimes commit `259390f` 후속) +**주체**: 총괄PM + dev-team-lead (Phase 1 재분석) + pm-auditor (사전 감사 Major 1 + Minor 1 + Improvement 2) +**영역**: BT12-MVP-A Phase 2-B 잔여 — 단계 2 (Prefab 생성) + 단계 3 (Scene 통합) Claude Desktop Unity MCP 위임 +**유형**: PD 직접 발화 → dev-team-lead Phase 1 재분석 → 4 옵션 보고 → PD 채택 (E) → 본 PM 의뢰서 작성 + +### PD 직접 발화 (2026-05-08) + +> "단계1은 완료되었어. 단계2, 3은 개발팀에서 작업해줘(Assets/Prefabs/UI/SkillSelectionCanvas.prefab생성 포함)" → 단계 4 PD 후속. + +본 PM이 4 옵션 (E·D·F·A) 카탈로그 보고 → + +> PD 원문: **"E"** (옵션 E 채택). + +### dev-team-lead Phase 1 재분석 (~92K) + +직전 권고 (B·C 영역 PD Editor 직접·옵션 D) → PD 명시 (개발팀 작업) → 권고 폐기 + 신규 옵션 분석. + +**핵심 발견 — Unity MCP 본 worktree 사용 X 확증**: +- ToolSearch `+unity` → No matching deferred tools +- Unity MCP 가이드 v2 §1.3 — Claude Desktop ↔ stdio(uvx) ↔ MCP for Unity 전용 +- → **본 worktree (Claude Code) 영역 Unity MCP 직접 호출 X** + +**4 옵션 카탈로그**: + +| 옵션 | 영역 | 회귀 위험 | 토큰 (Phase 2~3) | PD 의도 정합 | +|------|------|------|------|------| +| **E** | Claude Desktop 별도 세션 → Unity MCP 자동화 | **매우 작음** (Editor API 활용) | ~80K (본 worktree) + 별도 세션 | ⚠️ PD 환경 결정 의무 | +| D | PD Editor 직접 + 가이드 v2 보강 | 매우 작음 | ~100K | ❌ "개발팀 작업" 위반 | +| F | Sonnet yaml 분할 (C49 표준) | **큼** (Prefab 1500-2200 라인 + Scene 패치) | ~150-180K | ✅ | +| A | dev-team-lead Opus 직접 yaml | 매우 큼 | ~190-250K | C50 사전 승인·기각 권고 | + +**dev-team-lead 1차 권고 = E** (회귀 위험 1/10 ↓·Unity Editor API 직접 활용·MCP 자체 검증). + +### PD 채택 (E) → 본 PM 의뢰서 작성 + +산출물: `프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md` (~16K) + +**의뢰서 영역 카탈로그**: +- §1 환경 사전 점검 (Unity Editor·MCP for Unity v9.6.6+·Claude Desktop config stdio·EerieVillage git pull `755a51c`) +- §2 단계 2 — Prefab 생성 (Hierarchy 28 GameObject + ~30 Component·SkillCardSlot ×3 자식 8개·field 매핑 8 + 8×3 = 32·color default·sprite fallback·저장) +- §3 단계 3 — Scene 통합 (`[LevelUpManager]` GameObject·Pool 5 asset 등록·Canvas Prefab 인스턴스·`_ui` field 매핑·저장) +- §4 검증 영역 (Editor 시각·회귀) +- §5 commit·push 절차 (EerieVillage commit message 표준·BurningTimes 후속) +- §6 C49 의무 — Phase 2 본 의뢰·Phase 3 본 worktree dev-team-lead 검증 후속 +- §7 자료 인지 의무 (절대 경로 7종) +- §8 Unity MCP 호출 절차 권고 (`manage_asset`·`manage_gameobject`·`manage_scene`) +- §9 분량 — Claude Desktop ~80~150K + 본 의뢰서 ~16K +- §10 후속 영역 (PD 영역 작업 절차·PM Phase 3 검증·단계 4 Play 검증) + +### 산출물 외연 분리 (C36 PM 자율 외연 정합 명시) + +| 산출물 | 영역 | PD 채택 | +|--------|------|------| +| `BT12-MVP-A_Phase2B_PDEditor가이드.md` | PD Editor 직접 작업 (옵션 D) | X (보류·폐기 X) | +| `BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md` | Claude Desktop Unity MCP 위임 (옵션 E) | ✅ | + +### pm-auditor 사전 감사 결과 — Major 1 + Minor 1 + Improvement 2 + +| 등급 | 영역 | 본 PM 정정 | +|------|------|---------| +| **Major 1** | 의뢰서 line 7·13 PD 직접 발화 원문 인용 부재 (C42-2 A) | ✅ 정정 — 발화 원문 직접 인용 추가 (`> PD 원문 (2026-05-08): "..."` 형식) | +| **Minor 1** | 본 worktree 대화로그 신규 엔트리 부재 (C32) | ✅ 정정 — 본 엔트리 11 추가 | +| Improvement 1 | dev-team-lead Phase 1 재분석 산출물 본 worktree 보존 (C49) | ✅ 정정 — 본 엔트리 영역 4 옵션 카탈로그·핵심 발견 인용 | +| Improvement 2 | PD Editor 가이드 ↔ Claude Desktop 의뢰서 외연 분리 명시 (C36) | ✅ 정정 — 의뢰서 §0 영역 외연 분리 명시 | +| (분량) | 의뢰서 §9 ~12K → 실제 ~16K 정정 | ✅ 정정 | + +### 본 PM 자성 누적 (4건) + +| 단계 | 외연 | 자성 | +|------|------|------| +| 1 | dev-team-lead 호출 분량 추정 50~80K → 실제 116K (직전 엔트리 10) | C50 정확도 ↑ | +| 2 | pm-auditor 의뢰문 외부 레포 경로 명시 부족 (직전 엔트리 10) | 차기 의뢰문 paths.local.json 인용 | +| 3 | dev-team-lead Phase 1 보고서 자성 영역 본 PM 검증 부족 (직전 엔트리 10) | BT11-Plan v0.2 grep 의무 | +| 4 | **본 의뢰서 영역 PD 직접 발화 원문 인용 부재 (Major 1)** | C42-2 A 형식 의무 — 모든 의뢰서 영역 PD 원문 인용 표준 | + +### 산출물 + +- **BurningTimes 영역**: + - `프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md` (신규·~16K·Major 1 정정 적용) + - 본 엔트리 11 (Minor 1 정정) + - `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` (BT12-MVP-A 사후조치 영역 갱신 — 옵션 E 채택 + Claude Desktop 의뢰서 영역 추가) + - `.claude/manifest/active/2026-05-08_BT12MVPA_Phase2B_ClaudeDesktop의뢰서.md` (commit 후 자동 archived 이동) + +### 관련 규칙·자산 + +- **C2** 근본 해결 (Unity MCP 본 worktree 사용 X 영역 근본 진단 + Claude Desktop 위임) +- **C3** 이슈 은폐 X (dev-team-lead Unity MCP 가용성 영역 자진 고지·pm-auditor Major 1 정정 적용) +- **C5·C44** 정직성·팩트 우선 (PD 원문 직접 인용·dev-team-lead 실측 결과 인용) +- **C13·C29-4** PD 지시 트래킹 (사후조치 영역 갱신) +- **C32** 대화로그 기록 의무 (본 엔트리 11) +- **C36** PM 자율 외연 (외연 분리 영역 명시) +- **C42-2 A** PD 원문 인용 (Major 1 정정) +- **C43** 호칭 라우팅 (개발팀 = dev-team-lead 정상 호출) +- **C49** 표준 — Phase 1 재분석 (재호출) + Phase 2 Claude Desktop 위임 + Phase 3 본 worktree dev-team-lead 검증 후속 +- **C50** 분량 (Claude Desktop ~80~150K 명시·본 의뢰서 ~16K) +- `feedback_pm_root_diagnosis_priority` (Unity MCP 가용성 사전 확증 부족 영역 자성) +- `feedback_pm_solution_proactive_proposal` (4 옵션 + 권고 능동 제시) + +### 후속 영역 + +- **PD 영역 절차 (E 채택)**: + 1. Claude Desktop 새 세션 시작 + 2. 의뢰서 첨부 (`E:/BurningTimes/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md`) + 3. Claude Desktop 첫 메시지 = "이 의뢰서대로 진행해" 또는 "Unity MCP로 BT12-MVP-A Phase 2-B 단계 2·3 작업 진행" + 4. Claude Desktop dev-team-lead → Unity MCP 자동화 → Prefab + Scene 통합 + EerieVillage commit·push + 5. PD 영역 본 worktree PM 보고 → Phase 3 검증 후속 +- **Phase 3 검증 (PM 본 worktree·dev-team-lead 호출)**: + - Editor import 회귀 + - Inspector field 매핑 정합 (Missing X) + - BT5-Dev/BT7-Dev 영향 X 확증 +- **단계 4 PD Play 검증**: + - 적 처치 → EXP → 레벨업 → SkillSelectionCanvas 노출 → 카드 선택 → 게임 재개 diff --git a/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md b/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md new file mode 100644 index 0000000..ee8b303 --- /dev/null +++ b/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md @@ -0,0 +1,343 @@ +# BT12-MVP-A Phase 2-B B+C — Claude Desktop Unity MCP 위임 의뢰서 + +**작성**: 총괄PM (BurningTimes 본 worktree·`great-meitner-e16aee`) +**일자**: 2026-05-08 +**대상**: Claude Desktop dev-team-lead (또는 Sonnet) — Unity MCP 자동화 호출 주체 +**환경**: PD PC (`E:/EerieVillage` Unity Editor 실행 + MCP for Unity 연동) +**근거**: BurningTimes commit `259390f` 후속·PD 직접 발화 (2026-05-08·본 worktree 대화로그 엔트리 11 정합): + +> PD 원문 (2026-05-08): "단계1은 완료되었어. 단계2, 3은 개발팀에서 작업해줘(Assets/Prefabs/UI/SkillSelectionCanvas.prefab생성 포함)" → 단계 4 PD 후속. +> +> 본 PM이 4 옵션 (E·D·F·A) 카탈로그 보고 → PD 원문: **"E"** (옵션 E 채택). + +--- + +## 0. 본 의뢰 배경 + +BurningTimes 본 worktree (Claude Code) 영역 = Unity MCP 직접 호출 X (Claude Desktop ↔ stdio uvx ↔ MCP for Unity 전용·`공유/조직공지/2026-04-22_Unity_MCP_연동_표준_워크플로우_v2.md` §1.3). PD 직접 발화 결정 = **옵션 E (Claude Desktop 별도 세션 Unity MCP 위임)** 채택. 본 의뢰서 = Claude Desktop 새 세션 dev-team-lead 또는 Sonnet 첨부 작업 의뢰. + +**산출물 외연 분리 (C36 PM 자율 외연 정합 명시)**: +- **PD Editor 직접 영역** = `BT12-MVP-A_Phase2B_PDEditor가이드.md` (직전 commit `259390f`·옵션 D). PD 채택 X = **보류 영역** (폐기 X·차기 영역 활용 가능). +- **Claude Desktop Unity MCP 영역** = 본 의뢰서 (옵션 E). PD 채택 = **본 의뢰 진행**. + +**진행도**: +- ✅ Phase 2-A 시스템 코드 + JSON (EerieVillage `047661c`) +- ✅ Phase 2-B 코드 (UI 컴포넌트 2 + LevelUpManager 통합·EerieVillage `5b2b753`) +- ✅ Phase 2-B asset 5 + meta 7 (EerieVillage `755a51c`) +- ✅ 단계 1 (PD Editor 영역 Unity Editor 준비·Asset Refresh·5 asset import 정합) +- ❌ **단계 2 (Prefab 생성) — 본 의뢰** +- ❌ **단계 3 (Scene 통합) — 본 의뢰** +- (단계 4 = PD Play 검증 — 단계 3 완료 후) + +--- + +## 1. 환경 사전 점검 + +| 점검 | 정합 | +|------|------| +| Unity Editor 영역 EerieVillage 프로젝트 열림 | 의무 | +| MCP for Unity v9.6.6+ 연동 정합 (`mcp__unity__*` 도구 호출 가능) | 의무 | +| Claude Desktop config = stdio uvx 방식 | 의무 (`공유/조직공지/2026-04-22_Unity_MCP_연동_표준_워크플로우_v2.md` §1.3 영역) | +| EerieVillage `git pull origin main` (commit `755a51c` 반영) | 의무 | +| `Assets/Data/SkillPlaceholders/` 5 asset import 정합 (Project 패널 표시) | 검증 | +| Console error 0건 | 검증 | + +--- + +## 2. 단계 2 — `Assets/Prefabs/UI/SkillSelectionCanvas.prefab` 생성 + +### 2-1. Hierarchy 구조 (28 GameObject·~30 Component) + +``` +SkillSelectionCanvas (root·Layer=UI) +├ Canvas (Render Mode=Screen Space-Overlay·Sort Order=200) +├ CanvasScaler (UI Scale Mode=Scale With Screen Size·Reference Resolution=1080×1920·Match=0.5) +├ GraphicRaycaster +├ SkillSelectionUI (Script·MyUI namespace·guid 1fa99265a1e5e354cbe04cb09a331bfc) +│ +└ SkillSelectionPanel (자식) + ├ RectTransform (Anchor=stretch-stretch·offsetMin=0,0·offsetMax=0,0) + ├ Image (Color r:0 g:0 b:0 a:0.78·Sprite=null·반투명 검정 배경) + │ + ├── Header (자식·RectTransform anchor=top stretch·height=120) + │ ├ TitleText (GameObject) + │ │ └ TextMeshProUGUI (Text="기술 선택"·Size=48·Bold·Alignment=Center·Color=white) + │ └ CloseButton (GameObject·anchor=top right·size=80×80) + │ ├ Button + │ ├ Image (Sprite=null·Color white) + │ └ TextMeshProUGUI (Text="✕"·Size=40·Center) + │ + ├── CardArea (자식·RectTransform anchor=middle center·size=900×600) + │ ├ HorizontalLayoutGroup (spacing=40·childAlignment=Middle Center·controlChildSize=both) + │ ├ SkillCardSlot1 (자식·SkillCardSlot 스크립트 부착·아래 2-2 영역) + │ ├ SkillCardSlot2 (동일) + │ └ SkillCardSlot3 (동일) + │ + └── Footer (자식·RectTransform anchor=bottom stretch·height=160) + ├ PointText (GameObject) + │ └ TextMeshProUGUI (Text="남은 포인트: 1"·Size=32·Alignment=Center·anchor=top center) + └ ConfirmButton (GameObject·anchor=bottom center·size=300×80) + ├ Button (interactable=false 초기) + ├ Image (Sprite=null·Color white) + └ TextMeshProUGUI (Text="확인"·Size=36·Center·Color=black) +``` + +### 2-2. SkillCardSlot 자식 영역 (3 슬롯 동일·각 8 자식) + +각 SkillCardSlot GameObject 영역 SkillCardSlot 스크립트 부착 (guid `808d8feb45d3a7345bad1f13adc27895`) + 자식 8개: + +``` +SkillCardSlot (root·size=280×600) +├ TopBanner (Image·anchor=top stretch·height=80·Color=Common 청록 default) +├ NameText (TextMeshProUGUI·anchor=top·offset=top 80·Text="카드명"·Size=32·Center) +├ IconArea (GameObject·anchor=middle center·size=200×200) +│ ├ GlowEffect (Image·동심원·Sprite=null·Color white·Alpha 0.5) +│ └ Icon (Image·anchor=center·size=160×160·Sprite=null) +├ LevelText (TextMeshProUGUI·anchor=middle center·offset middle 240·Text="레벨 1"·Size=24·Center) +├ DescriptionText (TextMeshProUGUI·anchor=bottom stretch·height=140·Text="효과 설명"·Size=18·Center·라인 4) +├ ClickArea (Button·anchor=stretch-stretch·offsetMin=0,0·offsetMax=0,0·전체 카드 영역) +└ HighlightFrame (Image·anchor=stretch·offsetMin=-4,-4·offsetMax=4,4·Color yellow·Active=false) +``` + +### 2-3. SkillSelectionUI 스크립트 영역 Inspector field 매핑 (8 field) + +| Field | 매핑 대상 | +|-------|---------| +| `_rootPanel` | SkillSelectionPanel (GameObject) | +| `_titleText` | Header → TitleText → TextMeshProUGUI | +| `_closeButton` | Header → CloseButton → Button | +| `_slot1` | CardArea → SkillCardSlot1 (SkillCardSlot component) | +| `_slot2` | CardArea → SkillCardSlot2 (SkillCardSlot component) | +| `_slot3` | CardArea → SkillCardSlot3 (SkillCardSlot component) | +| `_pointText` | Footer → PointText → TextMeshProUGUI | +| `_confirmButton` | Footer → ConfirmButton → Button | + +### 2-4. SkillCardSlot 스크립트 영역 Inspector field 매핑 (각 3 슬롯·8 field) + +| Field | 매핑 대상 | +|-------|---------| +| `_topBanner` | TopBanner (Image) | +| `_nameText` | NameText → TextMeshProUGUI | +| `_glowEffect` | IconArea → GlowEffect (Image) | +| `_icon` | IconArea → Icon (Image) | +| `_levelText` | LevelText → TextMeshProUGUI | +| `_descriptionText` | DescriptionText → TextMeshProUGUI | +| `_clickArea` | ClickArea (Button) | +| `_highlightFrame` | HighlightFrame (Image) | + +### 2-5. 색상 default (PD 예시 정합·SkillCardSlot.cs:34-36) + +- Common 청록 = (0.30, 0.70, 0.70, 1.0) +- Rare 노랑 = (0.95, 0.70, 0.25, 1.0) +- Max 빨강 = (0.90, 0.30, 0.30, 1.0) + +(런타임 영역 SkillCardSlot.Bind() 영역 rarity 영역 자동 적용 — 본 Prefab 영역 default = Common.) + +### 2-6. Sprite placeholder 영역 + +현 시점 sprite asset 부재 → 다음 fallback (런타임 자동 처리): +- 카드 배경 = Unity 기본 white sprite + 색상 변경 또는 9-slice null +- 원형 아이콘 = Unity 기본 `Knob` sprite 또는 `UISprite` fallback (Unity Editor 영역 default sprite) +- 동심원 빛 = sprite null → `_glowEffect.enabled = false` (SkillCardSlot.cs:55-59 자동) +- Icon = `{fileID: 0}` reference null → `_icon.enabled = false` 자동 + +### 2-7. Prefab 저장 + +1. Project 패널 영역 `Assets/Prefabs/UI/` 영역 (디렉토리 부재 시 신규 생성) +2. Prefab 영역 Save → `Assets/Prefabs/UI/SkillSelectionCanvas.prefab` 정합 확증 + +--- + +## 3. 단계 3 — Scene `Ingame.unity` 통합 + +### 3-1. Scene 열기 + +1. Project → `Assets/Scenes/Ingame.unity` 활성 +2. Hierarchy 영역 기존 GameObject 카탈로그 인지 (Player·Enemies·Foreground·IngameCanvas·EventSystem 등) + +### 3-2. `[LevelUpManager]` GameObject 추가 + +1. Hierarchy 영역 root level 신규 Empty GameObject +2. 이름: `[LevelUpManager]` (대괄호 포함) +3. Transform: position=0,0,0·rotation=0,0,0·scale=1,1,1 +4. Layer = Default + +### 3-3. LevelUpManager 컴포넌트 부착 + +1. `[LevelUpManager]` 영역 Add Component → `LevelUpManager` (guid `2d141285d4c67174b9cb24f90fcde431`) +2. Inspector 영역 field 매핑 (단계 3-5 영역 후속): + - `_pool` ← (자체 또는 자식 SkillCardPlaceholderPool component) + - `_ui` ← (Scene 영역 SkillSelectionCanvas 인스턴스 영역 SkillSelectionUI component) + +### 3-4. SkillCardPlaceholderPool 컴포넌트 부착 + asset 5 등록 + +1. `[LevelUpManager]` 영역 동일 GameObject 영역 Add Component → `SkillCardPlaceholderPool` (guid `be25627e1168e4f48a273684368704a1`) +2. Inspector 영역 `_allCards` (List) 영역 5장 등록: + - Element 0 → `Assets/Data/SkillPlaceholders/A01_jineonbu.asset` + - Element 1 → `Assets/Data/SkillPlaceholders/A05_hagikjin.asset` + - Element 2 → `Assets/Data/SkillPlaceholders/P01_bonghwanggyeok.asset` + - Element 3 → `Assets/Data/SkillPlaceholders/P12_saengmyeongkkot.asset` + - Element 4 → `Assets/Data/SkillPlaceholders/AW01_cheonbugyeongmun.asset` +3. LevelUpManager `_pool` field → 본 Pool component drag + +### 3-5. SkillSelectionCanvas Prefab 인스턴스 추가 + +1. Project → `Assets/Prefabs/UI/SkillSelectionCanvas.prefab` Hierarchy 영역 root level drag +2. 인스턴스 이름: `SkillSelectionCanvas` (자동) +3. Prefab 영역 reference 매핑 영역 자동 정합 (단계 2-3·2-4 영역) + +### 3-6. LevelUpManager `_ui` field 매핑 + +1. `[LevelUpManager]` 선택 → Inspector → LevelUpManager component +2. `_ui` field → Hierarchy 영역 SkillSelectionCanvas 인스턴스 → SkillSelectionUI component drag + +### 3-7. Scene 저장 + +1. File → Save (Ctrl+S) +2. EerieVillage `git status` → `Assets/Scenes/Ingame.unity` (수정) + `Assets/Prefabs/UI/SkillSelectionCanvas.prefab`(.meta) (신규) 확증 + +--- + +## 4. 검증 영역 + +### 4-1. Editor 시각 검증 (작업 직후) + +- Hierarchy 영역 `[LevelUpManager]` + SkillSelectionCanvas 정합 표시 +- Inspector 영역: + - LevelUpManager `_pool`·`_ui` 정합 매핑 (Missing X) + - SkillCardPlaceholderPool `_allCards` 5장 정합 (Element 0~4 모두 reference 정합) + - SkillSelectionUI 8 field 정합 매핑 (Missing X) + - SkillCardSlot ×3 영역 8 field 각 정합 매핑 (Missing X) +- Console error 0건 + +### 4-2. 회귀 검증 (Phase 1 §5-1 정합) + +| 기존 영역 | 영향 X 확증 | +|------|------| +| Enemy 16 인스턴스 patrol | 영향 X | +| Player 컨트롤 | 영향 X | +| Foreground·Background·Tilemap | 영향 X | +| 기존 IngameCanvas/IngameUI/IngameChoiceSkillUI | 별도 root Canvas (Sort Order 분리·충돌 X) | +| EventSystem | 영향 X | +| BT5-Dev 발판·몬스터 시스템 | 영향 X | +| BT7-Dev 자동 발동 | Time.timeScale=0 영역 검증 = 단계 4 PD Play 영역 | + +(단계 4 PD Play 검증 = 본 의뢰 영역 외 — 단계 3 완료 후 PD 직접 진행.) + +--- + +## 5. 산출물 commit·push 영역 + +### 5-1. EerieVillage 영역 commit (Claude Desktop dev-team-lead 또는 PM 영역) + +```bash +cd E:/EerieVillage +git status --short +# 예상 영역: +# M Assets/Scenes/Ingame.unity +# A Assets/Prefabs/UI/SkillSelectionCanvas.prefab +# A Assets/Prefabs/UI/SkillSelectionCanvas.prefab.meta +# A Assets/Prefabs/UI.meta (디렉토리 신규 시) + +git add Assets/Prefabs/UI Assets/Prefabs/UI.meta Assets/Scenes/Ingame.unity +git commit -m "BT12-MVP-A Phase 2-B B+C: SkillSelectionCanvas.prefab + Scene Ingame 통합 + +- SkillSelectionCanvas.prefab 신규 (28 GameObject·3 SkillCardSlot·field 18+8×3=42 매핑) +- Scene Ingame.unity 통합 ([LevelUpManager] + Pool 5 asset + Canvas 인스턴스) +- BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md 정합 + +C49 Phase 2 Claude Desktop 영역 Unity MCP 자동화 (PD 결정 E) +Phase 3 dev-team-lead 검증 후속 (BurningTimes 본 worktree)" + +git push origin main +``` + +### 5-2. BurningTimes 본 worktree 영역 후속 (PM 영역) + +EerieVillage commit·push 완료 후 BurningTimes 본 worktree 영역: +- 대화로그 엔트리 추가 +- PD 지시 트래킹 BT12-MVP-A 영역 산출물 갱신 +- pm-auditor 통합 감사 + commit·push + +(본 의뢰 영역 외 — Claude Desktop 영역 완료 보고 영역 본 worktree PM 영역 후속.) + +--- + +## 6. C49 의무 — Phase 2 본 의뢰 영역 + +- 본 의뢰 = **Phase 2 (집행)** 영역. Claude Desktop dev-team-lead 또는 Sonnet 영역 작업 주체. +- **Phase 3 (검증)** = BurningTimes 본 worktree 영역 dev-team-lead 영역 후속 (Editor import 회귀·BT5-Dev/BT7-Dev 영향 검증). +- 본 의뢰 영역 외 회귀 위험 영역 (Time.timeScale=0 영역 BT7-Dev 자동 발동) = 단계 4 PD Play 검증 영역. + +--- + +## 7. 자료 인지 의무 (Read 선행) + +| 자료 | 절대 경로 | +|------|------| +| 본 의뢰서 | (본 파일 — Claude Desktop 새 세션 영역 첨부) | +| Phase 1 설계서 | `E:/BurningTimes/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_설계_v1.md` §2·§5 | +| PD Editor 가이드 (참고) | `E:/BurningTimes/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_PDEditor가이드.md` | +| Unity MCP 가이드 v2 | `E:/BurningTimes/공유/조직공지/2026-04-22_Unity_MCP_연동_표준_워크플로우_v2.md` | +| 신규 코드 (UI 2) | `E:/EerieVillage/Assets/Scripts/MyUI/{SkillSelectionUI,SkillCardSlot}.cs` | +| 신규 코드 (Progression 6) | `E:/EerieVillage/Assets/Scripts/Progression/{LevelUpManager,SkillCardPlaceholderPool,SkillCardPlaceholder,...}.cs` | +| asset 5 + meta 5 | `E:/EerieVillage/Assets/Data/SkillPlaceholders/*` | +| Scene | `E:/EerieVillage/Assets/Scenes/Ingame.unity` | + +--- + +## 8. Unity MCP 호출 절차 권고 + +Claude Desktop dev-team-lead (또는 Sonnet) 영역 호출 절차 (참고·실제 도구명·인자 영역 MCP for Unity v9.6.6+ 정합): + +### 8-1. Prefab 생성 (단계 2) +1. `manage_asset` → 신규 Prefab 빈 생성 (`Assets/Prefabs/UI/SkillSelectionCanvas.prefab`) +2. `manage_gameobject` → Prefab 영역 root + Canvas + CanvasScaler + GraphicRaycaster + SkillSelectionUI component 부착 +3. `manage_gameobject` → SkillSelectionPanel + Image + Header + CardArea + Footer 자식 추가 +4. `manage_gameobject` → CardArea 영역 SkillCardSlot ×3 자식 + 각 8 자식 (TopBanner·NameText·IconArea·...) 추가 +5. `manage_gameobject` → 각 component (Image·TextMeshProUGUI·Button·HorizontalLayoutGroup·SkillCardSlot 스크립트) 부착 +6. `manage_gameobject` → field reference 매핑 (8 + 8×3 = 32 매핑) +7. Prefab 저장 + +### 8-2. Scene 통합 (단계 3) +1. `manage_scene` → `Ingame.unity` 활성 +2. `manage_gameobject` → root level `[LevelUpManager]` GameObject 신규 +3. `manage_gameobject` → LevelUpManager + SkillCardPlaceholderPool component 부착 +4. `manage_gameobject` → Pool `_allCards` List 영역 5 asset reference 매핑 +5. `manage_gameobject` → SkillSelectionCanvas Prefab 인스턴스 root level drag +6. `manage_gameobject` → LevelUpManager `_ui` field → Canvas 인스턴스 SkillSelectionUI component reference +7. Scene 저장 + +### 8-3. 검증 +1. `manage_gameobject` → Hierarchy 영역 read·field 매핑 검증 +2. `manage_editor` → Console error 0건 확증 +3. EerieVillage `git status` → 변경 파일 정합 + +--- + +## 9. 분량 — C50 + +- **Claude Desktop 영역 본 의뢰 작업 추정 = 80~150K** (MCP 호출 영역 + 검증 영역). +- 초과 시 Claude Desktop 영역 PM 보고 영역 의무. +- BurningTimes 본 worktree 영역 의뢰서 작성 분량 ~16K (본 파일). + +--- + +## 10. 후속 영역 (작업 완료 후 PD 영역) + +1. PD 영역 EerieVillage commit·push 정합 확증 +2. PD 영역 BurningTimes 본 worktree 영역 PM 보고 (Claude Code 영역) +3. PM 영역 Phase 3 dev-team-lead 검증 호출 (Editor import 회귀·field 매핑 정합) +4. PD 영역 단계 4 Play 검증 (적 처치 → 레벨업 → UI 노출 → 카드 선택 → 게임 재개) +5. BT12-MVP-A 완료 아카이브 이동 + +--- + +**본 의뢰서 = Claude Desktop 새 세션 영역 dev-team-lead 또는 Sonnet 영역 첨부 영역**. + +**PD 영역 작업 절차**: +1. Claude Desktop 영역 새 세션 시작 +2. 본 의뢰서 파일 첨부 (`E:/BurningTimes/프로젝트/EerieVillage/개발/spec/BT12-MVP-A_Phase2B_ClaudeDesktop의뢰서.md`) +3. Claude Desktop 영역 첫 메시지 = "이 의뢰서대로 진행해" 또는 "Unity MCP로 BT12-MVP-A Phase 2-B 단계 2·3 작업 진행" +4. Claude Desktop dev-team-lead → Unity MCP 자동화 → Prefab + Scene 통합 + EerieVillage commit·push +5. 완료 보고 PM (BurningTimes 본 worktree) → Phase 3 검증 후속