From b4a0977d4d33a109eb452bc29c69f93659142ef5 Mon Sep 17 00:00:00 2001 From: swrring Date: Mon, 7 Sep 2026 09:20:31 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B3=91=EB=A0=AC=20=EA=B0=9C=EB=B0=9C=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=84=B8=EC=8A=A4=20#802=20=E2=80=94=20CLAUD?= =?UTF-8?q?E.md=20=C2=A79=20=EB=B3=91=EB=A0=AC=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=84=B8=EC=85=98(worktree)=20=EA=B7=9C=EC=B9=99=20+=20.gitatt?= =?UTF-8?q?ributes=20UnityYAMLMerge=20=EC=86=8D=EC=84=B1=20(PD=20=EC=84=A4?= =?UTF-8?q?=EA=B3=84=20=EC=8A=B9=EC=9D=B8=202026-09-07=20=C2=B7=20?= =?UTF-8?q?=EC=B0=A9=EC=88=98=20Step=200)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE.md §9: Project/Rules 요지 + 워커 세션(WL_wt/) 규칙 — 모든 worktree 세션 자동 로드 - .gitattributes: *.unity/*.prefab/*.asset/*.mat/*.controller/*.anim/*.meta 등 merge=unityyamlmerge (드라이버 등록 = 조직 레포 scripts/wl/wl_wt_new.ps1 · eol 속성 없음) - 프로세스 SOT = NerdNavisAi 공유/WL_병렬작업/00_WL_병렬개발_프로세스_v1.md Co-Authored-By: Claude Fable 5.1 --- .gitattributes | 13 +++++++++++++ CLAUDE.md | 22 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..a7158e934 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,13 @@ +# Unity YAML 에셋 — UnityYAMLMerge(Smart Merge) 머지 드라이버 (2026-09-07 #802 WL 병렬 개발) +# 드라이버 등록은 레포 config 에서: scripts/wl/wl_wt_new.ps1 이 merge.unityyamlmerge.* 를 설정한다. 미등록 클론은 기본 텍스트 머지로 폴백. +# eol 속성은 넣지 않는다 (기존 파일의 CRLF/LF 혼재를 재정규화하지 않기 위해). +*.unity merge=unityyamlmerge +*.prefab merge=unityyamlmerge +*.asset merge=unityyamlmerge +*.mat merge=unityyamlmerge +*.controller merge=unityyamlmerge +*.anim merge=unityyamlmerge +*.overrideController merge=unityyamlmerge +*.physicMaterial merge=unityyamlmerge +*.playable merge=unityyamlmerge +*.meta merge=unityyamlmerge diff --git a/CLAUDE.md b/CLAUDE.md index 55e005e17..736ffeea9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -68,3 +68,25 @@ unity command find_gameobjects --type <타입명> - 레포 = Gitea `NerdNavis_AiDev/Project_WL` **`main`**(2026-09-05 힘민지 기반으로 교체 · 원본 이력 `himminji/Dev` · 구 WL 프로토타입 `legacy/wl-prototype-6000`) · 원본 GitLab 은 remote `gitlab`. 구 WL 작업물 백업 = `Backup/WL_Prototype_2026-09-04/`(Assets 밖 · README 참고). 커밋은 PD 확인 후 파일 지정으로만. `Library/`·`Temp/`·`.unity-pipeline-runtime-port`·`Screenshots_WL/` 는 미추적. - 에디터가 자동으로 고치는 파일(`PlayFabEditorPrefsSO.asset`·`GvhProjectSettings.xml`·URP 업그레이드로 재직렬화된 `.mat`)은 AI 변경이 아니다 — 커밋 여부는 PD 결정. - 작업 결과·교훈은 NerdNavisAi 레포 `공유/대화로그/WL프로젝트/` 와 `profile-wl` 교훈 인덱스에 남긴다. + +## 9. 병렬 작업 세션 (worktree) — 이 파일은 메인·모든 worktree 세션에 자동 로드된다 (2026-09-07 #802 · PD 승인 후 발효) + +### Project +- Unity **6000.3.23f1** · URP 17.3 · 3D 액션 RPG(힘민지 기반) · **모바일 서비스 전제**(URP Balanced 기준 · geometry/tessellation 셰이더 금지 · 삼각형/SetPass 예산 명시 · 인스턴싱·LOD) · 빌드 타겟 **Android 필수** · 레거시 Input · Addressables 2.9.1 · PlayFab(dev `D1149`) +- UI 기준 해상도 **세로 1080×1920**(Expand) — `ProjectSettings` 방향 전환은 PD 결정 대기 · 한 손 조작 UX +- 데이터 SOT = `Assets/ResWork/Table/Export/*.json`(butler.xlsm) · 튜닝 값 = `Assets/WL/Settings/Resources/WL/*.asset` · 게임 코드는 asmdef 없이 Assembly-CSharp 단일(어떤 .cs 변경도 전체 리컴파일) +- PD 게임 비전 = ① 화려한 전투 액션(타격감·카메라·이펙트) ② 쉽고 빠른 성장 · 새로 만들기보다 보유 에셋 활용 + +### Rules (모든 세션 공통) +- 기존 아키텍처를 유지한다 · 새 Manager/Singleton 을 만들기 전에 기존 구조를 확인한다 · 힘민지 원본(`Assets/Script/**`)은 **1줄 훅 + 새 파일(`Assets/WL/<영역>/`)** 로 확장한다 +- 데이터 값(거리·시간·배율·ID)을 코드 상수로 넣지 않는다 — 테이블·ScriptableObject(C45) · UI 와 Gameplay 로직을 분리한다 · public API 를 임의로 바꾸지 않는다 +- 작업 전에 관련 파일을 먼저 분석한다 · 요청(발주서)에 없는 파일은 수정하지 않는다 · 완료 전 컴파일 게이트 통과 + 콘솔 error 0 +- 실측한 것만 보고하고 미확인은 「미확인」(C23) · 이슈는 자체 결정 없이 Lead 에 보고(C3) · 200k 토큰 초과가 예상되면 멈추고 보고(C57) +- 상시 제약: 펫 스폰 금지 · 플레이어 무적 유지(임시) · 어그로 금지 · Play 는 Title 에서만 · 데모 씬 Play 금지 · Play 중 에셋 인스턴스 수정 금지 + +### 워커 세션 (cwd = `WL_wt/`) 규칙 +- 역할·소유 경로·핫스팟 = 조직 레포 `공유/WL_병렬작업/ownership_map.json` · 발주서 = `공유/WL_병렬작업/tasks/WL-###.md`(첫 메시지로 경로가 온다) · 프로세스 SOT = `공유/WL_병렬작업/00_WL_병렬개발_프로세스_v1.md`(필요 절만 Read) · 조직 프로필 스킬·코어룰 전수 로드 금지 +- 브랜치 `wl//WL-###-` · 커밋은 자기 브랜치에서 자유(`git add <경로 지정>` 만 · `-A` 금지 · 에디터 자동 변경 파일 제외) · **push 금지** · 완료 전 `git rebase main` + 게이트 재통과 +- 컴파일 게이트 = `powershell -File <조직레포>/scripts/wl/wl_compile_gate.ps1 -Project <이 worktree> -Mode oneshot` (헤드리스 슬롯을 받았으면 `-Mode resident` + `unity command --project-path <이 worktree> …`) +- 메인 에디터(`WL_PROJECT_ROOT` · 포트 7800)는 락 없이 명령 금지 · 자기 worktree 에서 Play 로그인 금지(PlayFab 중복 로그인) · 다른 세션의 worktree 접근 금지 +- 완료 = `공유/WL_병렬작업/reports/WL-###.md`(템플릿 `templates/완료보고.md` · 15줄 + 변경 파일 전수 + 실측 + 미확인) 작성 → Lead 세션에 메시지. 조직 레포 커밋은 Lead 만