docs(BT12-MVP-A Phase 2-B B+C Claude Desktop 의뢰서·옵션 E 채택): pm-auditor Major 1 정정 + 대화로그 엔트리 11 + PD 지시 로그 갱신

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 검증
This commit is contained in:
깃 관리자 2026-05-08 19:58:57 +09:00
parent 259390f769
commit caf835d7cc
3 changed files with 461 additions and 1 deletions

File diff suppressed because one or more lines are too long

View File

@ -955,3 +955,120 @@ A Assets/Data/SkillPlaceholders/A01_jineonbu.asset
- **기획팀 별도 안건**: `01_카드_풀.md` P12 영역 정정 (구 P12 폐기·신 P12 = 생명의 꽃 동기화) - **기획팀 별도 안건**: `01_카드_풀.md` P12 영역 정정 (구 P12 폐기·신 P12 = 생명의 꽃 동기화)
- **icon sprite asset 5장**: 별도 영역 작업 (placeholder sprite·하트·검·방패·바람·달 등) - **icon sprite asset 5장**: 별도 영역 작업 (placeholder sprite·하트·검·방패·바람·달 등)
- **BT12-Dev 본격**: 60종 카드 효과 영역 (기획서 v0.3 확정 대기) - **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 노출 → 카드 선택 → 게임 재개

View File

@ -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<SkillCardPlaceholder>) 영역 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 검증 후속