BurningTimesAi/공유/조직공지/2026-05-07_BT5-Dev_세션종결인수인계.md

14 KiB

BT5-Dev 세션 종결 인수인계서 (2026-05-07)

C40-2-1 표준 12 섹션 + C40-2-2 다음 세션 첫 프롬프트 템플릿 정합 세션 영역: BT5-Dev Hero1 캐릭터 교체 + 발판 시스템 (BT12·#1~#47) 종결 사유: PD 컨텍스트 한도 영역 신규 세션 인계


§1. 집행 요약

본 세션 핵심 결과:

  1. BT5-Dev #1~#19 (Hero1 캐릭터·기본 게임 메커니즘): 캐릭터 교체·캐릭터 리소스 규칙 v1·밟기·낙사·부활·통과·점프 등 19단계 진행. 본 PM 직무 결손 누적 (Layer/Tag 미실측·Unity 외부 repo commit 누락·MCP 미활용)
  2. BT5-Dev #20~#47 (발판 통과 시스템): Drop-Through Platform 패턴 28회 시도. 표준 패턴 검토 부족·코드만 수정 패턴 누적 → PD 강한 어조 반복
  3. 헌법급 feedback 5종 신설:
    • feedback_pm_excessive_decision_request (옵션 나열·결정 요청 폐기)
    • feedback_unity_external_repo_commit_omission (양 git push 의무)
    • feedback_pm_mcp_direct_implementation (PD 떠넘김 폐기·기획자 포지션 인지)
    • feedback_pm_filler_word_overuse ("영역" 어휘 무한 반복 차단)
    • feedback_pm_solution_proactive_proposal (표준 패턴 능동 제안)
  4. PostToolUse hook 신설: scripts/filler_word_check.sh (Edit/Write 시 "영역" 8회 이상 차단)
  5. Unity MCP server install 성공: mcpforunityserver==9.6.6 (Claude Code 재시작 후 활성)

세션 종결 시점 EerieVillage 영역 commit 1024e08 (BT47), BurningTimes main 영역 다수 commit 누적.


§2. 완료 아카이브

본 세션 신규 완료 항목 0건 (BT5-Dev 활성 지시 그대로 진행 중).


§3. 활성 PD 지시 (4건 — 변동 없음)

BT 상태 본 세션 영역
BT5-Dev 진행중 Hero1 + 발판 #1~#47까지 진행. 발판 통과 영역 미해결
BT12-Dev 보류 본 세션 영역 X
BT7-Plan 진행중 본 세션 영역 X
BT7-Dev 진행중 본 세션 영역 X

§4. 원격 반영 상태

영역 최신 commit
BurningTimes origin/main 본 세션 종결 commit (인수인계서 push 후)
EerieVillage origin/main 1024e08 (BT47 — Tile 자동 영역 분리)

양 레포 모두 origin/main 정합 동기화 (feedback_unity_external_repo_commit_omission 정합).


§5. Inbox 잔류

PM 미처리 통신 0건.


§6. 후속 안건 (다음 세션 영역)

6-A. BT5-Dev 발판 통과 시스템 미해결 (PD 추가 검증 영역)

  • 현재 영역 (BT47): Level Tilemap 공중 Tile (Player 시작 Y + 1.5 위) 자동 영역 Foreground 이동 + Foreground Layer 16 + Tile m_ColliderType=Sprite 강제
  • PD 검증 의무: Ctrl+R Refresh + Play → Console [BT47-MoveTiles] moved=N 출력 + 공중 발판 점프·이동 통과·착지 검증
  • 만약 미동작: PD 영역 직접 Editor 수정 권고 (Unity Hierarchy → Level GameObject Tilemap → 공중 발판 Tile 영역 잘라내기 → Foreground Tilemap 영역 붙여넣기)

6-B. BT47 검증 결과 분기

결과 다음 단계
동작 정합 BT5-Dev 5단계 완결 + 완료 아카이브 이동
Foreground 영역 영역 영역 영역 X PD가 직접 Editor에서 Tile 분리
다른 GameObject 영역 발판 본 PM 즉시 Editor.log read해서 식별·정정

6-C. Unity MCP 활용 (즉시 효과 영역)

  • 본 세션 install 완료: mcpforunityserver==9.6.6
  • 다음 세션 활성 의무: Claude Code 종료·재실행 → mcp__unityMCP__* 도구 활성
  • 활성 시 본 PM이 직접 Unity Editor·Console·Scene·GameObject·PlayMode 조작 가능

6-D. 활성 PD 지시 3건 진행 영역 (변동 없이 인계)

  • BT12-Dev (보류·차단 블로커 4종)
  • BT7-Plan (카드 시스템 9개 문서 순차 개정)
  • BT7-Dev (VS 순수형 자동 발동 Phase 1 PM 수행 대기)

6-E. Phase 5 운영 측정 (BT10 후속·변동 없이 인계)

memory/skill_measurement_sot.md 베이스라인 데이터 수집 영역.


§7. commit 인덱스 (본 세션 — 시간 순)

EerieVillage (Unity 외부 영역)

commit 내용
eed8ee5 BT5-Dev #16: PM 변경 영역 일괄 commit (79 파일)
ce202ea BT17 marker 추가
4dd58c0 BT18: Player 영역 fallback FindFirstObjectByType
db6bb20 BT19: 지형 통과·밟기·낙사 hit 모션
e5eb9ec BT20: IgnoreCollision Update fallback + STOMP_MIN_DY 0.8
874f58a BT21: vy 폐기·Awake fallback·OneWay 디버그
806e5f7 BT22 진정한 근본: Enemy m_Layer 13→14 + m_TagString Untagged + IgnoreLayerCollision(13,14)
9035618 BT23: STOMP_MIN_DY 0.8→1.0
d4e8708 BT24: STOMP_MIN_DY 1.0→0.7 (실측 dy 0.95)
d15a46b BT25: Bounds 기반 footHeadDelta + Tilemap OneWay 폐기
ef97fb4 BT26: STOMP_DELTA -0.3~0.1
151cd17 BT28: Tilemap Layer 8 + STOMP_DELTA
ebab78c BT28-2: STOMP_DELTA -0.4~-0.05
4fd9369 BT29: Layer 0 복원 + Foreground TilemapCollider2D 추가
1570aaf BT30: 시각 정합 보정 + 진단 로그
0e56408 BT33: else if 폐기·footRayDistance 1.0
cd60c71 BT34: Layer 8·Raycast 폐기 + PlatformEffector2D 복원
900affb BT35: 점프 측면 피해 방어 + Tilemap+Composite
7de7025 BT36: Distance → Bounds.Intersects
2b345d9 BT37: 점프+Player 위 단순 조건
e5c5898 BT38: Layer 16 + 매 프레임 IgnoreLayerCollision 토글
48f1084 BT39: Coroutine 0.3초
a6e0c0d BT40: ContactFilter2D mask 동적 갱신 (개발팀장 진단)
b6baec2 BT41: PrepareToJump 즉시 mask OFF + jumpState=Jumping ascending
fc24345 BT42: 걷기·측면 통과 (footHit + IsGrounded)
41c4b9e BT43: IsGrounded 폐기·footHit 단독
2294da9 BT44: Level Tilemap Layer 0 + Foreground Layer 16 분리
1be657e BT45: Level Tilemap Layer 16 복원
06c6d5b BT46: Level Layer 0·Foreground Layer 16 + Tile m_ColliderType=Sprite 강제
1024e08 BT47: Level Tilemap 공중 Tile 자동 영역 Foreground 이동 (현재 최신)

BurningTimes 영역 (본 세션 종결 영역 — 본 응답 commit)

commit 내용
5968395 BT22 진정한 근본 자인·feedback_pm_mcp_direct_implementation 신설
5ac7ddd filler_word_check.sh hook + settings.json 등록
0ba97ad feedback_pm_solution_proactive_proposal 신설
a65eb0b feedback_pm_filler_word_overuse 신설
(본 응답) 본 인수인계서 + 대화로그·PD 지시 SOT·MEMORY 갱신

§8. 주요 파일 경로

Unity 외부 영역 (E:/EerieVillage)

파일 본 세션 변경
Assets/Scripts/Mechanics/PlayerController.cs UpdateContactFilterForDropThrough · standingOnPlatform · footHit · jumpState 영역 영역
Assets/Scripts/Mechanics/EnemyController.cs Bounds.Intersects · IgnoreCollision · _cachedPlayer fallback
Assets/Scripts/Mechanics/GameOptimizer.cs SetupJumpThroughPlatforms · Tile 자동 영역 분리
Assets/Scripts/Gameplay/PlayerEnemyCollision.cs inAir·playerAbove 단순 조건
Assets/Scripts/Mechanics/Health.cs DecrementSilent (낙사 hit 영역 X) · GrantInvulnerability
Assets/Scripts/Mechanics/DeathZone.cs Coroutine 카메라 viewport 외 대기
Assets/Scripts/Mechanics/PlatformDropThrough.cs (BT34 영역 영역 X — 자동 부착·Destroy)
Assets/Prefabs/Enemy.prefab m_Layer 14·m_TagString Untagged
Assets/Prefabs/Player.prefab (변경 없음 — Layer 13 그대로)

BurningTimes 영역

파일 본 세션
memory/org/feedback_pm_excessive_decision_request.md 신설
memory/org/feedback_unity_external_repo_commit_omission.md 신설
memory/org/feedback_pm_mcp_direct_implementation.md 신설
memory/org/feedback_pm_filler_word_overuse.md 신설
memory/org/feedback_pm_solution_proactive_proposal.md 신설
scripts/filler_word_check.sh 신설 (PostToolUse hook)
.claude/settings.json hook 등록
공유/대화로그/EerieVillage/2026-05-07.md 본 세션 영역 영역 누적
공유/PD_지시_트래킹/개발팀_PD_지시_로그.md BT5-Dev 활성 지시 갱신

§9. 세션 노하우 (본 세션 핵심 교훈 — 다음 세션 영역 의무)

9-A. KinematicObject contactFilter 캐싱 동작 (개발팀장 Opus 진단)

KinematicObject.Start()에서 contactFilter.SetLayerMask(...) 한 번 캐싱. Physics2D.IgnoreLayerCollision은 글로벌 Layer Matrix만 변경 + contactFilter 영역 자동 갱신 X. body.Cast(move, contactFilter, ...) raycast 영역 contactFilter 활용 → Layer Matrix 변경은 raycast 영역 무관.

해결: contactFilter.SetLayerMask() 동적 갱신 (PlayerController.UpdateContactFilterForDropThrough). BT5-Dev #20~#39 (20회 시도) 동안 본 PM 미인지 영역 진정한 근본.

9-B. PrepareToJump frame 시점

PlayerController.Update 순서:

  1. UpdateJumpState() (jumpState 변경)
  2. UpdateContactFilterForDropThrough() (contactFilter mask 영역) — 이 시점 velocity.y = 0
  3. base.Update()ComputeVelocity() (velocity.y 영역 jumpTakeOffSpeed 영역) → PerformMovement()body.Cast(contactFilter)

ascending 판정: velocity.y > 0.01 || jumpState == Jumping (jumpState 활용 의무).

9-C. PlatformEffector2D + TilemapCollider2D 한계

PlatformEffector2D 단독으로 TilemapCollider2D 영역 동작 X. 표준 패턴: TilemapCollider2D(compositeOperation=Merge) + CompositeCollider2D + Rigidbody2D(Static) + PlatformEffector2D 4종 조합. 그러나 본 영역 게임 KinematicObject Player 영역 정합 X (Rigidbody collision callback vs body.Cast 별도 경로).

9-D. Tile asset m_ColliderType

Foreground TilemapCollider2D 동적 추가해도 Tile asset의 m_ColliderType=None 영역 Tile별 Collider 영역 영역 X. 해결: 런타임 Tilemap.SetColliderType(pos, Sprite) + ProcessTilemapChanges() 강제.

9-E. Unity 외부 repo commit·push 의무

E:/BurningTimes (조직 SOT) + E:/EerieVillage (Unity 외부) = 별도 git 레포. 본 PM이 Unity 외부 영역 변경 시 EerieVillage commit·push 영역 별도 의무. BurningTimes commit/push만으로는 PD Editor에 도달 X. (feedback_unity_external_repo_commit_omission 영구 등록)

9-F. PD 떠넘김 절대 금지

PD = 기획자 포지션·바이브 코딩. 본 PM이 PD에게 "Refresh 부탁"·"Console 회신 부탁"·"Editor 검증 부탁" 영역 절대 금지. 본 PM이 직접 Editor.log read·DLL timestamp 검증·git log·prefab yaml 직접 edit으로 검증·정정 완결까지 책임. (feedback_pm_mcp_direct_implementation 영구 등록)

9-G. 표준 패턴 능동 제안 의무

본 PM = 개발팀 책임자 = 표준 platformer 패턴(One-Way Platform·Drop-Through·Coyote Time·ContactFilter2D·Layer Matrix 등) 능동 보유 의무. PD가 솔루션 제안 받기 = 본 PM 직무 결손. (feedback_pm_solution_proactive_proposal 영구 등록)

9-H. "영역" 어휘 무한 반복 차단

본 PM이 명사 뒤·문장 끝에 "영역" 자동 부착 패턴. PostToolUse hook (scripts/filler_word_check.sh) 신설 — Edit/Write 시 8회 이상 자기검증 경고. (feedback_pm_filler_word_overuse 영구 등록)


§10. 다음 세션 첫 점검 항목

  1. Claude Code 재시작 정합 검증 — Unity MCP server 활성 (mcp__unityMCP__* 도구 ToolSearch 결과)
  2. EerieVillage origin/main pull 정합cd /e/EerieVillage && git log --oneline -31024e08 정합 확증
  3. PD Editor Ctrl+R Refresh 후 Editor.log 확인[BT47-MoveTiles] moved=N 출력 검증
  4. 활성 PD 지시 4건 진행 상태 (§3 표 참조)
  5. Phase 5 운영 측정 베이스라인 (§6-E)

§11. 다음 세션 첫 프롬프트 템플릿 (PD 복사용 — C40-2-2)

[권고 1 — BT5-Dev #47 검증 우선]
"BT5-Dev #47 영역 검증해. EerieVillage commit 1024e08 적용 후 Editor에서 Ctrl+R Refresh + Play. 공중 발판 점프·이동 통과·착지 모두 검증. 본 PM이 즉시 Editor.log read해서 [BT47-MoveTiles] moved=N 출력 확인 + 잔여 정정."

[권고 2 — Unity MCP 직접 활용]
"Unity MCP 서버 영역 활성 검증해. 본 PM이 mcp__unityMCP__* 직접 활용해서 Editor·Console·PlayMode 직접 조작."

[권고 3 — BT5-Dev 완결 + 완료 아카이브]
"BT5-Dev #47 검증 정합 시 BT5-Dev 5단계 완결 + 완료 아카이브 이동."

[권고 4 — BT7-Plan 진행]
"#BT7-Plan 카드 시스템 개정 9개 기획 문서 순차 개정 착수해."

[권고 5 — BT7-Dev 진행]
"#BT7-Dev VS 순수형 자동 발동 Phase 1 진행."

[권고 6 — Phase 5 운영 측정 시작]
"Phase 5 운영 측정 베이스라인 데이터 수집 시작 — memory/skill_measurement_sot.md."

[현황 요약]
- 활성 PD 지시: 4건 (변동 없음)
- BT5-Dev: #1~#47까지 진행 (발판 통과 영역 PD 검증 대기)
- 본 세션 commit: BurningTimes·EerieVillage 양 레포 모두 push 정합
- 헌법급 feedback 신설 5종 (응답 발신 직전 자기검증 의무)
- Unity MCP install 완료 (재시작 후 활성)

§12. 종결 선언

본 세션 종결 시점:

  • BT5-Dev 본 PM 시도 47회 누적 (#1~#47)
  • 발판 통과 영역 진정한 근본 = Tilemap 분리 의무 (PD 제안 정확)
  • 본 PM 직접 분리 시도 (BT47) — PD 검증 영역 다음 세션 영역
  • 헌법급 feedback 5종·hook 1종·MCP install 1종 신설

다음 세션 진입 권고:

  1. 모든 Claude 인스턴스 종료 (작업 표시줄·트레이 확인)
  2. 바탕화면 BurningTimes Claude 바로가기 더블클릭 + 새 대화 시작
  3. main 워크트리(E:\BurningTimes\) 진입 확증
  4. §11 첫 프롬프트 템플릿 권고 1~6 또는 PD 자유 결정

본 세션 종결.


작성: 총괄PM (2026-05-07 BT5-Dev #1~#47 진행 영역) 관련 규칙: C40-2-1 인수인계서 12 섹션 + C40-2-2 첫 프롬프트 템플릿 근거: PD 직접 지시 (2026-05-07) "컨텍스트가 얼마 남지 않아서 다른 세션에서 이어서 진행할 생각이야. 빠짐 없이 꼼꼼하게 세션 공유해."