From 4911b7485a9f4999521a87133335d1fea37a1f9d Mon Sep 17 00:00:00 2001 From: swrring Date: Tue, 21 Apr 2026 00:14:51 +0900 Subject: [PATCH] =?UTF-8?q?feat(BT=C2=B7=EC=8B=A0=EC=84=A4):=20=EC=A1=B0?= =?UTF-8?q?=EC=A7=81=20=EC=8B=A0=EC=84=A4=20Phase=201=20=E2=80=94=20git=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=EC=86=8C=20=EA=B5=90=EC=B2=B4=20+=20?= =?UTF-8?q?=EC=A4=91=EC=95=99=20=EC=A0=80=EC=9E=A5=EC=86=8C=20A=EC=95=88?= =?UTF-8?q?=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PD님 2026-04-21 직접 지시 5개 중 1·2·4 이행. ## 집행 내역 1. git remote: NerdNavisAi.git → BurningTimesAi.git 교체 (BT main + 본 worktree) - E:/NerdNavisAi 레포 원격은 원상 유지 (실측 확인) 2. 중앙 저장소 A안 분리: ~/.claude/burningtimes-{live,memory,audit}/ - nerdnavis-* 중앙 저장소에서 cp -r 복사 (원본 미변경) - .junction-marker 내용 BT로 갱신 3. 본 worktree .live junction 재연결 → burningtimes-live 4. audit junction 3종 신설: .burningtimes_{auditor_calls,warning_ignored,bypass_log} 5. scripts·setup 28파일 하드코딩 일괄 치환 (nerdnavis/NerdNavis/너드나비스/NERDNAVIS → burningtimes/BurningTimes/BURNINGTIMES) 6. paths.local.json.template BT 전용 재작성 (Unity·Framework 경로 __TBD__ placeholder) 7. .gitignore: .live.bak_*/ 패턴 추가 ## 보류 항목 (PD 재논의 예정) - 3. memory/org/ 내용 초기화 (PD 지시) - 5. Unity 프로젝트 경로 (PD 신규 경로 제공 전까지) - SKILL.md·CLAUDE.md 조직명 전환 및 P17·P29 처리 - 프로젝트/수상한잡화점/ 등 수상한잡화점 관련 일괄 정리 - 코어코드/NerdNavis.Framework/ → BT-프레임워크 이름 전환 - 공유/조직공지/ 너드나비스 맥락 공지 처리 - .claude/agents/*.md frontmatter skills 참조명 ## 감사 pm-auditor 사전 감사 통과 (Critical 0건, Major 2건 commit 전 정정 완료). 매니페스트: bt-org-split-phase1 (C35-9 PreToolUse 차단 해제). Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/settings.json | 2 +- .gitignore | 1 + paths.local.json.template | 14 +++--- scripts/audit_junction_ensure.sh | 12 ++--- scripts/audit_pattern_analyzer.sh | 6 +-- scripts/auditor_call_log.sh | 4 +- scripts/auditor_gate.sh | 2 +- scripts/change_digest.sh | 2 +- scripts/git_fetch_throttle.sh | 2 +- scripts/hold_watch.sh | 2 +- scripts/live_inject.sh | 2 +- scripts/live_junction_ensure.sh | 6 +-- scripts/live_session_load.sh | 2 +- scripts/manifest_archive.sh | 2 +- scripts/manifest_register.sh | 2 +- scripts/md_to_docx.js | 2 +- scripts/memory_junction_ensure.sh | 12 ++--- scripts/nas_post_receive.sh | 6 +-- scripts/rollback_memory_central.sh | 4 +- scripts/session_end_audit.sh | 2 +- scripts/sync_audit_central_to_repo.sh | 2 +- scripts/sync_audit_repo_to_central.sh | 2 +- scripts/sync_memory_central_to_repo.sh | 6 +-- scripts/sync_memory_repo_to_central.sh | 8 +-- scripts/sync_signal.sh | 2 +- scripts/unity_project_sync.sh | 2 +- scripts/verify_setup.ps1 | 32 ++++++------ setup/setup_macos.sh | 36 +++++++------- setup/setup_windows.ps1 | 68 +++++++++++++------------- 29 files changed, 123 insertions(+), 122 deletions(-) diff --git a/.claude/settings.json b/.claude/settings.json index 4c5c7ff..9658c44 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -1,5 +1,5 @@ { - "_description": "너드나비스 조직 공용 Claude Code permission + hook 설정 (SOT). PD님 일괄 승인 원칙 + 자동 동기화 hook. 단일 세션 + Agent 병렬 호출 구조. 모든 PC 동일 적용. 루트 단일 관리.", + "_description": "BurningTimes 조직 공용 Claude Code permission + hook 설정 (SOT). PD님 일괄 승인 원칙 + 자동 동기화 hook. 단일 세션 + Agent 병렬 호출 구조. 모든 PC 동일 적용. 루트 단일 관리.", "permissions": { "defaultMode": "acceptEdits", "allow": [ diff --git a/.gitignore b/.gitignore index 544dbaa..296cb7c 100644 --- a/.gitignore +++ b/.gitignore @@ -108,4 +108,5 @@ build/ .live/* !.live/README.md .live.bak-*/ +.live.bak_*/ diff --git a/paths.local.json.template b/paths.local.json.template index e7b7f57..b1dbec7 100644 --- a/paths.local.json.template +++ b/paths.local.json.template @@ -1,17 +1,17 @@ { "_description": "환경별 로컬 경로 설정 템플릿. 이 파일을 paths.local.json으로 복사 후 실값 입력. 실값 파일은 .gitignore로 커밋 금지.", - "_hostname_example": "NERDNAVIS-MAIN-PC | HOME-PC | LAPTOP-01", + "_hostname_example": "BURNINGTIMES-MAIN-PC | HOME-PC | LAPTOP-01", - "NERDNAVIS_ROOT": "C:/Users/PC/Documents/너드나비스", - "UNITY_PROJECT_ROOT": "D:/NerdNavis/FilGoodBandits/DeckBuilding", - "FRAMEWORK_PKG_ROOT": "D:/NerdNavis/NerdNavis.Framework", + "BURNINGTIMES_ROOT": "E:/BurningTimes", + "UNITY_PROJECT_ROOT": "__TBD_PD_WILL_PROVIDE__", + "FRAMEWORK_PKG_ROOT": "__TBD_BT_Framework_경로__", "TABLE_EXPORT_ROOT": "${UNITY_PROJECT_ROOT}/Assets/ResWork/Table/Export", "GITEA_URL": "https://burning.i234.me", "GITEA_SSH": "ssh://git@burning.i234.me:30030", + "GIT_REMOTE": "https://burning.i234.me/NerdNavis_AiDev/BurningTimesAi.git", "_per_pc_hint": { - "회사_PC": "D 드라이브 Unity, C 드라이브 org", - "집_PC": "E 드라이브 Unity 예시", - "노트북": "C 드라이브 통합 예시" + "Unity_경로_보류": "PD님이 BT 전용 Unity 프로젝트 경로 제공 전까지 UNITY_PROJECT_ROOT·TABLE_EXPORT_ROOT 사용 금지", + "Framework": "BT-프레임워크(구 NerdNavis.Framework 계승) 경로는 별도 안건으로 확정 후 기입" } } diff --git a/scripts/audit_junction_ensure.sh b/scripts/audit_junction_ensure.sh index 29b9dfb..3a944c9 100644 --- a/scripts/audit_junction_ensure.sh +++ b/scripts/audit_junction_ensure.sh @@ -3,20 +3,20 @@ # 2026-04-20 #48 G 집행 신설 — PD님 직접 지시 "어떤 PC에서도 일관 상태 동시화" # 관련 규칙: C34-17 audit 특수 조항 · C36 PM 재량 상한 · 헌법 제1원칙 ⑤ -CENTRAL_AUDIT="$HOME/.claude/nerdnavis-audit" +CENTRAL_AUDIT="$HOME/.claude/burningtimes-audit" MARKER_NAME=".junction-marker" # 디렉토리 매핑: 로컬 디렉토리명(점 제외) | 중앙 하위 디렉토리명 MAPPINGS=( - "nerdnavis_auditor_calls|auditor_calls" - "nerdnavis_warning_ignored|warning_ignored" - "nerdnavis_bypass_log|bypass_log" + "burningtimes_auditor_calls|auditor_calls" + "burningtimes_warning_ignored|warning_ignored" + "burningtimes_bypass_log|bypass_log" ) # 1. 중앙 저장소 최상위 + marker 보장 mkdir -p "$CENTRAL_AUDIT" 2>/dev/null if [ ! -f "$CENTRAL_AUDIT/$MARKER_NAME" ]; then - echo "nerdnavis-audit central junction target (C34-17, 2026-04-20 #48 G)" > "$CENTRAL_AUDIT/$MARKER_NAME" 2>/dev/null + echo "burningtimes-audit central junction target (C34-17, 2026-04-20 #48 G)" > "$CENTRAL_AUDIT/$MARKER_NAME" 2>/dev/null fi # 2. 각 매핑 처리 @@ -29,7 +29,7 @@ for MAPPING in "${MAPPINGS[@]}"; do # 중앙 하위 디렉토리 + sub marker 보장 mkdir -p "$CENTRAL_DIR" 2>/dev/null if [ ! -f "$CENTRAL_DIR/$MARKER_NAME" ]; then - echo "nerdnavis-audit/$CENTRAL_SUB junction target (C34-17)" > "$CENTRAL_DIR/$MARKER_NAME" 2>/dev/null + echo "burningtimes-audit/$CENTRAL_SUB junction target (C34-17)" > "$CENTRAL_DIR/$MARKER_NAME" 2>/dev/null fi # sentinel 판정: 로컬에서 marker 접근 가능하면 이미 연결 완료 diff --git a/scripts/audit_pattern_analyzer.sh b/scripts/audit_pattern_analyzer.sh index f6c46ce..4148ea4 100644 --- a/scripts/audit_pattern_analyzer.sh +++ b/scripts/audit_pattern_analyzer.sh @@ -6,9 +6,9 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 -CALL_DIR="$HOME/.claude/.nerdnavis_auditor_calls" -WARN_DIR="$HOME/.claude/.nerdnavis_warning_ignored" -BYPASS_DIR="$HOME/.claude/.nerdnavis_bypass_log" +CALL_DIR="$HOME/.claude/.burningtimes_auditor_calls" +WARN_DIR="$HOME/.claude/.burningtimes_warning_ignored" +BYPASS_DIR="$HOME/.claude/.burningtimes_bypass_log" # 미해소 경고 건수 집계 (UNRESOLVED - RESOLVED) UNRESOLVED_NET=0 diff --git a/scripts/auditor_call_log.sh b/scripts/auditor_call_log.sh index 5888c30..b69ecf4 100644 --- a/scripts/auditor_call_log.sh +++ b/scripts/auditor_call_log.sh @@ -11,7 +11,7 @@ if ! echo "$INPUT" | grep -q '"subagent_type"[[:space:]]*:[[:space:]]*"pm-audito exit 0 fi -LOG_DIR="$HOME/.claude/.nerdnavis_auditor_calls" +LOG_DIR="$HOME/.claude/.burningtimes_auditor_calls" mkdir -p "$LOG_DIR" 2>/dev/null # 일자별 로그 파일에 호출 시각 기록 @@ -19,7 +19,7 @@ LOG_FILE="$LOG_DIR/$(date +%Y-%m-%d).log" echo "$(date +%Y-%m-%d_%H:%M:%S) pm-auditor called" >> "$LOG_FILE" # 경고 무시 사례 해소 처리 — 기존 UNRESOLVED 로그에 RESOLVED 마커 append -WARNING_DIR="$HOME/.claude/.nerdnavis_warning_ignored" +WARNING_DIR="$HOME/.claude/.burningtimes_warning_ignored" if [ -d "$WARNING_DIR" ]; then for wf in "$WARNING_DIR"/*.log; do [ -f "$wf" ] || continue diff --git a/scripts/auditor_gate.sh b/scripts/auditor_gate.sh index cc9b57d..a298cc5 100644 --- a/scripts/auditor_gate.sh +++ b/scripts/auditor_gate.sh @@ -35,7 +35,7 @@ fi # (BYPASS는 기존 PostToolUse 경고 메커니즘 전용, 본 차단은 무조건 체크) # 5. 활성 매니페스트 존재 확인 -MANIFEST_DIR="$HOME/.claude/nerdnavis-audit/manifest/active" +MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest/active" mkdir -p "$MANIFEST_DIR" 2>/dev/null ACTIVE=$(ls -t "$MANIFEST_DIR"/*.md 2>/dev/null | head -1) diff --git a/scripts/change_digest.sh b/scripts/change_digest.sh index 91a772d..cad6311 100644 --- a/scripts/change_digest.sh +++ b/scripts/change_digest.sh @@ -2,7 +2,7 @@ # SessionStart hook용 — 마지막 확인 이후 변경 요약 출력 # 세션 간 소통 부재(문제 2) 해소: 커밋 메시지 자체가 소통 채널 역할 -THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle" +THROTTLE_DIR="$HOME/.claude/.burningtimes_throttle" mkdir -p "$THROTTLE_DIR" 2>/dev/null GIT_DIR=$(git rev-parse --git-dir 2>/dev/null) diff --git a/scripts/git_fetch_throttle.sh b/scripts/git_fetch_throttle.sh index b363021..bf66152 100644 --- a/scripts/git_fetch_throttle.sh +++ b/scripts/git_fetch_throttle.sh @@ -7,7 +7,7 @@ # 주 동기화는 scripts/sync_signal.sh (로컬 IPC 시그널) 담당. 본 스크립트는 # 시그널이 없거나 다른 PC에서 push된 경우를 위한 fallback. -THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle" +THROTTLE_DIR="$HOME/.claude/.burningtimes_throttle" mkdir -p "$THROTTLE_DIR" 2>/dev/null GIT_DIR=$(git rev-parse --git-dir 2>/dev/null) diff --git a/scripts/hold_watch.sh b/scripts/hold_watch.sh index b44875c..2a2b227 100644 --- a/scripts/hold_watch.sh +++ b/scripts/hold_watch.sh @@ -6,7 +6,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 -THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle" +THROTTLE_DIR="$HOME/.claude/.burningtimes_throttle" mkdir -p "$THROTTLE_DIR" 2>/dev/null HOLD_HASH_FILE="$THROTTLE_DIR/hold_files_hash" diff --git a/scripts/live_inject.sh b/scripts/live_inject.sh index a5bd958..a3aa0dd 100644 --- a/scripts/live_inject.sh +++ b/scripts/live_inject.sh @@ -9,7 +9,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) LIVE_DIR="$REPO_ROOT/.live" [ ! -d "$LIVE_DIR" ] && exit 0 -THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle" +THROTTLE_DIR="$HOME/.claude/.burningtimes_throttle" mkdir -p "$THROTTLE_DIR" 2>/dev/null OUTPUT="" diff --git a/scripts/live_junction_ensure.sh b/scripts/live_junction_ensure.sh index cf59ab0..4d6639a 100644 --- a/scripts/live_junction_ensure.sh +++ b/scripts/live_junction_ensure.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SessionStart hook — .live/ 디렉토리를 $HOME/.claude/nerdnavis-live/로 junction 보장 +# SessionStart hook — .live/ 디렉토리를 $HOME/.claude/burningtimes-live/로 junction 보장 # worktree 격리를 제거하여 모든 세션이 동일한 실제 .live/ 디렉토리를 공유한다. # 2026-04-18 신설 — C34 헌법급 Live 증분 동기화 체계의 근원 해결 장치 # 관련 규칙: C34 · C16-1 PC 독립 셋업 · 헌법 제1원칙 ⑤ 세션·PC 연속성 @@ -7,14 +7,14 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 -CENTRAL_LIVE="$HOME/.claude/nerdnavis-live" +CENTRAL_LIVE="$HOME/.claude/burningtimes-live" LOCAL_LIVE="$REPO_ROOT/.live" MARKER_NAME=".junction-marker" # 1. 중앙 저장소 + marker 보장 mkdir -p "$CENTRAL_LIVE" 2>/dev/null if [ ! -f "$CENTRAL_LIVE/$MARKER_NAME" ]; then - echo "nerdnavis-live central junction target (C34, 2026-04-18)" > "$CENTRAL_LIVE/$MARKER_NAME" 2>/dev/null + echo "burningtimes-live central junction target (C34, 2026-04-18)" > "$CENTRAL_LIVE/$MARKER_NAME" 2>/dev/null fi # 2. 이미 올바르게 junction 연결되어 있으면 조기 종료 (sentinel 경유 판정) diff --git a/scripts/live_session_load.sh b/scripts/live_session_load.sh index c041627..ae4f487 100644 --- a/scripts/live_session_load.sh +++ b/scripts/live_session_load.sh @@ -9,7 +9,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) LIVE_DIR="$REPO_ROOT/.live" [ ! -d "$LIVE_DIR" ] && exit 0 -THROTTLE_DIR="$HOME/.claude/.nerdnavis_throttle" +THROTTLE_DIR="$HOME/.claude/.burningtimes_throttle" mkdir -p "$THROTTLE_DIR" 2>/dev/null OUTPUT="" diff --git a/scripts/manifest_archive.sh b/scripts/manifest_archive.sh index 24f7cbd..6279869 100644 --- a/scripts/manifest_archive.sh +++ b/scripts/manifest_archive.sh @@ -3,7 +3,7 @@ # C35-9 Layer 3 근본 해결 2026-04-20 # M-1 수용: commit diff vs manifest target_files cross-check (부분집합 감지) -MANIFEST_DIR="$HOME/.claude/nerdnavis-audit/manifest" +MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest" ACTIVE_DIR="$MANIFEST_DIR/active" ARCHIVED_DIR="$MANIFEST_DIR/archived" diff --git a/scripts/manifest_register.sh b/scripts/manifest_register.sh index c0f69e5..fb37391 100644 --- a/scripts/manifest_register.sh +++ b/scripts/manifest_register.sh @@ -20,7 +20,7 @@ EOF exit 1 fi -MANIFEST_DIR="$HOME/.claude/nerdnavis-audit/manifest/active" +MANIFEST_DIR="$HOME/.claude/burningtimes-audit/manifest/active" mkdir -p "$MANIFEST_DIR" 2>/dev/null MANIFEST="$MANIFEST_DIR/$PLAN_ID.md" diff --git a/scripts/md_to_docx.js b/scripts/md_to_docx.js index 6dadd01..d9defd9 100644 --- a/scripts/md_to_docx.js +++ b/scripts/md_to_docx.js @@ -224,7 +224,7 @@ while (i < lines.length) { } const doc = new Document({ - creator: '너드나비스 개발팀', + creator: 'BurningTimes 개발팀', title: '인간 서버 개발자 업무 지시서 — 수상한잡화점', styles: { default: { document: { run: { font: FONT, size: 22 } } }, diff --git a/scripts/memory_junction_ensure.sh b/scripts/memory_junction_ensure.sh index 6e47720..fc58d16 100644 --- a/scripts/memory_junction_ensure.sh +++ b/scripts/memory_junction_ensure.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SessionStart hook — memory/org junction을 $HOME/.claude/nerdnavis-memory/로 보장 +# SessionStart hook — memory/org junction을 $HOME/.claude/burningtimes-memory/로 보장 # Claude user memory 경로(`$HOME/.claude/projects/*/memory`)의 모든 worktree 해시 폴더를 # 중앙 저장소로 연결하여 worktree 경계 무관 조직 기억 실시간 공유 보장. # 2026-04-19 신설 — C34 확장 (P25 승격 + memory/org/ 편입) @@ -8,10 +8,10 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 -CENTRAL_MEM="$HOME/.claude/nerdnavis-memory" +CENTRAL_MEM="$HOME/.claude/burningtimes-memory" MARKER_NAME=".memory-junction-marker" CLAUDE_PROJECTS="$HOME/.claude/projects" -LOCK_FILE="$HOME/.claude/.nerdnavis_memory_junction.lock" +LOCK_FILE="$HOME/.claude/.burningtimes_memory_junction.lock" # 0. Lock (race condition 방지, 동시 세션 시작 시 junction 중복 시도 차단) ATTEMPT=0 @@ -25,19 +25,19 @@ trap 'rm -f "$LOCK_FILE"' EXIT # 1. 중앙 저장소 + marker 보장 mkdir -p "$CENTRAL_MEM" 2>/dev/null if [ ! -f "$CENTRAL_MEM/$MARKER_NAME" ]; then - echo "nerdnavis-memory central junction target (C34-16, 2026-04-19)" > "$CENTRAL_MEM/$MARKER_NAME" 2>/dev/null + echo "burningtimes-memory central junction target (C34-16, 2026-04-19)" > "$CENTRAL_MEM/$MARKER_NAME" 2>/dev/null fi # 2. Claude projects base 부재 시 조기 종료 (Claude Code 첫 실행 전 PC) [ ! -d "$CLAUDE_PROJECTS" ] && exit 0 -# 3. E--NerdNavisAi* 패턴 해시 폴더 순회 (루트·worktree 모두 포괄) +# 3. E--BurningTimesAi* 패턴 해시 폴더 순회 (루트·worktree 모두 포괄) RECONNECTED=0 CREATED=0 SKIPPED=0 FAILED=0 -for hash_dir in "$CLAUDE_PROJECTS"/E--NerdNavisAi*; do +for hash_dir in "$CLAUDE_PROJECTS"/E--BurningTimesAi*; do [ -d "$hash_dir" ] || continue mem_link="$hash_dir/memory" diff --git a/scripts/nas_post_receive.sh b/scripts/nas_post_receive.sh index 06a6f33..8ecbd2a 100644 --- a/scripts/nas_post_receive.sh +++ b/scripts/nas_post_receive.sh @@ -1,13 +1,13 @@ #!/bin/bash # ───────────────────────────────────────────────────────────── -# NerdNavis — NAS git 서버측 post-receive hook +# BurningTimes — NAS git 서버측 post-receive hook # Phase 3 (2026-04-15 PD님 승인) # # 목적: git push 도달 즉시 Discord 채널로 실시간 알림 발송 # → 부서 세션이 구동되지 않은 상태에서도 PD님·PM·부서가 push 이벤트를 즉시 인지 # # 배치 위치: /hooks/post-receive -# 예: /volume1/git-repos/NerdNavisAi.git/hooks/post-receive +# 예: /volume1/git-repos/BurningTimesAi.git/hooks/post-receive # 배치 후: chmod +x post-receive # # 환경변수 파일: 같은 hooks/ 디렉토리에 post-receive-env 파일 생성 후 다음 변수 정의 @@ -52,7 +52,7 @@ send_discord() { "title": "$TITLE", "description": "$DESC", "color": $COLOR, - "footer": {"text": "너드나비스 git server · post-receive"} + "footer": {"text": "BurningTimes git server · post-receive"} }] } EOF diff --git a/scripts/rollback_memory_central.sh b/scripts/rollback_memory_central.sh index 1318694..d5d9e64 100644 --- a/scripts/rollback_memory_central.sh +++ b/scripts/rollback_memory_central.sh @@ -3,7 +3,7 @@ # Junction 해제 + 중앙 백업 + 레포 memory/org/ 원본 복구 # 2026-04-19 신설 — C34 집행 실패 시 사용 (C6-1 롤백 경로 확보 의무) -CENTRAL_MEM="$HOME/.claude/nerdnavis-memory" +CENTRAL_MEM="$HOME/.claude/burningtimes-memory" CLAUDE_PROJECTS="$HOME/.claude/projects" echo "=== memory 중앙화 롤백 시작 ===" @@ -17,7 +17,7 @@ fi # 2. 모든 worktree 해시 폴더의 user memory junction 제거 REMOVED=0 -for hash_dir in "$CLAUDE_PROJECTS"/E--NerdNavisAi*; do +for hash_dir in "$CLAUDE_PROJECTS"/E--BurningTimesAi*; do [ -d "$hash_dir" ] || continue mem_link="$hash_dir/memory" [ -e "$mem_link" ] || [ -L "$mem_link" ] || continue diff --git a/scripts/session_end_audit.sh b/scripts/session_end_audit.sh index fb6f351..c07bf8e 100644 --- a/scripts/session_end_audit.sh +++ b/scripts/session_end_audit.sh @@ -29,7 +29,7 @@ if [ "$TODAY_COMMITS" -gt 0 ]; then NEEDS_CORE=1 fi # 조직 룰(SKILL.md·C·P) 변경도 코어프레임워크 차기 활용 영향 - if echo "$CHANGED_FILES" | grep -qE "^\.claude/skills/너드나비스-코어룰/|^공유/인계서/"; then + if echo "$CHANGED_FILES" | grep -qE "^\.claude/skills/BurningTimes-코어룰/|^공유/인계서/"; then NEEDS_CORE=1 fi diff --git a/scripts/sync_audit_central_to_repo.sh b/scripts/sync_audit_central_to_repo.sh index 79ba603..1c8a6de 100644 --- a/scripts/sync_audit_central_to_repo.sh +++ b/scripts/sync_audit_central_to_repo.sh @@ -6,7 +6,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 -CENTRAL_AUDIT="$HOME/.claude/nerdnavis-audit" +CENTRAL_AUDIT="$HOME/.claude/burningtimes-audit" [ ! -d "$CENTRAL_AUDIT" ] && exit 0 HOSTNAME_TAG=$(hostname 2>/dev/null | tr -d '[:space:]' | tr -cd '[:alnum:]-_' | head -c 32) diff --git a/scripts/sync_audit_repo_to_central.sh b/scripts/sync_audit_repo_to_central.sh index abd4e6e..66c8c50 100644 --- a/scripts/sync_audit_repo_to_central.sh +++ b/scripts/sync_audit_repo_to_central.sh @@ -9,7 +9,7 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) REPO_AUDIT="$REPO_ROOT/memory/org/audit_logs" [ ! -d "$REPO_AUDIT" ] && exit 0 -CENTRAL_AUDIT="$HOME/.claude/nerdnavis-audit" +CENTRAL_AUDIT="$HOME/.claude/burningtimes-audit" [ ! -d "$CENTRAL_AUDIT" ] && exit 0 HOSTNAME_TAG=$(hostname 2>/dev/null | tr -d '[:space:]' | tr -cd '[:alnum:]-_' | head -c 32) diff --git a/scripts/sync_memory_central_to_repo.sh b/scripts/sync_memory_central_to_repo.sh index 9df3d53..12dbae3 100644 --- a/scripts/sync_memory_central_to_repo.sh +++ b/scripts/sync_memory_central_to_repo.sh @@ -1,5 +1,5 @@ #!/bin/bash -# post-commit hook — 중앙 $HOME/.claude/nerdnavis-memory/ → 레포 memory/org/ 단방향 sync +# post-commit hook — 중앙 $HOME/.claude/burningtimes-memory/ → 레포 memory/org/ 단방향 sync # Claude user memory에 Write된 내용을 commit 포함시키기 위해 commit 직후 레포로 반영. # 2026-04-19 신설 — C34-3 동기화 4계층 (commit 최신본 보장) @@ -7,9 +7,9 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 REPO_MEM="$REPO_ROOT/memory/org" -CENTRAL_MEM="$HOME/.claude/nerdnavis-memory" +CENTRAL_MEM="$HOME/.claude/burningtimes-memory" MARKER_NAME=".memory-junction-marker" -LOCK_FILE="$HOME/.claude/.nerdnavis_memory_sync.lock" +LOCK_FILE="$HOME/.claude/.burningtimes_memory_sync.lock" [ ! -d "$CENTRAL_MEM" ] && exit 0 [ ! -d "$REPO_MEM" ] && exit 0 diff --git a/scripts/sync_memory_repo_to_central.sh b/scripts/sync_memory_repo_to_central.sh index ee36e7f..d6c23e7 100644 --- a/scripts/sync_memory_repo_to_central.sh +++ b/scripts/sync_memory_repo_to_central.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SessionStart hook — 레포 memory/org/ → 중앙 $HOME/.claude/nerdnavis-memory/ 단방향 sync +# SessionStart hook — 레포 memory/org/ → 중앙 $HOME/.claude/burningtimes-memory/ 단방향 sync # git pull 직후 원격 반영분을 중앙에 최신화. unflushed 중앙 변경은 대피 백업. # 2026-04-19 신설 — C34-3 동기화 4계층 (레포 SOT 원칙) @@ -7,9 +7,9 @@ REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) [ -z "$REPO_ROOT" ] && exit 0 REPO_MEM="$REPO_ROOT/memory/org" -CENTRAL_MEM="$HOME/.claude/nerdnavis-memory" +CENTRAL_MEM="$HOME/.claude/burningtimes-memory" MARKER_NAME=".memory-junction-marker" -LOCK_FILE="$HOME/.claude/.nerdnavis_memory_sync.lock" +LOCK_FILE="$HOME/.claude/.burningtimes_memory_sync.lock" [ ! -d "$REPO_MEM" ] && exit 0 @@ -24,7 +24,7 @@ trap 'rm -f "$LOCK_FILE"' EXIT # 1. 중앙 저장소 보장 mkdir -p "$CENTRAL_MEM" 2>/dev/null -[ ! -f "$CENTRAL_MEM/$MARKER_NAME" ] && echo "nerdnavis-memory central (C34-16, 2026-04-19)" > "$CENTRAL_MEM/$MARKER_NAME" +[ ! -f "$CENTRAL_MEM/$MARKER_NAME" ] && echo "burningtimes-memory central (C34-16, 2026-04-19)" > "$CENTRAL_MEM/$MARKER_NAME" # 2. unflushed 중앙 변경 탐지 (중앙 mtime > 레포 mtime + HEAD 미반영 의심) CONFLICT_COUNT=0 diff --git a/scripts/sync_signal.sh b/scripts/sync_signal.sh index afc9d8b..5bb3dc2 100644 --- a/scripts/sync_signal.sh +++ b/scripts/sync_signal.sh @@ -10,7 +10,7 @@ # bash sync_signal.sh update # push 성공 시 호출: 플래그 파일 갱신 # bash sync_signal.sh check # UserPromptSubmit hook: 플래그 변경 시 pull -BUS_DIR="$HOME/.claude/.nerdnavis_bus" +BUS_DIR="$HOME/.claude/.burningtimes_bus" mkdir -p "$BUS_DIR" 2>/dev/null GIT_DIR=$(git rev-parse --git-dir 2>/dev/null) diff --git a/scripts/unity_project_sync.sh b/scripts/unity_project_sync.sh index 17d9a67..12eddc8 100644 --- a/scripts/unity_project_sync.sh +++ b/scripts/unity_project_sync.sh @@ -8,7 +8,7 @@ set +e # Degraded 운영 — 실패 시 exit 0 보장 # Lock 파일 (race 방지) -LOCK_FILE="$HOME/.claude/.nerdnavis_unity_sync.lock" +LOCK_FILE="$HOME/.claude/.burningtimes_unity_sync.lock" LOCK_STALE_SECONDS=300 # 5분 이상 lock = stale # Stale lock cleanup (trap 이전) diff --git a/scripts/verify_setup.ps1 b/scripts/verify_setup.ps1 index a584c85..3b9c270 100644 --- a/scripts/verify_setup.ps1 +++ b/scripts/verify_setup.ps1 @@ -1,4 +1,4 @@ -# 너드나비스 조직 레포 - 신 PC 셋팅 검증 스크립트 (Windows / PowerShell) +# BurningTimes 조직 레포 - 신 PC 셋팅 검증 스크립트 (Windows / PowerShell) # # 목적: `setup/setup_windows.ps1` 실행 후, 본 PC가 조직 레포를 정상 사용할 수 있는 상태인지 # 파일 존재·OS 동작(reparse point)·실행 결과(JSON 파싱) 3축으로 검증. @@ -31,7 +31,7 @@ function Warn([string]$name, [string]$detail) { $script:warn += "$name :: $detail" } -Write-Host "=== 너드나비스 셋팅 검증 ===" +Write-Host "=== BurningTimes 셋팅 검증 ===" Write-Host "RepoRoot: $repoRoot" Write-Host "" @@ -65,7 +65,7 @@ if (Test-Path $pathsFile) { Check "paths.local.json 존재" $false "파일 없음(메인 레포도). setup_windows.ps1 선행 필요: $pathsFile" } -$required = @("NERDNAVIS_ROOT","UNITY_PROJECT_ROOT","FRAMEWORK_PKG_ROOT","TABLE_EXPORT_ROOT") +$required = @("BURNINGTIMES_ROOT","UNITY_PROJECT_ROOT","FRAMEWORK_PKG_ROOT","TABLE_EXPORT_ROOT") if ($paths) { foreach ($k in $required) { $v = $paths.$k @@ -73,9 +73,9 @@ if ($paths) { Check "paths.local.json 키 [$k]" $ok ("값=" + ($v -as [string])) } - # NERDNAVIS_ROOT 실제 디렉토리 존재 여부 - if ($paths.NERDNAVIS_ROOT) { - Check "NERDNAVIS_ROOT 디렉토리 존재" (Test-Path $paths.NERDNAVIS_ROOT) $paths.NERDNAVIS_ROOT + # BURNINGTIMES_ROOT 실제 디렉토리 존재 여부 + if ($paths.BURNINGTIMES_ROOT) { + Check "BURNINGTIMES_ROOT 디렉토리 존재" (Test-Path $paths.BURNINGTIMES_ROOT) $paths.BURNINGTIMES_ROOT } # Unity·Framework·TableExport는 경고 수준 (존재하지 않아도 일부 작업은 가능) foreach ($k in @("UNITY_PROJECT_ROOT","FRAMEWORK_PKG_ROOT","TABLE_EXPORT_ROOT")) { @@ -137,7 +137,7 @@ if (Test-Path $claudeMemoryBase) { # 2.5. Live 증분 동기화 Junction 3축 검증 (C34, 2026-04-18 신설) # 축 1: 중앙 저장소 실체 / 축 2: reparse point / 축 3: marker 경유 읽기 -$centralLive = Join-Path $env:USERPROFILE ".claude\nerdnavis-live" +$centralLive = Join-Path $env:USERPROFILE ".claude\burningtimes-live" $localLive = Join-Path $repoRoot ".live" $markerName = ".junction-marker" @@ -159,7 +159,7 @@ if (Test-Path $localLive) { } # 2.6. memory/org/ 중앙 저장소 + Junction 3축 검증 (C34-16, 2026-04-19 신설) -$centralMemory = Join-Path $env:USERPROFILE ".claude\nerdnavis-memory" +$centralMemory = Join-Path $env:USERPROFILE ".claude\burningtimes-memory" $memoryMarker = ".memory-junction-marker" Check "memory 중앙 저장소 실체 존재" (Test-Path $centralMemory) $centralMemory @@ -169,7 +169,7 @@ if (Test-Path $claudeMemoryBase) { $repoRootCount = 0 $otherCount = 0 - foreach ($d in (Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -like "E--NerdNavisAi*" })) { + foreach ($d in (Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -like "E--BurningTimesAi*" })) { $memLink = Join-Path $d.FullName "memory" if (Test-Path (Join-Path $memLink $memoryMarker)) { $centralCount += 1 @@ -189,14 +189,14 @@ if (Test-Path $claudeMemoryBase) { } # unflushed 중앙 대피본 감지 - $conflictDirs = Get-ChildItem "$env:USERPROFILE\.claude" -Directory -Filter "nerdnavis-memory.conflict-*" -ErrorAction SilentlyContinue + $conflictDirs = Get-ChildItem "$env:USERPROFILE\.claude" -Directory -Filter "burningtimes-memory.conflict-*" -ErrorAction SilentlyContinue if ($conflictDirs.Count -gt 0) { Warn "memory unflushed 중앙 대피본 잔류" "$($conflictDirs.Count) 건 — 수동 병합 후 정리 필요: $($conflictDirs[0].FullName)" } } # 2.7. audit 중앙 저장소 + Junction 3종 검증 (C34-17, 2026-04-20 #48 I-1 부분 집행 — verify_setup 2.7 단독) -$centralAudit = Join-Path $env:USERPROFILE ".claude\nerdnavis-audit" +$centralAudit = Join-Path $env:USERPROFILE ".claude\burningtimes-audit" $auditMarker = ".junction-marker" Check "audit 중앙 저장소 실체 존재" (Test-Path $centralAudit) $centralAudit @@ -223,11 +223,11 @@ if (Test-Path $centralAudit) { Warn "audit 중앙 하위 marker 결손" "정상 $subOk/3 — 부재: $($subMissing -join ', ') — audit_junction_ensure.sh 재실행 필요" } - # Junction 연결 검증 ($HOME/.claude/.nerdnavis_* → 중앙 하위) + # Junction 연결 검증 ($HOME/.claude/.burningtimes_* → 중앙 하위) $junctionMap = @{ - ".nerdnavis_auditor_calls" = "auditor_calls" - ".nerdnavis_warning_ignored" = "warning_ignored" - ".nerdnavis_bypass_log" = "bypass_log" + ".burningtimes_auditor_calls" = "auditor_calls" + ".burningtimes_warning_ignored" = "warning_ignored" + ".burningtimes_bypass_log" = "bypass_log" } $linkedCount = 0 $unlinkedList = @() @@ -251,7 +251,7 @@ if (Test-Path $centralAudit) { } # 3. 경로 추상화 적용 여부 (CLAUDE.md 계열에 구 하드코딩 경로 잔존 확인) -$hardcodePatterns = @("C:/Users/PC/Documents", "D:/NerdNavis/FilGoodBandits", "D:/NerdNavis/NerdNavis.Framework") +$hardcodePatterns = @("C:/Users/PC/Documents", "D:/BurningTimes/FilGoodBandits", "D:/BurningTimes/BurningTimes.Framework") $scanTargets = @( (Join-Path $repoRoot "CLAUDE.md"), (Join-Path $repoRoot ".claude\skills") diff --git a/setup/setup_macos.sh b/setup/setup_macos.sh index 77d268a..b8ddf1f 100644 --- a/setup/setup_macos.sh +++ b/setup/setup_macos.sh @@ -1,29 +1,29 @@ #!/bin/bash -# 너드나비스 조직 레포 - macOS / Linux 셋업 +# BurningTimes 조직 레포 - macOS / Linux 셋업 # 사용: bash setup_macos.sh set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -NERDNAVIS_ROOT="${NERDNAVIS_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}" +BURNINGTIMES_ROOT="${BURNINGTIMES_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}" UNITY_ROOT="${UNITY_ROOT:-$HOME/dev/DeckBuilding}" -FRAMEWORK_ROOT="${FRAMEWORK_ROOT:-$HOME/dev/NerdNavis.Framework}" +FRAMEWORK_ROOT="${FRAMEWORK_ROOT:-$HOME/dev/BurningTimes.Framework}" GITEA_URL="${GITEA_URL:-https://burning.i234.me}" GITEA_SSH="${GITEA_SSH:-ssh://git@burning.i234.me:30030}" -echo "=== 너드나비스 조직 레포 셋업 ===" -echo "NERDNAVIS_ROOT: $NERDNAVIS_ROOT" +echo "=== BurningTimes 조직 레포 셋업 ===" +echo "BURNINGTIMES_ROOT: $BURNINGTIMES_ROOT" # 1. git 확인 command -v git >/dev/null 2>&1 || { echo "git 필요"; exit 1; } # 2. paths.local.json -PATHS_FILE="$NERDNAVIS_ROOT/paths.local.json" +PATHS_FILE="$BURNINGTIMES_ROOT/paths.local.json" if [ ! -f "$PATHS_FILE" ]; then cat > "$PATHS_FILE" < "$CENTRAL_LIVE/$MARKER_NAME" + echo "burningtimes-live central junction target (C34, 2026-04-18)" > "$CENTRAL_LIVE/$MARKER_NAME" fi if [ -L "$LOCAL_LIVE" ]; then @@ -89,17 +89,17 @@ else fi # 3.6. memory/org/ 중앙 저장소 + Symlink (C34-16, 2026-04-19 신설) -CENTRAL_MEM="$HOME/.claude/nerdnavis-memory" +CENTRAL_MEM="$HOME/.claude/burningtimes-memory" MEMORY_MARKER=".memory-junction-marker" mkdir -p "$CENTRAL_MEM" if [ ! -f "$CENTRAL_MEM/$MEMORY_MARKER" ]; then - echo "nerdnavis-memory central (C34-16, 2026-04-19)" > "$CENTRAL_MEM/$MEMORY_MARKER" + echo "burningtimes-memory central (C34-16, 2026-04-19)" > "$CENTRAL_MEM/$MEMORY_MARKER" fi # 초기 sync 레포 → 중앙 -if [ -d "$NERDNAVIS_ROOT/memory/org" ]; then - for f in "$NERDNAVIS_ROOT/memory/org"/*.md "$NERDNAVIS_ROOT/memory/org"/*.json; do +if [ -d "$BURNINGTIMES_ROOT/memory/org" ]; then + for f in "$BURNINGTIMES_ROOT/memory/org"/*.md "$BURNINGTIMES_ROOT/memory/org"/*.json; do [ -f "$f" ] || continue BASENAME=$(basename "$f") [ ! -f "$CENTRAL_MEM/$BASENAME" ] && cp "$f" "$CENTRAL_MEM/$BASENAME" @@ -108,7 +108,7 @@ fi # user memory symlink 중앙 재연결 if [ -d "$CLAUDE_BASE" ]; then - for d in "$CLAUDE_BASE"/E--NerdNavisAi*/; do + for d in "$CLAUDE_BASE"/E--BurningTimesAi*/; do [ -d "$d" ] || continue mem_link="${d}memory" diff --git a/setup/setup_windows.ps1 b/setup/setup_windows.ps1 index c004b1a..1689b26 100644 --- a/setup/setup_windows.ps1 +++ b/setup/setup_windows.ps1 @@ -1,8 +1,8 @@ -# 너드나비스 조직 레포 - Windows PC 셋업 +# BurningTimes 조직 레포 - Windows PC 셋업 # 사용: PowerShell에서 실행 # .\setup_windows.ps1 ← 기본 셋업만 # .\setup_windows.ps1 -CreateShortcuts ← 기본 셋업 + 바탕화면 바로가기 3종 생성 (주의 아래) -# .\setup_windows.ps1 -NerdNavisRoot "C:\..." ← 레포 경로 지정 +# .\setup_windows.ps1 -BurningTimesRoot "C:\..." ← 레포 경로 지정 # .\setup_windows.ps1 -CreateShortcuts -ClaudeExePath "C:\Tools\claude\claude.exe" # ← claude.exe 자동 탐지 실패 시 경로 수동 지정 # @@ -14,7 +14,7 @@ # 상세: memory/org/feedback_permissions_portability.md param( - [string]$NerdNavisRoot = $(Resolve-Path (Join-Path $PSScriptRoot "..")).Path, + [string]$BurningTimesRoot = $(Resolve-Path (Join-Path $PSScriptRoot "..")).Path, [string]$UnityRoot = "", [string]$FrameworkRoot = "", [string]$GiteaUrl = "https://burning.i234.me", @@ -25,14 +25,14 @@ param( $ErrorActionPreference = "Stop" -# 경로 추정: NerdNavisRoot 드라이브 기반 동적 default (PC별 하드코딩 회피) -# 사용자가 -UnityRoot/-FrameworkRoot 명시하면 그 값 우선, 미명시면 NerdNavisRoot 드라이브의 \NerdNavis\* 패턴으로 추정 -$rootDriveLetter = (Split-Path $NerdNavisRoot -Qualifier).TrimEnd(':') -if (-not $UnityRoot) { $UnityRoot = "${rootDriveLetter}:\NerdNavis\FilGoodBandits\DeckBuilding" } -if (-not $FrameworkRoot) { $FrameworkRoot = "${rootDriveLetter}:\NerdNavis\NerdNavis.Framework" } +# 경로 추정: BurningTimesRoot 드라이브 기반 동적 default (PC별 하드코딩 회피) +# 사용자가 -UnityRoot/-FrameworkRoot 명시하면 그 값 우선, 미명시면 BurningTimesRoot 드라이브의 \BurningTimes\* 패턴으로 추정 +$rootDriveLetter = (Split-Path $BurningTimesRoot -Qualifier).TrimEnd(':') +if (-not $UnityRoot) { $UnityRoot = "${rootDriveLetter}:\BurningTimes\FilGoodBandits\DeckBuilding" } +if (-not $FrameworkRoot) { $FrameworkRoot = "${rootDriveLetter}:\BurningTimes\BurningTimes.Framework" } -Write-Host "=== 너드나비스 조직 레포 셋업 ===" -Write-Host "NerdNavisRoot: $NerdNavisRoot" +Write-Host "=== BurningTimes 조직 레포 셋업 ===" +Write-Host "BurningTimesRoot: $BurningTimesRoot" Write-Host "UnityRoot: $UnityRoot $(if (-not (Test-Path $UnityRoot)) { '(경로 미존재 - paths.local.json 생성 후 수동 수정 권장)' })" Write-Host "FrameworkRoot: $FrameworkRoot $(if (-not (Test-Path $FrameworkRoot)) { '(경로 미존재 - paths.local.json 생성 후 수동 수정 권장)' })" @@ -41,11 +41,11 @@ git --version | Out-Null if (-not $?) { throw "Git이 설치되지 않았습니다." } # 2. paths.local.json 생성 -$pathsFile = Join-Path $NerdNavisRoot "paths.local.json" +$pathsFile = Join-Path $BurningTimesRoot "paths.local.json" if (-not (Test-Path $pathsFile)) { $paths = [ordered]@{ "_description" = "로컬 환경 경로. 커밋 금지." - NERDNAVIS_ROOT = $NerdNavisRoot + BURNINGTIMES_ROOT = $BurningTimesRoot UNITY_PROJECT_ROOT = $UnityRoot FRAMEWORK_PKG_ROOT = $FrameworkRoot TABLE_EXPORT_ROOT = (Join-Path $UnityRoot "Assets\ResWork\Table\Export") @@ -63,7 +63,7 @@ if (-not (Test-Path $pathsFile)) { # 3. Claude 사용자 메모리 연결 (junction) $claudeMemoryBase = "$env:USERPROFILE\.claude\projects" -$orgMemoryTarget = Join-Path $NerdNavisRoot "memory\org" +$orgMemoryTarget = Join-Path $BurningTimesRoot "memory\org" if (-not (Test-Path $orgMemoryTarget)) { New-Item -ItemType Directory -Path $orgMemoryTarget | Out-Null @@ -72,15 +72,15 @@ if (-not (Test-Path $orgMemoryTarget)) { $hashDirs = @() if (Test-Path $claudeMemoryBase) { # Claude Code는 프로젝트 경로의 각 세그먼트를 '-'로 이어 해시 폴더명을 만든다 - # (예: E:\NerdNavisAi → E--NerdNavisAi, C:\Users\PC\Documents\너드나비스 → C--Users-PC-Documents-너드나비스) - # NerdNavisRoot의 리프 이름·드라이브 prefix·관례적 키워드를 모두 포괄하도록 필터 확장 - $rootLeaf = Split-Path $NerdNavisRoot -Leaf - $rootDrive = (Split-Path $NerdNavisRoot -Qualifier).TrimEnd(':') + # (예: E:\BurningTimesAi → E--BurningTimesAi, C:\Users\PC\Documents\BurningTimes → C--Users-PC-Documents-BurningTimes) + # BurningTimesRoot의 리프 이름·드라이브 prefix·관례적 키워드를 모두 포괄하도록 필터 확장 + $rootLeaf = Split-Path $BurningTimesRoot -Leaf + $rootDrive = (Split-Path $BurningTimesRoot -Qualifier).TrimEnd(':') $hashDirs = Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -like "*Documents*" -or - $_.Name -like "*너드나비스*" -or - $_.Name -like "*NerdNavis*" -or + $_.Name -like "*BurningTimes*" -or + $_.Name -like "*BurningTimes*" -or $_.Name -like "*$rootLeaf*" -or $_.Name -like "$rootDrive--*" } @@ -112,12 +112,12 @@ if ($hashDirs.Count -eq 0) { # 3.5. Live 증분 동기화 중앙 저장소 + Junction (C34, 2026-04-18 PD님 직접 지시) # worktree 격리로 인한 .live/ 물리 분리 문제를 해결하기 위해 -# $HOME\.claude\nerdnavis-live\ 중앙 디렉토리로 junction 연결한다. +# $HOME\.claude\burningtimes-live\ 중앙 디렉토리로 junction 연결한다. # 헌법 제1원칙 ⑤ 세션·PC 연속성의 근원 보장 장치. -$centralLive = Join-Path $env:USERPROFILE ".claude\nerdnavis-live" -$localLive = Join-Path $NerdNavisRoot ".live" +$centralLive = Join-Path $env:USERPROFILE ".claude\burningtimes-live" +$localLive = Join-Path $BurningTimesRoot ".live" $markerName = ".junction-marker" -$markerText = "nerdnavis-live central junction target (C34, 2026-04-18)" +$markerText = "burningtimes-live central junction target (C34, 2026-04-18)" if (-not (Test-Path $centralLive)) { New-Item -ItemType Directory -Path $centralLive -Force | Out-Null @@ -153,11 +153,11 @@ if (Test-Path $localLive) { } # 3.6. memory/org/ 중앙 저장소 + Junction (C34-16, 2026-04-19 신설) -# Claude user memory junction 대상을 $HOME\.claude\nerdnavis-memory\로 변경. +# Claude user memory junction 대상을 $HOME\.claude\burningtimes-memory\로 변경. # 레포 `memory/org/`는 git 추적 SOT로 실체 디렉토리 유지 + sync 스크립트가 양방향 동기화. -$centralMemory = Join-Path $env:USERPROFILE ".claude\nerdnavis-memory" +$centralMemory = Join-Path $env:USERPROFILE ".claude\burningtimes-memory" $memoryMarkerName = ".memory-junction-marker" -$memoryMarkerText = "nerdnavis-memory central (C34-16, 2026-04-19)" +$memoryMarkerText = "burningtimes-memory central (C34-16, 2026-04-19)" if (-not (Test-Path $centralMemory)) { New-Item -ItemType Directory -Path $centralMemory -Force | Out-Null @@ -170,7 +170,7 @@ if (-not (Test-Path $centralMemoryMarker)) { } # 초기 sync — 레포 memory/org → 중앙 (기존 중앙 파일 덮어쓰기 안 함) -$repoMemoryOrg = Join-Path $NerdNavisRoot "memory\org" +$repoMemoryOrg = Join-Path $BurningTimesRoot "memory\org" if (Test-Path $repoMemoryOrg) { Get-ChildItem $repoMemoryOrg -File -ErrorAction SilentlyContinue | Where-Object { $_.Extension -in @('.md','.json') } | ForEach-Object { $dst = Join-Path $centralMemory $_.Name @@ -179,9 +179,9 @@ if (Test-Path $repoMemoryOrg) { Write-Host "memory 초기 sync 레포 → 중앙 완료" } -# 모든 E--NerdNavisAi* 해시 폴더 순회하여 junction 중앙으로 재연결 (광범위 filter) +# 모든 E--BurningTimesAi* 해시 폴더 순회하여 junction 중앙으로 재연결 (광범위 filter) $allHashDirs = Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue | - Where-Object { $_.Name -like "E--NerdNavisAi*" -or $_.Name -like "*NerdNavisAi*" } + Where-Object { $_.Name -like "E--BurningTimesAi*" -or $_.Name -like "*BurningTimesAi*" } foreach ($d in $allHashDirs) { $memLink = Join-Path $d.FullName "memory" @@ -216,11 +216,11 @@ foreach ($d in $allHashDirs) { # 4. .claude/settings.json 부서 동기화 (루트 SOT → 개발팀/기획팀 복제) # Claude Code는 .claude/ 계층 auto-merge를 지원하지 않으므로 자식 디렉토리에서 세션 시작 시 # 루트 settings.json을 인식하지 못함. 이를 우회하기 위해 루트 settings.json을 부서 디렉토리로 복제. -$rootSettings = Join-Path $NerdNavisRoot ".claude\settings.json" +$rootSettings = Join-Path $BurningTimesRoot ".claude\settings.json" if (Test-Path $rootSettings) { $deptPaths = @("개발팀", "기획팀") foreach ($dept in $deptPaths) { - $deptClaudeDir = Join-Path $NerdNavisRoot "$dept\.claude" + $deptClaudeDir = Join-Path $BurningTimesRoot "$dept\.claude" $deptSettings = Join-Path $deptClaudeDir "settings.json" if (-not (Test-Path $deptClaudeDir)) { New-Item -ItemType Directory -Path $deptClaudeDir -Force | Out-Null @@ -286,9 +286,9 @@ if ($CreateShortcuts) { $desktop = [Environment]::GetFolderPath("Desktop") $targets = @( - @{ Name = "너드나비스_총괄PM"; Dir = $NerdNavisRoot; Desc = "너드나비스 총괄PM 세션 (루트)" }, - @{ Name = "너드나비스_개발팀"; Dir = (Join-Path $NerdNavisRoot "개발팀"); Desc = "너드나비스 개발팀 세션" }, - @{ Name = "너드나비스_기획팀"; Dir = (Join-Path $NerdNavisRoot "기획팀"); Desc = "너드나비스 기획팀 세션" } + @{ Name = "BurningTimes_총괄PM"; Dir = $BurningTimesRoot; Desc = "BurningTimes 총괄PM 세션 (루트)" }, + @{ Name = "BurningTimes_개발팀"; Dir = (Join-Path $BurningTimesRoot "개발팀"); Desc = "BurningTimes 개발팀 세션" }, + @{ Name = "BurningTimes_기획팀"; Dir = (Join-Path $BurningTimesRoot "기획팀"); Desc = "BurningTimes 기획팀 세션" } ) foreach ($t in $targets) {