BurningTimesAi/scripts/verify_setup.ps1

337 lines
14 KiB
PowerShell
Raw Normal View History

feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
# BurningTimes 조직 레포 - 신 PC 셋팅 검증 스크립트 (Windows / PowerShell)
#
# 목적: `setup/setup_windows.ps1` 실행 후, 본 PC가 조직 레포를 정상 사용할 수 있는 상태인지
# 파일 존재·OS 동작(reparse point)·실행 결과(JSON 파싱) 3축으로 검증.
#
# 사용: PowerShell에서
# .\scripts\verify_setup.ps1
# 또는 (상세 출력) .\scripts\verify_setup.ps1 -Verbose
#
# Exit code: 0 = OK, 1 = 결함 발견 (stderr에 항목 나열)
[CmdletBinding()]
param()
$ErrorActionPreference = "Stop"
$repoRoot = (Resolve-Path (Join-Path $PSScriptRoot "..")).Path
$fail = @()
$warn = @()
function Check([string]$name, [bool]$ok, [string]$detail) {
if ($ok) {
Write-Host "[OK] $name$detail"
} else {
Write-Host "[FAIL] $name$detail" -ForegroundColor Red
$script:fail += "$name :: $detail"
}
}
function Warn([string]$name, [string]$detail) {
Write-Host "[WARN] $name$detail" -ForegroundColor Yellow
$script:warn += "$name :: $detail"
}
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
Write-Host "=== BurningTimes 셋팅 검증 ==="
Write-Host "RepoRoot: $repoRoot"
Write-Host ""
# 1. paths.local.json 실파일·파싱·필수 키 (2026-04-18 worktree fallback 추가)
$pathsFile = Join-Path $repoRoot "paths.local.json"
if (-not (Test-Path $pathsFile)) {
# worktree 감지 — 공통 git dir 기반 메인 레포 루트 추론 (C34-15 worktree 안전성)
try {
$gitCommon = (& git -C $repoRoot rev-parse --git-common-dir 2>$null) | Out-String
$gitCommon = $gitCommon.Trim()
if ($gitCommon -and (Test-Path $gitCommon)) {
$mainRoot = Split-Path (Resolve-Path $gitCommon).Path -Parent
$altPaths = Join-Path $mainRoot "paths.local.json"
if (Test-Path $altPaths) {
$pathsFile = $altPaths
Warn "paths.local.json worktree fallback" "본 worktree 없음 → 메인 레포 경유: $pathsFile"
}
}
} catch {}
}
$paths = $null
if (Test-Path $pathsFile) {
try {
$raw = Get-Content $pathsFile -Raw -Encoding UTF8
$paths = $raw | ConvertFrom-Json
Check "paths.local.json 존재·JSON 파싱" $true $pathsFile
} catch {
Check "paths.local.json 존재·JSON 파싱" $false "JSON 파싱 실패: $_"
}
} else {
Check "paths.local.json 존재" $false "파일 없음(메인 레포도). setup_windows.ps1 선행 필요: $pathsFile"
}
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
$required = @("BURNINGTIMES_ROOT","UNITY_PROJECT_ROOT","FRAMEWORK_PKG_ROOT","TABLE_EXPORT_ROOT")
if ($paths) {
foreach ($k in $required) {
$v = $paths.$k
$ok = [bool]$v
Check "paths.local.json 키 [$k]" $ok ("값=" + ($v -as [string]))
}
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
# 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")) {
$v = $paths.$k
if ($v -and -not (Test-Path $v)) {
Warn "$k 디렉토리 미존재" "$v (해당 부서 작업 시 필요)"
}
}
}
# 2. Claude 사용자 메모리 junction 검증
$orgMemoryTarget = Join-Path $repoRoot "memory\org"
Check "memory/org 실체 존재" (Test-Path $orgMemoryTarget) $orgMemoryTarget
$claudeMemoryBase = "$env:USERPROFILE\.claude\projects"
if (Test-Path $claudeMemoryBase) {
$found = $false
$junctionOk = $false
foreach ($d in (Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue)) {
$memLink = Join-Path $d.FullName "memory"
if (Test-Path $memLink) {
$found = $true
$item = Get-Item $memLink -Force
$isReparse = ($item.Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0
if ($isReparse) {
# 타깃이 memory\org 인지 확인 (memory 자체가 memory\org를 가리킴)
$target = (Get-Item $memLink -Force).Target
if (-not $target) { $target = (& cmd /c "dir `"$($item.Parent.FullName)`" 2>&1" | Out-String) }
$pointsToOrg = $target -like "*memory\org*" -or $target -like "*memory/org*"
if ($pointsToOrg) {
Check "junction [$($d.Name)/memory]" $true "-> memory\org (reparse OK)"
$junctionOk = $true
} else {
Warn "junction 타깃 확인 불가" "[$($d.Name)/memory] target=$target (수동 확인 권장)"
}
} else {
Check "junction [$($d.Name)/memory]" $false "reparse point 아님 (실체 폴더). setup 재실행 필요"
}
}
}
if (-not $found) {
Check "Claude 프로젝트 해시 폴더 내 memory 링크" $false "$claudeMemoryBase 에서 memory 링크를 찾지 못함. setup_windows.ps1 재실행 필요"
} elseif (-not $junctionOk) {
Warn "junction 상태" "타깃 검증에 성공한 링크가 없음. 수동 확인 권장"
}
# MEMORY.md 로드 가능 여부 (junction 통해 읽기)
$memoryMdCandidates = Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue |
ForEach-Object { Join-Path $_.FullName "memory\MEMORY.md" } |
Where-Object { Test-Path $_ }
if ($memoryMdCandidates.Count -gt 0) {
Check "MEMORY.md junction 경유 읽기" $true ($memoryMdCandidates[0])
} else {
Warn "MEMORY.md 읽기" "junction 경유로 MEMORY.md 를 찾지 못함"
}
} else {
Warn "Claude 메모리 베이스" "$claudeMemoryBase 미존재. Claude Code 첫 실행 전일 가능성"
}
feat(rules): C34 Live 증분 동기화 헌법급 신설 + worktree 격리 근원 해결 PD님 조직 생존급 선언 수용 — "이 문제가 해결되지 않으면 앞으로 우리 조직은 유지될 수 없어" / "철저히 검토해서 가능한 모든 수단을 써서 개선해". 헌법 제1원칙 ⑤(세션·PC 연속성) 근본 위협 판정. P25 → C34 승격 + 중앙 Junction 구조로 worktree 경계 무관 실시간 공유 복원. 집행 10종: - SKILL.md: C34 신설(14개 하위 조항) + P25 본문 삭제(C14-5-확장) + C16-1 .live/ junction 편입 + C31-1-E 표기 갱신 + 조직 핵심 자산 참조 갱신 - CLAUDE.md: 핵심 규칙 요약 28→29 + C34 추가, 프로젝트 규칙 요약 25→24 + P25 제거, 번호 구멍 목록 확장 - scripts/live_junction_ensure.sh: 신규 SessionStart hook (PowerShell New-Item Junction 우선, git-bash mklink 대비 신뢰성 우위 실증 반영) - setup/setup_windows.ps1·setup_macos.sh: 3.5 섹션 추가 - scripts/verify_setup.ps1: 2.5 Live junction 3축 검증 (실측 통과 확인) - .claude/settings.json: SessionStart hook 체인 최우선 삽입 - .gitignore: .live/* 제외 + README 예외 + 백업 제외 - 공유/조직공지/2026-04-18_C34_신설_worktree_격리_근원해결.md 신설 - 공유/조직공지/폐기_규칙_아카이브.md §13 P25 승격 6필드 기록 - memory/org/feedback_worktree_isolation.md + feedback_agent_path_boundary.md 신설 + MEMORY.md 인덱스 대화로그·PD 지시 로그 #39 완료 갱신 포함. Agent 경계 넘기 2차 사건 (개발팀장 Agent 절대 경로 하드코딩으로 레포 루트 유출) stash 이관 복구 + C34-11 Agent 경계 보호 조항 신설. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 live_junction_ensure.sh 자동 실행하여 junction 설치. verify_setup.ps1 통과 확인 후 작업 재개. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 12:59:41 +00:00
# 2.5. Live 증분 동기화 Junction 3축 검증 (C34, 2026-04-18 신설)
# 축 1: 중앙 저장소 실체 / 축 2: reparse point / 축 3: marker 경유 읽기
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
$centralLive = Join-Path $env:USERPROFILE ".claude\burningtimes-live"
feat(rules): C34 Live 증분 동기화 헌법급 신설 + worktree 격리 근원 해결 PD님 조직 생존급 선언 수용 — "이 문제가 해결되지 않으면 앞으로 우리 조직은 유지될 수 없어" / "철저히 검토해서 가능한 모든 수단을 써서 개선해". 헌법 제1원칙 ⑤(세션·PC 연속성) 근본 위협 판정. P25 → C34 승격 + 중앙 Junction 구조로 worktree 경계 무관 실시간 공유 복원. 집행 10종: - SKILL.md: C34 신설(14개 하위 조항) + P25 본문 삭제(C14-5-확장) + C16-1 .live/ junction 편입 + C31-1-E 표기 갱신 + 조직 핵심 자산 참조 갱신 - CLAUDE.md: 핵심 규칙 요약 28→29 + C34 추가, 프로젝트 규칙 요약 25→24 + P25 제거, 번호 구멍 목록 확장 - scripts/live_junction_ensure.sh: 신규 SessionStart hook (PowerShell New-Item Junction 우선, git-bash mklink 대비 신뢰성 우위 실증 반영) - setup/setup_windows.ps1·setup_macos.sh: 3.5 섹션 추가 - scripts/verify_setup.ps1: 2.5 Live junction 3축 검증 (실측 통과 확인) - .claude/settings.json: SessionStart hook 체인 최우선 삽입 - .gitignore: .live/* 제외 + README 예외 + 백업 제외 - 공유/조직공지/2026-04-18_C34_신설_worktree_격리_근원해결.md 신설 - 공유/조직공지/폐기_규칙_아카이브.md §13 P25 승격 6필드 기록 - memory/org/feedback_worktree_isolation.md + feedback_agent_path_boundary.md 신설 + MEMORY.md 인덱스 대화로그·PD 지시 로그 #39 완료 갱신 포함. Agent 경계 넘기 2차 사건 (개발팀장 Agent 절대 경로 하드코딩으로 레포 루트 유출) stash 이관 복구 + C34-11 Agent 경계 보호 조항 신설. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 live_junction_ensure.sh 자동 실행하여 junction 설치. verify_setup.ps1 통과 확인 후 작업 재개. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 12:59:41 +00:00
$localLive = Join-Path $repoRoot ".live"
$markerName = ".junction-marker"
Check "Live 중앙 저장소 실체 존재" (Test-Path $centralLive) $centralLive
if (Test-Path $localLive) {
$liveItem = Get-Item $localLive -Force
$isReparse = ($liveItem.Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0
if ($isReparse) {
Check "Live .live/ Junction reparse 실체" $true "reparse point OK"
# 축 3: marker 경유 읽기 (A→B worktree 동기화 가능성 실증)
$markerPath = Join-Path $localLive $markerName
Check "Live Junction marker 경유 읽기" (Test-Path $markerPath) $markerPath
} else {
Check "Live .live/ Junction reparse 실체" $false "실체 디렉토리 (setup 재실행 필요)"
}
} else {
Warn "Live .live/ 존재" "$localLive 미존재 (세션 1회 시작 시 hook 자동 생성)"
}
feat(rules): C34 확장 — memory junction 중앙화 근원 해결 (옵션 A) PD님 직접 지적 수용 — "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) + 옵션 A 집행. 규칙 확장: - SKILL.md C34 제목 개정 "Live 증분" → "PC 로컬 실시간 공유 중앙화 체계 (Live + memory)" + C34-1/3/14 개정 + C34-16 신설 (memory junction 특수 조항 5종: 실체 디렉토리 유지·sync 방향·Write 경로 선택·3층 백업· 정(正) 판정 규칙 A·B·C) - CLAUDE.md 요약 갱신 - 폐기_규칙_아카이브.md §14 신설 (C34 확장 이력 6필드) 스크립트 구현: - scripts/memory_junction_ensure.sh 신규 (SessionStart hook, Lock 추가, Windows junction reparse point 체크 선행) - scripts/sync_memory_repo_to_central.sh 신규 (SessionStart, unflushed 대피 + Lock race 방어) - scripts/sync_memory_central_to_repo.sh 신규 (post-commit hook) - scripts/sync_memory.sh 신규 (수동 비상) - scripts/rollback_memory_central.sh 신규 (C6-1 롤백 경로) - setup/setup_windows.ps1·setup_macos.sh 3.6 섹션 - scripts/verify_setup.ps1 2.6 섹션 3축 검증 - .claude/settings.json SessionStart hook 체인 확장 - scripts/git-hooks/post-commit 확장 감사관 3종 "C34/C16-1 동급 생존성 이슈 축소 보고 감지" 체크 신설 (pm-auditor 5-A · dev-auditor 6-A · plan-auditor 6-A). 조직공지·feedback·MEMORY.md 인덱스·Live 더미·대화로그 일괄 집행. 실측 검증 통과: 38개 worktree junction 중앙 연결 (10 신규 + 28 유지, 실패 0건). 스크립트 로직 결함(Windows junction bash `-L` 미인식) 수정. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 자동 마이그레이션. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:39:04 +00:00
# 2.6. memory/org/ 중앙 저장소 + Junction 3축 검증 (C34-16, 2026-04-19 신설)
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
$centralMemory = Join-Path $env:USERPROFILE ".claude\burningtimes-memory"
feat(rules): C34 확장 — memory junction 중앙화 근원 해결 (옵션 A) PD님 직접 지적 수용 — "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) + 옵션 A 집행. 규칙 확장: - SKILL.md C34 제목 개정 "Live 증분" → "PC 로컬 실시간 공유 중앙화 체계 (Live + memory)" + C34-1/3/14 개정 + C34-16 신설 (memory junction 특수 조항 5종: 실체 디렉토리 유지·sync 방향·Write 경로 선택·3층 백업· 정(正) 판정 규칙 A·B·C) - CLAUDE.md 요약 갱신 - 폐기_규칙_아카이브.md §14 신설 (C34 확장 이력 6필드) 스크립트 구현: - scripts/memory_junction_ensure.sh 신규 (SessionStart hook, Lock 추가, Windows junction reparse point 체크 선행) - scripts/sync_memory_repo_to_central.sh 신규 (SessionStart, unflushed 대피 + Lock race 방어) - scripts/sync_memory_central_to_repo.sh 신규 (post-commit hook) - scripts/sync_memory.sh 신규 (수동 비상) - scripts/rollback_memory_central.sh 신규 (C6-1 롤백 경로) - setup/setup_windows.ps1·setup_macos.sh 3.6 섹션 - scripts/verify_setup.ps1 2.6 섹션 3축 검증 - .claude/settings.json SessionStart hook 체인 확장 - scripts/git-hooks/post-commit 확장 감사관 3종 "C34/C16-1 동급 생존성 이슈 축소 보고 감지" 체크 신설 (pm-auditor 5-A · dev-auditor 6-A · plan-auditor 6-A). 조직공지·feedback·MEMORY.md 인덱스·Live 더미·대화로그 일괄 집행. 실측 검증 통과: 38개 worktree junction 중앙 연결 (10 신규 + 28 유지, 실패 0건). 스크립트 로직 결함(Windows junction bash `-L` 미인식) 수정. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 자동 마이그레이션. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:39:04 +00:00
$memoryMarker = ".memory-junction-marker"
Check "memory 중앙 저장소 실체 존재" (Test-Path $centralMemory) $centralMemory
if (Test-Path $claudeMemoryBase) {
$centralCount = 0
$repoRootCount = 0
$otherCount = 0
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
foreach ($d in (Get-ChildItem $claudeMemoryBase -Directory -ErrorAction SilentlyContinue | Where-Object { $_.Name -like "E--BurningTimesAi*" })) {
feat(rules): C34 확장 — memory junction 중앙화 근원 해결 (옵션 A) PD님 직접 지적 수용 — "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) + 옵션 A 집행. 규칙 확장: - SKILL.md C34 제목 개정 "Live 증분" → "PC 로컬 실시간 공유 중앙화 체계 (Live + memory)" + C34-1/3/14 개정 + C34-16 신설 (memory junction 특수 조항 5종: 실체 디렉토리 유지·sync 방향·Write 경로 선택·3층 백업· 정(正) 판정 규칙 A·B·C) - CLAUDE.md 요약 갱신 - 폐기_규칙_아카이브.md §14 신설 (C34 확장 이력 6필드) 스크립트 구현: - scripts/memory_junction_ensure.sh 신규 (SessionStart hook, Lock 추가, Windows junction reparse point 체크 선행) - scripts/sync_memory_repo_to_central.sh 신규 (SessionStart, unflushed 대피 + Lock race 방어) - scripts/sync_memory_central_to_repo.sh 신규 (post-commit hook) - scripts/sync_memory.sh 신규 (수동 비상) - scripts/rollback_memory_central.sh 신규 (C6-1 롤백 경로) - setup/setup_windows.ps1·setup_macos.sh 3.6 섹션 - scripts/verify_setup.ps1 2.6 섹션 3축 검증 - .claude/settings.json SessionStart hook 체인 확장 - scripts/git-hooks/post-commit 확장 감사관 3종 "C34/C16-1 동급 생존성 이슈 축소 보고 감지" 체크 신설 (pm-auditor 5-A · dev-auditor 6-A · plan-auditor 6-A). 조직공지·feedback·MEMORY.md 인덱스·Live 더미·대화로그 일괄 집행. 실측 검증 통과: 38개 worktree junction 중앙 연결 (10 신규 + 28 유지, 실패 0건). 스크립트 로직 결함(Windows junction bash `-L` 미인식) 수정. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 자동 마이그레이션. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:39:04 +00:00
$memLink = Join-Path $d.FullName "memory"
if (Test-Path (Join-Path $memLink $memoryMarker)) {
$centralCount += 1
} elseif (Test-Path $memLink) {
$repoRootCount += 1
} else {
$otherCount += 1
}
}
if ($centralCount -gt 0 -and $repoRootCount -eq 0) {
Check "memory junction 전원 중앙 연결" $true "$centralCount 건 (부재 $otherCount)"
} elseif ($centralCount -gt 0) {
Warn "memory junction 타깃 혼재" "중앙 $centralCount / 레포 루트 $repoRootCount / 부재 $otherCount — setup 재실행 권장"
} else {
Warn "memory junction 중앙 미연결" "레포 루트 $repoRootCount / 부재 $otherCount — C34-16 setup 재실행 필요"
}
# unflushed 중앙 대피본 감지
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
$conflictDirs = Get-ChildItem "$env:USERPROFILE\.claude" -Directory -Filter "burningtimes-memory.conflict-*" -ErrorAction SilentlyContinue
feat(rules): C34 확장 — memory junction 중앙화 근원 해결 (옵션 A) PD님 직접 지적 수용 — "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) + 옵션 A 집행. 규칙 확장: - SKILL.md C34 제목 개정 "Live 증분" → "PC 로컬 실시간 공유 중앙화 체계 (Live + memory)" + C34-1/3/14 개정 + C34-16 신설 (memory junction 특수 조항 5종: 실체 디렉토리 유지·sync 방향·Write 경로 선택·3층 백업· 정(正) 판정 규칙 A·B·C) - CLAUDE.md 요약 갱신 - 폐기_규칙_아카이브.md §14 신설 (C34 확장 이력 6필드) 스크립트 구현: - scripts/memory_junction_ensure.sh 신규 (SessionStart hook, Lock 추가, Windows junction reparse point 체크 선행) - scripts/sync_memory_repo_to_central.sh 신규 (SessionStart, unflushed 대피 + Lock race 방어) - scripts/sync_memory_central_to_repo.sh 신규 (post-commit hook) - scripts/sync_memory.sh 신규 (수동 비상) - scripts/rollback_memory_central.sh 신규 (C6-1 롤백 경로) - setup/setup_windows.ps1·setup_macos.sh 3.6 섹션 - scripts/verify_setup.ps1 2.6 섹션 3축 검증 - .claude/settings.json SessionStart hook 체인 확장 - scripts/git-hooks/post-commit 확장 감사관 3종 "C34/C16-1 동급 생존성 이슈 축소 보고 감지" 체크 신설 (pm-auditor 5-A · dev-auditor 6-A · plan-auditor 6-A). 조직공지·feedback·MEMORY.md 인덱스·Live 더미·대화로그 일괄 집행. 실측 검증 통과: 38개 worktree junction 중앙 연결 (10 신규 + 28 유지, 실패 0건). 스크립트 로직 결함(Windows junction bash `-L` 미인식) 수정. 조직 전원 세션 1회 재시작 필요 — SessionStart hook이 자동 마이그레이션. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 16:39:04 +00:00
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 단독)
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
$centralAudit = Join-Path $env:USERPROFILE ".claude\burningtimes-audit"
$auditMarker = ".junction-marker"
Check "audit 중앙 저장소 실체 존재" (Test-Path $centralAudit) $centralAudit
if (Test-Path $centralAudit) {
Check "audit 중앙 최상위 marker" (Test-Path (Join-Path $centralAudit $auditMarker)) "$centralAudit\$auditMarker"
$auditSubs = @("auditor_calls", "warning_ignored", "bypass_log")
$subOk = 0
$subMissing = @()
foreach ($sub in $auditSubs) {
$subDir = Join-Path $centralAudit $sub
$subMarkerPath = Join-Path $subDir $auditMarker
if ((Test-Path $subDir) -and (Test-Path $subMarkerPath)) {
$subOk += 1
} else {
$subMissing += $sub
}
}
if ($subOk -eq 3) {
Check "audit 중앙 하위 3종 marker" $true "auditor_calls / warning_ignored / bypass_log"
} else {
Warn "audit 중앙 하위 marker 결손" "정상 $subOk/3 — 부재: $($subMissing -join ', ') — audit_junction_ensure.sh 재실행 필요"
}
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
# Junction 연결 검증 ($HOME/.claude/.burningtimes_* → 중앙 하위)
$junctionMap = @{
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
".burningtimes_auditor_calls" = "auditor_calls"
".burningtimes_warning_ignored" = "warning_ignored"
".burningtimes_bypass_log" = "bypass_log"
}
$linkedCount = 0
$unlinkedList = @()
foreach ($localName in $junctionMap.Keys) {
$localPath = Join-Path $env:USERPROFILE ".claude\$localName"
$markerViaJunction = Join-Path $localPath $auditMarker
if (Test-Path $markerViaJunction) {
$linkedCount += 1
} else {
$unlinkedList += $localName
}
}
if ($linkedCount -eq 3) {
Check "audit junction 3종 연결" $true "전수 정상"
} elseif ($linkedCount -gt 0) {
Warn "audit junction 부분 연결" "정상 $linkedCount/3 — 미연결: $($unlinkedList -join ', ')"
} else {
Warn "audit junction 미연결" "세션 재시작 후 audit_junction_ensure.sh 자동 실행 필요"
}
}
# 3. 경로 추상화 적용 여부 (CLAUDE.md 계열에 구 하드코딩 경로 잔존 확인)
feat(BT·신설): 조직 신설 Phase 1 — git 저장소 교체 + 중앙 저장소 A안 분리 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) <noreply@anthropic.com>
2026-04-20 15:14:51 +00:00
$hardcodePatterns = @("C:/Users/PC/Documents", "D:/BurningTimes/FilGoodBandits", "D:/BurningTimes/BurningTimes.Framework")
$scanTargets = @(
(Join-Path $repoRoot "CLAUDE.md"),
(Join-Path $repoRoot ".claude\skills")
) | Where-Object { Test-Path $_ }
$hits = @()
foreach ($t in $scanTargets) {
$files = if ((Get-Item $t).PSIsContainer) { Get-ChildItem $t -Recurse -File -Include *.md } else { @(Get-Item $t) }
foreach ($f in $files) {
$content = Get-Content $f.FullName -Raw -ErrorAction SilentlyContinue
foreach ($p in $hardcodePatterns) {
if ($content -match [regex]::Escape($p)) {
$hits += "$($f.FullName) :: '$p'"
}
}
}
}
if ($hits.Count -eq 0) {
Check "CLAUDE.md 계열 경로 추상화" $true "하드코딩 구 경로 미발견"
} else {
Warn "CLAUDE.md 계열 경로 추상화" ("잔존 " + $hits.Count + "건 — 변수화 후보")
foreach ($h in $hits) { Write-Host " - $h" -ForegroundColor DarkYellow }
}
# 4. .gitignore 핵심 규칙 (paths.local.json 무시)
$gi = Join-Path $repoRoot ".gitignore"
if (Test-Path $gi) {
$giText = Get-Content $gi -Raw
Check ".gitignore paths.local.json 제외" ($giText -match "paths\.local\.json") ".gitignore 라인 확인됨"
} else {
Check ".gitignore 존재" $false ".gitignore 파일 없음"
}
feat(#57 후속): 옵션 A Unity 프로젝트 SessionStart 자동 pull 구축 PD님 2026-04-20 승인 "옵션 A로 진행" 수용. PC별 클론 경로 상이 수용 + C30 이행 자동화 + C30 예외 명시 불요로 전환. [자진 고지 양축] - 개발팀장 축: #57 "C30 점검 불가" 자진 고지는 FilGoodBandits 상위만 확인한 오류. 실제 DeckBuilding/.git 실존 (NerdNavis/DeckBuilding.git) - PM 축: Agent 응답 환경 판정 주장을 재실측 없이 수용 (C27 변형 위반) - feedback_git_scope_shortcut.md 양축 재발 방지 기록 [집행 7종] - scripts/unity_project_sync.sh 신설 (Lock + stale cleanup + trap 제거 + C34-12 Degraded) - .claude/settings.json SessionStart hook 편입 - scripts/verify_setup.ps1 2.8 섹션 (UNITY 경로·git·sync 4축 검증) - SKILL.md C30-1 운용 세칙 정비 (수동 점검 → SessionStart hook 자동 이행, 외연 유지) - paths.local.json.template (기존 UNITY_PROJECT_ROOT 재활용) - feedback_git_scope_shortcut.md 신설 (양축) - MEMORY.md 인덱스 [pm-auditor 감사 정정] - Critical 2·Major 3·Minor 2·Improvement 2 전수 수용 - C34-15 5문항 체크 결과 대화로그 기재 - Lock cleanup 로직 포함 - feedback 양축 기록 [Unity MCP 편집 표준 워크플로우 v1 0단계 추가 — 개발팀장 후속 Task] 본 commit 후 별도 Task 위임 (Agent 경계 보호) [C30 예외 명시 자연 종결] PD 결정 3 (C30 예외 보류) → 자동 pull 구축으로 불요 전환 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 09:09:18 +00:00
# 2.8. Unity 프로젝트 자동 pull 설정 검증 (C30 자동 이행 · 2026-04-20 옵션 A PD 승인)
$pathsLocal = Join-Path $repoRoot "paths.local.json"
if (Test-Path $pathsLocal) {
try {
$pathsJson = Get-Content $pathsLocal -Raw | ConvertFrom-Json
$unityRoot = $pathsJson.UNITY_PROJECT_ROOT
if ($unityRoot) {
Check "Unity 프로젝트 경로 설정 (paths.local.json)" $true $unityRoot
if (Test-Path $unityRoot) {
$unityGit = Join-Path $unityRoot ".git"
if (Test-Path $unityGit) {
Check "Unity 프로젝트 git 레포 실체" $true $unityRoot
} else {
Warn "Unity 프로젝트 git 레포 아님" "$unityRoot — C30 수동 점검 대상 외 (C34-12 Degraded)"
}
} else {
Warn "Unity 프로젝트 경로 부재" "$unityRoot — paths.local.json UNITY_PROJECT_ROOT 재확인 필요"
}
} else {
Warn "UNITY_PROJECT_ROOT 미설정" "paths.local.json에 경로 지정 필요"
}
} catch {
Warn "paths.local.json 파싱 실패" $_.Exception.Message
}
} else {
Warn "paths.local.json 부재" "paths.local.json.template 복사 후 UNITY_PROJECT_ROOT 설정 필요 (C30 자동 pull 미작동)"
}
$unitySyncScript = Join-Path $repoRoot "scripts\unity_project_sync.sh"
Check "scripts/unity_project_sync.sh 존재" (Test-Path $unitySyncScript) $unitySyncScript
# 5. settings.json (조직 공용 승인) 존재
$settings = Join-Path $repoRoot ".claude\settings.json"
Check ".claude/settings.json (조직 공용 승인)" (Test-Path $settings) $settings
# 결과
Write-Host ""
Write-Host "=== 결과 요약 ==="
Write-Host "PASS: 상기 [OK] 표기"
if ($warn.Count -gt 0) {
Write-Host "WARN: $($warn.Count)건 — 블로커 아님" -ForegroundColor Yellow
}
if ($fail.Count -gt 0) {
Write-Host "FAIL: $($fail.Count)건 — 아래 항목 해결 필요" -ForegroundColor Red
foreach ($f in $fail) { Write-Host " - $f" -ForegroundColor Red }
exit 1
}
Write-Host "셋팅 검증 통과. 작업 착수 가능." -ForegroundColor Green
exit 0