---
name: 신규 코드 영역 기존 시스템 의존성 미실측 금지 (헌법급)
description: 신규 코드 작성 시 참조하는 기존 클래스·시스템의 동작·설정·type을 사전 Read 의무. 미실측 시 회귀 유발 (C39 위반). 직전 fix가 회귀 유발한 후 정정 시 본 feedback 환기 의무.
type: feedback
tier: constitutional
---

## 위반 패턴

신규 코드 영역 기존 시스템 (클래스·MonoBehaviour·Rigidbody2D·Collider2D·EventSystem 등)을 참조·확장·변형 시 영역 **기존 시스템의 동작·설정·type을 사전 Read 검증 X**. 추정·관습·기본값 가정 영역 코드 작성 → 기존 시스템과의 인터랙션 영역 회귀 유발.

## 사례 1차 등재 (2026-05-09 BT12-Dev `fe65592` 회귀)

본 PM 직전 fix `fe65592` 영역 ProjectileSpawner.CreateFallbackProjectile 영역 Kinematic Rigidbody2D 추가:
```csharp
var rb = go.AddComponent<Rigidbody2D>();
rb.bodyType = RigidbodyType2D.Kinematic;
```

**미실측 영역**:
- EnemyController는 KinematicObject 상속
- KinematicObject.cs:76 영역 `body.bodyType = RigidbodyType2D.Kinematic` 영역 OnEnable 적용
- → **Enemy Rigidbody2D = Kinematic**

**회귀 결과**:
- Projectile (Kinematic) ↔ Enemy (Kinematic) = **Kinematic vs Kinematic**
- Unity 2D 영역 `useFullKinematicContacts = false` (기본값) → **OnTriggerEnter2D 발화 X**
- → 적 피격 X (PD 3차 보고: "여전히 적이 플레이어의 투사체에 피격되지 않아")

**이전 정합 시점** (`fe65592` 이전):
- Projectile Rigidbody2D 부재 (Static Collider) + Enemy Kinematic Rigidbody2D
- → **Static vs Kinematic** = OnTriggerEnter2D 발화 정합

**근층 원인** (3계층):
| 계층 | 원인 |
|------|------|
| 표층 | 직전 fix Rigidbody2D Kinematic 추가 |
| 중층 | "Trigger 안정성 보강" 목적 영역 옵션 비교 시 Kinematic 영역 기본 선택 |
| **근층** | **C39 위반** — Enemy Rigidbody2D type 영역 사전 실측 X·KinematicObject Read 영역 X |

## Why

**감사관 자성 의무 명시 (2026-05-09 pm-auditor 사전 감사 Improvement 1)**: `feedback_scriptable_object_field_blanket_fill` 영역 = **asset 영역 신규 필드 일괄 채움 패턴** (외연 명확). 본 자성 #11 영역 = **신규 코드 영역 기존 시스템 의존성 미실측 패턴** (외연 다름). 두 패턴은 근층 (C39 위반) 공통 영역 표층·재발 트리거 상이 → C37-2 의미 보존 영역 별도 feedback 신설 정합.

## How to apply (재발 차단 체크리스트)

신규 코드 작성 영역 기존 시스템 영역 참조·확장·변형 시 **3 단계 의무 실측**:

1. **(a) 참조 클래스 정의 Read** — public/protected field·property·method 의 동작·기본값·NULL 가능 여부
2. **(b) 클래스 라이프사이클 영역 Grep** — Awake·OnEnable·Start 영역 어떤 설정·type·event 영역 적용
3. **(c) 인터랙션 영역 호환성 검증** — 신규 코드 영역 기존 시스템과의 충돌·회귀 가능성 영역 (특히 Unity Physics·Collision·Trigger·EventSystem·Animator 영역)

**구체 예시 (Unity 2D Physics)**:
- Trigger 영역 추가 시 → 양쪽 Rigidbody2D type 영역 사전 실측 (Static·Kinematic·Dynamic). Kinematic vs Kinematic 영역 `useFullKinematicContacts` 영역 영역 영역 또는 type 영역 변경 영역
- Layer Collision Matrix 영역 추가 시 → 영역 영역 OFF 영역 영역 영역
- AnimatorController 영역 trigger·bool 영역 추가 시 → 영역 영역 parameter 영역 등재 영역

## 적용 영역

- **Unity Physics·Collision·Trigger·Animator·EventSystem 영역 신규 코드 작성 시** 본 체크리스트 의무
- **신규 컴포넌트 영역 추가 시** 의존 클래스 Read 의무
- **이벤트 핸들러·subscriber 신규 영역** 발화 경로 영역 추적 의무
- **C39-10 외연 — 신규 코드·자산이 기존 코드 가드 조건·라이프사이클 미실측 영역 차단**

## 6계층 환기 트리거

키워드 — `신규 코드·기존 시스템·의존성·Rigidbody2D·Collider2D·KinematicObject·Trigger·OnTriggerEnter2D·useFullKinematicContacts·Animator·AnimatorController·EventSystem·MonoBehaviour·OnEnable·Awake·Start·라이프사이클`

## C44 PM 자진 고지 의무 (회귀 유발 시)

신규 fix 영역 회귀 유발 시 영역 **C3 자진 고지 + 본 feedback 환기 의무**:
1. 회귀 사실 명시 (변형·축약 X — C42-2 A 정합)
2. 회귀 근원 = 본 feedback 위반 영역 명문화
3. 정정 fix 영역 = 이전 정합 시점 복원 또는 근본 해결안
4. 자성 등재 영역 신규 사례 등재 (재발 차단 체계화)

## 관련 규칙·자산

- **C39** 작업 전 시스템 반영 실측 (헌법급)
- **C39-10** 신규 코드·자산이 기존 시스템 가드 조건·라이프사이클 미실측 영역 차단
- **C42-7 J 그룹** 작업 전 시스템 반영 실측 자기검증
- **C2** 근원 해결 (proxy 영역 X·근본 = 의존성 실측)
- **C3** 이슈 은폐 X (회귀 유발 시 자진 고지 의무)
- **C44** 팩트 우선 (추정·관습 X·코드 직접 Read)
- **feedback_scriptable_object_field_blanket_fill** (외연 비교 대상 — asset 영역)
- **feedback_pm_root_diagnosis_priority** (근본 진단 우선)
- KinematicObject.cs:76·BT12-Dev `fe65592` 회귀 사례
