diff --git a/.claude/settings.json b/.claude/settings.json index fc7359f..78aec2e 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -96,26 +96,6 @@ "type": "command", "command": "git fetch origin 2>/dev/null; CHANGES=$(git log --oneline HEAD..origin/main 2>/dev/null | head -10); if [ -n \"$CHANGES\" ]; then echo '๐Ÿ“Œ [SessionStart] origin/main ๋ณ€๊ฒฝ ๊ฒ€์ถœ โ€” ์ž๋™ ๋ณ‘ํ•ฉ ์ค‘:'; echo \"$CHANGES\"; git merge origin/main --no-edit 2>/dev/null && echo 'โœ… ์ž๋™ ๋ณ‘ํ•ฉ ์™„๋ฃŒ' || echo 'โš ๏ธ ์ž๋™ ๋ณ‘ํ•ฉ ์‹คํŒจ (์ถฉ๋Œ ๋ฐœ์ƒ โ€” ์ˆ˜๋™ ํ•ด๊ฒฐ ํ•„์š”)'; else echo 'โœ… [SessionStart] main ๋™๊ธฐํ™” ์ƒํƒœ'; fi" }, - { - "type": "command", - "command": "bash scripts/live_junction_ensure.sh 2>/dev/null || true" - }, - { - "type": "command", - "command": "bash scripts/memory_junction_ensure.sh 2>/dev/null || true" - }, - { - "type": "command", - "command": "bash scripts/sync_memory_repo_to_central.sh 2>/dev/null || true" - }, - { - "type": "command", - "command": "bash scripts/audit_junction_ensure.sh 2>/dev/null || true" - }, - { - "type": "command", - "command": "bash scripts/sync_audit_repo_to_central.sh 2>/dev/null || true" - }, { "type": "command", "command": "bash scripts/unity_project_sync.sh 2>/dev/null || true" @@ -171,14 +151,6 @@ "type": "command", "command": "bash scripts/hold_watch.sh 2>/dev/null || true" }, - { - "type": "command", - "command": "bash scripts/live_junction_ensure.sh 2>/dev/null || true" - }, - { - "type": "command", - "command": "bash scripts/audit_junction_ensure.sh 2>/dev/null || true" - }, { "type": "command", "command": "bash scripts/live_inject.sh 2>/dev/null || true" diff --git a/.claude/skills/BurningTimes-์ฝ”์–ด๋ฃฐ/SKILL.md b/.claude/skills/BurningTimes-์ฝ”์–ด๋ฃฐ/SKILL.md index 8be9433..663731e 100644 --- a/.claude/skills/BurningTimes-์ฝ”์–ด๋ฃฐ/SKILL.md +++ b/.claude/skills/BurningTimes-์ฝ”์–ด๋ฃฐ/SKILL.md @@ -57,7 +57,7 @@ description: BurningTimes ์กฐ์ง์˜ ํ—Œ๋ฒ• ์ œ1์›์น™(5ํ•ญ โ‘ ~โ‘ค) + ํ—Œ๋ฒ•๊ธ‰ ### ์กฐ์ง ํ•ต์‹ฌ ์ž์‚ฐ โ€” Live ๋”๋ฏธ ํŒŒ์ผ ํ”„๋กœ์„ธ์Šค -์„ธ์…˜์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „๊นŒ์ง€ ๊ฐฑ์‹ ์ด ์•ˆ ๋˜๋Š” ๋ฌธ์„œ์˜ ๊ฒฝ์šฐ, **๋”๋ฏธ ํŒŒ์ผ(`.live/`)๊ณผ ์กฐ์ง ๊ธฐ์–ต(`memory/org/`)์„ ํ™œ์šฉํ•ด ์„ธ์…˜์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์ด๊ฒƒ์€ ์šฐ๋ฆฌ์˜ ํ•ต์‹ฌ ์ž์‚ฐ์ด๋‹ค.** ์ƒ์„ธ ๊ทœ์ •: C34 PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” ์ฒด๊ณ„ โ€” Live + memory (2026-04-18 ํ—Œ๋ฒ•๊ธ‰ ์Šน๊ฒฉ + 2026-04-19 memory ํŽธ์ž…, worktree ๊ฒฝ๊ณ„ ๋ฌด๊ด€ ์ค‘์•™ Junction + sync 4๊ณ„์ธต). +์„ธ์…˜์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „๊นŒ์ง€ ๊ฐฑ์‹ ์ด ์•ˆ ๋˜๋Š” ๋ฌธ์„œ์˜ ๊ฒฝ์šฐ, **๋”๋ฏธ ํŒŒ์ผ(`.live/`)๊ณผ ์กฐ์ง ๊ธฐ์–ต(`memory/org/`)์„ ํ™œ์šฉํ•ด ์„ธ์…˜์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์ถ•ํ–ˆ์œผ๋ฉฐ ์ด๊ฒƒ์€ ์šฐ๋ฆฌ์˜ ํ•ต์‹ฌ ์ž์‚ฐ์ด๋‹ค.** `.live/`๋Š” ๋ ˆํฌ ๋‚ด ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ(.gitignore)์ด๋ฉฐ UserPromptSubmit hook `scripts/live_inject.sh`์ด ๋ณ€๊ฒฝ๋ถ„์„ ์ฆ๋ถ„ ์ฃผ์ž…ํ•˜์—ฌ PC ๋‚ด ๋‹ค์ค‘ ์„ธ์…˜ ๊ฐ„ ์ฆ‰์‹œ ๊ณต์œ ํ•œ๋‹ค. --- @@ -514,8 +514,8 @@ CLAUDE.md ์‹ ๊ทœ ํ•ญ๋ชฉ, ๋งค ํ„ด ๋กœ๋“œ ๋Œ€์ƒ ํ™•๋Œ€, `MEMORY.md` ์ธ๋ฑ์Šค ํ™• ### C16-1. PC ๋…๋ฆฝ์„ฑ ๋ณด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜ (์กฐ์ง ๊ณต์šฉ ์ž์‚ฐ์€ git ๋‹จ์ผ SOT) - ์กฐ์ง ๊ณต์šฉ ์Šน์ธ์€ **๋ฃจํŠธ `.claude/settings.json` ๋‹จ์ผ ํŒŒ์ผ**์— ์„ ์–ธํ•˜๋ฉฐ git ์ปค๋ฐ‹์œผ๋กœ ์œ ์ง€ํ•œ๋‹ค (๋ฃจํŠธ๊ฐ€ SOT). ๋‹จ์ผ ์„ธ์…˜ ๊ตฌ์กฐ์ด๋ฏ€๋กœ ๋ถ€์„œ๋ณ„ ๋ณ„๋„ settings.json ๋ณต์ œ๋Š” ๋ถˆํ•„์š”. - PC๋ณ„ ๋ณ€๋™๊ฐ’(`paths.local.json`)์€ `.gitignore`๋กœ ์ถ”์  ์ œ์™ธํ•˜๊ณ  `paths.local.json.template`๋งŒ ์ปค๋ฐ‹ํ•œ๋‹ค. -- ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ(`memory/org/`)๋Š” setup ์Šคํฌ๋ฆฝํŠธ๊ฐ€ `~/.claude/projects/<ํ•ด์‹œ>/memory` junction์œผ๋กœ ์ž๋™ ์—ฐ๊ฒฐํ•œ๋‹ค. -- **Live ์ฆ๋ถ„ ๋™๊ธฐํ™” `.live/`**๋Š” setup ์Šคํฌ๋ฆฝํŠธ + SessionStart hook(`scripts/live_junction_ensure.sh`)์ด `$HOME/.claude/nerdnavis-live/`๋กœ junction ์ž๋™ ์—ฐ๊ฒฐํ•œ๋‹ค โ€” **worktree ๊ฒฝ๊ณ„ ๋ฌด๊ด€ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ๋ณด์žฅ** (C34 ๊ทผ์› ํ•ด๊ฒฐ, 2026-04-18 PD๋‹˜ ์ง์ ‘ ์ง€์‹œ ์‹ ์„ค). +- ์‚ฌ์šฉ์ž ๋ฉ”๋ชจ๋ฆฌ(`memory/org/`)๋Š” ๋ ˆํฌ git ์ถ”์  SOT๋กœ ์ง์ ‘ ์ €์žฅํ•œ๋‹ค (junction ํ๊ธฐ, 2026-04-26). +- **`.live/`**๋Š” ๋ ˆํฌ ๋‚ด ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ(.gitignore). UserPromptSubmit hook `scripts/live_inject.sh`์ด ๋ณ€๊ฒฝ๋ถ„์„ ์ฆ๋ถ„ ์ฃผ์ž…ํ•˜์—ฌ PC ๋‚ด ๋‹ค์ค‘ ์„ธ์…˜ ๊ฐ„ ์ฆ‰์‹œ ๊ณต์œ ํ•œ๋‹ค. - `.claude/settings.local.json`์€ `.gitignore` ๋Œ€์ƒ์ด๋ฏ€๋กœ **PC ์ด๋™ ์‹œ ์†Œ์‹ค๋œ๋‹ค โ€” ์กฐ์ง ๊ณต์šฉ ์Šน์ธ์€ ์ ˆ๋Œ€ local ํŒŒ์ผ์— ๋‘์ง€ ์•Š๋Š”๋‹ค**. ### C16-2. ์„ธ์…˜ ์‹œ์ž‘ ํ‘œ์ค€ ์ ˆ์ฐจ (๋‹จ์ผ ์„ธ์…˜ โ€” ๋ ˆํฌ ๋ฃจํŠธ์—์„œ ์‹œ์ž‘) @@ -1118,7 +1118,7 @@ C20-7 ์ž๊ธฐ๊ฒ€์ฆ 5๋ฌธํ•ญ์— ๋‹ค์Œ ํ•ญ๋ชฉ ์ถ”๊ฐ€: ### C30-1. ์ ๊ฒ€ ๋Œ€์ƒ ํ”„๋กœ์ ํŠธ (์˜ˆ์‹œ, ๋น„ํ•œ์ •) - ์กฐ์ง ๋ ˆํฌ(`BurningTimesAi`) โ€” SessionStart hook์œผ๋กœ ์ž๋™ ์ ๊ฒ€ ์ค‘ -- Unity ํ”„๋กœ์ ํŠธ(`${UNITY_PROJECT_ROOT}`) โ€” **์™ธ๋ถ€ ์ €์žฅ์†Œ**(์˜ˆ: `BurningTimes/DeckBuilding.git`). PC๋ณ„ ํด๋ก  ๊ฒฝ๋กœ๋Š” `paths.local.json`์— ๋“ฑ๋ก. **SessionStart hook `scripts/unity_project_sync.sh`๋กœ ์ž๋™ pull ์ดํ–‰** (2026-04-20 PD ์˜ต์…˜ A ์Šน์ธ). git ๋ ˆํฌ ์•„๋‹Œ ๊ฒฝ์šฐ C34-12 Degraded ์šด์˜์œผ๋กœ ๊ฒฝ๊ณ ๋งŒ ์ถœ๋ ฅ +- Unity ํ”„๋กœ์ ํŠธ(`${UNITY_PROJECT_ROOT}`) โ€” **์™ธ๋ถ€ ์ €์žฅ์†Œ**(์˜ˆ: `BurningTimes/DeckBuilding.git`). PC๋ณ„ ํด๋ก  ๊ฒฝ๋กœ๋Š” `paths.local.json`์— ๋“ฑ๋ก. **SessionStart hook `scripts/unity_project_sync.sh`๋กœ ์ž๋™ pull ์ดํ–‰** (2026-04-20 PD ์˜ต์…˜ A ์Šน์ธ). git ๋ ˆํฌ ์•„๋‹Œ ๊ฒฝ์šฐ ๊ฒฝ๊ณ ๋งŒ ์ถœ๋ ฅ (์ž‘์—… ์ฐจ๋‹จ ์•ˆ ํ•จ) - BT.Framework ์ฝ”์–ด ๋ ˆํฌ โ€” ์ˆ˜๋™ ์ ๊ฒ€ ํ•„์š” - ์ฐจ๊ธฐ ํ”„๋กœ์ ํŠธ ๋ ˆํฌ โ€” ์ถ”๊ฐ€ ์‹œ ๋ณธ ๊ทœ์น™ ์ ์šฉ - ๊ธฐํƒ€ git ๊ธฐ๋ฐ˜ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ @@ -1164,162 +1164,6 @@ C20-7 ์ž๊ธฐ๊ฒ€์ฆ 5๋ฌธํ•ญ์— ๋‹ค์Œ ํ•ญ๋ชฉ ์ถ”๊ฐ€: --- -## C34. PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” ์ฒด๊ณ„ โ€” Live + memory (๐Ÿ† ์กฐ์ง ํ•ต์‹ฌ ์ž์‚ฐ, 2026-04-18 P25 ์Šน๊ฒฉ + 2026-04-19 memory ํŽธ์ž…) - -> **์Šน๊ฒฉยท๊ฒฉ์ƒยทํ™•์žฅ ๊ทผ๊ฑฐ**: 2026-04-18 worktree ๊ฒฉ๋ฆฌ๋กœ P25 ์ฒด๊ณ„ ์‹คํŒจ ์‹ค์ฆ. PD๋‹˜ ์ง์ ‘ ์„ ์–ธ โ€” **"์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ์•ž์œผ๋กœ ์šฐ๋ฆฌ ์กฐ์ง์€ ์œ ์ง€๋  ์ˆ˜ ์—†์–ด"** ยท **"์ฒ ์ €ํžˆ ๊ฒ€ํ† ํ•ด์„œ ๊ด€๋ จ ๋ฌธ์„œ์— ์ผ๊ด„ ๋ฐ˜์˜ํ•˜๊ณ  ์žฌ๋ฐœ๋˜์ง€ ์•Š๋„๋ก ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ˆ˜๋‹จ์„ ์จ์„œ ๊ฐœ์„ ํ•ด"**. 2026-04-19 PD๋‹˜ ์ถ”๊ฐ€ ์„ ์–ธ โ€” **"๊ทผ๋ณธ ํ•ด๊ฒฐ์ด ์•„๋‹Œ ์ž„์‹œ ๋ฐฉํŽธ์€ ์ฝ”์–ด ๋ฃฐ ์œ„๋ฐ˜. C34์™€ ๋™๊ธ‰์˜ ์ƒ์กด์„ฑ ์ด์Šˆ๋Š” '๊ถŒ๊ณ ' ์ˆ˜์ค€์ด ์•„๋‹ˆ์—ˆ์–ด"** โ†’ memory junction ๊ฒฝ๊ณ„ ์ด์Šˆ๋„ C34 ํŒจํ„ด์œผ๋กœ ๊ทผ์› ํ•ด๊ฒฐ(์˜ต์…˜ A) ํ™•์žฅ. ํ—Œ๋ฒ• ์ œ1์›์น™ โ‘ค(์„ธ์…˜ยทPC ์—ฐ์†์„ฑ ๋ณด์žฅ)์˜ ๊ทผ๋ณธ ์œ„ํ˜‘ ์ฐจ๋‹จ. ๊ตฌ P25 ๊ฒฝ์œ„: [ํ๊ธฐ ๊ทœ์น™ ์•„์นด์ด๋ธŒ](../../../๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md). - -### C34-1. ๊ฐœ์š” -์„ธ์…˜ ์‹œ์ž‘ ํ›„ ๋ณ€๊ฒฝ๋œ ์„ค์ •ยท๊ทœ์น™ยท์—์ด์ „ํŠธ ์ •์˜ยท์กฐ์ง ๊ธฐ์–ตยท๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ **์„ธ์…˜ ๊ฐฑ์‹  ์—†์ด ์ฆ‰์‹œ ๋ฐ˜์˜** + **๋ชจ๋“  PC์—์„œ ์ผ๊ด€ ๊ด€๋ฆฌ**ํ•˜๊ธฐ ์œ„ํ•œ **์ค‘์•™ ์ €์žฅ์†Œ + Junction** ์ฒด๊ณ„. ๊ฐ™์€ PC ๋‚ด ๋ชจ๋“  Claude ์„ธ์…˜์ด ๋„คํŠธ์›Œํฌ ๋น„์šฉ 0์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๊ณต์œ ํ•˜๋Š” BurningTimes ๊ณ ์œ  ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋ฉฐ, **worktree ๊ฒฝ๊ณ„์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•˜๊ฒŒ ์ž‘๋™**ํ•œ๋‹ค. ๋Œ€์ƒ ์ž์‚ฐ์€ **`.live/` (์„ค์ •ยท๊ทœ์น™ยท์—์ด์ „ํŠธ ๋ณ€๊ฒฝ๋ถ„, 2026-04-18 ํŽธ์ž…)** ยท **`memory/org/` (์กฐ์ง ๊ธฐ์–ตยทfeedback ๋ฉ”๋ชจ๋ฆฌ, 2026-04-19 ํŽธ์ž…)** ยท **audit (C35 ๊ฐ์‚ฌ ๋กœ๊ทธยทBYPASS ์ด๋ ฅ, 2026-04-20 #48 G ํŽธ์ž…)** 3์ข…์ด๋‹ค. - -### C34-2. ์ž‘๋™ ๊ฒฝ๊ณ„ (2026-04-18 worktree ๊ฒฉ๋ฆฌ ํ•ด๊ฒฐ ๋ฐ˜์˜) -- โœ… ๋™์ผ PC ๋‚ด ๋ชจ๋“  Claude ์„ธ์…˜ (**worktree ๊ฒฝ๊ณ„ ๋ฌด๊ด€** โ€” C34-3 ์ค‘์•™ junction ๊ตฌ์กฐ) -- โœ… ๋ ˆํฌ ๋ฃจํŠธยทworktreeยท๋‹ค๋ฅธ worktree์—์„œ ์„ธ์…˜ ์‹œ์ž‘ํ•ด๋„ ๋™์ผ ํŒŒ์ผ์‹œ์Šคํ…œ ์ฐธ์กฐ -- โŒ ๋‹ค๋ฅธ PC ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  (์ด ๊ฒฝ์šฐ `git push` ๊ฒฝ์œ  ๋ช…์‹œ ๊ณต์œ , P21-2) - -### C34-3. ์ค‘์•™ ์ €์žฅ์†Œ ๊ตฌ์กฐ (๊ทผ์› ํ•ด๊ฒฐ ํ•ต์‹ฌ) - -#### 3์ข… ์ค‘์•™ ์ €์žฅ์†Œ ๋ณ‘๋ฆฝ (2026-04-19 memory ํŽธ์ž… ยท 2026-04-20 audit ํŽธ์ž…) - -| ์ž์‚ฐ | ์ค‘์•™ ์‹ค ์ €์žฅ | ์—ฐ๊ฒฐ ๋Œ€์ƒ | git ์ถ”์  | ์ž๋™ ์„ค์น˜ | ๊ฒ€์ฆ | -|------|-------------|----------|----------|----------|------| -| **`.live/`** (์„ค์ •ยท๊ทœ์น™ยท์—์ด์ „ํŠธ ๋ณ€๊ฒฝ๋ถ„) | `$HOME/.claude/nerdnavis-live/` | ๊ฐ worktree `.live/` โ†’ ์ค‘์•™ | โŒ (`.gitignore`) | `scripts/live_junction_ensure.sh` + setup 3.5 | verify_setup 2.5 | -| **`memory/org/`** (์กฐ์ง ๊ธฐ์–ตยทfeedback) | `$HOME/.claude/nerdnavis-memory/` | Claude user memory junction 11+๊ฐœ ํ•ด์‹œ ํด๋” โ†’ ์ค‘์•™ | โœ… (git-tracked SOT ์œ ์ง€) | `scripts/memory_junction_ensure.sh` + setup 3.6 | verify_setup 2.6 | -| **audit** (C35 ๊ฐ์‚ฌ ๋กœ๊ทธยทBYPASS ์ด๋ ฅ) | `$HOME/.claude/nerdnavis-audit/` | `$HOME/.claude/.nerdnavis_{auditor_calls,warning_ignored,bypass_log}` โ†’ ์ค‘์•™ ํ•˜์œ„ | โœ… (git-tracked SOT: `memory/org/audit_logs/`) | `scripts/audit_junction_ensure.sh` + setup 3.7 | verify_setup 2.7 | - -#### ๊ณตํ†ต ์›์น™ -- **Sentinel ๋ฐฉ์‹ ํŒ์ •**: `$CENTRAL_*/.*-junction-marker` ํŒŒ์ผ๋กœ OS-agnostic ์—ฐ๊ฒฐ ํ™•์ธ -- **Junction/Symlink**: Windows `mklink /J` (๋˜๋Š” PowerShell `New-Item -ItemType Junction`) / Unix `ln -s` -- **Degraded ์šด์˜**: Junction ์ƒ์„ฑ ์‹คํŒจ ์‹œ ์ž‘์—… ์ฐจ๋‹จ ์—†์ด ๊ฒฝ๊ณ  ์ถœ๋ ฅ, ๋‹ค์Œ ์„ธ์…˜์—์„œ ์ž๋™ ์žฌ์‹œ๋„ -- **Sentinel ์ž๋™ ๋ณดํ˜ธ (2026-04-19 ์‹ ์„ค)**: `live_junction_ensure.sh`๊ฐ€ SessionStart hook ์™ธ์— **UserPromptSubmit hook์—๋„ ํŽธ์ž…**๋˜์–ด ๋งค ํ”„๋กฌํ”„ํŠธ๋งˆ๋‹ค marker ๋ถ€์žฌ ์‹œ ์ž๋™ ์žฌ์ƒ์„ฑ. ์„ธ์…˜ ์ง„ํ–‰ ์ค‘ ์™ธ๋ถ€ ์ž‘์—…์œผ๋กœ sentinel ์†์‹ค ์‹œ ์†์‹ค ์œˆ๋„์šฐ๋ฅผ **1ํ”„๋กฌํ”„ํŠธ ์ด๋‚ด**๋กœ ์ถ•์†Œ. ๊ทผ๊ฑฐ: `memory/org/feedback_central_sentinel_loss.md` (2026-04-19 1ํšŒ ์‹ค์ฆ) - -#### `.live/` vs `memory/org/` ์ฐจ๋ณ„ (git ์ถ”์  ์–‘๋ฆฝ) - -`.live/`๋Š” `.gitignore` ์ œ์™ธ๋ผ symlink ์ž์œ . `memory/org/`๋Š” **git ์ถ”์  SOT**์ด๋ฏ€๋กœ **๋ ˆํฌ `memory/org/`๋Š” ์‹ค์ฒด ๋””๋ ‰ํ† ๋ฆฌ ์œ ์ง€** + **sync ์Šคํฌ๋ฆฝํŠธ๋กœ ์ค‘์•™ โ†” ๋ ˆํฌ ์–‘๋ฐฉํ–ฅ ๋™๊ธฐํ™”** (git symlink ์ถ”์ ์€ Windows core.symlinks ์ด์Šˆยทclone ํ›„ ์ ‘๊ทผ ๋ถˆ๊ฐ€ยทํ•œ๊ตญ์–ด ๊ฒฝ๋กœ ๋ฆฌ์Šคํฌ ๋“ฑ 5์ข… ๊ทผ๊ฑฐ๋กœ ๊ฑฐ๋ถ€). - -#### `memory/org/` ๋™๊ธฐํ™” 4๊ณ„์ธต (2026-04-19 ์‹ ์„ค) - -| ์‹œ์  | ๋ฐฉ์‹ | ์Šคํฌ๋ฆฝํŠธ | ๋ฐฉํ–ฅ | -|------|------|---------|------| -| SessionStart hook | ์ž๋™ | `sync_memory_repo_to_central.sh` | ๋ ˆํฌ โ†’ ์ค‘์•™ (pull ์งํ›„ ์ค‘์•™ ์ตœ์‹ ํ™”) | -| post-commit hook | ์ž๋™ | `sync_memory_central_to_repo.sh` | ์ค‘์•™ โ†’ ๋ ˆํฌ (commit ์ตœ์‹ ๋ณธ ๋ณด์žฅ) | -| ์ˆ˜๋™ ๋น„์ƒ | ๊ฐœ๋ฐœ์ž ๋ช…์‹œ | `scripts/sync_memory.sh both` | ์–‘๋ฐฉํ–ฅ ๊ฐ•์ œ sync | -| ๊ฐ์‚ฌ๊ด€ ์ฃผ๊ธฐ | ์ƒ์‹œ | pm-auditorยทdev-auditor | ๋ถ„๊ธฐ ์ƒํƒœ ๊ฐ์ง€ โ†’ ์ž๋™ ๋ณต๊ตฌ ์š”์ฒญ | - -#### ์—ญ๋ฐฉํ–ฅ sync ์ถฉ๋Œ 3์ธต ํ•ด๊ฒฐ (`memory/org/` ์ „์šฉ) - -1. **๊ธฐ๋ณธ ์ •์ฑ…**: ๋ ˆํฌ๊ฐ€ SOT. pull ํ›„ SessionStart hook์ด ์ค‘์•™ ๋ฎ์–ด์“ฐ๊ธฐ (์ž๋™ ๋ฐฑ์—…) -2. **unflushed ์ค‘์•™ ๋ณ€๊ฒฝ ๋Œ€ํ”ผ**: ์ค‘์•™ mtime > ๋ ˆํฌ mtime + ๋ ˆํฌ๊ฐ€ HEAD ์ปค๋ฐ‹์— ๋ฐ˜์˜ ์•ˆ ๋œ ์ƒํƒœ๋ฉด `$CENTRAL_MEM.conflict-/`๋กœ ๋Œ€ํ”ผ ํ›„ ๋ ˆํฌ๋ณธ ๋ณต์› -3. **๊ฐ์‚ฌ๊ด€ ๋ฐฑ์—…**: pm-auditor๊ฐ€ `*.conflict-*/` ๋ฐœ๊ฒฌ ์‹œ ์ฆ‰์‹œ ๋ณด๊ณ  + ์ˆ˜๋™ ๋ณ‘ํ•ฉ ์•ˆ๋‚ด - -### C34-4. ๋Œ€์ƒ (์„ธ์…˜ ์ค‘ ๋ฐ˜์˜ ๋ถˆ๊ฐ€ 9์ข…) - -> **์ธต์œ„ ์ฃผ์˜ (2026-04-20 m-2 ๋ช…๋ฃŒํ™”)**: C34-1ยทC34-3 "**์ €์žฅ์†Œ 3์ข…**"(`.live/`ยท`memory/org/`ยทaudit)์€ **์ค‘์•™ ํ†ตํ•ฉ ์ž์‚ฐ ๋ถ„๋ฅ˜**์ด๊ณ , ๋ณธ C34-4 "**๋Œ€์ƒ ํŒŒ์ผ 9์ข…**"์€ **`.live/` ๋ณ€๊ฒฝ ์ฆ๋ถ„ ์ฃผ์ž… ๋Œ€์ƒ ํŒŒ์ผ ๋ชฉ๋ก**์ด๋‹ค. ๋‘ ๊ฐœ๋…์€ ์ธต์œ„๊ฐ€ ๋‹ค๋ฅด๋ฉฐ ๊ต์ฐจ ๊ด€๊ณ„ ์•„๋‹˜. - -CLAUDE.md, CLAUDE.local.md, .claude/settings.json, settings.local.json, .claude/skills/*/SKILL.md, .claude/agents/*.md, .claude/rules/*.md, .claude/commands/*.md, .mcp.json - -### C34-5. ๋ณ€๊ฒฝ ๋ฐœ์ƒ ์‹œ ์ ˆ์ฐจ -1. **์›๋ณธ ํŒŒ์ผ ์ฆ‰์‹œ ์ˆ˜์ •** (๋‹ค์Œ ์„ธ์…˜ยท๋‹ค๋ฅธ PC๋ฅผ ์œ„ํ•ด) -2. **`.live/{ํŒŒ์ผ๋ช…}`์— ๋ณ€๊ฒฝ ์š”์ง€ append** โ€” junction ๊ฒฝ์œ ๋กœ ์ค‘์•™ ์ €์žฅ์†Œ์— ์‹ค์ œ ๊ธฐ๋ก -3. UserPromptSubmit hook `live_inject.sh`๊ฐ€ ์ฆ๋ถ„ ๊ฐ์ง€ โ†’ **๋ชจ๋“  ์„ธ์…˜(worktree ๋ฌด๊ด€)์— ์ž๋™ ์ฃผ์ž…** - -### C34-6. ์ฆ๋ถ„ ์ฝ๊ธฐ ์›๋ฆฌ -- hook์ด ํŒŒ์ผ๋ณ„ "๋งˆ์ง€๋ง‰ ์ฝ์€ ์ค„ ๋ฒˆํ˜ธ" ๊ธฐ๋ก (`$HOME/.claude/.nerdnavis_throttle/`) -- ๋‹ค์Œ ํ„ด์— ์ถ”๊ฐ€๋œ ์ค„๋งŒ stdout ์ถœ๋ ฅ โ†’ ์—์ด์ „ํŠธ ์ปจํ…์ŠคํŠธ ์ฃผ์ž… -- ๋ณ€๊ฒฝ ์—†์œผ๋ฉด ์ถœ๋ ฅ ์—†์Œ (ํ† ํฐ ๋น„์šฉ 0) - -### C34-7. ์„œ๋ธŒ์—์ด์ „ํŠธ ์˜๋ฌด (Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ ๊ฐ•ํ™”) -๋ชจ๋“  ์—์ด์ „ํŠธ๋Š” ์ž‘์—… ์ฐฉ์ˆ˜ ์ „ `.live/` ๋””๋ ‰ํ† ๋ฆฌ์— ๋”๋ฏธ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์กด์žฌํ•˜๋ฉด Readํ•˜์—ฌ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ธ์ง€ํ•œ๋‹ค. -- **์ ˆ๋Œ€ ๊ฒฝ๋กœ `E:\BurningTimesAi\...` ๋“ฑ ํ•˜๋“œ์ฝ”๋”ฉ ๊ธˆ์ง€** โ€” ํ•ญ์ƒ `.live/` ์ƒ๋Œ€ ๊ฒฝ๋กœ ๋˜๋Š” `git rev-parse --show-toplevel` ๊ธฐ๋ฐ˜ ๊ฒฝ๋กœ ์‚ฌ์šฉ (C34-11 ์œ„๋ฐ˜ ์‚ฌ๊ฑด ์žฌ๋ฐœ ๋ฐฉ์ง€) - -### C34-8. Write ๊ถŒํ•œ -- **PM๋งŒ Write** (์„œ๋ธŒ์—์ด์ „ํŠธ๋Š” Read ์ „์šฉ) -- ๊ฐ ๋”๋ฏธ ํŒŒ์ผ ์ตœ๋Œ€ 8,000์ž - -### C34-9. "์„ธ์…˜ ๊ณต์œ " ์‹œ ๋™๊ธฐํ™” (P21-2 ์—ฐ๊ณ„) -1. ๋”๋ฏธ ๋‚ด์šฉ์ด ์›๋ณธ์— ์ด๋ฏธ ๋ฐ˜์˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ -2. `.live/` ๋”๋ฏธ ํŒŒ์ผ ๋น„์šฐ๊ธฐ (README.mdยท.junction-marker ์ œ์™ธ) -3. commit + push - -### C34-10. C14 ์ค€์ˆ˜ -- ๋ณ€๊ฒฝ ์—†๋Š” ํ„ด: ํ† ํฐ ๋น„์šฉ 0 (sentinel ๋น„๊ต๋งŒ) -- ๋ณ€๊ฒฝ ๊ฐ์ง€ ํ„ด: ์ถ”๊ฐ€๋ถ„๋งŒ ์ฃผ์ž… (์ „์ฒด ์žฌ์ฝ๊ธฐ ์—†์Œ) -- ์„ธ์…˜ ์‹œ์ž‘ ์‹œ: `live_junction_ensure.sh`๊ฐ€ junction ๋ณด์žฅ ํ›„ `live_session_load.sh`๊ฐ€ ์ „๋Ÿ‰ 1ํšŒ ๋กœ๋“œ - -### C34-11. Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ โ€” ์ ˆ๋Œ€ ๊ฒฝ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ ๊ธˆ์ง€ (2026-04-18 ์‹ค์ฆ ์‹ ์„ค) -Agent ๋„๊ตฌ๋กœ ํ˜ธ์ถœ๋œ ์„œ๋ธŒ์—์ด์ „ํŠธ๊ฐ€ **์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ๋ ˆํฌ ๋ฃจํŠธ๋ฅผ ํ•˜๋“œ์ฝ”๋”ฉํ•˜๋ฉด worktree ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด main ์ฒดํฌ์•„์›ƒ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณ€๊ฒฝ์ด ๊ธฐ๋ก๋˜๋Š” ์ด์Šˆ ์‹ค์ฆ** (2026-04-18 worktree ๊ฒฉ๋ฆฌ 2์ฐจ ์‚ฌ๊ฑด: ๊ฐœ๋ฐœํŒ€์žฅ Agent๊ฐ€ `E:\BurningTimesAi\๊ณต์œ \...`๋กœ Write ํ˜ธ์ถœํ•˜์—ฌ ๋ณธ ์›ŒํฌํŠธ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๋ ˆํฌ ๋ฃจํŠธ์— ํŒŒ์ผ ์ƒ์„ฑ). - -**์žฌ๋ฐœ ๋ฐฉ์ง€ ์˜๋ฌด**: -- Agent ํ˜ธ์ถœ ํ”„๋กฌํ”„ํŠธ์— **"ํ˜„์žฌ cwd ๊ธฐ์ค€ ์ƒ๋Œ€ ๊ฒฝ๋กœ ์‚ฌ์šฉ ์˜๋ฌด"** ๋ช…์‹œ -- ์‚ฐ์ถœ๋ฌผ ๊ฒฝ๋กœ๋Š” `$(git rev-parse --show-toplevel)` ๊ธฐ์ค€ ๋˜๋Š” ์ƒ๋Œ€ ๊ฒฝ๋กœ -- PM์€ Agent ์‘๋‹ต ์ˆ˜๋ น ์งํ›„ `git -C <๋ ˆํฌ๋ฃจํŠธ> status` + ๋ณธ ์›ŒํฌํŠธ๋ฆฌ `git status` ๋ณ‘ํ–‰ ํ™•์ธ -- ๊ฒฝ๊ณ„ ์ดํƒˆ ๋ฐœ๊ฒฌ ์‹œ `git -C <๋ ˆํฌ๋ฃจํŠธ> stash push -u -- ๊ณต์œ /` โ†’ ๋ณธ ์›ŒํฌํŠธ๋ฆฌ `git stash pop`์œผ๋กœ ๋ณต๊ตฌ -- ์žฌ๋ฐœ ๋ฐฉ์ง€ ๋ฉ”๋ชจ๋ฆฌ: `memory/org/feedback_agent_path_boundary.md` - -### C34-12. Degraded ์šด์˜ (์ž‘์—… ์ฐจ๋‹จ ๊ธˆ์ง€ ์›์น™) -Junction ์ƒ์„ฑ ์‹คํŒจ ์‹œ **์ž‘์—…์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š๊ณ ** ๋กœ์ปฌ `.live/` ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋™์ž‘(๊ฒฝ๊ณ  ์ถœ๋ ฅ). ์ด์œ : -- ์กฐ์ง ์ƒ์กด ํ•ด๊ฒฐ์ด ๋˜ ๋‹ค๋ฅธ ์ƒ์‚ฐ์„ฑ ์ €ํ•˜ ์—ญ์„ค ์œ ๋ฐœ ๋ฐฉ์ง€ -- Degraded ๋ชจ๋“œ ๊ฐ์ง€ ์‹œ ๋‹ค์Œ ์„ธ์…˜ ์‹œ์ž‘๋งˆ๋‹ค ์ž๋™ ์žฌ์‹œ๋„ (์ตœ๋Œ€ 3ํšŒ/์„ธ์…˜) -- ์˜๊ตฌ ์‹คํŒจ ์‹œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ setup ์Šคํฌ๋ฆฝํŠธ ์žฌ์‹คํ–‰ ๋˜๋Š” `๊ณต์œ /์กฐ์ง๊ณต์ง€/` ์ˆ˜๋™ ์ด์Šˆ ๋ณด๊ณ  - -### C34-13. ์—ฐ๊ด€ ๊ทœ์น™ยท์ž์‚ฐ -- **ํ—Œ๋ฒ• ์ œ1์›์น™ โ‘ค** (์„ธ์…˜ยทPC ์—ฐ์†์„ฑ): ๋ณธ ๊ทœ์น™์˜ ์ƒ์œ„ ๊ทผ๊ฑฐ -- **C16-1** (PC ๋…๋ฆฝ ์…‹์—…): Live junction ์ž๋™ ์—ฐ๊ฒฐ์ด ๋ณธ ์กฐํ•ญ์— ํŽธ์ž…๋จ (2026-04-18 ๋ณด๊ฐ•) -- **C17** (์ตœ์‹  ์„ธ์…˜ ๊ด€๋ฆฌ ๊ธฐ์ค€): ์„ธ์…˜ ์‹œ์ž‘ ์‹œ junction ์‹ค์ฒด ๊ฒ€์ฆ ์˜๋ฌด -- **C21-โ‘ ** (๋‚ด๋ถ€ ๊ณต์œ  ์ƒํƒœ): ํ•ต์‹ฌ ์ˆ˜๋‹จ -- **C18** (์กฐ์ง ๊ณต์œ  ์™„๋ฃŒ ํŒ์ •): main push๋กœ์˜ ์ „ํ™˜ -- **P21-2** (์„ธ์…˜ ๊ณต์œ  ํ”„๋กœํ† ์ฝœ): ๋‹ค๋ฅธ PC ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๊ณต์œ ์˜ ๋ช…์‹œ ์ˆ˜๋‹จ -- **`scripts/live_junction_ensure.sh`** (SessionStart hook ์ตœ์šฐ์„  ์‚ฝ์ž…) -- **`scripts/live_inject.sh`** (UserPromptSubmit hook) -- **`scripts/sync_signal.sh`** (post-commit hook ์‹œ๊ทธ๋„) - -### C34-14. ๊ฒฉ์ƒ ๊ฒฝ์œ„ (์กฐ์ง ๊ธฐ์–ต) -- **2026-04-16** P25 ์‹ ์„ค (PD๋‹˜ ์ง์ ‘ ์ง€์‹œ) -- **2026-04-17** PD๋‹˜ "์กฐ์ง ํ•ต์‹ฌ ์ž์‚ฐ" ์ง์ ‘ ๋ช…์‹œ -- **2026-04-18 ์˜ค์ „** worktree ๊ฒฉ๋ฆฌ ์‹ค์ฆ โ€” ์„ธ์…˜ B(nifty-wing) `.live/ping.md` Write๊ฐ€ ์„ธ์…˜ A(tender-liskov) hook์— ๋ฏธ์ฃผ์ž… -- **2026-04-18 ์˜คํ›„** PD๋‹˜ ์กฐ์ง ์ƒ์กด๊ธ‰ ์„ ์–ธ + "๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ˆ˜๋‹จ์„ ์จ์„œ ๊ฐœ์„ " ์ง€์‹œ โ†’ **ํ—Œ๋ฒ•๊ธ‰ ์Šน๊ฒฉ + ๊ทผ์› ํ•ด๊ฒฐ(`.live/` ์ค‘์•™ Junction) + Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ ๋™์‹œ ์ง‘ํ–‰** -- **2026-04-19** memory junction ๊ฒฝ๊ณ„ ์ด์Šˆ ์žฌ๋ฐœ ์‹ค์ฆ โ€” PM์ด "๊ถŒ๊ณ " ์ˆ˜์ค€์œผ๋กœ ์ถ•์†Œ ๋ณด๊ณ  ํ›„ PD๋‹˜ ์ง์ ‘ ์ง€์ : "๊ทผ๋ณธ ํ•ด๊ฒฐ์ด ์•„๋‹Œ ์ž„์‹œ ๋ฐฉํŽธ์€ ์ฝ”์–ด ๋ฃฐ ์œ„๋ฐ˜. C34์™€ ๋™๊ธ‰์˜ ์ƒ์กด์„ฑ ์ด์Šˆ๋Š” '๊ถŒ๊ณ ' ์ˆ˜์ค€์ด ์•„๋‹ˆ์—ˆ์–ด" โ†’ **์˜ต์…˜ A ์ง‘ํ–‰ ์ง€์‹œ๋กœ `memory/org/` ์ค‘์•™ํ™” C34 ํŽธ์ž…**. PM ๊ณผ๋„ ๋ณด์ˆ˜ ํ•ด์„ 4ํšŒ์ฐจ ๋ณ€์ข… ์žฌ๋ฐœ. C42-7 E ์ฒดํฌ๋ฆฌ์ŠคํŠธ(๊ตฌ C31-E ์›ํ˜• ์ด๊ด€ ยท 2026-04-24 BT9)์— "๋™๊ธ‰ ์ƒ์กด์„ฑ ์ด์Šˆ ์ถ•์†Œ ๋ณด๊ณ  ๊ฐ์ง€" ํ•ญ๋ชฉ ์ถ”๊ฐ€ ์•ˆ๊ฑดํ™”. -- ์ฐจ๊ธฐ ํ”„๋กœ์ ํŠธ ์ฐฉ์ˆ˜ ์‹œ `setup_*` ์Šคํฌ๋ฆฝํŠธ ํ˜ธ์ถœ๋งŒ์œผ๋กœ `.live/` + `memory/org/` ์–‘์ฒด๊ณ„ ์ฆ‰์‹œ ์žฌ์‚ฌ์šฉ - -### C34-15. ์‹ ๊ทœ ์กฐ์ง ์„ค์ •ยท์ €์žฅ์†Œ ์„ค๊ณ„ ์‹œ worktree ๊ฒฝ๊ณ„ ์ฒดํฌ ์˜๋ฌด (2026-04-18 PD๋‹˜ "์œ ์‚ฌ ์‚ฌ๋ก€ ์žฌ๋ฐœ ๋ฐฉ์ง€" ์ง€์‹œ ์ˆ˜์šฉ) - -์กฐ์ง์— **์ƒˆ๋กœ์šด ์„ค์ • ํŒŒ์ผยท๊ณต์œ  ์ €์žฅ์†Œยทhookยท์Šคํฌ๋ฆฝํŠธ**๋ฅผ ๋„์ž…ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ `memory/org/feedback_worktree_isolation.md`์˜ **5๊ฐœ ์งˆ๋ฌธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ**๋ฅผ ํ†ต๊ณผํ•œ๋‹ค. - -- **5๊ฐœ ์งˆ๋ฌธ**: (1) PC ๋‹จ์œ„ vs worktree ๋‹จ์œ„ ํŒ์ • ยท (2) ๊ฒฝ๊ณ„ ์•ˆ์ „์„ฑ ยท (3) ์ค‘์•™ํ™” ํ•„์š”์„ฑ ยท (4) ๋ ˆํฌ ๋ฃจํŠธ vs worktree ์‹คํ–‰ ์ฐจ์ด ยท (5) Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ (C34-11) -- **๋ฏธํ†ต๊ณผ ์‹œ**: ๊ทผ์› ํ•ด๊ฒฐ์•ˆ ํฌํ•จํ•˜์—ฌ ์žฌ์„ค๊ณ„ ํ›„ ์žฌ์ƒ์ • -- **๊ฐ์‚ฌ๊ด€ ์ƒ์‹œ ์ ๊ฒ€**: pm-auditorยทdev-auditorยทplan-auditor 3์ข…์ด ๊ทœ์น™ยท์„ค์ •ยท์Šคํฌ๋ฆฝํŠธยท๊ธฐํš ์ž์‚ฐ ๋ณ€๊ฒฝ ์‹œ ๋ณธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ์ˆ˜ํ–‰ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์ฆ -- **์‹ค์ฆ ์ด๋ ฅ ๋ˆ„์ **: `feedback_worktree_isolation.md` ๋ง๋ฏธ "๊ด€๋ จ ์‚ฌ๊ฑด ๋กœ๊ทธ" ํ‘œ์— ์‹  ์‚ฌ๊ฑด appendํ•˜์—ฌ ํŒจํ„ด ํ•™์Šต -- **๊ทผ๊ฑฐ ์‚ฌ๊ฑด**: 2026-04-18 ๋‹จ์ผ ์„ธ์…˜ ๋‚ด 4๊ฑด ์—ฐ์† ์‹ค์ฆ (`.live/` ๊ฒฉ๋ฆฌ ยท Agent ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์œ ์ถœ ยท memory junction ๋ ˆํฌ ๋ฃจํŠธ ํƒ€๊นƒ ยท paths.local.json worktree ๋ˆ„๋ฝ) โ†’ PD๋‹˜ "์œ ์‚ฌ ์‚ฌ๋ก€ ์žฌ๋ฐœ๋˜์ง€ ์•Š๋„๋ก ๊ตํ›ˆ์œผ๋กœ" ์ง์ ‘ ์ง€์‹œ - -### C34-16. memory junction ํŠน์ˆ˜ ์กฐํ•ญ (2026-04-19 ์‹ ์„ค) - -`.live/`์™€ ๋‹ฌ๋ฆฌ `memory/org/`๋Š” **git ์ถ”์  SOT**์ด๋ฏ€๋กœ ๋‹ค์Œ ํŠน์ˆ˜ ์˜๋ฌด๋ฅผ ๊ฐ€์ง„๋‹ค. - -1. **๋ ˆํฌ `memory/org/` ์‹ค์ฒด ๋””๋ ‰ํ† ๋ฆฌ ์œ ์ง€ ์˜๋ฌด** โ€” ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ junction/symlink๋กœ ์ „ํ™˜ ๊ธˆ์ง€. PC clone ์งํ›„ยทsetup ์‹คํ–‰ ์ „์—๋„ `memory/org/` ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ (๊ฐœ๋ฐœ์žยท๊ฐ์‚ฌ๊ด€ ์ง์ ‘ Read ๋ณด์žฅ) -2. **sync ๋ฐฉํ–ฅ ๊ทœ์•ฝ** โ€” ๊ธฐ๋ณธ SOT๋Š” **๋ ˆํฌ `memory/org/`**. ์ค‘์•™ `$HOME/.claude/nerdnavis-memory/`๋Š” Claude user memory ์‹ค์‹œ๊ฐ„ ๊ณต์œ ๋ฅผ ์œ„ํ•œ **๋ฏธ๋Ÿฌ**์ด์ง€ ์ •๋ณธ์ด ์•„๋‹˜ -3. **Write ๊ฒฝ๋กœ ์„ ํƒ ์˜๋ฌด (์‹ ๊ทœ, C34-11 ํ™•์žฅ)** โ€” Write ๋„๊ตฌ๋กœ memory ํŒŒ์ผ ๊ธฐ๋ก ์‹œ ๋‹ค์Œ ์ค‘ ํƒ1: - - (์šฐ์„ ) **๋ณธ worktree ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์ง์ ‘ ์ง€์ •** (์˜ˆ: `E:\BurningTimesAi\.claude\worktrees\\memory\org\...`) โ€” junction ๊ฒฝ์œ  ํšŒํ”ผ, ๋ณธ worktree git status ์ฆ‰์‹œ ๋ฐ˜์˜ - - (๋Œ€์ฒด) `$HOME/.claude/projects/*/memory/...` โ€” junction ๊ฒฝ์œ ๋กœ ์ค‘์•™์— ๊ธฐ๋ก, ์ดํ›„ post-commit hook์ด ๋ ˆํฌ๋กœ ์ž๋™ sync - - **ํ˜ผ์šฉ ๊ธˆ์ง€** โ€” ๊ฐ™์€ ์„ธ์…˜์—์„œ ๋‘ ๊ฒฝ๋กœ ํ˜ผ์šฉ ์‹œ ๋ถ„๊ธฐ ๋ฆฌ์Šคํฌ. PM์€ ์ „ ์„ธ์…˜ ๋‹จ์ผ ๊ฒฝ๋กœ ์œ ์ง€ -4. **๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์‹œ 3์ธต ๋ฐฑ์—… ์˜๋ฌด** โ€” ๋ ˆํฌ ๋ฃจํŠธยทworktree๋“คยทjunction ํƒ€๊นƒ 3์ถ• ๋ฐฑ์—… ํ›„์—๋งŒ ์ค‘์•™ํ™” ์ „ํ™˜ (C6-1 ์›๋ณธ ๋ณดํ˜ธ) -5. **์ •(ๆญฃ) ํŒ์ • ๊ทœ์น™ AยทBยทC** โ€” ์ดˆ๊ธฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ยท์ถฉ๋Œ ์‹œ (A) worktree์—๋งŒ ์žˆ๋Š” ํŒŒ์ผ์€ worktree๋ณธ ํก์ˆ˜, (B) ์–‘์ชฝ ๋‚ด์šฉ ์ƒ์ด๋ฉด mtime ์ตœ์‹ ๋ณธ, (C) junction ๋ถ€์žฌ ํ•ด์‹œ ํด๋”์˜ ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์šฉ์€ ์ „์ˆ˜ ์Šค์บ” ํ›„ ์ค‘์•™ ํก์ˆ˜ -6. **sync ์Šคํฌ๋ฆฝํŠธ ๋ฎ์–ด์“ฐ๊ธฐ ๋ณดํ˜ธ ์˜๋ฌด (2026-04-19 D์•ˆ ์‹ ์„ค)** โ€” `sync_memory_central_to_repo.sh`๋Š” **๋ ˆํฌ mtime์ด ์ค‘์•™๋ณด๋‹ค ์ตœ์‹ ์ด๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ ์Šคํ‚ต + ๊ฒฝ๊ณ ** ์ถœ๋ ฅ. ๋ณธ ์„ธ์…˜ 12์ฐจ commit(`1b409a0`) ์งํ›„ Edit ๋‚ด์šฉ์ด post-commit sync๋กœ ๋ฎ์–ด์”Œ์›Œ์ง„ ์‹ค์ฆ(2026-04-19)์œผ๋กœ ๊ทผ๊ฑฐ ํ™•๋ฆฝ. ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ(`sync_memory_repo_to_central.sh`)์€ ๋ ˆํฌ SOT ์ •์ฑ… ์œ ์ง€ + unflushed ์ค‘์•™ ๋Œ€ํ”ผ ๋กœ์ง ์œ ์ง€. ๊ทผ๊ฑฐ: `memory/org/feedback_memory_sync_overwrite.md` - -### C34-17. audit ์ž์‚ฐ ํŠน์ˆ˜ ์กฐํ•ญ (2026-04-20 #48 G ์ง‘ํ–‰ ์‹ ์„ค) - -C35 ๊ฐ์‚ฌ ๋กœ๊ทธ 3์ข…(`auditor_calls`ยท`warning_ignored`ยท`bypass_log`)์€ ๋ณธ๋ž˜ **PC๋ณ„ ๋กœ์ปฌ ์ƒํƒœ**๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋‚˜, PD๋‹˜ 2026-04-20 ์ง์ ‘ ์ง€์‹œ "์–ด๋–ค PC์—์„œ ์ž‘์—…์„ ํ•˜๋“  ํ•ญ์ƒ ์ผ๊ด€ ๋œ ์ƒํƒœ๋กœ ์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฒ ์ €ํ•˜๊ฒŒ ๋™์‹œํ™”๋˜์–ด์•ผ๋งŒ ํ•ด"์— ๋”ฐ๋ผ **์ค‘์•™ ํ†ตํ•ฉ** ์ „ํ™˜. ํ—Œ๋ฒ• ์ œ1์›์น™ โ‘ค(์„ธ์…˜ยทPC ์—ฐ์†์„ฑ) ์ง๊ฒฐ. - -1. **์ค‘์•™ ์ €์žฅ์†Œ ๊ตฌ์กฐ**: `$HOME/.claude/nerdnavis-audit/{auditor_calls,warning_ignored,bypass_log}/` 3์ข… ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ -2. **junction ์—ฐ๊ฒฐ**: `$HOME/.claude/.nerdnavis_auditor_calls` ๋“ฑ 3๊ฐœ ๊ฒฝ๋กœ๋ฅผ ๊ฐ๊ฐ ์ค‘์•™ ํ•˜์œ„๋กœ junction ์—ฐ๊ฒฐ. ๊ธฐ์กด ์Šคํฌ๋ฆฝํŠธ(`auditor_call_log.sh`ยท`auditor_guard.sh`ยท`audit_pattern_analyzer.sh`) ๊ฒฝ๋กœ ์ฐธ์กฐ ์ˆ˜์ • ๋ถˆํ•„์š” (junction ๊ฒฝ์œ ๋กœ ์ž๋™ ์ค‘์•™ ๊ธฐ๋ก) -3. **BYPASS ํ”Œ๋ž˜๊ทธยท์‚ฌ์œ  ํŒŒ์ผ ๋™์ผ ์ฒ˜๋ฆฌ**: `$HOME/.claude/.nerdnavis_bypass_active`ยท`.nerdnavis_bypass_reason`๋„ ์ค‘์•™ ๋‹จ์ผ ํŒŒ์ผ๋กœ ํ†ตํ•ฉ (PC ๊ฐ„ BYPASS ์ƒํƒœ ์ผ๊ด€) -4. **git ์ถ”์  SOT**: `memory/org/audit_logs/` ๋””๋ ‰ํ† ๋ฆฌ์— ์ผ์ž๋ณ„ ๋กœ๊ทธ sync (memory ํŒจํ„ด ์ค€์šฉ). `YYYY-MM-DD/{calls,warnings,bypass}.log` ํ˜•ํƒœ -5. **sync 4๊ณ„์ธต**: SessionStart(๋ ˆํฌโ†’์ค‘์•™) ยท post-commit(์ค‘์•™โ†’๋ ˆํฌ) ยท ์ˆ˜๋™(`scripts/sync_audit.sh both`) ยท ๊ฐ์‚ฌ๊ด€ ์ฃผ๊ธฐ -6. **PC๋ณ„ PC ์‹๋ณ„์ž ์ ‘๋‘**: ๋ ˆํฌ git ์ถ”์  SOT์— ๊ธฐ๋ก ์‹œ `{hostname}_YYYY-MM-DD_calls.log` ํ˜•ํƒœ๋กœ PC๋ณ„ ๊ตฌ๋ถ„ + ํ†ตํ•ฉ ์ง‘๊ณ„. PC ๊ฐ„ ๋กœ๊ทธ ํ˜ผ์žฌ ๋ฆฌ์Šคํฌ๋Š” hostname ์ ‘๋‘๋กœ ํ•ด์†Œ -7. **์—ญ๋ฐฉํ–ฅ sync ์ถฉ๋Œ**: `memory/org/` ๋กœ์ง ์ค€์šฉ. ๋ ˆํฌ mtime > ์ค‘์•™ mtime์ด๋ฉด ์ค‘์•™ ๋ฎ์–ด์“ฐ๊ธฐ ์Šคํ‚ต (C34-16 ์กฐํ•ญ 6 ๋™ํ˜•) -8. **๋งค๋‹ˆํŽ˜์ŠคํŠธ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ ํŽธ์ž… (2026-04-20 #50)**: `$HOME/.claude/nerdnavis-audit/manifest/{active,archived}/` ์ถ”๊ฐ€. C35-9 Layer 3 PreToolUse ์ฐจ๋‹จ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์ง‘ํ–‰ ๊ณ„ํš ์ €์žฅ. ํŒŒ์ผ ํฌ๋งท md + YAML frontmatter. active/*.md๋Š” PM์ด `manifest_register.sh`๋กœ ์ƒ์„ฑ, post-commit ์‹œ `manifest_archive.sh`๋กœ archived ์ด๋™. PC ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ๋ถˆ์š” (๊ฐ PC ์ž๊ธฐ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋งŒ ์ƒ์„ฑ) - -### C34-18. (placeholder โ€” ํ•„์š” ์‹œ ํ™•์žฅ) - ---- ## C35. pm-auditor ์˜๋ฌด ์ฐธ์—ฌ ์ฒด๊ณ„ (2026-04-19 PD๋‹˜ ์ง์ ‘ ์ง€์‹œ ์‹ ์„ค โ€” ์กฐ์ง ๋‚ด ๊ณต์œ  ์ž‘์—… ์›์ฒœ ์ฐจ๋‹จ) @@ -1380,7 +1224,6 @@ pm-auditor ์ž์‹ ์˜ ํ˜ธ์ถœ ์ด๋ ฅ๋„ ๊ฐ์‚ฌ ๋Œ€์ƒ. ํŠน์ • ์ž‘์—…์—์„œ **ํ˜ธ - **C29** ์—…๋ฌด ์ž์œจ ์ˆ˜ํ–‰ (๊ฐ์‚ฌ๊ด€ ์ฐธ์—ฌ๋Š” PM ์ž์œจ์— ๊ฒฐํ•ฉ๋˜๋Š” ์•ˆ์ „๋ง) - **C42** ์‚ฌ์ „ ๊ฒ€์ฆ ์ ˆ์ฐจ (C42-7 F ๊ทธ๋ฃน์— C35 ์ค€์ˆ˜ ๋ฌธํ•ญ ยท ๊ตฌ C31 โ†’ C42-7 ์ด๊ด€ 2026-04-24 BT9) -- **C34** PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” (๊ฐ์‚ฌ๊ด€ ํ˜ธ์ถœ ๊ฒฐ๊ณผ ์ถ•์ ์˜ ์ธํ”„๋ผ) - **C33** ์กฐ์ง ์—…๋ฌด ๊ณต์œ ยท๊ธฐ๋ก ์ฒด๊ณ„ ์ผ๊ด€์„ฑ (3์ถ• ๊ฐ์‚ฌ์˜ ์ƒ์œ„ ๊ทœ์น™) ### C35-9. pm-auditor ํ˜ธ์ถœ ๊ฐ•์ œ hook 3์ธต ๊ตฌ์กฐ (2026-04-20 #50 ๊ทผ๋ณธ ํ•ด๊ฒฐ โ€” ์ฐจ๋‹จ + ํ•ด์ œ ์›Œํฌํ”Œ๋กœ์šฐ) @@ -1401,7 +1244,7 @@ pm-auditor ์ž์‹ ์˜ ํ˜ธ์ถœ ์ด๋ ฅ๋„ ๊ฐ์‚ฌ ๋Œ€์ƒ. ํŠน์ • ์ž‘์—…์—์„œ **ํ˜ธ **์ฐจ๋‹จ ์กฐ๊ฑด**: - `scripts/auditor_gate.sh` PreToolUse hook (Edit/Write/MultiEdit/Bash(git commitยทpush)) - ๋Œ€์ƒ: ์˜๋ฌด ์˜์—ญ(SKILL.mdยทmemory/org/feedback_*ยท์กฐ์ง๊ณต์ง€ยทPD_์ง€์‹œ_ํŠธ๋ž˜ํ‚น) ๋˜๋Š” git commit/push -- ํ™œ์„ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ(`$HOME/.claude/nerdnavis-audit/manifest/active/*.md`) **๋ถ€์žฌ** โ†’ `exit 2` ์ฐจ๋‹จ +- ํ™œ์„ฑ ๋งค๋‹ˆํŽ˜์ŠคํŠธ(`$HOME/.claude/burningtimes-audit/manifest/active/*.md`) **๋ถ€์žฌ** โ†’ `exit 2` ์ฐจ๋‹จ - ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์žˆ์œผ๋‚˜ ๋Œ€์ƒ ํŒŒ์ผ์ด **target_files ๋ฒ”์œ„ ๋ฐ–** โ†’ `exit 2` ์ฐจ๋‹จ - BYPASS ํ”Œ๋ž˜๊ทธ๋กœ **์šฐํšŒ ๋ถˆ๊ฐ€** (M-1 ์ˆ˜์šฉ โ€” ๊ทผ๋ณธ ํ•ด๊ฒฐ ์ž์ฒด ์šฐํšŒ ์ฐจ๋‹จ) @@ -1410,7 +1253,7 @@ pm-auditor ์ž์‹ ์˜ ํ˜ธ์ถœ ์ด๋ ฅ๋„ ๊ฐ์‚ฌ ๋Œ€์ƒ. ํŠน์ • ์ž‘์—…์—์„œ **ํ˜ธ 2. `bash scripts/manifest_register.sh ` ๋ช…์‹œ ์‹คํ–‰ โ†’ ๋งค๋‹ˆํŽ˜์ŠคํŠธ ์ƒ์„ฑ 3. Edit/Write ์žฌ์‹œ๋„ โ†’ target_files ๋ฒ”์œ„ ๋‚ด๋ฉด ์ž๋™ ํ†ต๊ณผ -**๋งค๋‹ˆํŽ˜์ŠคํŠธ ๊ตฌ์กฐ** (md + YAML frontmatter, C34-15 5๋ฌธํ•ญ ์ฒดํฌ ํ†ต๊ณผ): +**๋งค๋‹ˆํŽ˜์ŠคํŠธ ๊ตฌ์กฐ** (md + YAML frontmatter): ```yaml --- plan_id: 2026-04-20_134530 @@ -1430,14 +1273,6 @@ completion_criteria: "commit + push ์™„๋ฃŒ" - ๋งค๋‹ˆํŽ˜์ŠคํŠธ ๋ฐ– ์ˆ˜์ • ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ  (๋ฒ”์œ„ ์ถ•์†Œ ์กฐ์ž‘ ๊ฐ์ง€) - ๋งค๋‹ˆํŽ˜์ŠคํŠธ `archived/` ์ด๋™ -#### C34-15 worktree ๊ฒฝ๊ณ„ 5๋ฌธํ•ญ ์ฒดํฌ ๊ฒฐ๊ณผ (m-2 ์ˆ˜์šฉ) - -1. **PC ๋‹จ์œ„ vs worktree ๋‹จ์œ„**: PC ๋‹จ์œ„ + hostname ํ•„๋“œ๋กœ PC ๊ตฌ๋ถ„. worktree ๊ฒฝ๊ณ„ ๋ฌด๊ด€ -2. **๊ฒฝ๊ณ„ ์•ˆ์ „์„ฑ**: C34-17 audit junction ๊ฒฝ์œ  (์ค‘์•™ ์ €์žฅ์†Œ hostname ํด๋” ๊ฒฉ๋ฆฌ) -3. **์ค‘์•™ํ™” ํ•„์š”์„ฑ**: ๊ฐ PC๊ฐ€ ์ž๊ธฐ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋งŒ ์ƒ์„ฑ. PC ๊ฐ„ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ๋ถˆ์š”. post-commit sync๋กœ ๋ ˆํฌ ๊ฒฝ์œ  ์ถฉ๋ถ„ -4. **๋ ˆํฌ ๋ฃจํŠธ vs worktree ์‹คํ–‰ ์ฐจ์ด**: `$HOME/.claude/` ๊ฒฝ๋กœ๋ผ worktree ๋ฌด๊ด€ -5. **Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ**: target_files๋Š” **๋ ˆํฌ ์ƒ๋Œ€ ๊ฒฝ๋กœ** ๊ฐ•์ œ (C34-11 ์ค€์ˆ˜) - #### ํ•œ๊ณ„ ๋ฐ ์ž”์—ฌ ๋ฆฌ์Šคํฌ (C35-7 ์ง„์‹ค ์ธ์ •) ๋ณธ ์ฐจ๋‹จ ๋ฐฉ์‹๋„ **์™„๋ฒฝ ๊ฐ•์ œ ์•„๋‹˜**: @@ -2077,7 +1912,6 @@ C42-7 ์ฒดํฌ๋ฆฌ์ŠคํŠธ K ๊ทธ๋ฃน ์‹ ์„ค: - [ ] C28: md ํŒŒ์ผ ์ˆ˜์ • ์ „ PD๋‹˜์—๊ฒŒ ์Šน์ธ์„ ์š”์ฒญํ•˜๋Š” ํ‘œํ˜„์ด ์žˆ๋Š”๊ฐ€? (์žˆ์œผ๋ฉด ์ œ๊ฑฐ) - [ ] C29-4: ์™„๋ฃŒ ์ž‘์—…์— ๋Œ€ํ•œ PD ์ง€์‹œ ๋กœ๊ทธยท๋Œ€ํ™”๋กœ๊ทธยท์†Œํ†ต ์ฑ„๋„ยทLive ๋”๋ฏธ ๋™๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋Š”๊ฐ€? - [ ] C30: ๋Œ€์ƒ ํ”„๋กœ์ ํŠธ(Unityยท์ฝ”์–ด ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ) ์ˆ˜์ • ์ „ git ์ตœ์‹  ์ƒํƒœ ์ ๊ฒ€์„ ์ˆ˜ํ–‰ํ–ˆ๋Š”๊ฐ€? -- [ ] **C34-16**: memory ํŒŒ์ผ Write ์‹œ ๋ณธ worktree ์ ˆ๋Œ€ ๊ฒฝ๋กœ ์ง์ ‘ ์ง€์ •ํ–ˆ๋Š”๊ฐ€? ์•„๋‹ˆ๋ฉด user memory ๊ฒฝ๋กœ ์‚ฌ์šฉ ์‹œ ๋™์ผ ์„ธ์…˜ ๋‚ด ์ผ๊ด€ ์œ ์ง€? (ํ˜ผ์šฉ ๊ธˆ์ง€) - [ ] **C6-1**: ์‹ ๊ทœยท์ˆ˜์ • ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฐฑ์—… ๋กœ์ง์ด `{์›๋ณธ๋ช…}.bak_{YYYYMMDD_HHMM}.{ํ™•์žฅ์ž}` ํ‘œ์ค€ ํฌ๋งท์„ ๋”ฐ๋ฅด๋Š”๊ฐ€? (`.bak-*`ยทUnix timestamp ๊ธˆ์ง€) - [ ] **P28-8**: ๋ณธ ์‘๋‹ต์— **PD๋‹˜ ๋ณ„๋„ ํžˆ์Šคํ† ๋ฆฌ ์š”์ฒญ ์—†๋Š” ์ข…๊ฒฐยท์™„๋ฃŒยทํ๊ธฐ ํ™•์ • ์•ˆ๊ฑด**์ด ์žฌ์–ธ๊ธ‰๋˜์ง€ ์•Š์•˜๋Š”๊ฐ€? "๊ณ ์ฐฉยท์˜๊ตฌ ์ข…๋ฃŒยท์žฌ๋…ผ์˜ ๋Œ€์ƒ ์•„๋‹˜" ํ‘œํ˜„ ๋“ฑ์žฅ ์‹œ ์‚ญ์ œ ๊ฒ€ํ†  - [ ] **์•ˆ๊ฑด ํ”„๋ ˆ์ด๋ฐ ์ค‘๋ณต**: "PM ์žฌ๋Ÿ‰"๊ณผ "PD ๊ฒฐ์ •" ์นดํ…Œ๊ณ ๋ฆฌ์— ๋™์ผ ์•ˆ๊ฑด์ด ์ค‘๋ณต ๋“ฑ์žฅํ•˜์ง€ ์•Š๋Š”๊ฐ€? PD๋‹˜ ์ด์ „ ํ„ด ๊ฒฐ์ • ์‚ฌ์•ˆ์„ ์žฌ์งˆ๋ฌธํ•˜์ง€ ์•Š๋Š”๊ฐ€? @@ -2098,7 +1932,7 @@ C42-7 ์ฒดํฌ๋ฆฌ์ŠคํŠธ K ๊ทธ๋ฃน ์‹ ์„ค: #### E. ๊ธฐ์กด ์กฐ์ง ์ž์‚ฐ ์šฐ์„  ํ™œ์šฉ ํ™•์ธ - [ ] ์ƒˆ๋กœ์šด ๋ฌธ์ œยท์ง€์‹œ์— ๋Œ€ํ•œ ํ•ด๋ฒ•์„ ์„ค๊ณ„ํ•  ๋•Œ, **์กฐ์ง์— ์ด๋ฏธ ์žˆ๋Š” ์ฒด๊ณ„** ์ค‘ ๋ณธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€์žฅ ๋จผ์ € ๊ฒ€ํ† ํ–ˆ๋Š”๊ฐ€? - - ํ•„์ˆ˜ ๊ฒ€ํ†  ๋Œ€์ƒ: **C34 Live ์ฆ๋ถ„ ๋™๊ธฐํ™”**(๐Ÿ† ์กฐ์ง ํ•ต์‹ฌ ์ž์‚ฐ) ยท 3์ถ• ๊ฐ์‚ฌ ยท memory/feedback ํŒจํ„ด ยท ๊ธฐ์กด `scripts/`ยท`git-hooks`ยทUserPromptSubmit/SessionStart/SessionEnd hook + - ํ•„์ˆ˜ ๊ฒ€ํ†  ๋Œ€์ƒ: **`.live/` ๋””๋ ‰ํ† ๋ฆฌ + UserPromptSubmit `live_inject.sh` hook** ยท 3์ถ• ๊ฐ์‚ฌ ยท memory/feedback ํŒจํ„ด ยท ๊ธฐ์กด `scripts/`ยท`git-hooks`ยทUserPromptSubmit/SessionStart/SessionEnd hook - [ ] ๊ธฐ์กด ์ž์‚ฐ์„ ๋ฌด์‹œํ•˜๊ณ  ์ƒˆ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์–‘์  ์กฐ์ •(์ˆซ์ž ๋‹จ์ˆœ ๋ณ€๊ฒฝ)์œผ๋กœ ํšŒํ”ผํ•˜์ง€ ์•Š์•˜๋Š”๊ฐ€? - [ ] PD๋‹˜ ์ง€์‹œ๋ฅผ **๊ฒฐ๊ณผ ๋‹จ๋…์œผ๋กœ ์ถ•์†Œ ํ•ด์„**ํ•˜์ง€ ์•Š๊ณ , **์„ค๊ณ„ ๊ฒฝ๋กœ๊นŒ์ง€ ์•”๋ฌต ํฌํ•จ**์œผ๋กœ ์ฝ์—ˆ๋Š”๊ฐ€? - [ ] **์ž์‚ฐ ๊ฐ€์น˜ ๋ณด์กด โ‰  ์ €์žฅ ์œ„์น˜ ๋ณด์กด** ๊ตฌ๋ถ„ํ–ˆ๋Š”๊ฐ€? โ€” ์ž์‚ฐ(์กฐ์ง ๊ธฐ์–ตยท๊ตํ›ˆยทํ๊ธฐ ์„ ์–ธยท๊ธฐ๊ฐ ๊ทผ๊ฑฐ)์˜ **๊ฐ€์น˜๋Š” ๋ฐ˜๋“œ์‹œ ์œ ์ง€**ํ•˜๋˜ **์ €์žฅ ์œ„์น˜๋Š” C14 ๊ด€์ ์—์„œ ์ตœ์ ํ™” ๊ฐ€๋Šฅ**. ํ™œ์„ฑ ๋ณธ๋ฌธ์— ๊ณ ์ • = ๊ณผ๋„ ๋ณด์ˆ˜ ํ•ด์„. ์™ธ๋ถ€ SOT(`memory/org/`ยท`๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md`)๋กœ ์ด๊ด€ํ•˜๋˜ 1์ค„ ์ฐธ์กฐ ์œ ์ง€ ๋ฐฉ์‹ ๊ฒ€ํ† . ๊ทผ๊ฑฐ: `memory/org/feedback_pm_over_conservative_interpretation.md` @@ -2209,7 +2043,7 @@ PD๊ฐ€ **๋‹จ์ˆœ ๋ฐ˜๋ณต ์—…๋ฌด ์นดํƒˆ๋กœ๊ทธ ๋งค์นญ** ์ž‘์—… ์ง€์‹œ ์‹œ: - **PD ์ง€์‹œ ์ฆ‰์‹œ PD ์ง€์‹œ ๋กœ๊ทธ ๋“ฑ๋ก** (P19) โ€” ํŒ€์žฅ ์ž์ฒด ์ฑ…์ž„ - ์ž‘์—… ์ง„ํ–‰ยท์™„๋ฃŒยท์ค‘๋‹จ 4๋‹จ๊ณ„ ๊ฐ€์‹œํ™” (C13) - ์™„๋ฃŒ ์‹œ PM ์‚ฌํ›„ ํ†ต๋ณด โ€” Live ๋”๋ฏธ ๋˜๋Š” ๋Œ€ํ™”๋กœ๊ทธ ์—”ํŠธ๋ฆฌ (C29-4) -- C39ยทC34-11 ํ‘œ์ค€ ํ—ค๋” ์ž์ฒด ์ ์šฉ (์‚ฐํ•˜ ํ˜ธ์ถœ ์‹œ) +- C39ยทC5ยทC23 ํ‘œ์ค€ ํ—ค๋” ์ž์ฒด ์ ์šฉ (์‚ฐํ•˜ ํ˜ธ์ถœ ์‹œ) - C36-2 ํŒ์ • ๋งค์นญ ์‹œ PM ์•ˆ๊ฑด ์ƒ์‹  (ํ—Œ๋ฒ•ยท์™ธ์—ฐ ๋ณ€๊ฒฝ ์˜์—ญ) ### C43-5. PM ์‚ฌํ›„ ํŠธ๋ž˜ํ‚น ์˜๋ฌด @@ -3158,11 +2992,10 @@ BurningTimes์˜ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์—์„œ **๊ธฐํšํŒ€์€ ๋ชจ๋“  ์‚ฐ์ถœ๋ฌผ ๋ณ‘๋ ฌ ํ˜ธ์ถœ ์‹œ ๋‹ค์Œ ์ „์ˆ˜ ์ค€์ˆ˜: -- **C34-11 Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ** โ€” ๋ชจ๋“  ํ˜ธ์ถœ ํ”„๋กฌํ”„ํŠธ์— "์ƒ๋Œ€ ๊ฒฝ๋กœ ์‚ฌ์šฉ ยท ์ ˆ๋Œ€ ๊ฒฝ๋กœ ๊ธˆ์ง€" ๋ช…์‹œ +- **C5ยทC23 Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ** โ€” ๋ชจ๋“  ํ˜ธ์ถœ ํ”„๋กฌํ”„ํŠธ์— "์ƒ๋Œ€ ๊ฒฝ๋กœ ์‚ฌ์šฉ ยท ์ ˆ๋Œ€ ๊ฒฝ๋กœ ๊ธˆ์ง€" ๋ช…์‹œ - **C23 ์—ญํ•  ์—ฐ๊ธฐ ๊ธˆ์ง€** โ€” ํŒ€์žฅ์ด ๋ณ‘๋ ฌ ํ˜ธ์ถœ ๊ฒฐ๊ณผ ์ข…ํ•ฉ ์‹œ **์‹ค์ œ ํ˜ธ์ถœ ๊ฒ€์ฆ** (tool_use ๊ฒฐ๊ณผ ์ฒจ๋ถ€ ์˜๋ฌด) - **C27 ๋กœ๊ทธ ๊ฐฑ์‹  ํ™•์ธ** โ€” ๋ณ‘๋ ฌ ํ˜ธ์ถœ ์ˆ˜๋งŒํผ PD ์ง€์‹œ ๋กœ๊ทธ ๊ฐฑ์‹  ํ•ญ๋ชฉ ์ฆ๊ฐ€ ๊ฐ€๋Šฅ์„ฑ ์ ๊ฒ€ - **C42-7 D ๊ทธ๋ฃน ์ถ•์†Œ ํ”„๋ ˆ์ด๋ฐ ๋ฐฉ์ง€** โ€” ๊ฐ ์„œ๋ธŒ์—์ด์ „ํŠธ ํ”„๋กฌํ”„ํŠธ ์‹ค์ฒด ๋ฒ”์œ„ ๊ฒ€์ฆ -- **C34-15 5๋ฌธํ•ญ ์ฒดํฌ** โ€” ๋ณ‘๋ ฌ ํ˜ธ์ถœ์ด ์‹ ๊ทœ ์„ค์ •ยท์ €์žฅ์†Œ ๋„์ž… ์‹œ ์ „์ˆ˜ ์ˆ˜ํ–‰ ### P33-5. C35-1 #7๊ณผ์˜ ๊ฒฝ๊ณ„ @@ -3194,7 +3027,7 @@ P33์€ **๋ณ‘๋ ฌ ํ˜ธ์ถœ ์กฐ์œจ ์›์น™** (์œ„์ž„ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ๋ณ‘๋ ฌ ํŒจํ„ด). - **C14** ํ† ํฐ ์ตœ์†Œํ™” ์šฐ์„  ์„ค๊ณ„ (๋ณธ ์›์น™ ์ƒ์œ„) - **C23** ํ—ˆ์œ„ ๋ณด๊ณ ยท์—ญํ•  ์—ฐ๊ธฐ ๊ธˆ์ง€ - **C27** Agent ํ˜ธ์ถœ ์™„๋ฃŒ ์‹œ PD ์ง€์‹œ ๋กœ๊ทธ ๊ฐฑ์‹  ์˜๋ฌด -- **C34-11** Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ +- **C5ยทC23** Agent ๊ฒฝ๊ณ„ ๋ณดํ˜ธ (์ ˆ๋Œ€ ๊ฒฝ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ ๊ธˆ์ง€) - **C35-1** pm-auditor ์˜๋ฌด ํ˜ธ์ถœ (๋งค๋‹ˆํŽ˜์ŠคํŠธยทpm-auditor ์˜๋ฌด) - **C42-7 D ๊ทธ๋ฃน** Task ํ”„๋กฌํ”„ํŠธ ์ถ•์†Œ ํ”„๋ ˆ์ด๋ฐ ๋ฐฉ์ง€ - **P7** ์œ„์ž„ ์›์น™ @@ -3204,7 +3037,7 @@ P33์€ **๋ณ‘๋ ฌ ํ˜ธ์ถœ ์กฐ์œจ ์›์น™** (์œ„์ž„ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ๋ณ‘๋ ฌ ํŒจํ„ด). ## ๊ตํ›ˆ ๋ฐ ๋…ธํ•˜์šฐ -> **2026-04-18 ์™ธ๋ถ€ํ™” ์™„๋ฃŒ**: ๊ตํ›ˆ ์ƒ์„ธ๋Š” `memory/org/feedback_*` 20+์ข… ๋‹จ์ผ SOT + [`memory/org/MEMORY.md`](../../../memory/org/MEMORY.md) ์ธ๋ฑ์Šค๋กœ ์ด๊ด€. ๋ณธ ์„น์…˜์€ **์ธ๋ฑ์Šค ์ฐธ์กฐ 1์ค„**๋งŒ ์œ ์ง€ํ•˜์—ฌ SKILL.md ๊ณ ์ •๋น„ ์ตœ์ ํ™” (C14-4 ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ + ์›์น™ 1 ์™ธ์—ฐ "๊ณ ์ •๋น„ ๋ฌธ์„œ ๋‚ด ํ™œ์„ฑ ๊ฒฐํ•ฉ ์—†๋Š” ์„น์…˜ ์™ธ๋ถ€ํ™”" ์ ์šฉ). ๊ทผ๊ฑฐ: 2026-04-18 pm-auditorยทplan-auditor ๊ณตํ†ต Major ๊ถŒ๊ณ . **์ฃผ์˜**: feedback ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ˜๋“œ์‹œ `memory/org/` ํ•˜์œ„ ์ €์žฅ โ€” C16-1 junction ์—ฐ๊ฒฐ ๋Œ€์ƒ์ด๋ฉฐ `memory/` ๋ฃจํŠธ๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ ์ ‘๊ทผ ๋ถˆ๊ฐ€. +> **2026-04-18 ์™ธ๋ถ€ํ™” ์™„๋ฃŒ**: ๊ตํ›ˆ ์ƒ์„ธ๋Š” `memory/org/feedback_*` 20+์ข… ๋‹จ์ผ SOT + [`memory/org/MEMORY.md`](../../../memory/org/MEMORY.md) ์ธ๋ฑ์Šค๋กœ ์ด๊ด€. ๋ณธ ์„น์…˜์€ **์ธ๋ฑ์Šค ์ฐธ์กฐ 1์ค„**๋งŒ ์œ ์ง€ํ•˜์—ฌ SKILL.md ๊ณ ์ •๋น„ ์ตœ์ ํ™” (C14-4 ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ + ์›์น™ 1 ์™ธ์—ฐ "๊ณ ์ •๋น„ ๋ฌธ์„œ ๋‚ด ํ™œ์„ฑ ๊ฒฐํ•ฉ ์—†๋Š” ์„น์…˜ ์™ธ๋ถ€ํ™”" ์ ์šฉ). ๊ทผ๊ฑฐ: 2026-04-18 pm-auditorยทplan-auditor ๊ณตํ†ต Major ๊ถŒ๊ณ . **์ฃผ์˜**: feedback ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ˜๋“œ์‹œ `memory/org/` ํ•˜์œ„ ์ €์žฅ โ€” `memory/` ๋ฃจํŠธ๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ ์ ‘๊ทผ ๋ถˆ๊ฐ€. --- diff --git a/.live/README.md b/.live/README.md deleted file mode 100644 index 5a0a1fe..0000000 --- a/.live/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# `.live/` ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ฒด๊ณ„ โ€” ์‹ค๋ฌด ์‚ฌ์šฉ ์•ˆ๋‚ด - -> **์—ญํ•  ๋ถ„๋‹ด**: ๋ณธ README๋Š” **์‹ค๋ฌด ์‚ฌ์šฉ ์ฟก๋ถ**์ด๋ฉฐ, ๊ทœ์น™ยทํ—Œ๋ฒ•๊ธ‰ ์ •์˜๋Š” [`.claude/skills/๋„ˆ๋“œ๋‚˜๋น„์Šค-์ฝ”์–ด๋ฃฐ/SKILL.md`](../../.claude/skills/๋„ˆ๋“œ๋‚˜๋น„์Šค-์ฝ”์–ด๋ฃฐ/SKILL.md) **C34** ๋‹จ์ผ SOT. ๋ณธ ํŒŒ์ผ์€ ๋ ˆํฌ `.live/` ๊ฒฝ๋กœ์—์„œ junction ๊ฒฝ์œ ๋กœ ์ ‘๊ทผํ•˜๋ฉฐ, ์ค‘์•™ ์ €์žฅ์†Œ๋Š” `$HOME/.claude/nerdnavis-live/`. - -## 1. `.live/` ์šฉ๋„ - -์„ธ์…˜ ์ค‘ ๋ณ€๊ฒฝ๋œ ์„ค์ •ยท๊ทœ์น™ยท์—์ด์ „ํŠธ ์ •์˜ยท์กฐ์ง ๊ธฐ์–ต์„ **์„ธ์…˜ ๊ฐฑ์‹  ์—†์ด ์ฆ‰์‹œ ๋ฐ˜์˜**ํ•˜๊ธฐ ์œ„ํ•œ PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ฑ„๋„. ๊ฐ™์€ PC ๋‚ด ๋ชจ๋“  ์„ธ์…˜(worktree ๊ฒฝ๊ณ„ ๋ฌด๊ด€)์ด ์ž๋™ ์ฃผ์ž…๋ฐ›๋Š”๋‹ค. - -## 2. ๋”๋ฏธ ํŒŒ์ผ ํŒจํ„ด - -- ํŒŒ์ผ๋ช…: `{๋ณ€๊ฒฝ ๋Œ€์ƒ ํŒŒ์ผ๋ช… ๋˜๋Š” ์ฃผ์ œ}.md` -- ์˜ˆ: `CLAUDE.md.live`ยท`C34_memory_ํ™•์žฅ.md`ยท`pd_์ง€์‹œ_50.md` -- ๋ณธ๋ฌธ: ๋ณ€๊ฒฝ ์š”์ง€ append-only. ์ตœ๋Œ€ 8,000์ž - -## 3. ์ƒ๋ช…์ฃผ๊ธฐ - -| ์‹œ์  | ์ƒํƒœ | ์ฒ˜๋ฆฌ | -|------|------|------| -| ๋ณ€๊ฒฝ ๋ฐœ์ƒ | PM์ด `.live/{ํŒŒ์ผ๋ช…}` append | ์›๋ณธ ์ˆ˜์ •๊ณผ ๋™์‹œ ์ˆ˜ํ–‰ | -| ๊ฐ™์€ PC ๋‹ค๋ฅธ ์„ธ์…˜ | UserPromptSubmit hook ์ž๋™ ์ฃผ์ž… | ์ฆ๋ถ„๋งŒ ์ฝ๊ธฐ (ํ† ํฐ ๋น„์šฉ ์ตœ์†Œ) | -| "์„ธ์…˜ ๊ณต์œ "ยทpush ์‹œ์  | P21-2 ํŠธ๋ฆฌ๊ฑฐ | ์›๋ณธ ๋ฐ˜์˜ ํ™•์ธ ํ›„ `.live/` ๋น„์›€(README.mdยท.junction-marker ์ œ์™ธ) + commit + push | - -## 4. ์„ธ์…˜ ๊ฐ„ ๊ณต์œ  ์‹œ๋‚˜๋ฆฌ์˜ค - -### ๊ฐ™์€ PC ๋‚ด -1. ์„ธ์…˜ A์—์„œ ์›๋ณธ ์ˆ˜์ • + `.live/` append -2. ์„ธ์…˜ B ๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ โ†’ UserPromptSubmit hook `live_inject.sh` ์ฆ๋ถ„ ์ฃผ์ž… -3. ์ฆ‰์‹œ ์ธ์ง€ (git ๊ฐœ์ž… ์—†์Œ) - -### ๋‹ค๋ฅธ PC ๊ฐ„ -1. ์„ธ์…˜ A "์„ธ์…˜ ๊ณต์œ " (P21-2) โ†’ `.live/` ๋น„์›€ + commit + push -2. ์„ธ์…˜ B (๋‹ค๋ฅธ PC) "์„ธ์…˜ ๊ฐฑ์‹ " (P21) โ†’ git pull โ†’ SessionStart hook ์ž๋™ ๋ณต์› - -## 5. ์ฐธ์กฐ - -- **SKILL.md C34** โ€” PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” ์ฒด๊ณ„ (๋‹จ์ผ SOT, ํ—Œ๋ฒ•๊ธ‰) -- **SKILL.md C21** โ€” ์ž‘์—… ์™„๋ฃŒ ์ฆ‰์‹œ ๊ณต์œ ยทPM ๋Šฅ๋™ ํ™•์ธ (๋‚ด๋ถ€ ๊ณต์œ /๊ณต์œ  ์™„๋ฃŒ 2๋‹จ๊ณ„) -- **scripts/live_junction_ensure.sh** โ€” junction ์ž๋™ ๋ณด์žฅ (SessionStart + UserPromptSubmit hook) -- **scripts/live_inject.sh** โ€” UserPromptSubmit hook ์ฆ๋ถ„ ์ฃผ์ž… -- **scripts/live_session_load.sh** โ€” SessionStart ์ „๋Ÿ‰ 1ํšŒ ๋กœ๋“œ - -## ๋ณ€๊ฒฝ ์ด๋ ฅ - -- 2026-04-19: ์ „ ์„ธ์…˜ ์ดˆ๊ธฐ sentinel ์†์‹ค ์‹œ ์›๋ณธ ์†Œ์‹ค -- 2026-04-20: #48 D ์ง‘ํ–‰์œผ๋กœ ๋ณต๊ตฌ. ์ค‘์•™ ์ €์žฅ์†Œ์— ์‹ ๊ทœ ์ž‘์„ฑ (๋ชจ๋“  PC ์ž๋™ ๋™๊ธฐํ™”) diff --git a/CLAUDE.md b/CLAUDE.md index 5d41e40..1aeda07 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -33,7 +33,7 @@ PD๋‹˜ | ๊ตฌ๋ถ„ | ์„ฑ๊ฒฉ | ๋ณ€๊ฒฝ ๊ถŒํ•œ | |------|------|----------| | **ํ—Œ๋ฒ• ์ œ1์›์น™** (5ํ•ญ โ‘ ~โ‘ค) | ์กฐ์ง์˜ **์ตœ์ƒ์œ„ ์›์น™** | **PD๋‹˜๋งŒ** ์ˆ˜์ • ๊ฐ€๋Šฅ (2026-04-18 ์ „๋ฉด ์žฌ์ž‘์„ฑ) | -| **ํ•ต์‹ฌ ๊ทœ์น™** (์ฝ”์–ด ๋ฃฐ, C1~C50, C31 ํ๊ธฐ) | ์กฐ์ง์˜ **ํ—Œ๋ฒ•** | **PD๋‹˜๋งŒ** ์ˆ˜์ • ๊ฐ€๋Šฅ (์ด๊ด„PM์ด ํŒ€์žฅ๊ธ‰๊ณผ ์ƒ์˜ ํ›„ ์ œ์•ˆ โ†’ PD๋‹˜ ์Šน์ธ) | +| **ํ•ต์‹ฌ ๊ทœ์น™** (์ฝ”์–ด ๋ฃฐ, C1~C50, C31ยทC34 ํ๊ธฐ) | ์กฐ์ง์˜ **ํ—Œ๋ฒ•** | **PD๋‹˜๋งŒ** ์ˆ˜์ • ๊ฐ€๋Šฅ (์ด๊ด„PM์ด ํŒ€์žฅ๊ธ‰๊ณผ ์ƒ์˜ ํ›„ ์ œ์•ˆ โ†’ PD๋‹˜ ์Šน์ธ) | | **ํ”„๋กœ์ ํŠธ ๊ทœ์น™** (์กฐ์ง ๊ทœ์น™, P1~P33) | ์กฐ์ง์˜ **๋ฒ•๋ฅ ** | **ํŒ€์žฅ๊ธ‰ ์žฌ๋Ÿ‰ + PD๋‹˜ ์ตœ์ข… ์Šน์ธ ํ•„์ˆ˜** (2026-04-18 ๊ฐœ์ • โ€” ์‚ฌ์ „ ์Šน์ธ ์ฒด๊ณ„) | ### ํ—Œ๋ฒ• ์ œ1์›์น™ (2026-04-18 PD๋‹˜ ์ง์ ‘ ์ „๋ฉด ์žฌ์ž‘์„ฑ) @@ -59,7 +59,6 @@ PD๋‹˜ - **C28** ๋ฌธ์„œ ์ˆ˜์ • ๋ฌด์Šน์ธ ์›์น™ / **C29** ์—…๋ฌด ์ž์œจ ์ˆ˜ํ–‰ ์ฒด๊ณ„ (์กฐ์ง ์ƒ์กด๊ธ‰) - **C30** git ๋™๊ธฐํ™” ํ”„๋กœ์ ํŠธ ์ž‘์—… ์ „ ์ตœ์‹  ์ƒํƒœ ์ ๊ฒ€ - **C32** ๋Œ€ํ™”๋กœ๊ทธ ๊ธฐ๋ก ์˜๋ฌด (ํ—Œ๋ฒ•๊ธ‰, ๊ตฌ P22ยทP24 ํก์ˆ˜) / **C33** ์กฐ์ง ์—…๋ฌด ๊ณต์œ ยท๊ธฐ๋ก ์ฒด๊ณ„ ์ผ๊ด€์„ฑ ๋ณด์žฅ (ํ—Œ๋ฒ•๊ธ‰, ๊ตฌ P26ยทP27 ํก์ˆ˜) -- ๐Ÿ† **C34** PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” ์ฒด๊ณ„ โ€” Live + memory + audit (ํ—Œ๋ฒ•๊ธ‰ยท์กฐ์ง ํ•ต์‹ฌ ์ž์‚ฐ, ๊ตฌ P25 ์Šน๊ฒฉ + 2026-04-19 memory ํŽธ์ž… + 2026-04-20 audit ํŽธ์ž…, 3์ข… ์ค‘์•™ Junction + sync 4๊ณ„์ธต) - **C35** pm-auditor ์˜๋ฌด ์ฐธ์—ฌ ์ฒด๊ณ„ (2026-04-19 ์‹ ์„ค โ€” ์กฐ์ง ๋‚ด ๊ณต์œ  ์ž‘์—… 7์ข… ์‚ฌ์ „ ํ˜ธ์ถœ ์˜๋ฌด ยท **C35-9 Layer 3 ์ „๋ฉด ๊ฐœ์ • 2026-04-20 #50**: PostToolUse ๊ฒฝ๊ณ ยท30๋ถ„ ์œˆ๋„์šฐ ํ๊ธฐ โ†’ PreToolUse ์ฐจ๋‹จ + ํ•ด์ œ ์›Œํฌํ”Œ๋กœ์šฐ ๊ทผ๋ณธ ํ•ด๊ฒฐ ยท ๋งค๋‹ˆํŽ˜์ŠคํŠธ(`auditor_gate.sh`ยท`manifest_register.sh`ยท`manifest_archive.sh`) ยท BYPASS ์šฐํšŒ ๋ถˆ๊ฐ€ ยท C35-10 ์žฅ๊ธฐ ํŒจํ„ด ๋ถ„์„) - **C36** PM ์ž์œจ ํŒ๋‹จ ๋ฒ”์œ„ ์ƒํ•œ โ€” ๋ฐฉํ–ฅยท์›์น™ ์ˆ˜์ค€ ์ถ•์†Œยทํฌ์„ ๊ธˆ์ง€ (2026-04-20 ํ—Œ๋ฒ•๊ธ‰ ์‹ ์„ค, ํŒ์ • ๊ธฐ์ค€ 3์ข… ยท ์‹ค์งˆ ํ•„์š”์„ฑ 4๋ฌธํ•ญ ์ ์šฉ ๋ฒ”์œ„ ์ œํ•œ ยท C42-7 H ์ฒดํฌ๋ฆฌ์ŠคํŠธ ํŽธ์ž… ยท pm-auditor 5-E ์—ฐ๊ณ„) - **C37** ๊ทœ์น™ ๋ฌธ์„œ ๊ด€๋ฆฌ ์›์น™ (2026-04-20 ํ—Œ๋ฒ•๊ธ‰ ์‹ ์„ค โ€” ์ค‘๋ณต ๊ธˆ์ง€ยท์˜๋ฏธ ๋ณด์กดยท์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑยทํ‘œ๊ธฐ๋ฒ• ํ†ต์ผยท์ˆœ์„œ ์ •๋ ฌยท๋ณ€๊ฒฝ ์•„์นด์ด๋ธŒยท3์ค‘ ์ „ํŒŒ 8์กฐํ•ญ. ๊ทœ์น™ ์ถ”๊ฐ€ยท๋ณ€๊ฒฝ ์‹œ ๋ณธ ์›์น™ ์ค€์ˆ˜ ์˜๋ฌด) @@ -76,7 +75,7 @@ PD๋‹˜ - **C48** ๋ถˆํ•„์š”ํ•œ Agent Task ๋ฐฐ์ œ ์ตœ์šฐ์„  (2026-04-24 BT12 ํ—Œ๋ฒ•๊ธ‰ ์‹ ์„ค โ€” Task ํ˜ธ์ถœ ์ง์ „ 3์ž๋ฌธ ์˜๋ฌดยทC35ยทC39ยทC42ยทC43 ์˜๋ฌด ํ˜ธ์ถœ์€ ์ ์šฉ ์™ธยทPMยทํŒ€์žฅ ์ง์ ‘ ์ฒ˜๋ฆฌ ์šฐ์„ ) - **C49** ํŒ€์žฅ ์„ค๊ณ„ โ†’ ํŒ€์› ์ž‘์—… โ†’ ํŒ€์žฅ ๊ฒ€์ฆ ํ‘œ์ค€ ํ”„๋กœ์„ธ์Šค (2026-04-24 BT12 ํ—Œ๋ฒ•๊ธ‰ยท์ „ ์กฐ์ง ์‹ ์„ค โ€” 1 ํŒ€์žฅ(Opus) ์„ค๊ณ„ ยท 2 ํŒ€์›(Sonnet) ์ž‘์—… ยท 3 ํŒ€์žฅ(Opus) ๊ฒ€์ฆ ยท ๋‹จ์ˆœ ๋ฐ˜๋ณต ์นดํƒˆ๋กœ๊ทธ v1 ์ž ์ • ์ ˆ์ถฉ ยท PD ํ›„์† ๊ฒฐ์ • ์˜์—ญ) - **C50** ๊ณผ๋„ํ•œ ํ† ํฐ ์†Œ๋น„ ์‚ฌ์ „ PD ์Šน์ธ ์˜๋ฌด (2026-04-24 BT12 ํ—Œ๋ฒ•๊ธ‰ ์‹ ์„ค โ€” PMยทํŒ€์žฅ ์ž์ฒด ํŒ๋‹จยท์ถ”์ • ๋ถ„๋Ÿ‰ยท๋ถ„ํ• ยท๊ฐ„์†Œํ™”ยท์ƒ๋žต ์˜ต์…˜ ์‚ฌ์ „ ๋ณด๊ณ  ์˜๋ฌดยท์ˆ˜์น˜ ๊ธฐ์ค€ ๊ณ ์ • ๊ธˆ์ง€) -- ํ๊ธฐ ๊ทœ์น™: **C31** (2026-04-24 C42 ๋Œ€์ฒด) / ํ๊ธฐยทํ†ตํ•ฉยท๊ฐ•๋“ฑยท์žฌํ™œ์šฉ ๊ทœ์น™ ์ƒ์„ธ: [ํ๊ธฐ ๊ทœ์น™ ์•„์นด์ด๋ธŒ](๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md) +- ํ๊ธฐ ๊ทœ์น™: **C31** (2026-04-24 C42 ๋Œ€์ฒด) ยท **C34** (2026-04-26 worktree ์ž๋™ ์ƒ์„ฑยทJunction ์ฒด๊ณ„ ํ๊ธฐ) / ํ๊ธฐยทํ†ตํ•ฉยท๊ฐ•๋“ฑยท์žฌํ™œ์šฉ ๊ทœ์น™ ์ƒ์„ธ: [ํ๊ธฐ ๊ทœ์น™ ์•„์นด์ด๋ธŒ](๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md) ### ํ”„๋กœ์ ํŠธ ๊ทœ์น™ ์š”์•ฝ (ํ™œ์„ฑ 24๊ฐœ, ๋ฒˆํ˜ธ ๊ตฌ๋ฉ ํ—ˆ์šฉ) - **P1~P11** ๊ธฐ๋ณธ ์šด์˜ (ํ˜ธ์นญยทํ˜„ํ™ฉยท์ด์Šˆยทํ† ํฐยท์˜์‚ฌ๊ฒฐ์ •ยท์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ยท์œ„์ž„ยท๋ชจ๋ธยทํŠธ๋ž˜ํ‚นยท๋…ธํ•˜์šฐยท์ž์œจํšจ์œจํ™”) @@ -84,7 +83,7 @@ PD๋‹˜ - **P18** ์„ค๊ณ„ ๋ฌธ์„œํ™” ์˜๋ฌด / **P19** PD๋‹˜ ์ง์ ‘ ์ง€์‹œ ํŠธ๋ž˜ํ‚น ๋ฐ ๊ณต์œ  ์˜๋ฌด - **P21** ์„ธ์…˜ ๊ฐฑ์‹  ํ”„๋กœํ† ์ฝœ / **P21-2** ์„ธ์…˜ ๊ณต์œ  ํ”„๋กœํ† ์ฝœ - **P23** ๊ธฐํš ๊ฒฐ์ • ์žฌ๋Ÿ‰ ๋ฒ”์œ„ -- **P28** ์กฐ์ง ์—…๋ฌด ํ˜„ํ™ฉ ๋ณด๊ณ  ํ‘œ์ค€ ํฌ๋งท (P25๋Š” C34๋กœ ํ—Œ๋ฒ•๊ธ‰ ์Šน๊ฒฉ โ€” 2026-04-18) +- **P28** ์กฐ์ง ์—…๋ฌด ํ˜„ํ™ฉ ๋ณด๊ณ  ํ‘œ์ค€ ํฌ๋งท - **P29** ์ฝ”์–ด ์ฝ”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ ํ”„๋กœ์ ํŠธ ๊ทœ์น™ (์กฐ์ง ์ž์‚ฐ ๊ณ„์Šนยท์ฐจ๊ธฐ ํ”„๋กœ์ ํŠธ ํ™œ์šฉยทํ˜„ ํ”„๋กœ์ ํŠธ ์ธ์‚ฌ์ดํŠธ) - **P30** ์žฌ๋ฏธ ์šฐ์„  ์›์น™ (๊ธฐํšํŒ€ ์ „์šฉ) / **P31** PD๋‹˜ ๊ฒฝ์–ด ์‚ฌ์šฉ ์›์น™ - **P32** ๋‚ด๋ถ€ ๊ณ„ํš ๋งฅ๋ฝ ๋ถ„ํ• ยท์ˆœ์ฐจ ์ง„ํ–‰ ์›์น™ (2026-04-24 BT9 ์‹ ์„ค โ€” ์ „์ฒด ์„ค๊ณ„ ์œ ์ง€ + ๋งฅ๋ฝ ๋‹จ์œ„ ๋ถ„ํ•  ์ง‘ํ–‰) diff --git a/memory/org/feedback_agent_path_boundary.md b/memory/org/feedback_agent_path_boundary.md index 20d4a36..6719f6d 100644 --- a/memory/org/feedback_agent_path_boundary.md +++ b/memory/org/feedback_agent_path_boundary.md @@ -1,3 +1,5 @@ +> ๐ŸŸข **์—ญ์‚ฌ ๋ณด์กด (ํ•ด๊ฒฐ ์™„๋ฃŒ 2026-04-26)** โ€” worktree ์ž๋™ ์ƒ์„ฑยทJunction ์ฒด๊ณ„ ํ๊ธฐ๋กœ ๋ณธ ํŒจํ„ด ๊ตฌ์กฐ ์ฐจ๋‹จ. ๋ณธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์กฐ์ง ํ•™์Šต ์ž์‚ฐ์œผ๋กœ ๋ณด์กด. + --- name: Agent ํ˜ธ์ถœ ์‹œ ์ ˆ๋Œ€ ๊ฒฝ๋กœ ํ•˜๋“œ์ฝ”๋”ฉ ๊ธˆ์ง€ โ€” worktree ๊ฒฝ๊ณ„ ๋ณดํ˜ธ description: 2026-04-18 worktree ๊ฒฉ๋ฆฌ 2์ฐจ ์‚ฌ๊ฑด. Agent๊ฐ€ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ Write ํ˜ธ์ถœ ์‹œ ๋ ˆํฌ ๋ฃจํŠธ๋กœ ์‚ฐ์ถœ๋ฌผ ์œ ์ถœ. stash ์ด๊ด€ ๋ณต๊ตฌ ์ ˆ์ฐจ + ์žฌ๋ฐœ ๋ฐฉ์ง€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ diff --git a/memory/org/feedback_central_sentinel_loss.md b/memory/org/feedback_central_sentinel_loss.md index a23d923..1220669 100644 --- a/memory/org/feedback_central_sentinel_loss.md +++ b/memory/org/feedback_central_sentinel_loss.md @@ -1,3 +1,5 @@ +> ๐ŸŸข **์—ญ์‚ฌ ๋ณด์กด (ํ•ด๊ฒฐ ์™„๋ฃŒ 2026-04-26)** โ€” worktree ์ž๋™ ์ƒ์„ฑยทJunction ์ฒด๊ณ„ ํ๊ธฐ๋กœ ๋ณธ ํŒจํ„ด ๊ตฌ์กฐ ์ฐจ๋‹จ. ๋ณธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์กฐ์ง ํ•™์Šต ์ž์‚ฐ์œผ๋กœ ๋ณด์กด. + --- name: C34 ์ค‘์•™ ์ €์žฅ์†Œ sentinel(`.junction-marker`) ์†์‹ค โ€” ์ž๋™ ๋ณดํ˜ธ ๊ฐ•ํ™” description: 2026-04-19 ๋‹ค๋ฅธ ์„ธ์…˜ verify_setup์ด marker ๋ถ€์žฌ ์ •ํ™• ๊ฐ์ง€. ๋ณธ worktree ๋™์‹œ ์‹ค์ธก์œผ๋กœ confirm. git ์™ธ ์ž‘์—…์œผ๋กœ sentinel ์†์‹ค. ๋ณธ ์‚ฌ๊ฑด ์ง์ ‘ ์ฐจ๋‹จ ์•ˆ๊ฑด A(UserPromptSubmit hook ํŽธ์ž…)๋กœ ์žฌ๋ฐœ ์œˆ๋„์šฐ 1ํ”„๋กฌํ”„ํŠธ ์ด๋‚ด๋กœ ์ถ•์†Œ diff --git a/memory/org/feedback_memory_sync_overwrite.md b/memory/org/feedback_memory_sync_overwrite.md index 41d4f9b..102533f 100644 --- a/memory/org/feedback_memory_sync_overwrite.md +++ b/memory/org/feedback_memory_sync_overwrite.md @@ -1,3 +1,5 @@ +> ๐ŸŸข **์—ญ์‚ฌ ๋ณด์กด (ํ•ด๊ฒฐ ์™„๋ฃŒ 2026-04-26)** โ€” worktree ์ž๋™ ์ƒ์„ฑยทJunction ์ฒด๊ณ„ ํ๊ธฐ๋กœ ๋ณธ ํŒจํ„ด ๊ตฌ์กฐ ์ฐจ๋‹จ. ๋ณธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์กฐ์ง ํ•™์Šต ์ž์‚ฐ์œผ๋กœ ๋ณด์กด. + --- name: C34 memory sync ๋ฎ์–ด์“ฐ๊ธฐ ์‚ฌ๊ณ  โ€” post-commit hook์ด ์ตœ์‹  Edit ๋ฎ์–ด์”€ description: 2026-04-19 ๋ณธ ์„ธ์…˜ 12์ฐจ commit ์งํ›„ feedback ํŒŒ์ผ Edit ๋‚ด์šฉ์ด post-commit sync๋กœ ๋ฎ์–ด์”Œ์›Œ์ง„ ๊ตฌ์กฐ์  ๊ฒฐํ•จ. D์•ˆ ์ง‘ํ–‰์œผ๋กœ sync_memory_central_to_repo.sh์— mtime ๋น„๊ต ์ถ”๊ฐ€ํ•˜์—ฌ ๋ ˆํฌ ์ตœ์‹ ๋ณธ ๋ณดํ˜ธ. C34-16 Write ๊ฒฝ๋กœ ํ˜ผ์šฉ ๊ธˆ์ง€ ๊ทœ์•ฝ์˜ ์ •ํ™•ํ•œ ์‹ค์ฆ diff --git a/memory/org/feedback_worktree_isolation.md b/memory/org/feedback_worktree_isolation.md index ac33ec8..75ff0ae 100644 --- a/memory/org/feedback_worktree_isolation.md +++ b/memory/org/feedback_worktree_isolation.md @@ -1,3 +1,5 @@ +> ๐ŸŸข **์—ญ์‚ฌ ๋ณด์กด (ํ•ด๊ฒฐ ์™„๋ฃŒ 2026-04-26)** โ€” worktree ์ž๋™ ์ƒ์„ฑยทJunction ์ฒด๊ณ„ ํ๊ธฐ๋กœ ๋ณธ ํŒจํ„ด ๊ตฌ์กฐ ์ฐจ๋‹จ. ๋ณธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์กฐ์ง ํ•™์Šต ์ž์‚ฐ์œผ๋กœ ๋ณด์กด. + --- name: worktree ๊ฒฉ๋ฆฌ๋กœ ์ธํ•œ ์กฐ์ง ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™” ์ฒด๊ณ„ ์‹คํŒจ โ€” ์žฌ๋ฐœ ๋ฐฉ์ง€ description: 2026-04-18 PD๋‹˜ ์กฐ์ง ์ƒ์กด๊ธ‰ ์„ ์–ธ. P25โ†’C34 ์Šน๊ฒฉ + ์ค‘์•™ Junction ๊ทผ์› ํ•ด๊ฒฐ. worktree ๊ฒฝ๊ณ„๋Š” ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ฒด๊ณ„์˜ ์ˆจ๊ฒจ์ง„ ๊ฒฝ๊ณ„์ด๋ฏ€๋กœ ์ƒˆ ์ฒด๊ณ„ ์„ค๊ณ„ ์‹œ ์ตœ์šฐ์„  ๊ฒ€ํ†  ๋Œ€์ƒ diff --git a/scripts/audit_junction_ensure.sh b/scripts/audit_junction_ensure.sh deleted file mode 100644 index 3a944c9..0000000 --- a/scripts/audit_junction_ensure.sh +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/bash -# SessionStart + UserPromptSubmit hook โ€” C35 audit ๋กœ๊ทธ 3์ข… ๋””๋ ‰ํ† ๋ฆฌ ์ค‘์•™ junction ๋ณด์žฅ -# 2026-04-20 #48 G ์ง‘ํ–‰ ์‹ ์„ค โ€” PD๋‹˜ ์ง์ ‘ ์ง€์‹œ "์–ด๋–ค PC์—์„œ๋„ ์ผ๊ด€ ์ƒํƒœ ๋™์‹œํ™”" -# ๊ด€๋ จ ๊ทœ์น™: C34-17 audit ํŠน์ˆ˜ ์กฐํ•ญ ยท C36 PM ์žฌ๋Ÿ‰ ์ƒํ•œ ยท ํ—Œ๋ฒ• ์ œ1์›์น™ โ‘ค - -CENTRAL_AUDIT="$HOME/.claude/burningtimes-audit" -MARKER_NAME=".junction-marker" - -# ๋””๋ ‰ํ† ๋ฆฌ ๋งคํ•‘: ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ๋ช…(์  ์ œ์™ธ) | ์ค‘์•™ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ช… -MAPPINGS=( - "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 "burningtimes-audit central junction target (C34-17, 2026-04-20 #48 G)" > "$CENTRAL_AUDIT/$MARKER_NAME" 2>/dev/null -fi - -# 2. ๊ฐ ๋งคํ•‘ ์ฒ˜๋ฆฌ -for MAPPING in "${MAPPINGS[@]}"; do - LOCAL_NAME="${MAPPING%|*}" - CENTRAL_SUB="${MAPPING#*|}" - LOCAL_DIR="$HOME/.claude/.$LOCAL_NAME" - CENTRAL_DIR="$CENTRAL_AUDIT/$CENTRAL_SUB" - - # ์ค‘์•™ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ + sub marker ๋ณด์žฅ - mkdir -p "$CENTRAL_DIR" 2>/dev/null - if [ ! -f "$CENTRAL_DIR/$MARKER_NAME" ]; then - echo "burningtimes-audit/$CENTRAL_SUB junction target (C34-17)" > "$CENTRAL_DIR/$MARKER_NAME" 2>/dev/null - fi - - # sentinel ํŒ์ •: ๋กœ์ปฌ์—์„œ marker ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋ฉด ์ด๋ฏธ ์—ฐ๊ฒฐ ์™„๋ฃŒ - if [ -f "$LOCAL_DIR/$MARKER_NAME" ]; then - continue - fi - - # ๋กœ์ปฌ์ด ์‹ค์ฒด ๋””๋ ‰ํ† ๋ฆฌ์ด๋ฉด ๋ฐฑ์—… ํ›„ ์ด๊ด€ (C6-1 ์›๋ณธ ๋ณดํ˜ธ) - if [ -d "$LOCAL_DIR" ] && [ ! -L "$LOCAL_DIR" ]; then - BAK="$LOCAL_DIR.bak_$(date +%Y%m%d_%H%M)" - # ๊ธฐ์กด ํŒŒ์ผ ์ค‘์•™์œผ๋กœ ์ด๊ด€ (๋ฎ์–ด์“ฐ๊ธฐ ์•ˆ ํ•จ) - for f in "$LOCAL_DIR"/*.log "$LOCAL_DIR"/*.txt; do - [ -f "$f" ] || continue - BASENAME=$(basename "$f") - [ ! -f "$CENTRAL_DIR/$BASENAME" ] && cp "$f" "$CENTRAL_DIR/$BASENAME" 2>/dev/null - done - mv "$LOCAL_DIR" "$BAK" 2>/dev/null || { echo "โš ๏ธ [Audit Junction:$CENTRAL_SUB] ๋ฐฑ์—… ์‹คํŒจ โ€” Degraded" >&2; continue; } - echo "๐Ÿ“ฆ [Audit Junction:$CENTRAL_SUB] ๊ธฐ์กด ๋ฐฑ์—…: $BAK" - fi - - # Junction ์ƒ์„ฑ (3ํšŒ ์žฌ์‹œ๋„) - ATTEMPT=0 - while [ "$ATTEMPT" -lt "3" ]; do - ATTEMPT=$((ATTEMPT + 1)) - if command -v powershell >/dev/null 2>&1; then - CENTRAL_WIN=$(cygpath -w "$CENTRAL_DIR" 2>/dev/null || echo "$CENTRAL_DIR") - LOCAL_WIN=$(cygpath -w "$LOCAL_DIR" 2>/dev/null || echo "$LOCAL_DIR") - powershell -NoProfile -ExecutionPolicy Bypass -Command "New-Item -ItemType Junction -Path '$LOCAL_WIN' -Target '$CENTRAL_WIN' -Force | Out-Null" >/dev/null 2>&1 - else - ln -s "$CENTRAL_DIR" "$LOCAL_DIR" 2>/dev/null - fi - if [ -f "$LOCAL_DIR/$MARKER_NAME" ]; then - [ "$ATTEMPT" -eq 1 ] && echo "โœ… [Audit Junction:$CENTRAL_SUB] $LOCAL_DIR โ†’ $CENTRAL_DIR" - [ "$ATTEMPT" -gt 1 ] && echo "โœ… [Audit Junction:$CENTRAL_SUB] ์—ฐ๊ฒฐ ์„ฑ๊ณต (์žฌ์‹œ๋„ $ATTEMPTํšŒ)" - break - fi - sleep 1 - done - - if [ ! -f "$LOCAL_DIR/$MARKER_NAME" ]; then - mkdir -p "$LOCAL_DIR" 2>/dev/null - echo "โš ๏ธ [Audit Junction:$CENTRAL_SUB] ์ƒ์„ฑ ์‹คํŒจ โ€” Degraded ๋ชจ๋“œ (๋กœ์ปฌ ์‚ฌ์šฉ)" >&2 - fi -done - -exit 0 diff --git a/scripts/live_junction_ensure.sh b/scripts/live_junction_ensure.sh deleted file mode 100644 index 4d6639a..0000000 --- a/scripts/live_junction_ensure.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/bash -# SessionStart hook โ€” .live/ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ $HOME/.claude/burningtimes-live/๋กœ junction ๋ณด์žฅ -# worktree ๊ฒฉ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ๋ชจ๋“  ์„ธ์…˜์ด ๋™์ผํ•œ ์‹ค์ œ .live/ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ณต์œ ํ•œ๋‹ค. -# 2026-04-18 ์‹ ์„ค โ€” C34 ํ—Œ๋ฒ•๊ธ‰ Live ์ฆ๋ถ„ ๋™๊ธฐํ™” ์ฒด๊ณ„์˜ ๊ทผ์› ํ•ด๊ฒฐ ์žฅ์น˜ -# ๊ด€๋ จ ๊ทœ์น™: C34 ยท C16-1 PC ๋…๋ฆฝ ์…‹์—… ยท ํ—Œ๋ฒ• ์ œ1์›์น™ โ‘ค ์„ธ์…˜ยทPC ์—ฐ์†์„ฑ - -REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) -[ -z "$REPO_ROOT" ] && exit 0 - -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 "burningtimes-live central junction target (C34, 2026-04-18)" > "$CENTRAL_LIVE/$MARKER_NAME" 2>/dev/null -fi - -# 2. ์ด๋ฏธ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ junction ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ์กฐ๊ธฐ ์ข…๋ฃŒ (sentinel ๊ฒฝ์œ  ํŒ์ •) -if [ -f "$LOCAL_LIVE/$MARKER_NAME" ]; then - exit 0 -fi - -# 3. ๋กœ์ปฌ .live/ ๊ฐ€ ์‹ค์ฒด ๋””๋ ‰ํ† ๋ฆฌ์ธ ๊ฒฝ์šฐ โ†’ ๋ฐฑ์—… ํ›„ junction ์ „ํ™˜ (C6-1 ์›๋ณธ ๋ณดํ˜ธ) -if [ -d "$LOCAL_LIVE" ] && [ ! -L "$LOCAL_LIVE" ]; then - BAK="$LOCAL_LIVE.bak_$(date +%Y%m%d_%H%M)" - # ๊ธฐ์กด ํŒŒ์ผ ์ค‘์•™์œผ๋กœ ๋ณต์‚ฌ (๊ธฐ์กด ์ค‘์•™ ํŒŒ์ผ ๋ฎ์–ด์“ฐ๊ธฐ ์•ˆ ํ•จ) - for f in "$LOCAL_LIVE"/*.md "$LOCAL_LIVE"/*.json; do - [ -f "$f" ] || continue - BASENAME=$(basename "$f") - [ ! -f "$CENTRAL_LIVE/$BASENAME" ] && cp "$f" "$CENTRAL_LIVE/$BASENAME" 2>/dev/null - done - mv "$LOCAL_LIVE" "$BAK" 2>/dev/null || { echo "โš ๏ธ [Live Junction] ๊ธฐ์กด .live/ ๋ฐฑ์—… ์‹คํŒจ โ€” Degraded ๋ชจ๋“œ" >&2; exit 0; } - echo "๐Ÿ“ฆ [Live Junction] ๊ธฐ์กด .live/ ๋ฐฑ์—…: $BAK" -fi - -# 4. Junction ์ƒ์„ฑ (OS๋ณ„ยท3ํšŒ ์žฌ์‹œ๋„) -ATTEMPT=0 -MAX_ATTEMPTS=3 -while [ "$ATTEMPT" -lt "$MAX_ATTEMPTS" ]; do - ATTEMPT=$((ATTEMPT + 1)) - - if command -v powershell >/dev/null 2>&1; then - # Windows โ€” PowerShell New-Item Junction (git-bash์˜ cmd //c mklink ๋Œ€๋น„ ์‹ ๋ขฐ์„ฑ ์šฐ์œ„, 2026-04-18 ์‹ค์ฆ) - CENTRAL_WIN=$(cygpath -w "$CENTRAL_LIVE" 2>/dev/null || echo "$CENTRAL_LIVE") - LOCAL_WIN=$(cygpath -w "$LOCAL_LIVE" 2>/dev/null || echo "$LOCAL_LIVE") - powershell -NoProfile -ExecutionPolicy Bypass -Command "New-Item -ItemType Junction -Path '$LOCAL_WIN' -Target '$CENTRAL_WIN' -Force | Out-Null" >/dev/null 2>&1 - else - # Unix โ€” symlink - ln -s "$CENTRAL_LIVE" "$LOCAL_LIVE" 2>/dev/null - fi - - if [ -f "$LOCAL_LIVE/$MARKER_NAME" ]; then - [ "$ATTEMPT" -eq 1 ] && echo "โœ… [Live Junction] $LOCAL_LIVE โ†’ $CENTRAL_LIVE" - [ "$ATTEMPT" -gt 1 ] && echo "โœ… [Live Junction] ์—ฐ๊ฒฐ ์„ฑ๊ณต (์žฌ์‹œ๋„ $ATTEMPTํšŒ)" - exit 0 - fi - - sleep 1 -done - -# 5. ์‹คํŒจ โ€” Degraded ๋ชจ๋“œ (์ž‘์—… ์ฐจ๋‹จ ์•ˆ ํ•จ, C34 ๊ธฐ๋ณธ ์›์น™) -mkdir -p "$LOCAL_LIVE" 2>/dev/null -echo "โš ๏ธ [Live Junction] ์ƒ์„ฑ ์‹คํŒจ โ€” Degraded ๋ชจ๋“œ (๋กœ์ปฌ .live/ ์‚ฌ์šฉ). worktree ๊ฐ„ ๋™๊ธฐํ™” ๋ถˆ๊ฐ€" >&2 -echo "โš ๏ธ [Live Junction] ํ•ด๊ฒฐ: ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ setup ์Šคํฌ๋ฆฝํŠธ ์žฌ์‹คํ–‰ ๋˜๋Š” ์ˆ˜๋™ mklink/ln -s ํ•„์š”" >&2 - -exit 0 diff --git a/scripts/memory_junction_ensure.sh b/scripts/memory_junction_ensure.sh deleted file mode 100644 index fc58d16..0000000 --- a/scripts/memory_junction_ensure.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash -# 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/ ํŽธ์ž…) -# ๊ด€๋ จ ๊ทœ์น™: C34 ยท C16-1 ยท C34-16 memory junction ํŠน์ˆ˜ ์กฐํ•ญ ยท ํ—Œ๋ฒ• ์ œ1์›์น™ โ‘ค - -REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) -[ -z "$REPO_ROOT" ] && exit 0 - -CENTRAL_MEM="$HOME/.claude/burningtimes-memory" -MARKER_NAME=".memory-junction-marker" -CLAUDE_PROJECTS="$HOME/.claude/projects" -LOCK_FILE="$HOME/.claude/.burningtimes_memory_junction.lock" - -# 0. Lock (race condition ๋ฐฉ์ง€, ๋™์‹œ ์„ธ์…˜ ์‹œ์ž‘ ์‹œ junction ์ค‘๋ณต ์‹œ๋„ ์ฐจ๋‹จ) -ATTEMPT=0 -while [ -f "$LOCK_FILE" ] && [ "$ATTEMPT" -lt 5 ]; do - sleep 1 - ATTEMPT=$((ATTEMPT + 1)) -done -echo "$$" > "$LOCK_FILE" 2>/dev/null -trap 'rm -f "$LOCK_FILE"' EXIT - -# 1. ์ค‘์•™ ์ €์žฅ์†Œ + marker ๋ณด์žฅ -mkdir -p "$CENTRAL_MEM" 2>/dev/null -if [ ! -f "$CENTRAL_MEM/$MARKER_NAME" ]; then - 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--BurningTimesAi* ํŒจํ„ด ํ•ด์‹œ ํด๋” ์ˆœํšŒ (๋ฃจํŠธยทworktree ๋ชจ๋‘ ํฌ๊ด„) -RECONNECTED=0 -CREATED=0 -SKIPPED=0 -FAILED=0 - -for hash_dir in "$CLAUDE_PROJECTS"/E--BurningTimesAi*; do - [ -d "$hash_dir" ] || continue - mem_link="$hash_dir/memory" - - # ์ด๋ฏธ ์ค‘์•™์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ (sentinel ๊ฒฝ์œ  ํŒ์ •) - if [ -f "$mem_link/$MARKER_NAME" ]; then - SKIPPED=$((SKIPPED + 1)) - continue - fi - - # ๊ธฐ์กด link ์ œ๊ฑฐ (junction/symlink/์‹ค์ฒด ๋””๋ ‰ํ† ๋ฆฌ ๋ชจ๋‘) โ€” Windows junction์€ bash `-L`์— ์žกํžˆ์ง€ ์•Š์œผ๋ฏ€๋กœ PowerShell reparse point ์ฒดํฌ ์„ ํ–‰ - if [ -e "$mem_link" ] || [ -L "$mem_link" ]; then - IS_REPARSE="False" - if command -v powershell >/dev/null 2>&1; then - LINK_WIN=$(cygpath -w "$mem_link" 2>/dev/null || echo "$mem_link") - IS_REPARSE=$(powershell -NoProfile -ExecutionPolicy Bypass -Command "try { ((Get-Item -Force '$LINK_WIN' -ErrorAction Stop).Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0 } catch { \$false }" 2>/dev/null | tr -d '\r\n ') - fi - - if [ "$IS_REPARSE" = "True" ] || [ -L "$mem_link" ]; then - # junction/symlink ์ œ๊ฑฐ (ํƒ€๊นƒ ๋””๋ ‰ํ† ๋ฆฌ ๋ณดํ˜ธ) - if command -v powershell >/dev/null 2>&1; then - powershell -NoProfile -ExecutionPolicy Bypass -Command "Remove-Item '$LINK_WIN' -Force -Recurse -ErrorAction SilentlyContinue" >/dev/null 2>&1 - else - rm -f "$mem_link" 2>/dev/null - fi - elif [ -d "$mem_link" ]; then - # ์‹ค์ฒด ๋””๋ ‰ํ† ๋ฆฌ โ€” ๋‚ด์šฉ ์ค‘์•™ ํก์ˆ˜ ํ›„ ๋ฐฑ์—… (C6-1 ์›๋ณธ ๋ณดํ˜ธ) - for f in "$mem_link"/*.md "$mem_link"/*.json; do - [ -f "$f" ] || continue - basename=$(basename "$f") - [ ! -f "$CENTRAL_MEM/$basename" ] && cp "$f" "$CENTRAL_MEM/$basename" 2>/dev/null - done - mv "$mem_link" "$mem_link.bak_$(date +%Y%m%d_%H%M)" 2>/dev/null || continue - fi - fi - - # ์ค‘์•™์œผ๋กœ Junction ์ƒ์„ฑ - if command -v powershell >/dev/null 2>&1; then - # Windows โ€” PowerShell New-Item Junction (cmd //c mklink ๋Œ€๋น„ ์‹ ๋ขฐ์„ฑ ์šฐ์œ„, 2026-04-18 ์‹ค์ฆ) - CENTRAL_WIN=$(cygpath -w "$CENTRAL_MEM" 2>/dev/null || echo "$CENTRAL_MEM") - LINK_WIN=$(cygpath -w "$mem_link" 2>/dev/null || echo "$mem_link") - powershell -NoProfile -ExecutionPolicy Bypass -Command "New-Item -ItemType Junction -Path '$LINK_WIN' -Target '$CENTRAL_WIN' -Force | Out-Null" >/dev/null 2>&1 - else - ln -s "$CENTRAL_MEM" "$mem_link" 2>/dev/null - fi - - if [ -f "$mem_link/$MARKER_NAME" ]; then - CREATED=$((CREATED + 1)) - else - FAILED=$((FAILED + 1)) - fi -done - -# 4. ๊ฒฐ๊ณผ ๋ณด๊ณ  (๋ณ€๊ฒฝ ์žˆ์„ ๋•Œ๋งŒ) -if [ "$CREATED" -gt 0 ] || [ "$FAILED" -gt 0 ]; then - echo "๐Ÿง  [Memory Junction] ์‹ ๊ทœ ์—ฐ๊ฒฐ $CREATED ยท ๊ธฐ์กด ์œ ์ง€ $SKIPPED ยท ์‹คํŒจ $FAILED (์ค‘์•™: $CENTRAL_MEM)" -fi - -if [ "$FAILED" -gt 0 ]; then - echo "โš ๏ธ [Memory Junction] $FAILED ๊ฐœ ํ•ด์‹œ ํด๋” ์—ฐ๊ฒฐ ์‹คํŒจ โ€” Degraded ๋ชจ๋“œ. ๊ด€๋ฆฌ์ž ๊ถŒํ•œ setup ์žฌ์‹คํ–‰ ๊ถŒ์žฅ" >&2 -fi - -exit 0 diff --git a/scripts/rollback_memory_central.sh b/scripts/rollback_memory_central.sh deleted file mode 100644 index d5d9e64..0000000 --- a/scripts/rollback_memory_central.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -# ๋กค๋ฐฑ ์Šคํฌ๋ฆฝํŠธ โ€” memory ์ค‘์•™ํ™” ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ท€ -# Junction ํ•ด์ œ + ์ค‘์•™ ๋ฐฑ์—… + ๋ ˆํฌ memory/org/ ์›๋ณธ ๋ณต๊ตฌ -# 2026-04-19 ์‹ ์„ค โ€” C34 ์ง‘ํ–‰ ์‹คํŒจ ์‹œ ์‚ฌ์šฉ (C6-1 ๋กค๋ฐฑ ๊ฒฝ๋กœ ํ™•๋ณด ์˜๋ฌด) - -CENTRAL_MEM="$HOME/.claude/burningtimes-memory" -CLAUDE_PROJECTS="$HOME/.claude/projects" - -echo "=== memory ์ค‘์•™ํ™” ๋กค๋ฐฑ ์‹œ์ž‘ ===" - -# 1. ์ค‘์•™ ์ €์žฅ์†Œ ๋ฐฑ์—… (์†Œ์‹ค ๋ฐฉ์ง€) -if [ -d "$CENTRAL_MEM" ]; then - BAK="$CENTRAL_MEM.rollback-$(date +%Y%m%d%H%M%S)" - mv "$CENTRAL_MEM" "$BAK" - echo "๐Ÿ“ฆ ์ค‘์•™ ์ €์žฅ์†Œ ๋ฐฑ์—…: $BAK" -fi - -# 2. ๋ชจ๋“  worktree ํ•ด์‹œ ํด๋”์˜ user memory junction ์ œ๊ฑฐ -REMOVED=0 -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 - - if command -v powershell >/dev/null 2>&1; then - powershell -NoProfile -ExecutionPolicy Bypass -Command "Remove-Item '$mem_link' -Force -ErrorAction SilentlyContinue" >/dev/null 2>&1 - else - rm -f "$mem_link" 2>/dev/null - fi - - REMOVED=$((REMOVED + 1)) -done - -echo "๐Ÿ”— user memory junction $REMOVED ๊ฐœ ์ œ๊ฑฐ" - -echo "" -echo "โš ๏ธ ๋‹ค์Œ setup ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹œ ํ˜„ ์ฒด๊ณ„ ์žฌ๊ตฌ์ถ•๋จ." -echo " ์™„์ „ ๋กค๋ฐฑ์ด ํ•„์š”ํ•˜๋ฉด scripts/memory_junction_ensure.sh ์™€ setup_windows.ps1 3.6 ์„น์…˜์„ ๋ณต๊ตฌ ์ „ ์ƒํƒœ๋กœ revert ํ›„ ์žฌ์‹คํ–‰." -echo "=== ๋กค๋ฐฑ ์™„๋ฃŒ ===" diff --git a/scripts/sync_memory.sh b/scripts/sync_memory.sh deleted file mode 100644 index c9bb224..0000000 --- a/scripts/sync_memory.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# ์ˆ˜๋™ ๋น„์ƒ sync โ€” ์–‘๋ฐฉํ–ฅ memory ๋™๊ธฐํ™” ๊ฐ•์ œ ์‹คํ–‰ -# ์‚ฌ์šฉ: bash scripts/sync_memory.sh {both|repo-to-central|central-to-repo} -# 2026-04-19 ์‹ ์„ค โ€” C34-3 ๋™๊ธฐํ™” 4๊ณ„์ธต (์ˆ˜๋™ ๋น„์ƒ) - -DIR_ARG="${1:-both}" - -SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" - -case "$DIR_ARG" in - repo-to-central) - echo "โ–ถ๏ธ ๋ ˆํฌ โ†’ ์ค‘์•™ (๋‹จ๋ฐฉํ–ฅ)" - bash "$SCRIPT_DIR/sync_memory_repo_to_central.sh" - ;; - central-to-repo) - echo "โ–ถ๏ธ ์ค‘์•™ โ†’ ๋ ˆํฌ (๋‹จ๋ฐฉํ–ฅ)" - bash "$SCRIPT_DIR/sync_memory_central_to_repo.sh" - ;; - both) - echo "โ–ถ๏ธ ์–‘๋ฐฉํ–ฅ sync (๋ ˆํฌ โ†’ ์ค‘์•™ โ†’ ๋ ˆํฌ)" - bash "$SCRIPT_DIR/sync_memory_repo_to_central.sh" - bash "$SCRIPT_DIR/sync_memory_central_to_repo.sh" - ;; - *) - echo "์‚ฌ์šฉ: bash scripts/sync_memory.sh {both|repo-to-central|central-to-repo}" >&2 - exit 1 - ;; -esac - -echo "โœ… sync ์™„๋ฃŒ. git status๋กœ ๋ฐ˜์˜ ํ™•์ธ." diff --git a/scripts/sync_memory_central_to_repo.sh b/scripts/sync_memory_central_to_repo.sh deleted file mode 100644 index 12dbae3..0000000 --- a/scripts/sync_memory_central_to_repo.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash -# post-commit hook โ€” ์ค‘์•™ $HOME/.claude/burningtimes-memory/ โ†’ ๋ ˆํฌ memory/org/ ๋‹จ๋ฐฉํ–ฅ sync -# Claude user memory์— Write๋œ ๋‚ด์šฉ์„ commit ํฌํ•จ์‹œํ‚ค๊ธฐ ์œ„ํ•ด commit ์งํ›„ ๋ ˆํฌ๋กœ ๋ฐ˜์˜. -# 2026-04-19 ์‹ ์„ค โ€” C34-3 ๋™๊ธฐํ™” 4๊ณ„์ธต (commit ์ตœ์‹ ๋ณธ ๋ณด์žฅ) - -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/burningtimes-memory" -MARKER_NAME=".memory-junction-marker" -LOCK_FILE="$HOME/.claude/.burningtimes_memory_sync.lock" - -[ ! -d "$CENTRAL_MEM" ] && exit 0 -[ ! -d "$REPO_MEM" ] && exit 0 - -# Lock (5์ดˆ ํƒ€์ž„์•„์›ƒ) -ATTEMPT=0 -while [ -f "$LOCK_FILE" ] && [ "$ATTEMPT" -lt 5 ]; do - sleep 1 - ATTEMPT=$((ATTEMPT + 1)) -done -echo "$$" > "$LOCK_FILE" 2>/dev/null -trap 'rm -f "$LOCK_FILE"' EXIT - -# ์ค‘์•™ โ†’ ๋ ˆํฌ ๋ณต์‚ฌ (2026-04-19 D์•ˆ ๊ฐœ์„ : mtime ๋น„๊ต๋กœ ๋ ˆํฌ ์ตœ์‹ ๋ณธ ๋ณดํ˜ธ) -# ์‚ญ์ œ ๋™๊ธฐํ™” ์•ˆ ํ•จ (ํŒŒ์ผ ์†Œ์‹ค ๋ฆฌ์Šคํฌ ํšŒํ”ผ, ์•ˆ์ „๋ง) -# ๋ ˆํฌ๊ฐ€ ์ค‘์•™๋ณด๋‹ค ์ตœ์‹ ์ด๋ฉด ๋ฎ์–ด์“ฐ๊ธฐ ์Šคํ‚ต โ€” C34-16 Write ๊ฒฝ๋กœ ํ˜ผ์šฉ ์‹œ -# post-commit sync๊ฐ€ ์ตœ์‹  Edit์„ ๋ฎ์–ด์“ฐ๋˜ ๊ตฌ์กฐ์  ๊ฒฐํ•จ ์ฐจ๋‹จ -# ๊ทผ๊ฑฐ: memory/org/feedback_memory_sync_overwrite.md (2026-04-19 ์‹ค์ฆ) -CHANGED=0 -SKIPPED_PROTECT=0 -for f in "$CENTRAL_MEM"/*.md "$CENTRAL_MEM"/*.json; do - [ -f "$f" ] || continue - basename=$(basename "$f") - [ "$basename" = "$MARKER_NAME" ] && continue - dst="$REPO_MEM/$basename" - - # ๋‚ด์šฉ ๋™์ผ ์‹œ ์Šคํ‚ต (์ •์ƒ ์ƒํƒœ) - if [ -f "$dst" ] && diff -q "$f" "$dst" >/dev/null 2>&1; then - continue - fi - - # ๋ ˆํฌ๊ฐ€ ์ค‘์•™๋ณด๋‹ค ์ตœ์‹  โ†’ ๋ฎ์–ด์“ฐ๊ธฐ ์ฐจ๋‹จ (D์•ˆ ๋ณดํ˜ธ) - if [ -f "$dst" ] && [ "$dst" -nt "$f" ]; then - echo "โš ๏ธ [Memory Sync] ๋ ˆํฌ๋ณธ์ด ์ค‘์•™๋ณด๋‹ค ์ตœ์‹  โ€” ์ค‘์•™โ†’๋ ˆํฌ ๋ฎ์–ด์“ฐ๊ธฐ ์Šคํ‚ต: $basename" >&2 - echo " C34-16 Write ๊ฒฝ๋กœ ํ˜ผ์šฉ ์‹œ๊ทธ๋„ ๊ฐ€๋Šฅ์„ฑ โ€” ์ˆ˜๋™ sync_memory_repo_to_central.sh๋กœ ์ค‘์•™ ์ตœ์‹ ํ™” ๊ถŒ์žฅ" >&2 - SKIPPED_PROTECT=$((SKIPPED_PROTECT + 1)) - continue - fi - - # ์ค‘์•™์ด ๋” ์ตœ์‹  ๋˜๋Š” ๋ ˆํฌ ๋ถ€์žฌ โ†’ ์ •์ƒ ๋ณต์‚ฌ - cp "$f" "$dst" 2>/dev/null - CHANGED=$((CHANGED + 1)) -done - -if [ "$CHANGED" -gt 0 ]; then - echo "๐Ÿง  [Memory Sync] ์ค‘์•™ โ†’ ๋ ˆํฌ $CHANGED ๊ฑด ๋ฐ˜์˜ (๋‹ค์Œ commit์— ํฌํ•จ ์˜ˆ์ •์ด๋ฉด ์žฌcommit ํ•„์š”)" -fi - -if [ "$SKIPPED_PROTECT" -gt 0 ]; then - echo "โš ๏ธ [Memory Sync] ๋ ˆํฌ ์ตœ์‹ ๋ณธ ๋ณดํ˜ธ๋กœ $SKIPPED_PROTECT ๊ฑด ๋ฎ์–ด์“ฐ๊ธฐ ๋ฐฉ์ง€ (C34 memory sync ๊ตฌ์กฐ ๊ฒฐํ•จ ์žฌ๋ฐœ ์ฐจ๋‹จ)" >&2 -fi - -exit 0 diff --git a/scripts/sync_memory_repo_to_central.sh b/scripts/sync_memory_repo_to_central.sh deleted file mode 100644 index d6c23e7..0000000 --- a/scripts/sync_memory_repo_to_central.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# SessionStart hook โ€” ๋ ˆํฌ memory/org/ โ†’ ์ค‘์•™ $HOME/.claude/burningtimes-memory/ ๋‹จ๋ฐฉํ–ฅ sync -# git pull ์งํ›„ ์›๊ฒฉ ๋ฐ˜์˜๋ถ„์„ ์ค‘์•™์— ์ตœ์‹ ํ™”. unflushed ์ค‘์•™ ๋ณ€๊ฒฝ์€ ๋Œ€ํ”ผ ๋ฐฑ์—…. -# 2026-04-19 ์‹ ์„ค โ€” C34-3 ๋™๊ธฐํ™” 4๊ณ„์ธต (๋ ˆํฌ SOT ์›์น™) - -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/burningtimes-memory" -MARKER_NAME=".memory-junction-marker" -LOCK_FILE="$HOME/.claude/.burningtimes_memory_sync.lock" - -[ ! -d "$REPO_MEM" ] && exit 0 - -# 0. Lock (race condition ๋ฐฉ์ง€, 5์ดˆ ํƒ€์ž„์•„์›ƒ) -ATTEMPT=0 -while [ -f "$LOCK_FILE" ] && [ "$ATTEMPT" -lt 5 ]; do - sleep 1 - ATTEMPT=$((ATTEMPT + 1)) -done -echo "$$" > "$LOCK_FILE" 2>/dev/null -trap 'rm -f "$LOCK_FILE"' EXIT - -# 1. ์ค‘์•™ ์ €์žฅ์†Œ ๋ณด์žฅ -mkdir -p "$CENTRAL_MEM" 2>/dev/null -[ ! -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 -for cf in "$CENTRAL_MEM"/*.md "$CENTRAL_MEM"/*.json; do - [ -f "$cf" ] || continue - basename=$(basename "$cf") - [ "$basename" = "$MARKER_NAME" ] && continue - rf="$REPO_MEM/$basename" - - if [ -f "$rf" ]; then - # ์–‘์ชฝ ์กด์žฌ: mtime ๋น„๊ต (์ค‘์•™์ด ๋” ์ƒˆ๋กœ์šฐ๋ฉด unflushed ํ›„๋ณด) - if [ "$cf" -nt "$rf" ]; then - # ๋‚ด์šฉ ๋น„๊ต๋กœ ํ™•์ • (mtime๋งŒ ๋‹ค๋ฅด๊ณ  ๋‚ด์šฉ ๊ฐ™์œผ๋ฉด touch) - if ! diff -q "$cf" "$rf" >/dev/null 2>&1; then - CONFLICT_COUNT=$((CONFLICT_COUNT + 1)) - fi - fi - else - # ์ค‘์•™์—๋งŒ ์žˆ๊ณ  ๋ ˆํฌ์— ์—†์Œ โ€” unflushed ์‹ ๊ทœ ํŒŒ์ผ - CONFLICT_COUNT=$((CONFLICT_COUNT + 1)) - fi -done - -# 3. ์ถฉ๋Œ ์žˆ์œผ๋ฉด ์ค‘์•™ ๋Œ€ํ”ผ ํ›„ ์ง„ํ–‰ -if [ "$CONFLICT_COUNT" -gt 0 ]; then - STAMP=$(date +%Y%m%d%H%M%S) - CONFLICT_DIR="$CENTRAL_MEM.conflict-$STAMP" - cp -r "$CENTRAL_MEM" "$CONFLICT_DIR" 2>/dev/null - echo "โš ๏ธ [Memory Sync] unflushed ์ค‘์•™ ๋ณ€๊ฒฝ $CONFLICT_COUNT ๊ฑด ๊ฐ์ง€ โ€” ๋Œ€ํ”ผ: $CONFLICT_DIR" >&2 -fi - -# 4. ๋ ˆํฌ โ†’ ์ค‘์•™ ๋ณต์‚ฌ (markerยทconflict ์ œ์™ธ, ์‚ญ์ œ ๋™๊ธฐํ™” ์•ˆ ํ•จ โ€” ์•ˆ์ „๋ง) -for f in "$REPO_MEM"/*.md "$REPO_MEM"/*.json; do - [ -f "$f" ] || continue - basename=$(basename "$f") - cp "$f" "$CENTRAL_MEM/$basename" 2>/dev/null -done - -exit 0 diff --git a/๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md b/๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md index 9cb2663..6957cae 100644 --- a/๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md +++ b/๊ณต์œ /์กฐ์ง๊ณต์ง€/ํ๊ธฐ_๊ทœ์น™_์•„์นด์ด๋ธŒ.md @@ -585,3 +585,16 @@ P17 ๋ฒˆํ˜ธ ์žฌ์‚ฌ์šฉ ๊ธˆ์ง€ (C14-5 ํ™•์žฅ "๋ฒˆํ˜ธ ๊ตฌ๋ฉ ํ—ˆ์šฉ" ยท C37-2 "๋ฒˆ ### ์—ฐ๊ด€ ์ž์‚ฐ - **P29-3** EerieVillage ํ™œ์šฉ ๋ฐฉ์นจ (์ฐจ๊ธฐ ํ”„๋กœ์ ํŠธ ๊ณ ์œ  ๊ทœ์•ฝ ์‹ ๊ทœ ๊ฐœ๋ฐœ ์›์น™) - **C22-5** ์šฉ์–ด ์ผ๊ด€ (ํ๊ธฐ ๊ทœ์น™ ๋ฌธ๊ตฌ ํ˜ผ์šฉ ๊ธˆ์ง€) + +--- + +## C34. PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” ์ฒด๊ณ„ โ€” Live + memory + audit (2026-04-26 ํ๊ธฐ) + +| ํ•„๋“œ | ๋‚ด์šฉ | +|------|------| +| **๊ทœ์น™ ๋ฒˆํ˜ธยท๋ช…** | C34. PC ๋กœ์ปฌ ์‹ค์‹œ๊ฐ„ ๊ณต์œ  ์ค‘์•™ํ™” ์ฒด๊ณ„ โ€” Live + memory + audit | +| **์‹ ์„ค์ผ** | 2026-04-18 (๊ตฌ P25์—์„œ ํ—Œ๋ฒ•๊ธ‰ ์Šน๊ฒฉ) ยท 2026-04-19 memory ํŽธ์ž… ยท 2026-04-20 #48 G audit ํŽธ์ž… | +| **ํ๊ธฐ์ผ** | 2026-04-26 | +| **์ƒํƒœ** | ํ๊ธฐ | +| **๋Œ€์ฒด ๊ด€๊ณ„** | `.live/` ๋ ˆํฌ ๋‚ด ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ(.gitignore) + UserPromptSubmit hook `scripts/live_inject.sh` ์ฆ๋ถ„ ์ฃผ์ž… (๋‹จ์ˆœ ์œ ์ง€). `memory/org/` ๋ ˆํฌ git ์ถ”์  SOT ์ง์ ‘ ์ €์žฅ. audit ๋กœ๊ทธ ์‚ฌ์šฉ์ž ํ™ˆ ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ(`$HOME/.claude/.burningtimes_*`) | +| **๊ฒฝ์œ„ยท๊ทผ๊ฑฐ** | ๋ณธ ์ฒด๊ณ„๋Š” Claude Code MSIX ๋ฐ์Šคํฌํ†ฑ ์•ฑ์ด ๋งค ์„ธ์…˜๋งˆ๋‹ค `.claude/worktrees//` ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” worktree ๊ฒฉ๋ฆฌ ์‚ฌ๊ฑด์„ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋จ (์ค‘์•™ Junction + sync 4๊ณ„์ธต). ๊ทธ๋Ÿฌ๋‚˜ 2026-04-26 PD ์ง์ ‘ ๊ฒฐ์ •์œผ๋กœ **CLI ์ „ํ™˜ ์ฑ„ํƒ** โ€” PD๊ฐ€ PowerShell์—์„œ `claude` CLI๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด `--no-worktree` ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ worktree ์ž์ฒด ๋ฏธ์ƒ์„ฑ. worktree ๊ฒฉ๋ฆฌ ์‚ฌ๊ฑด ์›์ฒœ ์ฐจ๋‹จ โ†’ C34 ์ค‘์•™ Junctionยทsync 4๊ณ„์ธต ๋ชจ๋‘ ๋ถˆ์š”. PD ๊ฒฐ์ • ์•ˆ๊ฑด (๋‚˜) ์ „๋ฉด ํ๊ธฐ. ๋ถ€์‚ฐ ํšจ๊ณผ: ๋งค ์„ธ์…˜ยท๋งค ์‘๋‹ต ํ† ํฐ ์•ฝ 3,200~3,600 ์ ˆ๊ฐ (์›” 6.4M~7.2M). ๋ฐฑ์—…: `.claude/backups/central-2026-04-26/` (680 ํŒŒ์ผ 2.7MB). ํ๊ธฐ ์˜ํ–ฅ ์กฐํ•ญ: C34-1~C34-18 ๋ณธ๋ฌธ + C16-1ยทC42-7 B/EยทC43ยทP33 ๋“ฑ ๋‹ค๋ฅธ ์กฐํ•ญ์˜ C34 ์ฐธ์กฐ ์ผ๊ด„ ์ •์ •. ์‹ ์„ค 1์กฐ โ€” `.live/` ์ผ๋ฐ˜ ๋””๋ ‰ํ† ๋ฆฌ + `live_inject.sh` ๋‹จ์ˆœ ์œ ์ง€๋กœ PC ๋‚ด ๋‹ค์ค‘ PowerShell ์„ธ์…˜ ์ฆ‰์‹œ ๊ณต์œ  ์ž์‚ฐ์€ ๋ณด์กด |