From f0f9ab9b5f971431e0a9cba906a8bdedab648a67 Mon Sep 17 00:00:00 2001 From: swrring Date: Mon, 20 Apr 2026 15:16:47 +0900 Subject: [PATCH] =?UTF-8?q?refactor(#52-B-B):=20C16=C2=B7C17=C2=B7C18?= =?UTF-8?q?=C2=B7C19=C2=B7C20=C2=B7C21=20=EB=B2=88=ED=98=B8=20=EC=88=9C=20?= =?UTF-8?q?=EC=9E=AC=EB=B0=B0=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit C20·C21·C19·C18·C17·C16 역순 6블록을 C16·C17·C18·C19·C20·C21 정순으로 재배치. Before: C20(423) → C21(508) → C19(564) → C18(609) → C17(642) → C16(681) After: C16(423) → C17(477) → C18(516) → C19(549) → C20(594) → C21(679) 각 블록: C16 54줄·C17 39줄·C18 33줄·C19 45줄·C20 85줄·C21 56줄 내용 수정 없음. 줄 수 2129 유지 (diff 0, 의미 보존 검증 통과). C37-2·C37-3·C37-5 준수. #52-B 단계 B/3 완료. Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/skills/너드나비스-코어룰/SKILL.md | 342 +++++++++++----------- 1 file changed, 171 insertions(+), 171 deletions(-) diff --git a/.claude/skills/너드나비스-코어룰/SKILL.md b/.claude/skills/너드나비스-코어룰/SKILL.md index e84f3f3..011a02c 100644 --- a/.claude/skills/너드나비스-코어룰/SKILL.md +++ b/.claude/skills/너드나비스-코어룰/SKILL.md @@ -420,6 +420,177 @@ CLAUDE.md 신규 항목, 매 턴 로드 대상 확대, `MEMORY.md` 인덱스 확 - PM 과도 보수 해석 3회차 재발 방지 실증 (`memory/org/feedback_pm_over_conservative_interpretation.md`) +## C16. PC 독립 셋업·세션 시작 표준 (2026-04-15 PD님 직접 지시) + +> **어느 PC에서 세션을 시작하더라도 동일한 셋업 상태가 보장**되어야 하며, **PD님이 매 세션 md 파일 수정·커밋·push에서 개별 승인을 반복하지 않도록** 조직의 기본 뼈대를 정식화한다. 본 규칙은 PC 환경 이동·재기동·신규 PC 합류 시 일관성을 강제하는 헌법급 조항이다. 관련 실증: `memory/org/feedback_permissions_portability.md`, `memory/org/feedback_setup_verification.md`, `memory/org/feedback_session_start_protocol.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님 직접 지시 신설). +- `.claude/settings.local.json`은 `.gitignore` 대상이므로 **PC 이동 시 소실된다 — 조직 공용 승인은 절대 local 파일에 두지 않는다**. + +### C16-2. 세션 시작 표준 절차 (단일 세션 — 레포 루트에서 시작) +단일 세션 구조이므로 **PM이 레포 루트(`NerdNavisAi/`)에서 단일 세션 1개만 실행**한다. 개발팀·기획팀은 Agent 도구(`Task`)로 병렬 호출하여 처리한다. 부서별 별도 세션 진입 불필요. + +| 환경 | 진입 방법 | +|------|----------| +| **Claude Code Windows Store(MSIX) 앱** | 앱 실행 후 **입력창 위 "폴더 칩" UI**를 클릭해 레포 루트(`NerdNavisAi/`) 선택 | +| **CLI 버전** | `cd "D:/NerdNavis/NerdNavisAi" && claude` | + +**단일 세션 구조 (2026-04-16 전환)**: PM 세션 하나에서 개발팀·기획팀 에이전트를 Agent 도구로 병렬 호출. 부서별 별도 폴더 진입·워크트리 세션은 폐기됨. + +### C16-3. 승인 반복 회피 구조 (md 수정·커밋·push 무중단) +- **루트 `.claude/settings.json`** 의 `permissions.allow`로 `Edit·Write·MultiEdit·TodoWrite·Read·Glob·Grep·git 명령·안전 Bash` 등을 **포괄 승인**한다. +- `permissions.deny`로 위험 명령을 명시 차단한다: `rm`, `sudo`, `dd`, `mkfs`, `shutdown`, `reboot`, 시스템 디렉토리 쓰기 등. +- 단일 세션 구조이므로 **루트 1곳만 관리**하면 된다 (C16-1과 짝). +- PD님이 md 수정·커밋·push 등 **루틴 작업에서 개별 승인을 받지 않는 상태**가 정상이며, 받는다면 루트 settings.json SOT 미동기화를 의심한다. +- `rm`이 차단되어 파일 삭제가 필요하면 **PowerShell `Remove-Item`을 사용**한다 (deny 우회가 아니라 안전 대체 경로). + +### C16-4. 세션 시작 전 의무 (C10-1 강화판과 짝) +세션 시작 직후 작업 착수 **이전에** 다음을 수행한다: +1. `git pull` 1회로 최신 동기화 +2. setup 스크립트(`setup/setup_windows.ps1` 또는 `setup/setup_macos.sh`) 미실행 PC면 1회 실행 +3. C10-1 4단계 이행 (CLAUDE.md "최근 규칙 변경" 재읽기 → 공통 업무 규칙 본문 재읽기 → HOLD/특수 파일 스캔 → 조직공지 전수 확인) + +### C16-5. 검증 의무 +신규 PC 합류·setup 스크립트 변경·승인 정책 변경 시 `scripts/verify_setup.ps1`로 **3축 검증**(파일 존재·OS 동작·실행 결과)을 수행한다. `feedback_setup_verification.md`에 따라 **파일 존재만 확인하고 통과 처리하지 않는다**. 표준 절차는 `공유/조직공지/신PC_셋팅_체크리스트_v2.md`. + +### C16-6. 다른 핵심 규칙과의 관계 +- **C10-1**과 짝: 세션 시작 전 의무(C16-4)와 작업 착수 전 의무(C10-1)는 연속된 절차로 함께 이행. +- **C14**와 정합: 루트 단일 settings.json SOT로 중복·재선언 토큰 제거 (C14-1·C14-4). +- **C15**와 정합: 세션 시작 절차에 일정·기한 표현을 사용하지 않으며, 본 규칙도 "PD님 지시 시 즉시 적용" 원칙(C15-2 허용 표현)으로 운용. +- **C24**와 정합: 단일 세션 운용(C24)으로 "부서 폴더 별도 진입" 개념이 소멸됨. + +### 위반 시 +- C16-1·C16-3 위반(승인 반복 발생) → 즉시 루트 settings.json SOT 동기화 + 부족분 PR. 발견 즉시 PD님 보고. +- C16-4 위반(사전 의무 누락) → C10·C13 위반에 준하여 처리. + +--- + +# 📘 프로젝트 규칙 (조직 규칙) + +> **조직의 법률.** 프로젝트 담당자(팀장급) 재량으로 수정·추가·삭제 가능. +> 변경 시 총괄PM 검증·승인 필수. 핵심 규칙에 위반되어서는 안 된다. + +## C17. 최신 세션 관리 기준 (2026-04-18 신규 — 구 C17 폐기 자리 재활용) + +> **구 C17 아카이브**: 구 "세션 이동 복사 명령어 동봉 의무"(2026-04-16 폐기)는 [폐기 규칙 아카이브 #2-C17](../../../공유/조직공지/폐기_규칙_아카이브.md#2-c17--세션-이동-지시-시-복사-가능-명령어-동봉-의무)에서 상세 확인. 본 C17은 최신 세션 관리 표준을 통합 인덱스화한 신설 조항이다. + +### C17-1. 세션 구조 (단일 세션 + Agent 병렬 호출) +- PM 세션 1개 (레포 루트 `NerdNavisAi/`에서 시작) +- 개발팀·기획팀은 `Task` Agent 도구로 병렬 호출하여 처리 +- 부서별 별도 세션·워크트리 금지 (C24 단일 세션 운용 원칙 준수) + +### C17-2. 세션 시작 표준 절차 (세션 재시작·새 PC 이관 공통) +1. **git 최신 동기화** (`git fetch origin && git merge origin/main --no-edit`) +2. **setup 스크립트** 실행 (신규 PC 최초 1회: `setup/setup_windows.ps1` 또는 `setup/setup_macos.sh`) +3. **SessionStart hook 자동 실행** (`core.hooksPath scripts/git-hooks` 자동 설정·inbox 스캔·변경 요약·PM 맥락 복원·Live 세션 로드) +4. **CLAUDE.md 자동 로드** → `@.claude/skills/너드나비스-코어룰/SKILL.md` 자동 주입 +5. **최근 2일 대화로그 Read** (P21-5B) — PM 맥락 복원 필수 + +### C17-3. 세션 전환 시나리오 4종 복원 보장 (C33-3 연계) +| 시나리오 | 복원 메커니즘 | +|---------|-------------| +| A. 당일 세션 재시작 | SessionStart hook (change_digest·inbox_scan·pm_context_restore·live_session_load) | +| B. 새 PC clone 후 세션 | git pull + setup 스크립트 + 위 hook | +| C. 1주일+ 공백 후 재개 | P21 5-B 확장 — 최근 7일 대화로그 Read + `verify_log_paths.sh` | +| D. PM 교체 (다른 Claude 인스턴스) | 위 A·B·C 모두 + PD 지시 로그 활성 테이블 전수 스캔 + 최근 30일 커밋 스캔 | + +### C17-4. 세션 내부 공유 vs 세션 간 공유 + +상세 정의 및 전이 시점: **C21-① 내부 공유 상태 · C21-② 공유 완료 상태** 참조 (C21이 단일 SOT). C18(main push 완료 판정)과 결합. + +### C17-5. 연관 규칙·자산 +- **C16** PC 독립 셋업·세션 시작 표준 (본문 상세) +- **C18** 조직 공유 완료 판정 (main push 완료) +- **C21** 작업 완료 즉시 공유 (내부/완료 2단계 정의) +- **C24** 단일 세션 운용 원칙 +- **C30** git 동기화 프로젝트 작업 전 최신 상태 점검 의무 +- **C33** 조직 업무 공유·기록 체계 일관성 보장 (세션 전환 시나리오) +- **P21·P21-2** 세션 갱신·공유 프로토콜 +- 🏆 **P25** Live 증분 동기화 체계 (조직 핵심 자산) +- **C32** 대화로그 기록 의무 (세션 활동 영구 기록) + +## C18. 조직 공유 완료 판정 기준 — main push 완료 (2026-04-16 개정) + +> **단일 세션 전환(2026-04-16)으로 "대상 세션 도달" 개념이 소멸되었다. 조직 공용 산출물은 `main` 브랜치에 push(병합) 완료된 시점을 "조직 공유 완료"로 판정한다.** 본 규칙은 C5(정직성)의 실질적 외연이며, push/merge의 각 단계를 혼동하여 "공유 완료"로 오판하지 않도록 단계를 명확히 한다. + +### C18-1. 단계별 상태 정의 (혼동 금지) + +| 상태 | 의미 | "조직 공유 완료"? | +|------|------|-----------------| +| **로컬 커밋** | 작업자 로컬에만 존재 | ❌ | +| **원격 push (작업 브랜치)** | 원격 저장소의 작업 브랜치에 반영 | ❌ (main 미반영) | +| **main 병합 + push** | `main` 브랜치에 merge·push 완료 | ✅ **완료** | + +### C18-2. 판정 절차 (세션 리더 의무) +"조직 공유 완료"를 선언하기 전, 다음을 확인: +1. `git ls-remote origin refs/heads/main` 으로 원격 main HEAD 확인 +2. 해당 HEAD에 조직 공용 산출물이 포함되었는지 (커밋 내용 추적) +3. 불확실 시 **"push 완료 (main 병합 미확인)"** 으로 단계별 상태 보고 (완료 단언 금지) + +### C18-3. 허용 표현 / 금지 표현 +- ✅ 허용: "main push 완료 — 조직 공유 완료", "원격 push 완료 (main 병합 필요)" +- ❌ 금지: "동기화 완료" (main 미반영 상태), "조직 공유 완료" (main 미병합 상태) + +### C18-4. 연관 규칙 +- **C5**: 상태를 혼동한 완료 선언은 정직성 위반 +- **C16**: PC 독립 동일 셋업 보장의 전제 = 단일 세션이 항상 main 기반으로 동기화 +- **C24**: 단일 세션 구조 전환으로 "대상 세션 도달" 판정 불필요 (역사 기록) + +### C18-5. 위반 시 +- "동기화 완료" 오보 발견 시 즉시 자진 정정 + 실제 상태 재보고 +- 반복 위반 시 역할 재검토 + +--- + +## C19. 승인 범위 엄격 해석 원칙 (2026-04-15 PD님 직접 승인) + +> **PD님의 승인 표현은 명시적으로 언급된 안건의 범위 내로 한정하여 해석한다.** 추정·확대·암묵 승인은 금지. 정보 요청·권장·토의를 승인으로 간주할 수 없으며, 본인의 권장안을 **자기 승인처럼 취급**하는 것도 금지한다. 본 규칙은 C1(지시=승인)의 **남용을 방지**하는 운용 원칙이며, 2026-04-15 총괄PM 절차 위반 사건(승인 범위 확대 해석으로 PD님이 결정을 강요당한 불쾌 경험)을 실증 근거로 한다. + +### C19-1. 승인 표현 해석 규칙 +- **자구 그대로** 범위를 추출한다. "X는 승인" = X만 승인. 나머지는 **별건** +- 같은 응답에 복수 안건이 병기된 경우, **안건별로 승인 여부 구분 표기** 후 실행 (예: "안건 A — 승인, 안건 B — 정보 요청, 안건 C — 미언급") +- 본인의 권장안을 **자기 승인으로 취급 금지**. 권장은 PD님께 드리는 정보이지 실행 트리거가 아니다 +- 승인 표현이 애매하면 "승인 범위가 X까지인지, Y까지 포함인지" **명시 확인 후 진행** (C1과 충돌 아님. C1의 오적용 방지) + +### C19-2. 되돌리기 어려운 액션의 보수적 해석 의무 +다음 액션은 **승인 경계 해석을 최대 보수적으로** 한다. 애매하면 **실행 금지·확인 선행**: +- `main` 브랜치 병합·force push·tag release +- 외부 공개 게시 (PR 머지·공지 발송·외부 전송) +- 영구 삭제·시스템 이관·권한 변경 +- 프로덕션 빌드·배포·서버 상태 변경 (C8과 결합) + +### C19-3. 실행 직전 체크리스트 (세션 리더 의무) +되돌리기 어려운 액션·PD님 결정 요청 실행 전 다음을 모두 통과해야 한다: +1. [ ] PD님이 이 액션을 **명시 승인**했는가? (추정·확대 해석 금지) +2. [ ] 복수 안건 응답 시, 이 액션이 **승인된 안건의 범위 내**에 있는가? +3. [ ] 승인 표현이 애매하면 **확인 요청 후 진행**했는가? +4. [ ] **이 영역을 담당하는 자동화(hook·스크립트·스케줄)가 설치되어 있지 않은가?** 있다면 (a) 자동화 정상 동작 여부를 먼저 검증하고 (b) 정상이라면 상태 편차를 "문제"로 프레이밍하지 말 것. 자동화가 처리할 정상 편차에 대한 **수동 개입·결정 요청은 C19-3 위반**이다 (2026-04-15 본 세션 실증, `feedback_automation_trust.md`) + +하나라도 불통과면 **실행 금지·결정 요청 금지**. 확인 요청 응답 수령 후 재평가. + +### C19-4. 연관 규칙·메모리 +- **C1** (지시=승인): C1은 "지시 범위 내에서 승인 내포"이며, 본 C19는 그 범위의 **정확한 외연**을 규정 +- **C5** (정직성): 승인 범위를 확대 해석한 뒤 "PD님이 승인하셨으니"로 포장하는 것은 C5 위반 +- **C8** (프로덕션 보호): 되돌리기 어려운 프로덕션 영향 액션과 결합 +- **C18** (조직 공유 완료 판정): main 병합을 C19 대상 액션으로 식별 +- **`memory/org/feedback_approval_scope_expansion.md`**: 본 규칙 신설의 실증 근거 (PD님 불쾌 경험 영구 보존) +- **`memory/org/feedback_requirement_framing.md`**: 4축(목적·용도·범위·비목적)에 **승인 범위**를 5번째 축으로 결합 적용 + +### C19-5. 위반 시 +- 승인 없는 실행 발견 즉시 **자진 보고** + PD님 처분 대기 (롤백 / 사후 승인 / 다른 지시) +- 반복 위반 시 **세션 리더 역할 재검토** 자진 상정 (OI-5 프레이밍 → 승인 범위 확대 패턴과 결합 시 가중) +- PD님이 "결정을 강요당하는 불쾌 경험"을 하시는 것은 조직 운영 신뢰 기반 훼손 — 재발 방지 의무는 **헌법급** + +### C19-6. 예외 +- 세션 내부의 반복 작업(같은 지시 수행 중 필요한 하위 호출)은 지시 수령 시점의 승인에 포함 +- 명백히 실수로 잘못 실행된 경로를 **되돌리는 복구 행위**는 C19 대상 아님 (단, 복구 방법이 되돌리기 어려운 액션이면 다시 C19-2 적용) + +--- + ## C20. 팀장급 커밋·푸시 재량 원칙 (2026-04-15 PD님 직접 지시) > **일상적 커밋·푸시(자기 작업 브랜치 push, main 병합 포함)는 각 팀 팀장급의 재량으로 판단·진행한다.** PD님이 매 사안마다 커밋·푸시 승인을 내리는 비효율을 제거하고, 팀장급의 책임과 자율을 강화한다. 단, **우려 이슈가 있는 경우에 한해 PD님 사전 확인 후 진행**한다. 본 규칙은 C19-2(보수적 해석 의무)와 C8(프로덕션 보호)의 운용 보완이며, 두 규칙이 정의하는 위험 액션은 본 규칙으로 완화되지 않는다. @@ -561,177 +732,6 @@ CLAUDE.md 신규 항목, 매 턴 로드 대상 확대, `MEMORY.md` 인덱스 확 --- -## C19. 승인 범위 엄격 해석 원칙 (2026-04-15 PD님 직접 승인) - -> **PD님의 승인 표현은 명시적으로 언급된 안건의 범위 내로 한정하여 해석한다.** 추정·확대·암묵 승인은 금지. 정보 요청·권장·토의를 승인으로 간주할 수 없으며, 본인의 권장안을 **자기 승인처럼 취급**하는 것도 금지한다. 본 규칙은 C1(지시=승인)의 **남용을 방지**하는 운용 원칙이며, 2026-04-15 총괄PM 절차 위반 사건(승인 범위 확대 해석으로 PD님이 결정을 강요당한 불쾌 경험)을 실증 근거로 한다. - -### C19-1. 승인 표현 해석 규칙 -- **자구 그대로** 범위를 추출한다. "X는 승인" = X만 승인. 나머지는 **별건** -- 같은 응답에 복수 안건이 병기된 경우, **안건별로 승인 여부 구분 표기** 후 실행 (예: "안건 A — 승인, 안건 B — 정보 요청, 안건 C — 미언급") -- 본인의 권장안을 **자기 승인으로 취급 금지**. 권장은 PD님께 드리는 정보이지 실행 트리거가 아니다 -- 승인 표현이 애매하면 "승인 범위가 X까지인지, Y까지 포함인지" **명시 확인 후 진행** (C1과 충돌 아님. C1의 오적용 방지) - -### C19-2. 되돌리기 어려운 액션의 보수적 해석 의무 -다음 액션은 **승인 경계 해석을 최대 보수적으로** 한다. 애매하면 **실행 금지·확인 선행**: -- `main` 브랜치 병합·force push·tag release -- 외부 공개 게시 (PR 머지·공지 발송·외부 전송) -- 영구 삭제·시스템 이관·권한 변경 -- 프로덕션 빌드·배포·서버 상태 변경 (C8과 결합) - -### C19-3. 실행 직전 체크리스트 (세션 리더 의무) -되돌리기 어려운 액션·PD님 결정 요청 실행 전 다음을 모두 통과해야 한다: -1. [ ] PD님이 이 액션을 **명시 승인**했는가? (추정·확대 해석 금지) -2. [ ] 복수 안건 응답 시, 이 액션이 **승인된 안건의 범위 내**에 있는가? -3. [ ] 승인 표현이 애매하면 **확인 요청 후 진행**했는가? -4. [ ] **이 영역을 담당하는 자동화(hook·스크립트·스케줄)가 설치되어 있지 않은가?** 있다면 (a) 자동화 정상 동작 여부를 먼저 검증하고 (b) 정상이라면 상태 편차를 "문제"로 프레이밍하지 말 것. 자동화가 처리할 정상 편차에 대한 **수동 개입·결정 요청은 C19-3 위반**이다 (2026-04-15 본 세션 실증, `feedback_automation_trust.md`) - -하나라도 불통과면 **실행 금지·결정 요청 금지**. 확인 요청 응답 수령 후 재평가. - -### C19-4. 연관 규칙·메모리 -- **C1** (지시=승인): C1은 "지시 범위 내에서 승인 내포"이며, 본 C19는 그 범위의 **정확한 외연**을 규정 -- **C5** (정직성): 승인 범위를 확대 해석한 뒤 "PD님이 승인하셨으니"로 포장하는 것은 C5 위반 -- **C8** (프로덕션 보호): 되돌리기 어려운 프로덕션 영향 액션과 결합 -- **C18** (조직 공유 완료 판정): main 병합을 C19 대상 액션으로 식별 -- **`memory/org/feedback_approval_scope_expansion.md`**: 본 규칙 신설의 실증 근거 (PD님 불쾌 경험 영구 보존) -- **`memory/org/feedback_requirement_framing.md`**: 4축(목적·용도·범위·비목적)에 **승인 범위**를 5번째 축으로 결합 적용 - -### C19-5. 위반 시 -- 승인 없는 실행 발견 즉시 **자진 보고** + PD님 처분 대기 (롤백 / 사후 승인 / 다른 지시) -- 반복 위반 시 **세션 리더 역할 재검토** 자진 상정 (OI-5 프레이밍 → 승인 범위 확대 패턴과 결합 시 가중) -- PD님이 "결정을 강요당하는 불쾌 경험"을 하시는 것은 조직 운영 신뢰 기반 훼손 — 재발 방지 의무는 **헌법급** - -### C19-6. 예외 -- 세션 내부의 반복 작업(같은 지시 수행 중 필요한 하위 호출)은 지시 수령 시점의 승인에 포함 -- 명백히 실수로 잘못 실행된 경로를 **되돌리는 복구 행위**는 C19 대상 아님 (단, 복구 방법이 되돌리기 어려운 액션이면 다시 C19-2 적용) - ---- - -## C18. 조직 공유 완료 판정 기준 — main push 완료 (2026-04-16 개정) - -> **단일 세션 전환(2026-04-16)으로 "대상 세션 도달" 개념이 소멸되었다. 조직 공용 산출물은 `main` 브랜치에 push(병합) 완료된 시점을 "조직 공유 완료"로 판정한다.** 본 규칙은 C5(정직성)의 실질적 외연이며, push/merge의 각 단계를 혼동하여 "공유 완료"로 오판하지 않도록 단계를 명확히 한다. - -### C18-1. 단계별 상태 정의 (혼동 금지) - -| 상태 | 의미 | "조직 공유 완료"? | -|------|------|-----------------| -| **로컬 커밋** | 작업자 로컬에만 존재 | ❌ | -| **원격 push (작업 브랜치)** | 원격 저장소의 작업 브랜치에 반영 | ❌ (main 미반영) | -| **main 병합 + push** | `main` 브랜치에 merge·push 완료 | ✅ **완료** | - -### C18-2. 판정 절차 (세션 리더 의무) -"조직 공유 완료"를 선언하기 전, 다음을 확인: -1. `git ls-remote origin refs/heads/main` 으로 원격 main HEAD 확인 -2. 해당 HEAD에 조직 공용 산출물이 포함되었는지 (커밋 내용 추적) -3. 불확실 시 **"push 완료 (main 병합 미확인)"** 으로 단계별 상태 보고 (완료 단언 금지) - -### C18-3. 허용 표현 / 금지 표현 -- ✅ 허용: "main push 완료 — 조직 공유 완료", "원격 push 완료 (main 병합 필요)" -- ❌ 금지: "동기화 완료" (main 미반영 상태), "조직 공유 완료" (main 미병합 상태) - -### C18-4. 연관 규칙 -- **C5**: 상태를 혼동한 완료 선언은 정직성 위반 -- **C16**: PC 독립 동일 셋업 보장의 전제 = 단일 세션이 항상 main 기반으로 동기화 -- **C24**: 단일 세션 구조 전환으로 "대상 세션 도달" 판정 불필요 (역사 기록) - -### C18-5. 위반 시 -- "동기화 완료" 오보 발견 시 즉시 자진 정정 + 실제 상태 재보고 -- 반복 위반 시 역할 재검토 - ---- - -## C17. 최신 세션 관리 기준 (2026-04-18 신규 — 구 C17 폐기 자리 재활용) - -> **구 C17 아카이브**: 구 "세션 이동 복사 명령어 동봉 의무"(2026-04-16 폐기)는 [폐기 규칙 아카이브 #2-C17](../../../공유/조직공지/폐기_규칙_아카이브.md#2-c17--세션-이동-지시-시-복사-가능-명령어-동봉-의무)에서 상세 확인. 본 C17은 최신 세션 관리 표준을 통합 인덱스화한 신설 조항이다. - -### C17-1. 세션 구조 (단일 세션 + Agent 병렬 호출) -- PM 세션 1개 (레포 루트 `NerdNavisAi/`에서 시작) -- 개발팀·기획팀은 `Task` Agent 도구로 병렬 호출하여 처리 -- 부서별 별도 세션·워크트리 금지 (C24 단일 세션 운용 원칙 준수) - -### C17-2. 세션 시작 표준 절차 (세션 재시작·새 PC 이관 공통) -1. **git 최신 동기화** (`git fetch origin && git merge origin/main --no-edit`) -2. **setup 스크립트** 실행 (신규 PC 최초 1회: `setup/setup_windows.ps1` 또는 `setup/setup_macos.sh`) -3. **SessionStart hook 자동 실행** (`core.hooksPath scripts/git-hooks` 자동 설정·inbox 스캔·변경 요약·PM 맥락 복원·Live 세션 로드) -4. **CLAUDE.md 자동 로드** → `@.claude/skills/너드나비스-코어룰/SKILL.md` 자동 주입 -5. **최근 2일 대화로그 Read** (P21-5B) — PM 맥락 복원 필수 - -### C17-3. 세션 전환 시나리오 4종 복원 보장 (C33-3 연계) -| 시나리오 | 복원 메커니즘 | -|---------|-------------| -| A. 당일 세션 재시작 | SessionStart hook (change_digest·inbox_scan·pm_context_restore·live_session_load) | -| B. 새 PC clone 후 세션 | git pull + setup 스크립트 + 위 hook | -| C. 1주일+ 공백 후 재개 | P21 5-B 확장 — 최근 7일 대화로그 Read + `verify_log_paths.sh` | -| D. PM 교체 (다른 Claude 인스턴스) | 위 A·B·C 모두 + PD 지시 로그 활성 테이블 전수 스캔 + 최근 30일 커밋 스캔 | - -### C17-4. 세션 내부 공유 vs 세션 간 공유 - -상세 정의 및 전이 시점: **C21-① 내부 공유 상태 · C21-② 공유 완료 상태** 참조 (C21이 단일 SOT). C18(main push 완료 판정)과 결합. - -### C17-5. 연관 규칙·자산 -- **C16** PC 독립 셋업·세션 시작 표준 (본문 상세) -- **C18** 조직 공유 완료 판정 (main push 완료) -- **C21** 작업 완료 즉시 공유 (내부/완료 2단계 정의) -- **C24** 단일 세션 운용 원칙 -- **C30** git 동기화 프로젝트 작업 전 최신 상태 점검 의무 -- **C33** 조직 업무 공유·기록 체계 일관성 보장 (세션 전환 시나리오) -- **P21·P21-2** 세션 갱신·공유 프로토콜 -- 🏆 **P25** Live 증분 동기화 체계 (조직 핵심 자산) -- **C32** 대화로그 기록 의무 (세션 활동 영구 기록) - -## C16. PC 독립 셋업·세션 시작 표준 (2026-04-15 PD님 직접 지시) - -> **어느 PC에서 세션을 시작하더라도 동일한 셋업 상태가 보장**되어야 하며, **PD님이 매 세션 md 파일 수정·커밋·push에서 개별 승인을 반복하지 않도록** 조직의 기본 뼈대를 정식화한다. 본 규칙은 PC 환경 이동·재기동·신규 PC 합류 시 일관성을 강제하는 헌법급 조항이다. 관련 실증: `memory/org/feedback_permissions_portability.md`, `memory/org/feedback_setup_verification.md`, `memory/org/feedback_session_start_protocol.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님 직접 지시 신설). -- `.claude/settings.local.json`은 `.gitignore` 대상이므로 **PC 이동 시 소실된다 — 조직 공용 승인은 절대 local 파일에 두지 않는다**. - -### C16-2. 세션 시작 표준 절차 (단일 세션 — 레포 루트에서 시작) -단일 세션 구조이므로 **PM이 레포 루트(`NerdNavisAi/`)에서 단일 세션 1개만 실행**한다. 개발팀·기획팀은 Agent 도구(`Task`)로 병렬 호출하여 처리한다. 부서별 별도 세션 진입 불필요. - -| 환경 | 진입 방법 | -|------|----------| -| **Claude Code Windows Store(MSIX) 앱** | 앱 실행 후 **입력창 위 "폴더 칩" UI**를 클릭해 레포 루트(`NerdNavisAi/`) 선택 | -| **CLI 버전** | `cd "D:/NerdNavis/NerdNavisAi" && claude` | - -**단일 세션 구조 (2026-04-16 전환)**: PM 세션 하나에서 개발팀·기획팀 에이전트를 Agent 도구로 병렬 호출. 부서별 별도 폴더 진입·워크트리 세션은 폐기됨. - -### C16-3. 승인 반복 회피 구조 (md 수정·커밋·push 무중단) -- **루트 `.claude/settings.json`** 의 `permissions.allow`로 `Edit·Write·MultiEdit·TodoWrite·Read·Glob·Grep·git 명령·안전 Bash` 등을 **포괄 승인**한다. -- `permissions.deny`로 위험 명령을 명시 차단한다: `rm`, `sudo`, `dd`, `mkfs`, `shutdown`, `reboot`, 시스템 디렉토리 쓰기 등. -- 단일 세션 구조이므로 **루트 1곳만 관리**하면 된다 (C16-1과 짝). -- PD님이 md 수정·커밋·push 등 **루틴 작업에서 개별 승인을 받지 않는 상태**가 정상이며, 받는다면 루트 settings.json SOT 미동기화를 의심한다. -- `rm`이 차단되어 파일 삭제가 필요하면 **PowerShell `Remove-Item`을 사용**한다 (deny 우회가 아니라 안전 대체 경로). - -### C16-4. 세션 시작 전 의무 (C10-1 강화판과 짝) -세션 시작 직후 작업 착수 **이전에** 다음을 수행한다: -1. `git pull` 1회로 최신 동기화 -2. setup 스크립트(`setup/setup_windows.ps1` 또는 `setup/setup_macos.sh`) 미실행 PC면 1회 실행 -3. C10-1 4단계 이행 (CLAUDE.md "최근 규칙 변경" 재읽기 → 공통 업무 규칙 본문 재읽기 → HOLD/특수 파일 스캔 → 조직공지 전수 확인) - -### C16-5. 검증 의무 -신규 PC 합류·setup 스크립트 변경·승인 정책 변경 시 `scripts/verify_setup.ps1`로 **3축 검증**(파일 존재·OS 동작·실행 결과)을 수행한다. `feedback_setup_verification.md`에 따라 **파일 존재만 확인하고 통과 처리하지 않는다**. 표준 절차는 `공유/조직공지/신PC_셋팅_체크리스트_v2.md`. - -### C16-6. 다른 핵심 규칙과의 관계 -- **C10-1**과 짝: 세션 시작 전 의무(C16-4)와 작업 착수 전 의무(C10-1)는 연속된 절차로 함께 이행. -- **C14**와 정합: 루트 단일 settings.json SOT로 중복·재선언 토큰 제거 (C14-1·C14-4). -- **C15**와 정합: 세션 시작 절차에 일정·기한 표현을 사용하지 않으며, 본 규칙도 "PD님 지시 시 즉시 적용" 원칙(C15-2 허용 표현)으로 운용. -- **C24**와 정합: 단일 세션 운용(C24)으로 "부서 폴더 별도 진입" 개념이 소멸됨. - -### 위반 시 -- C16-1·C16-3 위반(승인 반복 발생) → 즉시 루트 settings.json SOT 동기화 + 부족분 PR. 발견 즉시 PD님 보고. -- C16-4 위반(사전 의무 누락) → C10·C13 위반에 준하여 처리. - ---- - -# 📘 프로젝트 규칙 (조직 규칙) - -> **조직의 법률.** 프로젝트 담당자(팀장급) 재량으로 수정·추가·삭제 가능. -> 변경 시 총괄PM 검증·승인 필수. 핵심 규칙에 위반되어서는 안 된다. - ## P1. 호칭 - 모든 에이전트는 사용자를 **"PD님"**으로 지칭한다