# BT12-Dev-Clone 세션 종결 인수인계 (2026-05-18)

> **세션 영역**: 2026-05-15 ~ 2026-05-18
> **주 안건**: BT12-Dev-Clone — A10 분신 스킬 4단계 완전 구현 + 본 PM 자성 #1~#7 누적
> **commit 누적**: EerieVillage 외부 git 15건 + BT 레포 1건 (`72ee04a`) + 본 commit (post-commit)

---

## 1. 본 세션 작업 누적

### 1-A. 세션 초반 (2026-04-24~25 영역 영역 누적 commit)

- **BT11-Plan 완료** (`72ee04a`) — 60종 카드 컨셉 표 + CSV v0.3 + 캐주얼 명명
- **BT12 통합** — C48·C49·C50 신설 + 5종 에이전트 본문 인용 + PD 결정 3건 채택 (안건 1 B 잠정 절충·안건 2 C 병존·안건 3 A PM 직접)

### 1-B. BT12-Dev-Clone (2026-05-15 ~ 2026-05-18)

#### PD 직접 지시 (2026-05-15)

> "분신 스킬 구현 — 플레이어 x 1 뒤쪽 반투명 분신·동일 스킬·50% 반감·0.5초 딜레이"

#### PD 결정 4건 (2026-05-15)

| # | PD 결정 |
|---|---------|
| 1 | BaseCooldown 25초 (PM 1차 30 → 조정) |
| 2 | MinionLifetime **12초 자동 소멸** + Singleton (영구 1기 → 변경) |
| 3 | facing 고정 |
| 4 | 무적 = Collider 미부착 |
| 5 | Lv 업 시 분신 수 X · 지속시간+데미지 비율(%)↑ (balance 후속) |

#### C49 표준 프로세스 4단계 — 단계적 진행 + 확인 시점 보고

| 단계 | 작업 | EerieVillage commit |
|------|------|---------------------|
| α | CloneInstance.cs (218 라인) + CloneEffector.cs (24 라인) 신규 | `171506e` |
| β | PlayerSkillInventory·ActiveSkillRuntime·SkillFireEvent·SkillRuntimeFactory 수정 (4) | `171506e` |
| γ | GetSpawnAnchor·GetSpawnFacing helper + 6 Effector 분기 (Projectile·Laser·MeleeArea·LightningStrike·PoisonSwamp·SpiritFire) | `171506e` |
| δ | A10_bunsin.asset + CloneSkillTests.cs EditMode 7건 | `171506e` |

#### 컴파일 오류 fix 누적 (본 PM 자성 #1~#5)

| # | 자성 영역 | EerieVillage commit |
|---|-----------|---------------------|
| 1 | CloneInstance namespace 추정 (`Events` 부재) | `70c98dd` |
| 2 | asmdef `autoReferenced` 추정 (main reference 자동 X) | `618525d` |
| 3 | asmdef 메커니즘 추정 (default assembly 격리) → asmdef 삭제 | `9b955ee` |
| 4 | C# event 외부 `Invoke()` 추정 (CS0070) → `RaisePlayerSkillFired` 메서드 | `a5fcab0` |
| 5 | Test assembly `internal` 접근 추정 (CS0117·CS1061) → `public` | `13b7c36` |

**PD 직접 지시** (자성 #5 후) — "MCP로 검증한 후 보고할 수 없어?" → 본 PM **모든 fix 영역 MCP 사전 검증 강제 채택** (`refresh_unity`·`read_console`·`run_tests`·`get_test_job`).

**MCP 검증 통과**:
- 컴파일 오류 0
- EditMode CloneSkillTests 7건 전수 green (T01~T07·0.7초)

#### PD 후속 영역 fix 누적 (2026-05-18)

| # | PD 보고 | EerieVillage commit |
|---|---------|---------------------|
| - | 판정 박스 시각화 off | `931d8c9` |
| - | 1번키 영역 A10 매핑 강제 + Minion CardId 분기 | `30b765b` |
| - | Player 자식 부착 + Fire 영역 hook + localScale 정합 | `bacc76d` |
| - | FIRE_DELAY 0.5 → 0.25 (50% 단축) | `d603e59` |
| - | 분신 크기 lossyScale 정합 | `e9f9d72` |
| - | 분신 이동 방향 flipX 정정 (deltaX 영역) | `c3749dd` |
| - | worldPos 동조 + SPAWN_OFFSET 1.0 → 0.5 (50% 단축) | `081c771` |
| - | 분신 flipX Player 즉시 동조 (deltaX 폐기·자성 #6·#7) | `779f316` |
| - | 분신 facing 매 frame 갱신 (투사체 방향) + Player IsAlive 영역 분신 destroy | `412dedb` |

---

## 2. 산출물 영역

### Unity 외부 git (E:/EerieVillage)

| 분류 | 경로 |
|------|------|
| 신규 | `Assets/Scripts/Skills/Effectors/CloneInstance.cs` |
| 신규 | `Assets/Scripts/Skills/Effectors/CloneEffector.cs` |
| 신규 | `Assets/Resources/Skills/Active/A10_bunsin.asset` |
| 신규 | `Assets/Tests/Editor/CloneSkillTests.cs` (EditMode 7건) |
| 수정 | `Assets/Scripts/Skills/Runtime/PlayerSkillInventory.cs` (필드·event·helper·Raise 메서드) |
| 수정 | `Assets/Scripts/Skills/Runtime/ActiveSkillRuntime.cs` (Fire hook·50% 분기) |
| 수정 | `Assets/Scripts/Skills/Events/SkillFireEvent.cs` (Minion CardId 분기·Cleanup reset) |
| 수정 | `Assets/Scripts/Skills/Runtime/SkillRuntimeFactory.cs` (A10 추가) |
| 수정 | `Assets/Scripts/Skills/Effectors/{ProjectileSpawner·LaserSpawner·MeleeAreaSpawner·LightningStrikeSpawner·PoisonSwampSpawner·SpiritFireSpawner}.cs` (6 Effector 분기) |
| 수정 | `Assets/Scripts/Skills/Effectors/HitboxDebug.cs` (toggle off) |
| 수정 | `Assets/Scripts/Skills/Test/TestSkillFireOn1to5.cs` (1번키 A10·Minion CardId) |
| 삭제 | `Assets/Tests/Editor/EerieVillage.Tests.Editor.asmdef` (default Assembly-CSharp-Editor 흡수) |

### BT 레포 (E:/BurningTimes)

| 분류 | 경로 |
|------|------|
| 수정 | `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` §A10 신설 (1063~1586·+512 라인) + 잔존 5 위치 PD 결정 정합 |
| 수정 | `프로젝트/EerieVillage/개발/spec/스킬_이펙트_확정_v1.md` §3 A10 + §4 변경 이력 |
| 수정 | `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` BT12-Dev-Clone 완료 표기 |
| 신규 | `공유/대화로그/EerieVillage/2026-05-15.md` (BT12-Dev-Clone 1단계·PD 결정 4건) |
| 신규 | `공유/조직공지/2026-05-18_BT12-Dev-Clone_세션종결인수인계.md` (본 문서) |

---

## 3. PD 명세 5 + PD 결정 4 + PD 후속 영역 정합 확정

| 항목 | 코드 위치 |
|------|----------|
| 위치 (facing 반대 0.5 영역) | CloneInstance.SyncSpriteAndPosition `playerWorldPos + (-signX * 0.5)` |
| 외형 (반투명 alpha 0.5) | SpawnOrReplace `color.a = 0.5f` |
| 동일 스킬 사용 | OnPlayerSkillFired hook → EnqueuePlayerFire → FireAtClonePosition |
| 50% 반감 | ActiveSkillRuntime.CalculateEffectiveDamage `IsCloneFireActive ? × 0.5f` |
| 0.25초 딜레이 | `FIRE_DELAY_SECONDS = 0.25f` (PD 50% 단축) |
| BaseCooldown 25 | A10_bunsin.asset |
| lifetime 12초 자동 소멸 | CloneInstance.Update `Time.unscaledTime - _spawnTime >= 12` |
| facing 매 frame 갱신 | SyncSpriteAndPosition `_spawnFacingX = facing.x < 0 ? -1 : 1` |
| 무적 (Collider 미부착) | SpawnOrReplace 영역 Collider/Rigidbody2D 미부착 |
| 분신 sprite·flipX 매 frame Player 동조 | SyncSpriteAndPosition `_cloneSr.sprite = _playerSr.sprite` + `flipX = _playerSr.flipX` |
| 위치 영역 영역 영역 (MoveTowards) | `Vector3.MoveTowards(currentPos, _targetLocalPos, MOVE_SPEED * Time.deltaTime)` (MOVE_SPEED=3f) |
| Player IsAlive 영역 분신 즉시 destroy | Update 영역 `if (!playerHealth.IsAlive) Destroy(gameObject)` |
| 1번키 영역 A10 강제 매핑 | TestSkillFireOn1to5.EnsureRuntimes 영역 `Resources.Load("Skills/Active/A10_bunsin")` |
| Lv 업 메커니즘 | 1차 미반영 (balance-designer 후속) |

---

## 4. 본 PM 자성 #1~#7 누적 — C39-10 위반 패턴

`feedback_new_code_existing_system_dependency_unmeasured` 7회 재발 — 본 BT12-Dev-Clone 단일 안건.

| # | 영역 | 추정 vs 실제 |
|---|------|------------|
| 1 | CloneInstance namespace | `EerieVillage.Skills.Events` 추정 → 실제 `EerieVillage.Skills` |
| 2 | asmdef autoReferenced | main 자동 reference 추정 → 실제 X (default assembly 격리) |
| 3 | asmdef 메커니즘 | autoReferenced 해결 추정 → 실제 asmdef 자체 삭제 필요 |
| 4 | C# event 외부 invoke | `.Invoke()` 가능 추정 → 실제 CS0070 |
| 5 | Test assembly internal 접근 | internal 동일 assembly 영역 가정 → 실제 X (별도 assembly) |
| 6 | 분신 flipX 영역 영역 (deltaX 영역) | deltaX 영역 영역 영역 영역 추정 → 실제 Player.flipX 영역 영역 영역 영역 영역 |
| 7 | PlayerController 영역 영역 영역 영역 | spriteRenderer.flipX 영역 영역 영역 사전 실측 X (L306·L311 영역 사전 Grep X) |

**근본 패턴**: 본 PM 영역 C# 언어·Unity asmdef·기존 코드 영역 사전 실측 X·7회 누적.

**신뢰 회복 영역 (PD 직접 지시 채택)**: 이후 모든 코드 fix MCP 사전 검증 강제 (`refresh_unity` + `read_console` + `run_tests`).

---

## 5. BT12-Dev-Clone 최종 동작 영역 (PD 확정)

PD Refresh 후 영역 검증 정합:

| 항목 | 동작 |
|------|------|
| 1번키 | A10 분신 spawn (Player 반대 방향 0.5 유닛·반투명 0.5·크기 동일·무적·12초 자동 소멸) |
| Player 영역 영역 | 분신 영역 영역 영역 영역 영역 (MoveTowards·달리는 sprite·flipX 동조) |
| Player 영역 영역 | 분신 영역 영역 영역 영역 영역 영역 영역 → 자연 영역 |
| Player 스킬 발동 (2·3·4·5 키) | 분신 영역 0.25초 후 동일 스킬 미러링 (50% 데미지·분신 위치·매 frame Player facing 정합) |
| 25초 재발동 | 기존 분신 destroy + 새 분신 spawn (Singleton) |
| Player Death | 분신 즉시 destroy (영역 영역 X) |

---

## 6. 활성 PD 지시 영역 (세션 종결 시점)

| 안건 | 상태 | 트리거 |
|------|------|--------|
| **BT12-Dev-Clone** | **완료 2026-05-18 (본 commit 영역 영역 영역)** | 본 commit 후 완료 아카이브 이동 |
| BT12-Dev-Vis | 진행중 | HUD·Icon 잔여 (PD 후속) |
| BT12-Dev | 보류 | 기획서 v0.3 확정 대기 |
| BT12-MVP-A | D안 완료 | 단계 4 PD Play 검증 |
| BT12-Dev-Death | 완료 영역 영역 | 활성 영역 잔존·아카이브 이동 |
| BT7-Dev | 진행중 | PD Editor Play 검증 |
| BT5-Dev | 진행중 | 좁은 영역 Enemy 패턴 영역 (PD 재요청) |
| BT7-Plan | 진행중 | 카드 시스템 개정 영역 영역 |

---

## 7. 다음 세션 첫 프롬프트 템플릿 (C40-2)

```
세션 갱신해. BT12-Dev-Clone 완료 영역 영역 + 활성 안건 영역 영역 영역 보고.
직전 commit (E:/EerieVillage `412dedb` + BT 레포 본 세션 commit) 정합 확인.
```

또는:

```
BT12 보류 영역 영역 (기획서 확정) 또는 BT7-Plan 카드 시스템 개정 영역 우선순위 결정 영역.
```

---

## 8. PM 후속 영역 (본 commit 후)

1. **BT12-Dev-Clone 활성 → 완료 아카이브 이동** — P19 정합·다음 commit
2. **balance-designer 이관 안건** — 분신 Lv 업 지속시간·데미지 비율(%) Lv별 수치
3. **PD 결정 우선순위** — BT12-Dev 보류 해제 (기획서 확정 영역) vs BT7-Plan 카드 시스템 개정 vs 다른 안건

---

## 9. 관련 규칙·feedback

- C1 (PD 지시 = 승인) · C29 (자율 수행) · C32 (대화로그) · C40 (세션 종결 완결성) · C42 (사전 검증) · C44 (팩트 우선) · C46 (정체성) · C47 (능동 추론)
- **C43 호칭 라우팅** (개발팀 직접 수령)
- **C48 시범** (PM 직접 처리·Task 회피)
- **C49 시범** (개발팀장 Opus 설계 → PM 직접 작업 → MCP 검증)
- **C50 적용** (Phase 2 60~80K 사전 승인·옵션 b 4분할 채택)
- **feedback_new_code_existing_system_dependency_unmeasured** 7회 재발 누적
