feat(BT9 Phase 4): 매니페스트 SOT (나) 채택 — .claude/manifest/ 일괄 SOT 전환

- 경로: $HOME/.claude/burningtimes-audit/manifest/ → <main>/.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) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-06 22:24:56 +09:00
parent 82c80b77b3
commit 8519cdac01
7 changed files with 151 additions and 10 deletions

View File

@ -1244,7 +1244,7 @@ pm-auditor 자신의 호출 이력도 감사 대상. 특정 작업에서 **호
**차단 조건**: **차단 조건**:
- `scripts/auditor_gate.sh` PreToolUse hook (Edit/Write/MultiEdit/Bash(git commit·push)) - `scripts/auditor_gate.sh` PreToolUse hook (Edit/Write/MultiEdit/Bash(git commit·push))
- 대상: 의무 영역(SKILL.md·memory/org/feedback_*·조직공지·PD_지시_트래킹) 또는 git commit/push - 대상: 의무 영역(SKILL.md·memory/org/feedback_*·조직공지·PD_지시_트래킹) 또는 git commit/push
- 활성 매니페스트(`$HOME/.claude/burningtimes-audit/manifest/active/*.md`) **부재**`exit 2` 차단 - 활성 매니페스트(`<main 워크트리>/.claude/manifest/active/*.md` — 2026-05-06 (나) 채택, .gitignore 처리) **부재**`exit 2` 차단
- 매니페스트 있으나 대상 파일이 **target_files 범위 밖**`exit 2` 차단 - 매니페스트 있으나 대상 파일이 **target_files 범위 밖**`exit 2` 차단
- BYPASS 플래그로 **우회 불가** (M-1 수용 — 근본 해결 자체 우회 차단) - BYPASS 플래그로 **우회 불가** (M-1 수용 — 근본 해결 자체 우회 차단)

2
.gitignore vendored
View File

@ -21,6 +21,8 @@ settings.local.json
.claude/plugins/ .claude/plugins/
# Claude Code가 세션마다 자동 생성하는 worktree (embedded repo로 오등록 방지) # Claude Code가 세션마다 자동 생성하는 worktree (embedded repo로 오등록 방지)
.claude/worktrees/ .claude/worktrees/
# C35-9 매니페스트 SOT (PC·worktree 휘발성 — 2026-05-06 (나) 채택)
.claude/manifest/
# ===== 시크릿·키 ===== # ===== 시크릿·키 =====
*.key *.key

View File

@ -34,8 +34,11 @@ fi
# 4. M-1 수용: BYPASS 플래그 PreToolUse 차단 우회 불가 # 4. M-1 수용: BYPASS 플래그 PreToolUse 차단 우회 불가
# (BYPASS는 기존 PostToolUse 경고 메커니즘 전용, 본 차단은 무조건 체크) # (BYPASS는 기존 PostToolUse 경고 메커니즘 전용, 본 차단은 무조건 체크)
# 5. 활성 매니페스트 존재 확인 # 5. 활성 매니페스트 존재 확인 (2026-05-06 (나) 채택 — main 워크트리 .claude/manifest/ 일괄 SOT)
MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest/active" 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 mkdir -p "$MANIFEST_DIR" 2>/dev/null
ACTIVE=$(ls -t "$MANIFEST_DIR"/*.md 2>/dev/null | head -1) ACTIVE=$(ls -t "$MANIFEST_DIR"/*.md 2>/dev/null | head -1)
@ -60,11 +63,15 @@ fi
# 6. 범위 체크 — Edit/Write/MultiEdit인 경우 # 6. 범위 체크 — Edit/Write/MultiEdit인 경우
if [ "$TOOL_NAME" != "Bash" ]; then if [ "$TOOL_NAME" != "Bash" ]; then
FILE_PATH=$(echo "$INPUT" | grep -oE '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*"\([^"]*\)"$/\1/') 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) # 2026-05-06 (나) 채택 — main 워크트리 기준 상대 경로 (worktree 격리 회피)
if [ -n "$REPO_ROOT" ] && [ -n "$FILE_PATH" ]; then # Windows 경로 → POSIX 정규화 (git bash cygpath)
REL=$(realpath --relative-to="$REPO_ROOT" "$FILE_PATH" 2>/dev/null || echo "$FILE_PATH") 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 else
REL="$FILE_PATH" REL="$FILE_PATH_NORM"
fi fi
# target_files 목록에서 검색 (YAML frontmatter " - " 형태) # target_files 목록에서 검색 (YAML frontmatter " - " 형태)

View File

@ -3,7 +3,11 @@
# C35-9 Layer 3 근본 해결 2026-04-20 # C35-9 Layer 3 근본 해결 2026-04-20
# M-1 수용: commit diff vs manifest target_files cross-check (부분집합 감지) # 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" ACTIVE_DIR="$MANIFEST_DIR/active"
ARCHIVED_DIR="$MANIFEST_DIR/archived" ARCHIVED_DIR="$MANIFEST_DIR/archived"

View File

@ -20,7 +20,11 @@ EOF
exit 1 exit 1
fi 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 mkdir -p "$MANIFEST_DIR" 2>/dev/null
MANIFEST="$MANIFEST_DIR/$PLAN_ID.md" MANIFEST="$MANIFEST_DIR/$PLAN_ID.md"

View File

@ -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 라인 설계 문서는 보존 | | 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) 분리 착수 → 완료 아카이브 이동 | | 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 | | 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/``<main 워크트리>/.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 애니메이션 재생) 수령 → 완료 아카이브 이동 | | 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 애니메이션 재생) 수령 → 완료 아카이브 이동 |
--- ---

View File

@ -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/``<main 워크트리>/.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 폐기 후속 잔존) — 별건 후순위
---