بنقرة واحدة
verify-weapon-system
무기 시스템의 의존성 주입(DI), POCO 전략 패턴 설계, 팩토리 생성 검증을 수행합니다. 무기 시스템 스크립트 수정 후 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
무기 시스템의 의존성 주입(DI), POCO 전략 패턴 설계, 팩토리 생성 검증을 수행합니다. 무기 시스템 스크립트 수정 후 사용.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
인게임 핵심 시스템(GameManager, UIManager), 초기화 순서 안전성, UI 데이터 바인딩을 검증합니다.
로비 UI의 팝업 관리 및 뒤로가기(ESC) 로직을 검증합니다. PopupManager 등록 및 중복 입력 처리 여부를 확인합니다.
타이틀 씬의 로그인 흐름(MVVM), 어드레서블 로딩, 앱 업데이트 관리를 검증합니다.
프로젝트 전체의 사운드 구현 패턴을 검증합니다. 싱글톤(Singleton) 대신 인터페이스 주입(DI) 방식의 사용을 권장합니다.
세션 변경사항을 분석하여 검증 스킬 누락을 탐지합니다. 기존 스킬을 동적으로 탐색하고, 새 스킬을 생성하거나 기존 스킬을 업데이트한 뒤 GEMINI.md를 관리합니다.
플레이어 데이터의 DTO/Service 구조, 암호화 처리, 로컬 저장소 정합성을 검증합니다.
| name | verify-weapon-system |
| description | 무기 시스템의 의존성 주입(DI), POCO 전략 패턴 설계, 팩토리 생성 검증을 수행합니다. 무기 시스템 스크립트 수정 후 사용. |
최근 리팩토링된 무기 시스템(Weapon System) 아키텍처 규칙이 잘 지켜지고 있는지 확인합니다.
IWeaponStrategy 구현체들이 MonoBehaviour를 상속받지 않는 일반 C# 클래스인지 검증WeaponController가 게임 매니저, 컴뱃 컨텍스트 등 핵심 서비스를 주입(Inject)받는지 검증?. 사용 금지 원칙 준수 여부 검증new나 Instantiate가 아닌 WeaponFactory를 통하는지 여부 검증IWeaponStrategy 인터페이스 기반 동작을 수정한 후| File | Purpose |
|---|---|
Assets/_Game/Scripts/InGame/Weapon/Base/IWeaponController.cs | 무기 컨트롤러 인터페이스 |
Assets/_Game/Scripts/InGame/Weapon/Base/WeaponControllerBase.cs | 무기 컨트롤러 추상 기본 클래스 |
Assets/_Game/Scripts/InGame/Weapon/Strategies/IWeaponStrategy.cs | 무기 동작 전략 (Strategy) 인터페이스 |
Assets/_Game/Scripts/InGame/Weapon/Strategies/*.cs | 모든 무기 전략 구현체 |
Assets/_Game/Scripts/InGame/Weapon/Base/WeaponFactory.cs | 무기 생성 관리 팩토리 |
Assets/_Game/Scripts/InGame/Player/Player_Base/PlayerBase.cs | 플레이어의 무기 장착 로직 부분 |
전략 계층(Strategies) 스크립트들이 MonoBehaviour를 상속받지 않도록 검증합니다.
파일: Assets/_Game/Scripts/InGame/Weapon/Strategies/*.cs
검사:
grep -n ": MonoBehaviour" Assets/_Game/Scripts/InGame/Weapon/Strategies/*.cs
PASS: 아무것도 검색되지 않음.
FAIL: 전략 스크립트가 MonoBehaviour를 상속함.
수정: 의존성은 OnUpdate나 Attack 등을 통해 전달받도록 수정.
WeaponControllerBase의 파생 클래스들이 직접 GameManager.Instance 등을 참조하지 않는지 검증합니다. 초기화(Init 등)에 Context가 주입되는지 확인합니다.
파일: Assets/_Game/Scripts/InGame/Weapon/Controllers/*.cs
검사:
grep -n "\.Instance" Assets/_Game/Scripts/InGame/Weapon/Controllers/*.cs
PASS: 싱글톤 사용 내역 없음 (또는 초기화 단계 캐싱 외에 무관한 곳만 있음)
FAIL: 비즈니스/공격 루프에서 전역 매니저 인스턴스 사용
수정: WeaponControllerBase의 Protected 멤버(m_combatCtx 등)로 대체
플레이어나 매니저에서 무기 객체를 가져올 때 직접 Instantiate 하거나 new WeaponController()를 남용하는지 검증. WeaponFactory.CreateController를 통해야 합니다.
파일: Assets/_Game/Scripts/InGame/Manager/GameManager.cs 및 Assets/_Game/Scripts/InGame/Player/Player_Base/*.cs
검사:
무기 획득/생성 부근 검사 (GameManager의 EquipNewWeapon 위주)
grep -n "WeaponFactory.CreateController" Assets/_Game/Scripts/InGame/Manager/GameManager.cs
PASS: 무기 장착부에서 WeaponFactory.CreateController가 감지됨
FAIL: CreateController를 통하지 않고 강제로 스크립트를 추가
Unity 생명주기 관련 문제(Fake Null)를 막기 위해 무기 관련 스크립트 전반에서 Unity Object에 대한 ?. 연산자 제한.
(단, Action, Tween 등 순수 C# 객체에 대해서는 허용되므로 결과 눈으로 확인 필요)
검사:
grep -n "\?\." Assets/_Game/Scripts/InGame/Weapon/**/*.cs
PASS: ?. 가 순수 기능(Kill(), Invoke())에만 사용됨
FAIL: gameObject?.activeSelf 나 유사한 컴포넌트 호출에 사용
| 컴포넌트 | 상태 | 상세 내역 |
|---|---|---|
| Strategy POCO 유지 | PASS / FAIL | |
| Controller DI 적용 | PASS / FAIL | |
| 팩토리 집중 관리 | PASS / FAIL | |
| Null 안전성 규칙 | PASS / 주의 | (순수 C# 객체에 쓰였는지 확인 후 판정) |
MonoBehaviour 상속이 불가피한 발사체(Projectile 뷰) 클래스와 Aura 등은 Weapon/Controllers나 Weapon/Strategies 밖의 디렉토리에 배치되므로 예외입니다. (예: BoneBullet.cs)?. 을 딜리게이트 콜업이나 Tween 해제용(m_rotateTween?.Kill())으로 사용하는 건 안전하며 예외 조항입니다.