From 8519cdac017dcf4a7f0ba849d2e24cd0a11652ec Mon Sep 17 00:00:00 2001 From: swrring Date: Wed, 6 May 2026 22:24:56 +0900 Subject: [PATCH] =?UTF-8?q?feat(BT9=20Phase=204):=20=EB=A7=A4=EB=8B=88?= =?UTF-8?q?=ED=8E=98=EC=8A=A4=ED=8A=B8=20SOT=20(=EB=82=98)=20=EC=B1=84?= =?UTF-8?q?=ED=83=9D=20=E2=80=94=20.claude/manifest/=20=EC=9D=BC=EA=B4=84?= =?UTF-8?q?=20SOT=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 경로: $HOME/.claude/burningtimes-audit/manifest/ →
/.claude/manifest/ (.gitignore 처리) - worktree 격리 회피 3축: git --git-common-dir 기반 MAIN_ROOT 추출 + realpath 기준 변경 + cygpath -u Windows 경로 정규화 - pm-auditor Major 3건 (gitignore·잔존 마이그레이션·audit_logs 보존) 전수 반영 - 잔존 매니페스트 6건 PowerShell Remove-Item 삭제 (active 1 + archived 5), audit_logs·unity_sync 영역 보존 - PD 직접 결정: 안건 1 (나) 채택 ("모든 PC 동일 위치 셋팅") + "잔존 삭제·신 위치 일괄 관리" - 7 target_files: scripts 3 + SKILL.md line 1247 + .gitignore + PD 지시 로그 + 대화로그 신설 Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/skills/BurningTimes-코어룰/SKILL.md | 2 +- .gitignore | 2 + scripts/auditor_gate.sh | 19 ++- scripts/manifest_archive.sh | 6 +- scripts/manifest_register.sh | 6 +- 공유/PD_지시_트래킹/개발팀_PD_지시_로그.md | 2 +- 공유/대화로그/조직운영/2026-05-06.md | 124 ++++++++++++++++++++ 7 files changed, 151 insertions(+), 10 deletions(-) create mode 100644 공유/대화로그/조직운영/2026-05-06.md diff --git a/.claude/skills/BurningTimes-코어룰/SKILL.md b/.claude/skills/BurningTimes-코어룰/SKILL.md index 663731e..f18ec92 100644 --- a/.claude/skills/BurningTimes-코어룰/SKILL.md +++ b/.claude/skills/BurningTimes-코어룰/SKILL.md @@ -1244,7 +1244,7 @@ pm-auditor 자신의 호출 이력도 감사 대상. 특정 작업에서 **호 **차단 조건**: - `scripts/auditor_gate.sh` PreToolUse hook (Edit/Write/MultiEdit/Bash(git commit·push)) - 대상: 의무 영역(SKILL.md·memory/org/feedback_*·조직공지·PD_지시_트래킹) 또는 git commit/push -- 활성 매니페스트(`$HOME/.claude/burningtimes-audit/manifest/active/*.md`) **부재** → `exit 2` 차단 +- 활성 매니페스트(`
/.claude/manifest/active/*.md` — 2026-05-06 (나) 채택, .gitignore 처리) **부재** → `exit 2` 차단 - 매니페스트 있으나 대상 파일이 **target_files 범위 밖** → `exit 2` 차단 - BYPASS 플래그로 **우회 불가** (M-1 수용 — 근본 해결 자체 우회 차단) diff --git a/.gitignore b/.gitignore index 55a0e48..a524ed3 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,8 @@ settings.local.json .claude/plugins/ # Claude Code가 세션마다 자동 생성하는 worktree (embedded repo로 오등록 방지) .claude/worktrees/ +# C35-9 매니페스트 SOT (PC·worktree 휘발성 — 2026-05-06 (나) 채택) +.claude/manifest/ # ===== 시크릿·키 ===== *.key diff --git a/scripts/auditor_gate.sh b/scripts/auditor_gate.sh index a298cc5..e5f12f1 100644 --- a/scripts/auditor_gate.sh +++ b/scripts/auditor_gate.sh @@ -34,8 +34,11 @@ fi # 4. M-1 수용: BYPASS 플래그 PreToolUse 차단 우회 불가 # (BYPASS는 기존 PostToolUse 경고 메커니즘 전용, 본 차단은 무조건 체크) -# 5. 활성 매니페스트 존재 확인 -MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest/active" +# 5. 활성 매니페스트 존재 확인 (2026-05-06 (나) 채택 — main 워크트리 .claude/manifest/ 일괄 SOT) +GCD=$(git rev-parse --git-common-dir 2>/dev/null) +MAIN_ROOT=$(cd "$GCD/.." 2>/dev/null && pwd) +[ -z "$MAIN_ROOT" ] && MAIN_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) +MANIFEST_DIR="$MAIN_ROOT/.claude/manifest/active" mkdir -p "$MANIFEST_DIR" 2>/dev/null ACTIVE=$(ls -t "$MANIFEST_DIR"/*.md 2>/dev/null | head -1) @@ -60,11 +63,15 @@ fi # 6. 범위 체크 — Edit/Write/MultiEdit인 경우 if [ "$TOOL_NAME" != "Bash" ]; then FILE_PATH=$(echo "$INPUT" | grep -oE '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*"\([^"]*\)"$/\1/') - REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) - if [ -n "$REPO_ROOT" ] && [ -n "$FILE_PATH" ]; then - REL=$(realpath --relative-to="$REPO_ROOT" "$FILE_PATH" 2>/dev/null || echo "$FILE_PATH") + # 2026-05-06 (나) 채택 — main 워크트리 기준 상대 경로 (worktree 격리 회피) + # Windows 경로 → POSIX 정규화 (git bash cygpath) + FILE_PATH_NORM=$(cygpath -u "$FILE_PATH" 2>/dev/null || echo "$FILE_PATH") + REF_ROOT="$MAIN_ROOT" + [ -z "$REF_ROOT" ] && REF_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) + if [ -n "$REF_ROOT" ] && [ -n "$FILE_PATH_NORM" ]; then + REL=$(realpath --relative-to="$REF_ROOT" "$FILE_PATH_NORM" 2>/dev/null || echo "$FILE_PATH_NORM") else - REL="$FILE_PATH" + REL="$FILE_PATH_NORM" fi # target_files 목록에서 검색 (YAML frontmatter " - " 형태) diff --git a/scripts/manifest_archive.sh b/scripts/manifest_archive.sh index 6279869..5d02a1a 100644 --- a/scripts/manifest_archive.sh +++ b/scripts/manifest_archive.sh @@ -3,7 +3,11 @@ # C35-9 Layer 3 근본 해결 2026-04-20 # M-1 수용: commit diff vs manifest target_files cross-check (부분집합 감지) -MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest" +# 2026-05-06 (나) 채택 — main 워크트리 .claude/manifest/ 일괄 SOT +GCD=$(git rev-parse --git-common-dir 2>/dev/null) +MAIN_ROOT=$(cd "$GCD/.." 2>/dev/null && pwd) +[ -z "$MAIN_ROOT" ] && MAIN_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) +MANIFEST_DIR="$MAIN_ROOT/.claude/manifest" ACTIVE_DIR="$MANIFEST_DIR/active" ARCHIVED_DIR="$MANIFEST_DIR/archived" diff --git a/scripts/manifest_register.sh b/scripts/manifest_register.sh index fb37391..3ac8c54 100644 --- a/scripts/manifest_register.sh +++ b/scripts/manifest_register.sh @@ -20,7 +20,11 @@ EOF exit 1 fi -MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest/active" +# 2026-05-06 (나) 채택 — main 워크트리 .claude/manifest/ 일괄 SOT +GCD=$(git rev-parse --git-common-dir 2>/dev/null) +MAIN_ROOT=$(cd "$GCD/.." 2>/dev/null && pwd) +[ -z "$MAIN_ROOT" ] && MAIN_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) +MANIFEST_DIR="$MAIN_ROOT/.claude/manifest/active" mkdir -p "$MANIFEST_DIR" 2>/dev/null MANIFEST="$MANIFEST_DIR/$PLAN_ID.md" diff --git a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md index c126124..f543850 100644 --- a/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md +++ b/공유/PD_지시_트래킹/개발팀_PD_지시_로그.md @@ -36,7 +36,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**. | BT12-Dev | 2026-04-24 23:00 | **스킬 시스템 설계 (C43 "개발팀" 호칭 직접 수령 + C49 시범 적용)** — PD 직접 지시 "개발팀은 기획서를 토대로 스킬 시스템 설계 진행". 기획서 v0.2 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉.md` 액티브 6카테고리·패시브 5카테고리·각성 4패턴) + CSV v0.3 60종 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉_v0.3.csv` UTF-8 BOM) 토대. C49 표준 프로세스 시범 적용 (개발팀장 Opus 설계 → 클라이언트팀 Sonnet 구현 → 개발팀장 검증) | **보류** | **[Phase 1 완료 2026-04-24]** 개발팀장 Opus 직접 설계 완결 — `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` (1074 라인, 14 섹션). §1 아키텍처 4계층 · §2 인터페이스 4종(`ISkillRuntime`·`IActiveSkill`·`IPassiveSkill`·`IAwakeningSkill`) + ScriptableObject 3종(`ActiveSkillData`·`PassiveSkillData`·`AwakeningSkillData`) + `PlayerSkillInventory`·`PlayerStats` · §3 CSV→ScriptableObject→Runtime→Health.Decrement 데이터 흐름 + 카테고리 문자열 매핑 · §4 VS 순수형 자동 발동 사이클 (OnTime·OnHit·OnKill + `ActiveSkillRuntime.Tick(deltaTime)` 독립 Cooldown) · §5 `AwakeningManager` 3 조건 동시 충족 + 4 패턴 Dispatcher + 다중 각성 선택 UI · §6 카테고리 매핑 6+5+4 (B는 BT7-Dev `AttackHitbox` 재활용 · 나머지 5 효과 발동기 신설) · §7 Phase 2-A~E 작업 단위 분해 (스크립트 25개·테스트 10건·asset 60개) · §10 BT7-Dev 통합 영역 (Health·AttackHitbox·PlayerAttackTicker·PlayerController 완전 보존 · `Health.OnDamagedEvent` 확장 필요 명시) · §11 기각안 5건 + 대화로그 추가 2건 (총 7건 C32 초과). 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` `[BT12-Dev Phase 1 완료] 개발팀장 스킬 시스템 설계 v1 (1074 라인)` 엔트리 완결. **C48 3자문 전수 통과**로 Phase 2 클라이언트팀 Sonnet Task는 본 Task에서 호출하지 않고 **PM 차원 별도 위임** 권고 (C48·C49·C50 정합) | **기획서 확정 대기** (PD 2026-04-25 직접 지시 — "기획서 확정되기 전까지 작업 대기") | **재개 트리거**: 기획팀 v0.3 또는 v1.0 확정 + balance-designer 60종 수치 확정 + narrative-designer 카드명 세계관 재매핑 결정 → C50 Phase 2 사전 승인 옵션(a/b/c/d) PD 결정 → 분할 시 Phase 2-A~E 순차 진행 (인터페이스·SO → 중앙 컴포넌트 → 효과 발동기 → 60장 .asset → EditMode 테스트) → Phase 3 개발팀장 검증 → 완료 아카이브. **선행 차단 블로커**: `paths.local.json.UNITY_PROJECT_ROOT: __SET_PER_PC__` 미설정 — 재개 시 PD PC 경로 설정 필요. Phase 1 산출물 1074 라인 설계 문서는 보존 | | BT7-Dev | 2026-04-24 | **BT7-Plan 개발 집행 Phase 1** — VS 순수형 자동 발동(공격 버튼 제거, PlayerAttackTicker 주기 타이머) + 하트 분할 시스템(Health.maxHearts·QuartersPerHeart·IncreaseMaxHearts·Heal·Decrement(int)) + EditMode 테스트 갱신(10→13) + AttackHitbox 쿼터 단위 피해 통합 + TODO 주석(EnemyController.attackDamage balance v0.2 대기) | **진행중** | Unity 편집 6파일 · BT 산출물 2파일 · 백업 6종. **Unity 외부 레포 `D:/NerdNavis/EerieVillage/`**: `Assets/Scripts/Gameplay/{PlayerAttack.cs(개정), PlayerAttackTicker.cs(신설)+.meta}`·`Assets/Scripts/Mechanics/{Health.cs(전면개정), PlayerController.cs(Attack입력제거·Facing public), AttackHitbox.cs(Decrement(damage)통합)}`·`Assets/Settings/InputSystem_Actions.inputactions(Attack액션·바인딩 완전 제거)`·`Assets/Tests/Editor/PlayerAttackTests.cs(10→13)`. **BT 레포**: `프로젝트/EerieVillage/개발/06_BT7-Plan_VS순수형_재구조.md`(신설) · `공유/개발팀_백업/EerieVillage/*.bak_20260424_1551.*`(6종). PD 수동 검증 2종(Asset import+EditMode Runner 실행·Player.prefab에 PlayerAttackTicker 부착+Play 검증) | — | **PM 수행 대기**: pm-auditor 감사 → BT worktree commit → Unity 외부 레포는 PD Editor 실행 시 GitAutoSync 자동 push → Play 검증 결과(13 tests green + 자동 공격 발동 확인) 수령 → balance/01 v0.2 확정 후 후속 Phase(EnemyController·적 ATK 테이블·HUD 하트 UI) 분리 착수 → 완료 아카이브 이동 | | BT10 | 2026-04-24 | **조직 코어룰 4개 신규 추가** — PD 직접 작성. 모든 에이전트가 모든 작업 수행에 기본으로 지켜야 할 핵심 룰. 1) 팩트 우선주의 (Fact-First Principle) 2) 하드보일드 공감 (Hard-boiled Empathy) 3) 비가역적 정체성 (Irreversible Identity) 4) 능동적 추론과 질문 생략 (Proactive Inference). 스킬화 여부는 팀장급 논의 후 결정 | **진행중** | (분석 중) PD 특수 용어 3건 확인 필요 (vlen님·British-Inflected Ursa·Project H) → BT 맥락 번역 → 기획팀장·개발팀장 병렬 위임 (스킬화 여부 논의 + BT SKILL.md 반영 초안) → BT9 Phase 2와 통합 집행 | — | PD 특수 용어 답변 수령 → 스킬화 결정 → SKILL.md C44~C47 신설 (가칭) → pm-auditor 감사 → BT9 통합 commit + push | -| BT9 | 2026-04-24 | **NerdNavisAi 과거 조직 룰 분석·BT 프로세스 개선** — `D:\NerdNavis\NerdNavisAi` 경로 과거 조직 레포 분석 후 현 BurningTimes 조직 프로세스에 개선할 부분 발굴·반영. 조직 운영 규칙(C·P)·프로세스·피드백 메모리·조직 자산 전 영역 비교 | **진행중** | [Phase 1 완료] Explore Agent thorough 분석 → 차이점 식별 → 개선안 초안. [Phase 2 개발 영역 집행 완료 2026-04-24] **scripts 2종 이식** — `scripts/c9_2_block.sh` (PostToolUse hook · Edit/Write/MultiEdit · C9-2 일정 표현 감지 · 5그룹 키워드 카탈로그 · 환경변수 `$HOME/.claude/.burningtimes_*` rename 완전) · `scripts/pm_implicit_check.sh` (PreToolUse hook · Edit/Write/MultiEdit · 외부 시스템 참조 실측 누락 감지 · 300초 윈도우 `$HOME/.claude/.burningtimes_implicit_check/last_verify.log` mtime · BT 조항 참조 C30·C5로 조정). **`.claude/settings.json` 수정** — PreToolUse에 `Edit|Write|MultiEdit` matcher 신규 블록 + pm_implicit_check.sh 등록 · PostToolUse `Edit|Write|MultiEdit` 기존 matcher에 c9_2_block.sh append. 기존 hook 체계(auto_approve·auditor_gate·postuse_log_reminder·auditor_call_log) 전부 보존. **백업** `.claude/settings.json.bak_20260424_1330` (C6-1). JSON 유효성·bash 문법 검증 통과 · chmod +x 권한 755 · nerdnavis 흔적 0건. **[Phase 3 Hook 2종 신설 완료 2026-04-24 2110 · BT10 통합]** — `scripts/fact_first_check.sh` (C44 팩트 우선주의 · PostToolUse Edit/Write/MultiEdit · 모호 표현 2그룹 감지 + WebSearch 이력 600초 윈도우 `$HOME/.claude/.burningtimes_fact_check/websearch.log` mtime 교차 환기) · `scripts/identity_guard.sh` (C46 비가역적 정체성 · PostToolUse Edit/Write/MultiEdit · 범용 AI 상용구 3그룹 차단 · 핵심 짚기/질문 통찰 칭찬/PD 추종 동조) · **`.claude/settings.json` PostToolUse `Edit|Write|MultiEdit` matcher 확장** (기존 postuse_log_reminder·c9_2_block 보존 + fact_first_check·identity_guard append 총 4종) · **백업** `.claude/settings.json.bak_20260424_2110_BT10` (C6-1) · JSON 유효성·bash 문법·chmod 755·nerdnavis 흔적 0건 전수 확증. | — | PM 수행 대기: 기획팀 SKILL.md 개정 + pm-auditor 감사 → commit + push 후 Phase 완료 처리 → 완료 아카이브 이동 | +| BT9 | 2026-04-24 | **NerdNavisAi 과거 조직 룰 분석·BT 프로세스 개선** — `D:\NerdNavis\NerdNavisAi` 경로 과거 조직 레포 분석 후 현 BurningTimes 조직 프로세스에 개선할 부분 발굴·반영. 조직 운영 규칙(C·P)·프로세스·피드백 메모리·조직 자산 전 영역 비교 | **진행중** | [Phase 1 완료] Explore Agent thorough 분석. [Phase 2 완료 2026-04-24] scripts 2종 이식 + settings.json matcher 확장. [Phase 3 완료 2026-04-24] Hook 2종 신설 (fact_first_check·identity_guard) + matcher 4종. **[Phase 4 매니페스트 SOT (나) 채택 완료 2026-05-06]** — PD 직접 결정 "나 안으로 채택" + "잔존 매니페스트 삭제 + 신 위치 일괄 관리" 수용. **경로 전환** `$HOME/.claude/burningtimes-audit/manifest/` → `
/.claude/manifest/` (.gitignore 처리, PC·worktree 휘발성). **worktree 격리 회피 3축**: ① `git rev-parse --git-common-dir` 기반 main 루트 추출 ② `auditor_gate.sh` line 64 `realpath` 기준을 `MAIN_ROOT`로 변경 ③ `cygpath -u` Windows 경로 정규화. **변경 7개 파일** (main 영역) — `scripts/auditor_gate.sh`·`manifest_register.sh`·`manifest_archive.sh`·`.gitignore`·`SKILL.md` line 1247·`개발팀_PD_지시_로그.md` BT9·`공유/대화로그/조직운영/2026-05-06.md` 신설. **본 worktree(`stupefied-spence-727cd7`) 영역 4종 동기화** — main 영역과 동일 변경 적용 (worktree hook이 자체 working copy 사용하므로). **잔존 매니페스트 6건 삭제** PowerShell `Remove-Item -Recurse -Force` (active 1·archived 5, audit_logs·unity_sync 영역 보존). **pm-auditor 사전 감사** Critical 0·Major 3 (gitignore·잔존 마이그레이션·audit_logs 보존) 전수 반영. 신 매니페스트 `2026-05-06_133000_manifest_sot` 7개 target_files 등록 + auditor_gate 시뮬레이션 EXIT=0 통과 검증. | — | PM 수행 대기: 기획팀 SKILL.md 개정 + pm-auditor 감사 → commit + push 후 Phase 완료 처리 → 완료 아카이브 이동 | | BT5-Dev | 2026-04-23 | **EerieVillage Phase 3 파일럿 (개발)** — ①Unity git 초기화·자동 sync ②캐릭터 교체·이동·공격·i-frame ③템플릿 분석 ④**PlayerTestGirl 아틀라스 최종 집행** (2026-04-24 추가) | **진행중** | [1·3단계 완료] `9f689c1` 원격 push · `scripts/unity_auto_sync.sh` · `01~03_*.md` 분석 3종 [2단계 v0.2 완료] Player·Enemy prefab 편집 + 8 EditMode tests [**3단계(PlayerTestGirl 아틀라스) 완료 2026-04-24 0003**] PD `PlayerTestGirl.png` 직접 저장 (1536×1024, 4x2 8 sprite, walk 4+attack 4 프레임 신규 캐릭터) → B안 채택 (PlayerIdle·PlayerRun m_PPtrCurves 교체 + PlayerAttack.anim 신설). **meta 재생성** (9→8 sprite, 384×512 grid, guid 유지) · **Idle·Run.anim 전면 재작성** (4 sprite loop) · **PlayerAttack.anim + meta 신설** (guid `c8d7e5a1...`) · **Player.controller 확장** (attack Trigger·Player-Attack State·AnyState/Exit Transition 3종) · **Player.prefab m_Sprite 교체** · **EditMode 테스트 +2** (총 10). C6-1 백업 5종 `bak_20260424_0003`. PD 수동 1건 (Play 검증). `feedback_pm_image_verification_skip.md` 신설 (`tier: constitutional`) + `feedback_pm_dev_task_delegation_failure.md` 3회차 append. 재발 방지 5종 체크리스트 전부 이행 (시각 확인·전수 ls·기존 meta 재활용·guid 충돌 검증·백업 5종) | `프로젝트/EerieVillage/개발/05_PlayerTestGirl_아틀라스_적용.md` · `프로젝트/EerieVillage/개발/04_BT5-Dev_2단계_구현보고.md` v0.2 · Unity `Assets/Character/{Sprites/PlayerTestGirl.png.meta, Animations/{PlayerIdle,PlayerRun,PlayerAttack,Player.controller}}` · `Assets/Prefabs/Player.prefab` · `Assets/Tests/Editor/PlayerAttackTests.cs` · `memory/org/feedback_pm_image_verification_skip.md` (신설) · `memory/org/feedback_pm_dev_task_delegation_failure.md` (3회차) · `공유/대화로그/EerieVillage/2026-04-23.md` `[캐릭터리소스교체최종]` 엔트리 | — | **PM 수행 대기**: pm-auditor 감사 → BT worktree commit → push → Unity 프로젝트는 PD Editor 실행 시 GitAutoSync 자동 push → Play 검증 결과(10 tests green + walk/attack 애니메이션 재생) 수령 → 완료 아카이브 이동 | --- diff --git a/공유/대화로그/조직운영/2026-05-06.md b/공유/대화로그/조직운영/2026-05-06.md new file mode 100644 index 0000000..7cf3a94 --- /dev/null +++ b/공유/대화로그/조직운영/2026-05-06.md @@ -0,0 +1,124 @@ +# 조직운영 대화로그 — 2026-05-06 + +--- + +## 엔트리 1. 매니페스트 SOT (나) 채택 + worktree 자동 생성 재발 원인 확정 + +**시각**: 2026-05-06 13:00 ~ +**주체**: 총괄PM +**영역**: 조직 공통 · C35-9 매니페스트 SOT 경로 전환 · C34 폐기 후속 잔존 정리 · BT9 Phase 4 +**유형**: 인수인계서 §6 단계 5-B 집행 + worktree 재발 원인 조사 + +### 배경 + +2026-04-26 세션 종결 시점 인수인계서 §6 단계 5-B에서 매니페스트 SOT 경로 (가)/(나)/(다) 3옵션 PD 결정 대기 안건으로 보류. 본 세션은 그 후속 결정·집행 + worktree 자동 생성 재발 원인 조사 동시 처리. + +### PD 직접 결정 (3건) + +1. **안건 1 매니페스트 SOT** — **(나) 채택**. PD 명시: "(모든 PC에서도 동일한 위치에 셋팅되면 좋겠어)" — 경로 일관성 의도. +2. **안건 2 worktree 자동 생성 재발** — 원인 조사 지시. PD 진입 방법: "윈도우 시작 메뉴의 Claude 메뉴를 통해 Claude 데스크톱 앱을 연 다음 기존 세션을 선택" +3. **안건 3 잔존 worktree 정리** — 다음 세션 일괄 정리 + +### 결정·근거·영향 (C32) + +#### 결정 1. 매니페스트 SOT (나) 채택 + +**경로 전환**: `$HOME/.claude/burningtimes-audit/manifest/` → `
/.claude/manifest/` + +**worktree 격리 회피 로직**: +```bash +GCD=$(git rev-parse --git-common-dir 2>/dev/null) +MAIN_ROOT=$(cd "$GCD/.." 2>/dev/null && pwd) +[ -z "$MAIN_ROOT" ] && MAIN_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) +MANIFEST_DIR="$MAIN_ROOT/.claude/manifest/active" +``` + +worktree 어디에서든 main 워크트리의 `.claude/manifest/` 단일 SOT로 수렴. 본 worktree에서 `git rev-parse --git-common-dir` → `E:/BurningTimes/.git` → `MAIN_ROOT=/e/BurningTimes` 검증 완료. + +**근거**: +- (가) `$HOME/.claude/...` = OS·사용자 경로 의존(`C:\Users\sw` vs `/home/user`) → PC별 경로 다름 → PD "동일 위치" 의도 미정합 +- (나) `.claude/manifest/` = 레포 상대 경로 → 모든 PC 동일 + .gitignore 휘발성 → 매니페스트 통행증 성격 정합 +- (다) `memory/org/manifest_logs/` = git 추적 → 재귀 차단 위험(매니페스트 등록 자체가 git commit 필요 → auditor_gate 차단 → 무한 루프) + 운영 비용 매 작업 commit 2회 추가 + +**영향**: +- 모든 PC 매니페스트 경로 일관성 확보 (헌법 제1원칙 ⑤ 정합) +- worktree 격리 무력화 (main 워크트리 단일 SOT) +- 운영 비용 변동 없음 (휘발성 유지) +- 잔존 6건(active 1·archived 5) 삭제 → 신 경로 빈 상태 시작 + +#### 결정 2. worktree 자동 생성 재발 — MSIX + resume 동시 발동 + +**원인 확정** (claude-code-guide 조사 결과): +- Windows 시작 메뉴 Claude = **MSIX 데스크톱 앱** (worktree 자동 생성 강제 · 공식 차단 옵션 부재 · GitHub Issue #31896·#39563·#50109 미해결) +- **기존 세션 선택** = resume → 이전 worktree(`stupefied-spence-727cd7`) 재진입 + +**2026-04-26 결론(MSIX 회피 + CLI 사용)은 정확함**. PD가 그날 결정한 우회 경로를 본 세션에서 안 쓴 것이 직접 원인. + +**근본 해결**: +- 다음 세션부터 **바탕화면 `BurningTimes Claude` 바로가기 더블클릭 + 새 대화 시작** (resume 회피) +- 시작 메뉴 Claude 항목 정리(우클릭 → 시작 화면에서 제거)는 PD 자유 결정 영역 +- 새 대화 시 맥락 손실 우려는 SessionStart hook 6계층 환기 + 인수인계서 + 최근 2일 대화로그 시스템으로 보완 + +#### 결정 3. 잔존 worktree 3개 다음 세션 일괄 정리 + +본 세션이 worktree에서 작동 중이므로 자가 삭제 회피. 다음 세션이 main 워크트리에서 진입 시 3개(trusting-khorana·gallant-northcutt·stupefied-spence) PowerShell `Remove-Item -Recurse -Force` + `git worktree prune`. + +### 산출물 + +- **변경 7개 파일**: + - `scripts/auditor_gate.sh` line 38 — main 루트 추출 로직 + - `scripts/manifest_register.sh` line 23 — 동일 + - `scripts/manifest_archive.sh` line 6 — 동일 + - `.claude/skills/BurningTimes-코어룰/SKILL.md` line 1247 — 매니페스트 경로 표기 갱신 + - `.gitignore` `.claude/manifest/` 1줄 추가 (Major-1 반영) + - `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` BT9 Phase 4 갱신 + - `공유/대화로그/조직운영/2026-05-06.md` 본 파일 신설 +- **삭제**: `$HOME/.claude/burningtimes-audit/manifest/` 디렉토리 (active 1건 + archived 5건). audit_logs·unity_sync 영역 보존. +- **신 매니페스트**: `/e/BurningTimes/.claude/manifest/active/2026-05-06_133000_manifest_sot.md` (target_files 7건) + +### pm-auditor 사전 감사 결과 + +**Critical 0건 · Major 3건 · Minor 2건 · Improvement 1건 — 통과 (조건부)** + +| 등급 | 항목 | 반영 | +|------|------|------| +| Major-1 | `.gitignore` `.claude/manifest/` 누락 | ✅ 추가 (line 24) | +| Major-2 | 잔존 active 1건 마이그레이션 | ✅ PD 지시 = 삭제 (archived 이동 X) | +| Major-3 | `$HOME/.claude/burningtimes-audit/` audit_logs·unity_sync 보존 명시 | ✅ manifest 하위만 삭제, 부모·형제 보존 | +| Minor-1 | 인수인계서 §6 잔존 표현 (과거 시점 기록 — 갱신 불요) | 미반영 (정합) | +| Minor-2 | C42-7 자기검증 누락 항목 | 본 응답에 J·K 그룹 명시 | +| Improvement-1 | macOS·Linux git 미설치 fallback | ✅ `--show-toplevel` fallback 포함 | + +### 기각안 (C32 필수) + +**기각안 A** — (가) `$HOME/.claude/burningtimes-audit/manifest/` 유지 +- 사유: PC별 OS 경로 의존 → PD "모든 PC 동일 위치" 의도 미정합 +- 결정: (나) 채택 + +**기각안 B** — (다) `memory/org/manifest_logs/` git 추적 +- 사유: 재귀 차단 위험(매니페스트 등록 = git commit → auditor_gate 차단 → 무한 루프) + 매 작업 commit 2회 추가 운영 비용 + 매니페스트 휘발성 성격 영구 추적 부적합 +- 결정: (나) 채택 + +**기각안 C** — 잔존 매니페스트 archived 일괄 이동 후 보존 +- 사유: PD 명시 "삭제하고, 이번에 배치한 위치로 일괄 관리" → 신 위치만 SOT +- 결정: PowerShell `Remove-Item` 삭제 채택 + +**기각안 D** — 본 세션에서 worktree 일부 정리(trusting·gallant 2개) +- 사유: 본 세션 자체가 worktree 안 → 자가 삭제 불가. 부분 정리는 2단계 분할로 효율 저하 +- 결정: 다음 세션 일괄 정리 (안건 3 PD 결정) + +### 관련 규칙·자산 + +- C2 근본 해결 (worktree 격리 회피는 근본 해결 — 매니페스트 단일 SOT 수렴) +- C5·C13·C19·C29·C36·C37·C42 정합 +- C35-9 Layer 3 매니페스트 기반 차단 + 해제 (본 변경의 직접 대상) +- C34 폐기 (2026-04-26) 후속 잔존 정리 +- C44 팩트 우선 (claude-code-guide 외부 검증 + 실측 확증 후 결정) + +### 후속 안건 + +- 단계 5-A 잔존 worktree 3개 일괄 정리 (다음 세션 main 워크트리에서) +- BT9 Phase 4 완료 처리 → 완료 아카이브 이동 (Phase 4까지 완결, Phase 5 잔존 시 재정의) +- `scripts/sync_audit_*.sh` 2종 (C34 폐기 후속 잔존) — 별건 후순위 + +---