feat(#55): #38 선행 조건 2·3 집행 + 기획팀 #3 Day 1 완료

개발팀 #38 후속 집행 + 기획팀 #3 Day 1 병렬 라인 C·D 완료.

개발팀 집행:
- 공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_시뮬실행_가이드_v1.md
  선행 조건 3 발행 (환경·JSON·호출·해석·오류·에스컬레이션)
- 공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_실측검증_리포트_v1_스켈레톤.md
  선행 조건 2 스켈레톤 (Unity Editor + MCP 환경 부재로 본문 미채움 · C23 정직)

기획팀장 Task Agent Day 1 수행 (병렬 라인 C·D):
- §1-1 체크리스트 4종·재개 즉시 체크 3단계·Day 1-4 사전 산출물 재독 완료
- 프로젝트/수상한잡화점/기획/재검증_템플릿_v1.md 신규 (16필드)
- 공유/소통/기획팀→개발팀/REQ초안_3성조건_12개_판정로직.md 초안
  (발행은 개발팀 조건 2·3 완결 후 조율)

로그·공유:
- 개발팀 PD 지시 로그 #38 산출물 경로 append (스켈레톤·가이드 추가)
- 기획팀 PD 지시 로그 #3 "진행중 (Day 1 완료)" + 산출물 2종 추가
- 대화로그 #55 엔트리
- .live/2026-04-20_38_3_착수.md 더미

pm-auditor 사전 감사 통과 (Critical·Major 없음, Minor 3건 수용).

5회차 재발 방지 트리거 준수: 작업 전 git ls-remote 실측 +
활성 테이블 재grep 수행.

C23 정직 한계 인정: Unity Editor + MCP 연결 환경 부재로
선행 조건 2 정식 본문 불가. 스켈레톤만 발행. 실측 집행은
환경 확보 후 개발팀장·기획팀장 공동 검증.
This commit is contained in:
깃 관리자 2026-04-20 15:51:31 +09:00
parent d9d11217e6
commit fe54567830
7 changed files with 693 additions and 2 deletions

View File

@ -32,7 +32,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**.
| # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 |
|---|------|----------|----------|-----------|----------|----------|
| 2 | 2026-04-14 | 서버 Critical 보안 3건 보류 | 보류 | `프로젝트/수상한잡화점/개발/05_서버연동_현황_v1.md` | 서버 파트 정비 미완료 (PD님 지시) | 서버팀 가동 시점에 블로커급 재개. 담당: 서버팀장. 재개 트리거: 서버 파트 정비 완료 통보 |
| 38 | 2026-04-17 | (#28 후속 분리) Phase 3 재개 로드맵 결정 — Unity MCP 단일축 기반 밸런스 작업 재개 범위·선후관계·검증 축 확정 | **진행중** | `프로젝트/수상한잡화점/개발/13_Phase3_재개로드맵_확정_v1.md` + `공유/소통/개발팀→기획팀/2026-04-20_Phase3_재개_로드맵_병렬착수.md` (2026-04-20 로드맵 3요소 확정 + 기획팀 병렬 라인 C·D 착수 전달) | - | 2026-04-20 PD 재개 지시 수령. 과거 HOLD 트리거 사유(Python 시뮬 수치 괴리·Unity MCP 전환 필요)는 **#28·#37 완료로 종결**. 현 진행 블로커 없음. 잔여 선행 조건 2(Unity MCP 실측 검증 리포트)·3(기획팀용 실행 가이드)은 본 로드맵 §6 후속 집행 계획으로 수용 — Unity Editor + MCP 연결 환경 별도 집행 필요 |
| 38 | 2026-04-17 | (#28 후속 분리) Phase 3 재개 로드맵 결정 — Unity MCP 단일축 기반 밸런스 작업 재개 범위·선후관계·검증 축 확정 | **진행중** | `프로젝트/수상한잡화점/개발/13_Phase3_재개로드맵_확정_v1.md` + `공유/소통/개발팀→기획팀/2026-04-20_Phase3_재개_로드맵_병렬착수.md` + **`공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_실측검증_리포트_v1_스켈레톤.md`** (선행 조건 2 템플릿) + **`공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_시뮬실행_가이드_v1.md`** (선행 조건 3 발행) | - | 2026-04-20 PD 재개 지시 수령. 과거 HOLD 트리거 사유(Python 시뮬 수치 괴리·Unity MCP 전환 필요)는 **#28·#37 완료로 종결**. 현 진행 블로커 없음. 선행 조건 2는 **스켈레톤만 제공** (Unity Editor + MCP 연결 환경 부재 · C23 정직), 실측 본문은 환경 확보 후 집행. 선행 조건 3 가이드 v1 **발행 완료** — 기획팀 Day 2~3 착수 전 정독 필요 |
> **2026-04-15 오후 추가 갱신 (C4·C13 위반 자진 정정 2차)**:
> #5번 신규 등재. PD님 3대 지시(A/B/C) 및 #1 산출물 경로에 Framework Tier 1 구현체(`D:/NerdNavis/NerdNavis.Framework/`)를 소급 등록. **B 착수 시점 및 Git 동기화 병렬 지시(#4) 착수 시점에 총괄PM 공유를 누락**한 건을 PD님이 직접 지적하여 즉시 정정. 근본 원인: "C 항목 진행 전 지시 대기" 지시를 본인이 **PM 공유 전체 보류**로 잘못 확대 해석. C4(총괄PM 하달)·C13(4단계 가시화)의 "작업 착수 시점=상시 공유 의무" 원칙을 거스른 것. 재발 방지 관례: **신규 트랙 착수 즉시 pm-general 공유 → TodoWrite 항목 생성** (총괄PM 채택 권고). 자체 경위는 `공유/일일보고/2026-04-15_개발팀.md` 오후 섹션 참조.

View File

@ -38,7 +38,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**.
| # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 |
|---|------|----------|----------|-----------|----------|----------|
| 3 | 2026-04-15 (세션 중반) | Phase 3 업무 착수 지시 | **진행중** | `프로젝트/수상한잡화점/기획/Phase3_재개준비_체크리스트_v1.md` + `공유/소통/개발팀→기획팀/2026-04-20_Phase3_재개_로드맵_병렬착수.md` (개발팀 #38 로드맵 확정 + 병렬 착수 전달 수령) | - | 2026-04-20 PD 재개 지시 수령. 병렬 라인 C·D(Day 1-1 재개 즉시 체크 3단계 + §1-1 체크리스트 · Day 1-4 기존 3개 사전 산출물 재독 · 재검증 로그 템플릿 · 3성 조건 REQ 초안) **Unity MCP 실행 불요로 즉시 착수 가능**. Day 2~3 이후 작업은 개발팀 선행 조건 2(실측 검증 리포트)·3(실행 가이드) 완결 후 순차 진행. 기획팀장 회신 기대: `공유/소통/기획팀→개발팀/{YYYY-MM-DD}_Phase3_병렬착수_확인.md` |
| 3 | 2026-04-15 (세션 중반) | Phase 3 업무 착수 지시 | **진행중 (Day 1 완료)** | `프로젝트/수상한잡화점/기획/Phase3_재개준비_체크리스트_v1.md` + `공유/소통/개발팀→기획팀/2026-04-20_Phase3_재개_로드맵_병렬착수.md` + **`프로젝트/수상한잡화점/기획/재검증_템플릿_v1.md`** (Day 1 재검증 로그 템플릿 신규 작성) + **`공유/소통/기획팀→개발팀/REQ초안_3성조건_12개_판정로직.md`** (Day 1 REQ 초안 준비, 발행 대기) | - | 2026-04-20 PD 재개 지시 수령 + Day 1 병렬 라인 C·D 완료 (재개 즉시 체크 3단계·§1-1 체크리스트 4종·Day 1-4 3개 사전 산출물 재독·재검증 로그 템플릿 작성·3성 조건 REQ 초안). Day 2~3 Phase 0~2 재검증 6건 착수는 **개발팀 선행 조건 2(실측 검증 리포트 정식본) 완결 + Day 1-3 앵커 시뮬 간이 검증 통과** 대기. 3성 조건 REQ 발행은 개발팀 조건 2·3 완결 후 기획팀장↔개발팀장 조율 |
---

View File

@ -679,3 +679,79 @@ pm-auditor 감사: **Critical·Major 없음 통과**. Improvement 1(외연 확
- 집행 7종 완료 · commit + push 후 조직 공유 완료 (C18)
- PM 역할 재검토 자진 상정 완료 · PD님 판정 대기
- C31-E 확장 안건 PD 승인 대기
---
<!-- #PD지시 #개발팀세션 #진행중 #55 #38집행 #3Day1완료 -->
## [개발팀 세션 집행] #55 #38 선행 조건 2·3 집행 + 기획팀 #3 Day 1 완료
### 요지
PD님 "#38 개발팀 업무 진행하고 기획팀 #3 업무 진행하도록 공유해서 업무 착수하도록 해" 수용. 개발팀 선행 조건 2·3 집행 (실측 검증 리포트 스켈레톤 + 시뮬 실행 가이드 v1) + 기획팀장 Task Agent 호출로 Day 1 병렬 라인 C·D 완료.
### 집행 (개발팀 선행 조건 2·3)
1. **선행 조건 3 완결**: `공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_시뮬실행_가이드_v1.md` **발행** — Unity Editor 기동·MCP 연결 확인·시나리오 JSON 작성·execute_code 스니펫·결과 JSON 해석·자주 발생 오류 TOP 5·에스컬레이션 경로
2. **선행 조건 2 스켈레톤**: `공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_실측검증_리포트_v1_스켈레톤.md`**Unity Editor + MCP 연결 환경 부재로 본문 미채움** (C23 정직 고지). 시나리오 5종·결정론·리플레이·PlayMode 대조·오차 측정 템플릿만 제공. 실측은 환경 확보 후 집행
### 집행 (기획팀 #3 Day 1)
3. **Task Agent `기획팀장` 호출**: Day 1 병렬 라인 C·D 완료 보고 수령
- §1-1 체크리스트 4종 결과: #3·#4 OK, #1 설계부만 OK (실 구현은 환경 대기), #2 스켈레톤만 — **Day 1 착수 조건 만족**
- Day 1-4 기존 3개 사전 산출물 재독 완료 (맵패턴·일관성점검·재논의대기 각 핵심 요약)
- **`프로젝트/수상한잡화점/기획/재검증_템플릿_v1.md` 신규 작성** (재검증 로그 16필드 템플릿)
- **`공유/소통/기획팀→개발팀/REQ초안_3성조건_12개_판정로직.md` 신규 작성** (3성 조건 12개 판정 로직 REQ 초안, 발행은 조건 2·3 완결 후 조율)
### C27 의무 이행 (PM → 기획팀 #3 로그 갱신)
기획팀 PD 지시 로그 #3 상태·산출물 경로 PM 직접 갱신 (보류 → 진행중 (Day 1 완료)):
- 산출물 2종 경로 추가
- 사후 조치: "Day 2~3 착수는 개발팀 선행 조건 2(실측 검증 리포트 정식본) 완결 + Day 1-3 앵커 시뮬 간이 검증 통과 대기"
### pm-auditor 사전 감사 결과
Critical·Major 없음 통과. Minor 3건 권고:
- Minor 1 (감사관 환경 git 인증 실패): 본 세션 Bash ls-remote 정상 실측 확인. 특이 없음
- Minor 2 (Task Agent 결과 PM 대화로그 반영): 본 #55 엔트리에 요약 반영 완료
- Minor 3 (선행 조건 번호 순서): 로그 산출물 경로 2·3 순서 준수
### 한계 인정 (C23 정직)
- Unity Editor + MCP 연결 환경 부재 → **선행 조건 2 정식 본문 작성 불가**. 스켈레톤만 발행 + 실측 집행은 환경 확보 후 개발팀장·기획팀장 공동 검증
- Day 1-3 "앵커 시뮬 실행 가능 확인"은 Unity Editor 환경 필요하므로 본 세션 범위 밖. 기획팀장 가이드 정독만 수행
### 5회차 재발 방지 트리거 준수
본 집행 전:
- `git ls-remote origin refs/heads/main` = `d9d1121` local·remote 일치 확인
- `grep -E "^\| [0-9]" 공유/PD_지시_트래킹/*_로그.md` 활성 테이블 재grep 수행
- 개발팀 #2·#38 / 기획팀 #3 2건 진행중 실측 확인 (해시 일치 + 내용 본문 검증)
### C31 자기검증 통과
- A (C29): PM 재량 집행 ✓
- B (C27): Task Agent 결과 수령 후 PD 지시 로그 갱신 PM 직접 수행 ✓
- C (C5·C22·C23·C25): 실측 근거·용어 일관·한계 자진 고지·넘버링 일관 ✓
- E (기존 자산 우선): Phase3 체크리스트 v1·시뮬레이터 설계 4종·REQ 템플릿·기획팀장 서브에이전트 재활용 ✓
- F (C35): pm-auditor 사전 감사 통과 ✓
- G (feedback 본문 선행 Read): resolved_cause_as_current_hold 시제 분리 적용 ✓
- H (C36): 본 집행은 구현·실무 수준 ✓
### 후속 트랙
- **개발팀**: Unity Editor + MCP 연결 환경 확보 시 선행 조건 2 실측 리포트 정식본 집행. 결정론·리플레이·PlayMode 대조 수행 → 기획팀 Day 2~3 착수 트리거
- **기획팀**: Day 2~3 Phase 0~2 재검증 6건 대기 (개발팀 조건 2 정식본 + Day 1-3 간이 검증 통과 조건)
- **3성 조건 REQ 발행**: 개발팀 조건 2·3 완결 후 기획팀장↔개발팀장 조율
### 산출물 (4종 신규)
- `공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_시뮬실행_가이드_v1.md` (선행 조건 3 발행)
- `공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_실측검증_리포트_v1_스켈레톤.md` (선행 조건 2 스켈레톤)
- `프로젝트/수상한잡화점/기획/재검증_템플릿_v1.md` (기획팀장 Day 1 — 재검증 로그 16필드 템플릿)
- `공유/소통/기획팀→개발팀/REQ초안_3성조건_12개_판정로직.md` (기획팀장 Day 1 — 3성 조건 REQ 초안)
### 상태
- 집행 8종 완료 · commit + push 후 조직 공유 완료 (C18)
- 개발팀 #38 선행 조건 2(스켈레톤)·3(정식본) 집행 완료 · 기획팀 #3 Day 1 완료
- 후속 집행은 Unity Editor + MCP 연결 환경 확보 시점 대기

View File

@ -0,0 +1,211 @@
---
type: 실행가이드
from: 개발팀장
to: 기획팀장·밸런스기획자
date: 2026-04-20
subject: 기획팀용 Unity MCP 시뮬 실행 가이드 v1 (선행 조건 3)
status: 발행
reference:
- 프로젝트/수상한잡화점/시뮬레이터/01_시뮬레이터_아키텍처_v1.md
- 프로젝트/수상한잡화점/시뮬레이터/02_시나리오_JSON_스키마_v1.md
- 프로젝트/수상한잡화점/시뮬레이터/03_결과_JSON_포맷_v1.md
- 프로젝트/수상한잡화점/시뮬레이터/04_MCP_호출_스니펫_v1.md
---
# 기획팀용 Unity MCP 시뮬 실행 가이드 v1
## 0. 본 가이드 목적
기획팀(특히 밸런스기획자)이 Phase 3 재개 시 **Unity MCP EditMode 기반 시뮬을 독립적으로 실행**할 수 있도록 환경 준비·시나리오 작성·실행·결과 해석·오류 대응 표준 절차 제공. `시뮬레이터/01~04_*.md` 설계 문서의 **기획팀 실무 관점 축약본**.
> **선행 조건 2(실측 검증 리포트 v1) 확정 후 본 가이드 §3 예시 결과값이 실측 기준으로 갱신됩니다.**
---
## 1. 환경 준비 (세션 시작 시 1회)
### 1-1. Unity Editor 기동
- Unity Editor로 수상한잡화점 프로젝트 오픈
- 콘솔에 컴파일 에러 없는 상태 확인
- `Assets/Sim/NerdNavis.Sim.asmdef` 로드 확인 (Project 창)
### 1-2. MCP 연결 확인
- Claude Code 세션에서 `mcp__unity-mcp__*` 도구 사용 가능 여부 확인
- 간이 확인: `mcp__unity-mcp__manage_editor` 호출하여 Editor 상태 수신
### 1-3. 연결 실패 시
- 가이드 §6 "자주 발생 오류 TOP 5" 참조
- 해결 불가 시 `공유/소통/기획팀→개발팀/{YYYY-MM-DD}_REQ{번호}_MCP연결이슈.md` 발행
---
## 2. 시나리오 JSON 작성
### 2-1. 기본 구조 (`02_시나리오_JSON_스키마_v1.md` 참조)
```json
{
"scenario_id": "anchor_pc6001",
"seed": 12345,
"actors": [
{
"id": "pc_6001",
"type": "pc",
"maxHP": 100,
"attackDmg": 1.05,
"attackCoolTime": 1.0
},
{
"id": "mob_basic",
"type": "monster",
"maxHP": 6.0,
"attackDmg": 0.5
}
],
"max_ticks": 600
}
```
### 2-2. 필수 필드
- `scenario_id`: 고유 식별자 (재검증 로그에 활용)
- `seed`: 결정론 보장용 시드
- `actors[]`: PC·몬스터 최소 정보 (HP·공격·쿨타임)
- `max_ticks`: 무한 루프 방지 상한
### 2-3. 저장 위치
- 기획팀 작업: `프로젝트/수상한잡화점/기획/시뮬시나리오/{scenario_id}.json`
- Unity MCP는 절대 경로 또는 Assets 하위 상대 경로로 전달
---
## 3. 실행 — `execute_code` 호출
### 3-1. 표준 스니펫 (`04_MCP_호출_스니펫_v1.md` 축약)
```csharp
// mcp__unity-mcp__execute_code 전달용
using NerdNavis.Sim;
var runner = new SimulationRunner();
var result = runner.Run("Assets/Sim/Scenarios/anchor_pc6001.json");
var json = UnityEngine.JsonUtility.ToJson(result, true);
System.IO.File.WriteAllText("Assets/Sim/Results/anchor_pc6001_result.json", json);
return json;
```
### 3-2. 배치 실행 (스윕)
파라미터 N개 배열을 내부 루프로 반복:
```csharp
var results = new List<SimulationResult>();
foreach (var path in scenarioPaths) {
results.Add(new SimulationRunner().Run(path));
}
```
### 3-3. 반환 형식
- 기본: JSON 문자열 (stdout)
- 파일: `Assets/Sim/Results/{scenario_id}_result.json`
---
## 4. 결과 JSON 해석 (`03_결과_JSON_포맷_v1.md` 축약)
### 4-1. 핵심 필드
```json
{
"scenario_id": "anchor_pc6001",
"total_ticks": 342,
"actors_final": [
{ "id": "pc_6001", "hp_final": 45.2 },
{ "id": "mob_basic", "hp_final": 0, "is_dead": true }
],
"metrics": {
"dps_pc_6001": 1.048,
"ttk_mob_basic": 5.68
}
}
```
### 4-2. 기획 가정 vs 실측 대조 표
| 항목 | 기획 가정 | 실측 (MCP) | 오차 | 판정 |
|------|---------|---------|------|-----|
| PC 6001 DPS | 1.05 | (실측) | (%) | 10% 이내? |
| 몬스터 TTK | 5.7s | (실측) | (%) | 10% 이내? |
**오차 10% 이내** → 기획 가정 채택. **초과** → 개발팀에 `Assets/Sim/Models/` 재조정 REQ 발행 + Day 8~10 이슈 통합 재논의 이관.
### 4-3. 재검증 로그 기록 형식 (`Phase3_재개준비_체크리스트_v1.md §5` 명명 규칙)
재검증 결과는 `재검증보고_Phase0_1_2_v1.md`·`Phase3_성장요소기여도_v2.md` 등 SOT에 다음 형식으로 append:
```markdown
## [항목 #N] 재검증 결과
- 기획 가정: (값)
- Unity MCP 실측: (값)
- 오차: (%)
- 판정: (채택 / 재조정 필요)
- 실행 일시: YYYY-MM-DD HH:MM
- 시나리오 ID: (scenario_id)
- 결과 JSON 경로: (path)
```
---
## 5. 검증 체크리스트 (매 실행마다)
- [ ] Unity Editor 콘솔 에러 없음
- [ ] MCP `execute_code` 호출 성공 (반환값 수신)
- [ ] 결과 JSON 구조 정상 (`scenario_id`·`total_ticks`·`actors_final`·`metrics` 존재)
- [ ] 동일 시드 2회 실행 결과 일치 (결정론 간이 확인)
- [ ] 기획 가정 vs 실측 오차 기록
---
## 6. 자주 발생 오류 TOP 5
| # | 증상 | 원인 | 해결 |
|---|------|-----|-----|
| 1 | `mcp__unity-mcp__execute_code` 호출 실패 | MCP 서버 미연결 | Unity Editor 재기동 + MCP 재연결 (개발팀 에스컬레이션) |
| 2 | `NerdNavis.Sim` 어셈블리 미로드 | Editor-only 속성 충돌 | `Assets/Sim/NerdNavis.Sim.asmdef` 재임포트 |
| 3 | 결과 JSON `actors_final[].hp_final` 음수 | DamageCalc 감소 하한 누락 | 개발팀에 REQ (`Assets/Sim/Models/DamageCalc.cs` 하한 클램프 추가) |
| 4 | 동일 시드 2회 실행 결과 상이 | 난수 상태 오염 | 시나리오 JSON `seed` 명시 여부 재확인 |
| 5 | `total_ticks == max_ticks` 무한 루프 의심 | 전투 종료 조건 미달 | 시나리오 몬스터 HP·공격력 재조정 or 상한 확대 |
---
## 7. 에스컬레이션 경로
| 상황 | 대상 | 채널 |
|------|-----|-----|
| MCP 시뮬 실행 실패 | 개발팀 클라이언트팀장 | `공유/소통/기획팀→개발팀/{YYYY-MM-DD}_REQ{번호}_MCP연결이슈.md` |
| 오차 10% 초과 지속 | 개발팀 클라이언트팀 | `공유/소통/기획팀→개발팀/{YYYY-MM-DD}_REQ{번호}_시뮬모델재조정.md` (REQ 템플릿: `공유/소통/기획팀→개발팀/REQ-템플릿_밸런스수치.md`) |
| 검증 축·범위 재해석 필요 | 개발팀장 | 로드맵 v2 개정 요청 |
| 테이블 변경 필요 (PD 승인 전제) | 총괄PM → PD님 | 기획팀장 상신 |
---
## 8. 다음 단계 (Phase3 재개준비 체크리스트 §2)
본 가이드로 실행 환경 확보 후:
- **Day 1-3 간이 실행 테스트** (앵커 시뮬 1회 실행, 실 빌드 결과와 대조)
- **Day 2~3 Phase 0~2 재검증 6건** (`재검증보고_Phase0_1_2_v1.md` 작성)
- **Day 4~7 성장 요소 기여도 6건** (`Phase3_성장요소기여도_v2.md` 신규 작성)
---
## 참조
- `프로젝트/수상한잡화점/시뮬레이터/01_시뮬레이터_아키텍처_v1.md` (독립 어셈블리 설계)
- `프로젝트/수상한잡화점/시뮬레이터/02_시나리오_JSON_스키마_v1.md` (입력 스키마)
- `프로젝트/수상한잡화점/시뮬레이터/03_결과_JSON_포맷_v1.md` (출력 스키마)
- `프로젝트/수상한잡화점/시뮬레이터/04_MCP_호출_스니펫_v1.md` (상세 스니펫)
- `공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_실측검증_리포트_v1_스켈레톤.md` (선행 조건 2)
- `공유/소통/기획팀→개발팀/REQ-템플릿_밸런스수치.md` (REQ 템플릿)

View File

@ -0,0 +1,136 @@
---
type: 실측검증리포트
from: 개발팀장
to: 기획팀장
date: 2026-04-20
subject: Unity MCP EditMode 실측 검증 리포트 (선행 조건 2) — 스켈레톤
status: 스켈레톤 (본문 미채움)
reference:
- 프로젝트/수상한잡화점/개발/13_Phase3_재개로드맵_확정_v1.md
- 프로젝트/수상한잡화점/시뮬레이터/01_시뮬레이터_아키텍처_v1.md
---
# Unity MCP EditMode 실측 검증 리포트 v1 (스켈레톤)
## ⚠️ 스켈레톤 고지 (C23 정직)
**본 리포트는 구조·체크리스트·결과 입력 템플릿만 제공**한다. **Unity Editor + MCP 연결 환경 부재**로 실측 결과는 **미채움**. Unity Editor 기동 + `mcp__unity-mcp__*` 연결 확보 시 개발팀장·기획팀장 공동 검증 후 본 리포트 §2~§6 결과 채움 + v1 확정.
---
## 0. 검증 목적
`13_Phase3_재개로드맵_확정_v1.md §5 검증 축` 정본 판정 기준 실증:
- Unity MCP EditMode 실측 = Phase 3 v2 수치 정본
- 결정론·리플레이 보장
- Unity 실 빌드 PlayMode vs MCP 시뮬 오차 10% 이내
## 1. 환경 (검증 시 실 기입)
| 항목 | 실기입란 |
|------|---------|
| Unity Editor 버전 | (예: 2022.3.x) |
| 빌드 해시 | (예: Dev 브랜치 43b6074c4 또는 최신) |
| MCP 연결 방식 | `mcp__unity-mcp__execute_code` |
| `Assets/Sim/` 어셈블리 상태 | (예: NerdNavis.Sim.asmdef 정상 로드) |
| 검증 일시 | (YYYY-MM-DD HH:MM) |
| 검증 담당 | 개발팀장 · 기획팀장 공동 |
## 2. 시나리오 5종 실행 결과 (미채움)
### 2-1. 앵커 전투 (PC 6001 단독 vs 기본 몬스터)
| 항목 | 기획 가정 | 실측 (MCP) | 오차 |
|------|---------|---------|------|
| DPS | 1.05 | _____ | _____ |
| 몬스터 TTK | 5.7s | _____ | _____ |
| 최종 HP | _____ | _____ | — |
실행 로그: `(결과 JSON 경로)`
### 2-2. 카드 시너지 1 (G1 1장)
| 항목 | 기획 가정 | 실측 (MCP) | 오차 |
|------|---------|---------|------|
| DPS 증가율 | +22% | _____ | _____ |
| TTK 변화 | _____ | _____ | — |
### 2-3. 카드 시너지 2 (G1 5장)
| 항목 | 기획 가정 | 실측 (MCP) | 오차 |
|------|---------|---------|------|
| TTK 감소율 | -45% | _____ | _____ |
### 2-4. 성장 요소 1 (각성 만렙)
| 항목 | 기획 가정 | 실측 (MCP) | 오차 |
|------|---------|---------|------|
| 기여도 | +40~60% | _____ | _____ |
### 2-5. 성장 요소 2 (진화 6★)
| 항목 | 기획 가정 | 실측 (MCP) | 오차 |
|------|---------|---------|------|
| 기여도 | +30~50% | _____ | _____ |
## 3. 결정론 검증 (미채움)
동일 시나리오 JSON · 동일 시드 · 동일 빌드 해시로 **3회 반복 실행** 후 결과 JSON 해시 완전 일치 확인:
| 실행 # | 결과 JSON SHA256 | 일치 여부 |
|-------|---------------|--------|
| 1 | _____ | — |
| 2 | _____ | 1회차와 일치? |
| 3 | _____ | 1회차와 일치? |
**판정**: (결정론 보장 / 미보장)
## 4. 리플레이 검증 (미채움)
결과 JSON을 재주입하여 **동일 tick 수 · 동일 최종 상태** 재현:
| 항목 | 원본 실행 | 리플레이 | 일치 여부 |
|------|---------|--------|--------|
| 총 tick 수 | _____ | _____ | — |
| 최종 actors 상태 | _____ | _____ | — |
**판정**: (리플레이 보장 / 미보장)
## 5. Unity 실 빌드 PlayMode 대조 (앵커 1건 이상)
앵커 전투 시나리오(§2-1) Unity 실 빌드 PlayMode 실행 결과 대조:
| 항목 | MCP 시뮬 | 실 빌드 PlayMode | 오차 |
|------|--------|--------------|------|
| DPS | _____ | _____ | _____ |
| TTK | _____ | _____ | _____ |
| 최종 HP | _____ | _____ | _____ |
**판정**: (오차 10% 이내 → 시뮬 정본 채택 / 초과 → `Assets/Sim/Models/` 재조정)
## 6. 오차 원인 분석 (오차 10% 초과 시에만)
| 오차 항목 | 원인 분석 | 대응 |
|--------|--------|-----|
| _____ | (시뮬 모델 누락 / 실측 데이터 차이 / 메커닉 재구현 오차 등) | (`DefenceModel` 수정 / `DamageCalc` 수정 / 기획 가정 재검증 등) |
## 7. 검증 후속 조치
- 결정론·리플레이 **보장** + 오차 10% 이내 → **Phase 3 v2 수치 산출 SOT로 MCP 시뮬 채택 확정**. 기획팀 Day 2~3 착수 트리거
- 미보장 or 오차 초과 → `Assets/Sim/` 모델 재조정 후 재검증. 기획팀 Day 2~3 착수 지연
- **회귀 방지**: Phase 3 v2 수치 확정 후 본 시나리오 5종을 `Assets/Sim/Tests/` 회귀 셋 편입
---
## 참조
- `프로젝트/수상한잡화점/개발/13_Phase3_재개로드맵_확정_v1.md §5` 검증 축
- `프로젝트/수상한잡화점/시뮬레이터/01_시뮬레이터_아키텍처_v1.md §5-3` 메커닉 등가성 검증 기준
- `공유/소통/개발팀→기획팀/2026-04-20_Unity_MCP_시뮬실행_가이드_v1.md` (선행 조건 3)
## 변경 이력
| 일시 | 변경자 | 변경 | 관련 PD 지시 |
|------|-------|-----|-----------|
| 2026-04-20 | 개발팀장 | 스켈레톤 v1 작성 (본문 미채움) | #38 |
| (실측 후) | 개발팀장·기획팀장 | §1~§6 실측 결과 입력 + 판정 | — |

View File

@ -0,0 +1,161 @@
---
요청번호: REQ-초안 (발행 시 REQ-XXX 부여)
요청일: 2026-04-20 (초안 작성일 — 정식 발행은 개발팀 조건 2·3 완결 후 조율)
요청부서: 기획팀
수신부서: 개발팀 (클라이언트팀)
담당에이전트: 시스템기획자·밸런스기획자 (기획) / 클라이언트팀장 (개발)
우선순위: MID (Phase 3 재개 Day 1-4 후속 — Day 2~3 병행 가능)
상태: 초안 (미발행)
유형: 밸런스수치_요구서 (조건 판정 로직 구현 요청)
관련PD지시: 기획팀 #3 (Phase 3 재개 Day 1-4)
---
# REQ 초안 — ★ 조건 12개 판정 로직 Unity MCP EditMode 구현 요청
> **본 문서는 초안**. 정식 발행은 개발팀 재개 선행 조건 2(실측 검증 리포트)·3(실행 가이드) 완결 후 기획팀장·개발팀장 조율하여 `YYYY-MM-DD_REQ-XXX_3성조건_판정로직.md` 로 확정 발행.
---
## 1. 요구서 식별
| 필드 | 값 |
|------|-----|
| **요구서 ID** | REQ-초안 (정식 발행 시 부여) |
| **기준 버전** | `3성조건_12개_상세명세_v1.md` (2026-04-18 최신화) |
| **기준 커밋** | main (정식 발행 시점 SHA 기록) |
| **작성자** | 기획팀장 (Phase 3 재개 Day 1 사전 준비) |
---
## 2. 변경 필드 목록
개발팀 `Assets/Sim/NerdNavis.Sim.asmdef` 어셈블리 내 **신규 구현** 요청.
| # | 파일·테이블 | 필드 경로 | 변경 유형 |
|---|------------|---------|---------|
| 1 | `Assets/Sim/Conditions/` (신규) | ConditionEvaluator 인터페이스 + 12개 구체 구현 | 신규 |
| 2 | `Assets/Sim/Conditions/ConditionMetricsTracker.cs` (신규) | 런타임 측정 변수 집계기 | 신규 |
| 3 | `시뮬레이터/03_결과_JSON_포맷_v1.md` 결과 스키마 | `conditions_result` 필드 추가 (조건별 달성 여부) | 확장 |
---
## 3. 구현 요청 범위
### 3-1. 조건 12개 판정 로직 (`3성조건_12개_상세명세_v1.md §3·§4` 준수)
| ID | 명칭 | 측정 변수 | 판정식 |
|----|------|---------|-------|
| C1 | 신속 | 스테이지 총 소요 시간 | `total_duration_sec ≤ threshold[stage_id]` |
| C2 | 완벽 클리어 | PC HP (클리어 시점) | `pc_hp_at_clear == pc_max_hp` |
| C3 | 고 HP 완주 | PC HP (클리어 시점) | `pc_hp_at_clear ≥ pc_max_hp × 0.70` |
| C6 | 포션 절제 | 포션 사용 횟수 | `potion_uses ≤ threshold[stage_id]` |
| C9 | 보스 집중 | 보스에게 가한 누적 데미지 / 전체 누적 데미지 | `boss_dmg_ratio ≥ threshold` |
| C12 | (명세서 §3 참조) | (명세서) | (명세서) |
| N1 | (명세서 §4 참조) | 서브맵 단위 측정 | (명세서) |
| N2 | 피격 제한 | 누적 피격 횟수 | `hits_taken ≤ sub_map_count × 1` |
| N3 | 치명타 처치 | 치명타로 처치한 몬스터 수 | `crit_kills ≥ 3` |
| N4 | 쉴드 하한 | 클리어 시점 Shield | `shield_at_clear ≥ pc_max_shield × 0.30` |
| N5 | 후열 선공 | 타겟팅 우선순위 검증 | `first_kill_target == rear_row` |
| N6 | 전열 선공 | 타겟팅 우선순위 검증 | `first_kill_target == front_row` |
**정확한 판정식·엣지 케이스는 `3성조건_12개_상세명세_v1.md §3·§4` 본문을 정(正)**으로 한다. 본 REQ는 구현 범위 합의용 요약.
### 3-2. 런타임 측정 변수 Tracker
스테이지 진행 중 매 턴/이벤트에 측정 변수 누적. 스테이지 종료 시 ConditionEvaluator가 해당 스테이지의 슬롯2·슬롯3 조건 2개만 평가 (Prove-2-of-3).
### 3-3. 결과 JSON 스키마 확장
`03_결과_JSON_포맷_v1.md``result` 오브젝트에 `conditions_result` 필드 추가:
```json
"conditions_result": {
"slot2_id": "C1",
"slot2_passed": true,
"slot2_metric": {"total_duration_sec": 22.4, "threshold": 25.0},
"slot3_id": "N2",
"slot3_passed": false,
"slot3_metric": {"hits_taken": 5, "limit": 4}
}
```
---
## 4. 재미 근거 (P30 재미 우선 원칙)
- **강화하려는 재미 축**: "재도전 유도 유기성" (Phase 2 §5 PD님 3차 승인 조건 설계 원칙 2)
- **변경 전 재미 문제점**: Prove-2-of-3 체계는 설계 완료되었으나 **판정 로직이 Unity MCP EditMode에 구현되지 않아 시뮬 단위 검증 불가**. Phase 3 성장 요소 기여도 측정과 별개로, 3성 조건 달성률을 스테이지·빌드별로 측정할 수단 부재
- **변경 후 기대 경험**: 유저가 각 스테이지 슬롯2·슬롯3 조건을 인지하고 의도적으로 재도전할 때의 **달성률 분포를 시뮬에서 실측**. 입문 구간 슬롯 배치의 "재도전 유도 강도" 정량 검증
- **측정 지표**: 스테이지별 ★3 달성률, 슬롯별 조건 달성률, 슬롯2·슬롯3 동시 달성률
---
## 5. 개발 관점 우려 예상 (C11 존중)
| 관점 | 예상 우려 | 기획팀 입장 |
|------|----------|-------------|
| **자원 효율성** | 매 턴 측정 변수 갱신 오버헤드 | 누적 변수만 갱신·프레임 단위 재계산 불요. 클리어 시점 1회 평가 |
| **코드 직관성** | 조건 12종 분기 복잡도 | 인터페이스 `IConditionEvaluator` + 클래스 12개로 분리. 각 클래스 단일 책임 |
| **범용성** | 차기 프로젝트 재활용 | `Assets/Sim/Conditions/` 구조는 수상한잡화점 특수. 범용화는 `NerdNavis.Framework` Tier 2 검토 (P29-3 인사이트 축적) |
---
## 6. 검증 방법
- **검증 채널**: Unity MCP EditMode 단위 테스트 (`3성조건_12개_상세명세_v1.md §6-1` 테스트 매트릭스 준수)
- **검증 케이스**:
1. 조건별 경계값 테스트 (예: C3 HP=MaxHP×0.70 정확히 경계 → pass, 0.69999 → fail)
2. 슬롯2·슬롯3 동시 달성 시나리오 → ★3 반환
3. 슬롯2만 달성 → ★2, 슬롯 둘 다 실패 → ★1
4. P17 배타 조합 7종 케이스를 매니페스트에 등록 → 판정 로직에 도달하지 않음 (상위 필터)
- **통과 기준**: `3성조건_12개_상세명세_v1.md §6-1` 단위 테스트 매트릭스 전수 통과
- **회귀 검증**: 기존 전투 시뮬 결과 (Phase 0~2 앵커)에 conditions_result 추가되어도 기존 result 필드 값 불변
---
## 7. 백업·이력 (C6·P16)
- **백업**: 신규 구현이므로 백업 대상 없음
- **변경 이력**: `3성조건_12개_상세명세_v1.md §8` 변경 이력 테이블에 REQ-XXX 발행 일시 append
- **관련 대화로그**: `공유/대화로그/수상한잡화점/YYYY-MM-DD.md`
---
## 8. 기각안 (P24 · C32 계승)
| # | 기각 대안 | 기각 사유 |
|---|---------|---------|
| 1 | 조건 판정을 Unity 실 빌드 PlayMode에만 구현 | 결정론적 시뮬 불가 → Phase 3 재검증 시 ±10% 오차 판정 불가능 |
| 2 | 조건 판정을 Python 시뮬에 구현 | PD님 지시로 단일축 SOT = Unity MCP EditMode. 이원화 금지 |
| 3 | 조건 12종을 하나의 거대 함수로 구현 | C11 개발 관점 (코드 직관성·범용성) 위배. 확장 시 분기 폭발 |
---
## 9. 응답 섹션 (개발팀 작성)
### 9-1. 개발 관점 검토 결과
(정식 발행 후 개발팀이 기재)
### 9-2. 변경 적용 결과
(구현 완료 시 개발팀이 기재)
### 9-3. 후속 필요 작업
(해당 시 개발팀이 기재)
---
## 10. 발행 선행 조건
본 초안은 다음 2종 완결 후 정식 REQ로 전환:
1. 개발팀 재개 선행 조건 2 (Unity MCP EditMode 실측 검증 리포트 완료)
2. 개발팀 재개 선행 조건 3 (기획팀용 Unity MCP 시뮬 실행 가이드 완료)
완결 시점에 기획팀장이 기획팀→개발팀 채널로 `YYYY-MM-DD_REQ-XXX_3성조건_판정로직.md` 로 정식 발행.
---
## 변경 이력
| 일시 | 변경자 | 변경 내역 |
|------|--------|----------|
| 2026-04-20 | 기획팀장 | 초안 작성 (Phase 3 재개 Day 1 사전 준비, 발행 대기) |

View File

@ -0,0 +1,107 @@
# 수상한 잡화점 — Phase 3 재검증 로그 템플릿 v1
> 작성일: 2026-04-20 / 담당: 기획팀장 (Phase 3 재개 Day 1 사전 준비)
> 용도: Day 2~3 Phase 0~2 재검증 6건 + Day 4~7 성장요소 기여도 6건 + Day 11~14 맵 패턴 재검증 9건의 **단일 항목 재검증 로그 포맷**
> 데이터 소스: `밸런싱문서_일관성점검_v1.md §2` 재검증 체크리스트 · `시뮬레이터/03_결과_JSON_포맷_v1.md` 결과 스키마
> 명명 규칙: `Phase3_재개준비_체크리스트_v1.md §5` 준수
---
## 0. 사용법
- 재검증 항목 1건당 본 템플릿 1 block을 append 방식으로 사용
- 통합 리포트(예: `재검증보고_Phase0_1_2_v1.md`)의 본문에 항목 단위로 전개
- Unity MCP 시뮬 실행 결과 JSON 경로를 **반드시 원문 그대로 인용** (C5 정직성)
- 판정은 `적정`/`과도`/`부족`/`괴리` 4종으로 분류. 근거 수치 병기 의무
---
## 1. 단일 항목 재검증 로그 block
### 재검증 #{항목번호} — {항목명}
| 필드 | 값 |
|------|-----|
| **항목번호** | (예: #1 / #16 / #22) |
| **항목명** | (`일관성점검_v1 §2` 원문 그대로) |
| **기획 가정 (원본 수치)** | (예: "PC 6001 DPS 1.05 @ Phase0_1 §1") — **출처 §번호 필수** |
| **검증 목표** | (예: "Unity MCP EditMode 실측이 ±10% 이내인지 확인") |
| **담당 에이전트** | balance-designer / system-designer / level-designer 중 선택 |
| **검증 축** | Unity MCP EditMode / Unity 실 빌드 PlayMode 병행 / 문서 대조 only |
| **Unity MCP 시뮬 시나리오 ID** | (예: `anchor_stage1_pc6001_no_card`) — `02_시나리오_JSON_스키마_v1.md` 준수 |
| **seed 목록** | (예: `[42, 1337, 2026]` — 결정론 검증용 3회 이상 권장) |
| **결과 JSON 경로** | (예: `프로젝트/수상한잡화점/시뮬레이터/결과/run_20260421_*.json`) — **복수 실행 시 전부 인용** |
| **실측값** | (예: "DPS 평균 1.03, σ 0.01") — 통계 요약 + 원시값 JSON 참조 |
| **오차 (실측 기획 가정)** | (예: "-1.9%") — 부호 유지 |
| **판정** | `적정` (±10% 이내) / `과도` (+10% 초과) / `부족` (-10% 초과) / `괴리` (±20% 초과 — 이슈 1·3 통합 재논의 대상) |
| **판정 근거** | (예: "검증 축 §5 규칙에 따라 ±10% 이내 → 적정") — 공란 금지 |
| **후속 조치** | (예: "조치 없음" / "Day 8 이슈 통합 재논의로 이관" / "개발팀 REQ-XXX 발행") |
| **실행 일시** | YYYY-MM-DD HH:MM (Unity MCP 시뮬 실행 시점) |
| **기록 일시** | YYYY-MM-DD HH:MM (본 로그 작성 시점) |
| **기록자** | (에이전트명) |
### 특이 사항 / 이슈
(실측 과정에서 발견한 이상 징후·부작용·예상 외 결과를 **C3 정직성 기준**으로 전수 기록. "없음"도 명시 허용)
### 기각안 (복수 해석 후보 검토 시 필수 — C32 / 구 P22 계승)
| # | 기각 해석 후보 | 기각 사유 |
|---|-------------|---------|
| 1 | (예: "실측 1.03 → PC 기본 ATK 범위 이동 필요") | (예: "σ 0.01로 RNG 변동 범위 내 — 구조 변경 불필요") |
기각 후보 없음: "없음 (단일 해석 — 사유: ...)" 명시. 공란 금지.
---
## 2. 통합 리포트 헤더 (리포트 선두에 1회만)
```markdown
# 수상한 잡화점 — 재검증보고 {항목명} v1
> 작성일: YYYY-MM-DD / 담당: 기획팀장
> 검증 범위: `일관성점검_v1 §2-X` 재검증 #{A}~#{B} 통합
> 선행 조건: Unity MCP EditMode 시뮬 환경 구축 완료 (`시뮬레이터/01~04_*.md` 기반)
> 검증 축: Unity MCP EditMode 실측 = 정본(正), 실 빌드 PlayMode 병행 ±10% 허용
## 0. 요약 (항목별 판정 분포)
| 판정 | 건수 | 항목 |
|------|-----|------|
| 적정 | N | #{목록} |
| 과도 | N | #{목록} |
| 부족 | N | #{목록} |
| 괴리 | N | #{목록} — **이슈 통합 재논의 대상** |
## 1. 전체 집행 컨텍스트
- Unity MCP 시뮬 실행 환경: (버전·커밋 해시)
- 실행 기간: YYYY-MM-DD ~ YYYY-MM-DD
- 총 시뮬 횟수: N회
- 결과 JSON 루트 경로: (예: `프로젝트/수상한잡화점/시뮬레이터/결과/YYYY-MM-DD/`)
## 2. 항목별 로그
```
그 다음 §1의 block을 항목 수만큼 반복.
---
## 3. 관련 규칙·문서
- **C5** 정보의 정직성 — 실측 원문 인용 의무
- **C23** 허위 보고·역할 연기 절대 금지 — tool_use 결과로 입증 불가한 수치 단정 금지
- **P16** 산출물 추적성 — 변경 이력 기록 의무
- **P28** 보고 표준 포맷 — 통합 리포트 헤더 §0 요약표
- **P30** 재미 우선 원칙 — 판정이 `과도`/`부족`/`괴리`일 때 "어떤 재미가 훼손되는가" 서술 권고
- **`시뮬레이터/03_결과_JSON_포맷_v1.md`** — 결과 JSON 필드 정의
- **`밸런싱문서_일관성점검_v1.md §2`** — 재검증 28개 항목 SOT
- **`Phase3_재개준비_체크리스트_v1.md §5`** — 산출물 명명 규칙
---
## 4. 변경 이력
| 일시 | 변경자 | 변경 내역 |
|------|--------|----------|
| 2026-04-20 | 기획팀장 | 초판 — Phase 3 재개 Day 1 사전 준비 산출물 |