fix(rules): C6-1 백업 포맷 위반 8곳 보정 + 안건 프레이밍 혼선 교훈

PD님 2차 지적 2건 수용:

1. "C34 확장 집행 과정에 C6-1 지키지 않았어?" — 8곳 스크립트에서
   백업 파일명 `.bak-YYYYMMDDHHMMSS` 사용 → C6-1 표준
   `.bak_YYYYMMDD_HHMM` 위반. 2026-04-18 Live junction 최초 도입
   포맷이 이후 모든 파생 스크립트로 연쇄 오염. 관성적 답습 패턴.

2. "보정 2와 결정 1이 같은 안건 아니야?" — PM이 동일 안건을
   "PM 재량"·"PD 결정" 카테고리에 중복 제시 + 이전 턴 옵션 A
   결정 사안을 "결정 2"로 재질문. 카테고리 경계 자기검증 부재.

보정 1 (PM 재량):
- memory_junction_ensure.sh·live_junction_ensure.sh 2곳
- setup_windows.ps1 3곳 (Section 3·3.5·3.6)
- setup_macos.sh 3곳 (Section 3·3.5·3.6)
- 포맷 `.bak_$(date +%Y%m%d_%H%M)` (bash) /
  `.bak_$(Get-Date -Format yyyyMMdd_HHmm)` (PowerShell)

보정 3 (PM 재량):
- memory/org/feedback_backup_filename_format_violation.md 신설
- memory/org/feedback_agenda_framing_duplication.md 신설
- MEMORY.md 인덱스 2건 append

보정 4 (PM 재량):
- pm-auditor 5-B (백업 포맷 준수 감지) + 5-C (안건 중복·재질문)
- dev-auditor 6-B (백업 포맷 준수 감지)

결정 1 (PD님): 기존 `.bak-*` 디렉토리 rename 생략.
데이터 멀쩡·복구 가능.

PD 지시 로그 #41 완료 아카이브 등록 (P19 강화·즉답 접두).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-04-19 02:01:49 +09:00
parent 7d6de0a7ed
commit 9f0877d4d0
11 changed files with 213 additions and 8 deletions

View File

@ -48,6 +48,14 @@ pm-auditor(PM 전담 감사)만으로는 개발팀 내부 세부 검증 불가.
- Unity·Framework 버전 변경 공지 - Unity·Framework 버전 변경 공지
- 기획팀 요구사항 ↔ 개발팀 구현 간 차이 추적 - 기획팀 요구사항 ↔ 개발팀 구현 간 차이 추적
### 6-B. 백업 파일명 C6-1 표준 준수 감지 (2026-04-19 신설)
개발팀 작성·수정 스크립트에서 백업 로직 발견 시:
- [ ] 백업 파일명이 C6-1 표준 `{원본명}.bak_{YYYYMMDD_HHMM}.{확장자}` 준수 여부
- [ ] 구분자 `_`·분 단위 시각. `.bak-*`·Unix timestamp `%s` 금지
- [ ] `grep -n "\.bak" scripts/ setup/`으로 전수 감사 주기 수행
- 근거: `memory/org/feedback_backup_filename_format_violation.md`
### 6-A. C34/C16-1 동급 생존성 이슈 축소 보고 감지 (2026-04-19 신설 — PD님 직접 지시) ### 6-A. C34/C16-1 동급 생존성 이슈 축소 보고 감지 (2026-04-19 신설 — PD님 직접 지시)
개발팀 기술 결정·커밋·hook·스크립트에서 C34 직결 이슈 발견 시 축소 보고 패턴 감지: 개발팀 기술 결정·커밋·hook·스크립트에서 C34 직결 이슈 발견 시 축소 보고 패턴 감지:

View File

@ -65,6 +65,22 @@ PM이 **별도 지시 없이 자율 처리해야 할 사안**이 방치·누락
- 동일 실수가 N회 반복되었는가? → 조직공지 발행 검토 - 동일 실수가 N회 반복되었는가? → 조직공지 발행 검토
- 기존 규칙이 본 패턴을 포착하지 못하는가? → 규칙 신설·개정 안건화 - 기존 규칙이 본 패턴을 포착하지 못하는가? → 규칙 신설·개정 안건화
### 5-B. 백업 파일명 C6-1 표준 준수 감지 (2026-04-19 신설)
신규·수정 스크립트에서 백업 로직 발견 시 파일명 포맷 준수 점검:
- [ ] 백업 파일명이 C6-1 표준 `{원본명}.bak_{YYYYMMDD_HHMM}.{확장자}`를 따르는가?
- [ ] 구분자 `_` 사용·분 단위 시각 준수 여부 (`.bak-*`·Unix timestamp 금지)
- [ ] 기존 스크립트 포맷을 답습한 경우 해당 기존 스크립트가 표준 위반이 아닌지 교차 확인
- 근거: `memory/org/feedback_backup_filename_format_violation.md` (2026-04-18 최초 위반이 8곳 연쇄 오염한 실증)
### 5-C. 안건 프레이밍 중복·이미 결정된 사안 재질문 감지 (2026-04-19 신설 — PD님 직접 지시)
PM 보고 응답 발신 직전 안건 리스트 점검:
- [ ] "PM 재량 집행"과 "PD 결정 필요" 카테고리에 **동일 안건이 중복** 등장하지 않는가?
- [ ] PD님이 **이전 턴·이전 세션에 이미 결정한 사안**을 재질문하지 않는가? (PD 지시 로그·대화로그 교차 스캔)
- [ ] 각 안건이 **상호 배타적**인 카테고리에 속하는가?
- 근거: `memory/org/feedback_agenda_framing_duplication.md` (2026-04-19 PM 보정 2 = 결정 1 중복 사건)
### 5-A. C34/C16-1 동급 생존성 이슈 축소 보고 감지 (2026-04-19 신설 — PD님 직접 지시) ### 5-A. C34/C16-1 동급 생존성 이슈 축소 보고 감지 (2026-04-19 신설 — PD님 직접 지시)
PD님 직접 선언: **"근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어."** (`feedback_issue_under_reporting.md` 참조) PD님 직접 선언: **"근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어."** (`feedback_issue_under_reporting.md` 참조)

View File

@ -30,3 +30,5 @@
- [PD 지시 로그 활성 테이블 완료 상태 잔류 — 즉시 이동 의무 위반](feedback_active_archive_promotion_omission.md) — 2026-04-18 #39 실증. PD님 "재보고 불요 + 4W 즉답 체계" 지시. P19 강화(즉시 이동 의무·즉답 접두 체계) + 감사관 3종 체크 확장으로 재발 방지 - [PD 지시 로그 활성 테이블 완료 상태 잔류 — 즉시 이동 의무 위반](feedback_active_archive_promotion_omission.md) — 2026-04-18 #39 실증. PD님 "재보고 불요 + 4W 즉답 체계" 지시. P19 강화(즉시 이동 의무·즉답 접두 체계) + 감사관 3종 체크 확장으로 재발 방지
- [C34/C16-1 동급 생존성 이슈 축소 보고 금지 🚨 PM 자진 반성](feedback_issue_under_reporting.md) — 2026-04-19 PD님 직접 지적. memory junction 이슈를 "운영 규율로 커버" 완화 판정 + 침묵. C2·C3·C5·C29 위반 자인. C34 옵션 A 집행 + 재발 방지 4종(feedback·감사관 체크·C31 확장 안건) - [C34/C16-1 동급 생존성 이슈 축소 보고 금지 🚨 PM 자진 반성](feedback_issue_under_reporting.md) — 2026-04-19 PD님 직접 지적. memory junction 이슈를 "운영 규율로 커버" 완화 판정 + 침묵. C2·C3·C5·C29 위반 자인. C34 옵션 A 집행 + 재발 방지 4종(feedback·감사관 체크·C31 확장 안건)
- [memory junction 타깃 오연결 — HOME 중앙화 근원 해결](feedback_memory_junction_repo_root_misdirect.md) — 2026-04-18~19 4건 실증. 레포 루트 연결 junction으로 worktree Write 유출 반복. C34 옵션 A 집행(중앙 저장소 + sync 4계층)으로 근원 해결. Write 경로 규약 C34-16 신설 - [memory junction 타깃 오연결 — HOME 중앙화 근원 해결](feedback_memory_junction_repo_root_misdirect.md) — 2026-04-18~19 4건 실증. 레포 루트 연결 junction으로 worktree Write 유출 반복. C34 옵션 A 집행(중앙 저장소 + sync 4계층)으로 근원 해결. Write 경로 규약 C34-16 신설
- [백업 파일명 C6-1 표준 위반 — 관성적 답습 패턴](feedback_backup_filename_format_violation.md) — 2026-04-19 PD님 지적으로 발견. 8곳 스크립트에서 `.bak-YYYYMMDDHHMMSS` 사용, C6-1 표준 `.bak_YYYYMMDD_HHMM` 위반. 최초 위반(2026-04-18 Live junction)이 이후 모든 파생 스크립트로 연쇄 오염. "기존 코드 답습 ≠ 조직 표준 준수" 원칙 수립
- [안건 프레이밍 중복·이미 결정된 사안 재질문](feedback_agenda_framing_duplication.md) — 2026-04-19 PM 보고 혼선. "PM 재량"과 "PD 결정" 카테고리에 동일 안건 중복 제시 + 이전 턴 옵션 A 결정 사안 재질문. PD님 직접 지적 "같은 안건 아니야?" 수용. 방지 대책 3종(자기검증·감사관·표준 포맷) 신설

View File

@ -0,0 +1,84 @@
---
name: 안건 프레이밍 중복·이미 결정된 사안 재질문 — PM 보고 혼선
description: 2026-04-19 발견. PM이 PD님 결정 요청 시 "PM 재량 보정"과 "PD님 결정 사항"을 **상호 배타적이지 않게** 제시하여 같은 안건이 두 카테고리에 중복 등장 + 이미 옵션 A로 결정된 사안을 재질문. PD님 직접 지적 "보정 2번과 결정 1은 같은 안건 아니야?"로 PM 자진 반성
type: feedback
---
# 안건 프레이밍 중복·이미 결정된 사안 재질문 — PM 보고 혼선
## 실증 (2026-04-19 PD님 직접 지적)
PD님 직접 지적:
> "보정 1~4가 PM 재량이라고 보고한 것과 결정 내용이 중복되는거 같아. (예를들어 보정 2번과 결정1은 같은 안건 아니야?)"
PM이 C6-1 위반 보정 방안을 보고할 때 제시한 구조:
- **PM 재량 즉시 집행**: 보정 1·2·3·4 (4건)
- **PD님 결정 필요**: 결정 1·2 (2건)
**실제 관계 재분석**:
- **보정 2** (기존 `.bak-*` 디렉토리 rename) = **결정 1** (rename 수행 여부) — **정확히 동일 안건을 두 카테고리에 중복 제시**
- **결정 2** (경위 기록 vs 소급 정정) = **이전 턴 옵션 A로 이미 결정된 사안** — **재질문**
**2중 혼선**: 카테고리 경계 모호 + PD님 이전 결정 망각
## 영향
- **PD님 의사결정 피로 유발**: 결정 안 해도 되는 사안을 "결정 필요"로 제시
- **승인 범위 불분명**: PM 재량 vs PD 결정 경계가 흐려져 C19 승인 범위 엄격 해석 원칙 훼손 우려
- **같은 안건을 두 번 답변 강요**: "PM 재량으로 진행할 건가?"와 "결정은 무엇인가?"를 같은 내용으로 두 번 물은 셈
## 근본 원인 3종
1. **안건 분류 자기검증 부재**: PM이 보고 작성 후 "각 안건이 상호 배타적인가" 자체 검증 안 함
2. **PD님 이전 결정 재확인 생략**: 같은 세션 내 이미 "옵션 A" 결정된 사안을 "결정 2"로 재포장. 세션 맥락 재스캔 생략
3. **카테고리 정의 모호**: "PM 재량"은 "집행 주체"이고 "PD 결정"은 "의사결정 주체"인데, **같은 안건이 양쪽에 등장 가능**한 제시 방식 선호 (실제로는 한쪽에만 있어야 함)
## 해결 (PD님 지적 즉시 수용, 2026-04-19 집행)
### 즉시 정정
- PM 재량 = 보정 1·3·4 (3건)
- PD님 결정 = 보정 2 (1건, 기존 `.bak-*` rename 여부)
- 이전 "결정 2"는 옵션 A로 기결정 → 철회
### 방지 대책 3종
1. **PM 보고 작성 자기검증 체크리스트 추가** (C31 확장 안건):
- [ ] 각 안건이 **상호 배타적 카테고리**에 속하는가? (중복 0건)
- [ ] PD님이 **이전 턴·이전 세션에 이미 결정한 사안**을 재질문하지 않는가?
- [ ] "PM 재량" 카테고리와 "PD 결정" 카테고리의 경계가 **명확한 기준**으로 분리되는가?
2. **감사관 체크 추가** (pm-auditor):
- PM 보고의 안건 리스트 중복 감지
- PD님 이전 결정 사안 재질문 감지 (PD 지시 로그·대화로그 교차 검증)
3. **안건 분류 표준 포맷**:
```
## PM 재량 집행 (PD님 결정 불요, N건)
- 보정 X — 상세
## PD님 결정 필요 (N건)
- 결정 X — 선택지 A/B
## 중복·재질문 체크
- [ ] 상위 2카테고리 안건 ID 상호 배타 확인 완료
- [ ] 이전 턴 결정 사안 재질문 0건 확인 완료
```
## 재발 방지 체크 (세션 리더 의무)
- PM 보고 응답 발신 전 **안건 리스트 상호 배타성 자체 검증**
- **"같은 내용을 다른 말로 포장해 두 번 묻고 있지 않은가"** 자문
- PD님 이전 결정 기록을 재스캔 후 재질문 여부 확인
- 혼선 감지 시 즉시 정정 + 본 메모리 재참조
## 연관
- **C29** 업무 자율 수행 (PD님 의사결정 피로 회피 원칙)
- **C19** 승인 범위 엄격 해석 (카테고리 모호화 방지)
- **C31** 응답 발신 직전 자기검증 (본 체크 편입 안건)
- `feedback_pm_over_conservative_interpretation.md` (과도 보수 해석 시리즈)
- `feedback_issue_under_reporting.md` (2026-04-19 동반 학습 — PM 보고 품질 연속 과제)
## 교훈
**"결정을 요청하는 것"과 "집행을 보고하는 것"은 다른 층위다.** 같은 안건을 두 층위에 동시 제시하면 PD님은 "이미 결정한 사안을 다시 결정해야 하나" 혼란. **안건 하나는 반드시 한 카테고리에만 속하도록** 카드 배열. 재질문 여부는 이전 턴 결정 기록을 **명시적으로 재스캔**한 후 보고 확정.

View File

@ -0,0 +1,68 @@
---
name: 백업 파일명 C6-1 표준 위반 — 관성적 답습 패턴
description: 2026-04-19 발견. C34 Live junction·memory junction·setup 스크립트 8곳에서 `.bak-YYYYMMDDHHMMSS` 형식 사용 → C6-1 표준 `.bak_YYYYMMDD_HHMM` 위반. 2026-04-18 C34 신설 시점부터 잠재. 신규 스크립트 작성 시 조직 규약 체크 생략이 근본 원인
type: feedback
---
# 백업 파일명 C6-1 표준 위반 — 관성적 답습 패턴
## 실증 (2026-04-19 PD님 지적으로 발견)
PD님 질문 "C34 확장 집행 완료 과정에 C6-1 원본 보호 규칙을 지키지 않았어?"로 재점검 결과, 조직 표준 백업 포맷 불일치 발견.
**C6-1 표준**: `{원본명}.bak_{YYYYMMDD_HHMM}.{확장자}` (밑줄 + 분 단위)
**실제 사용 포맷**: 8곳
| 파일 | 라인 | 위반 패턴 |
|------|------|----------|
| `scripts/memory_junction_ensure.sh` | L72 | `.bak-$(date +%Y%m%d%H%M%S)` |
| `scripts/live_junction_ensure.sh` | L27 | `.bak-$(date +%Y%m%d%H%M%S)` |
| `setup/setup_windows.ps1` | L95·L137·L202 | `.bak-$(Get-Date -Format yyyyMMddHHmmss)` |
| `setup/setup_macos.sh` | L52·L77·L120 | `.bak-$(date +%s)` (Unix timestamp) |
**차이점**:
- 구분자 `-` (표준: `_`)
- 초 단위 또는 epoch (표준: 분 단위)
- macOS는 Unix timestamp로 완전히 다른 형식
## 근본 원인
1. **관성적 답습**: 2026-04-18 C34 신설 시 `live_junction_ensure.sh`에서 최초 도입된 비표준 포맷을 이후 모든 신규 스크립트(memory_junction_ensure·setup 3.5·3.6 섹션)가 **참고·계승**. "기존 코드와 동일 패턴"을 "조직 표준 준수"로 착각
2. **C34-15 5개 질문 체크리스트 구멍**: worktree 경계·중앙화·Agent 보호는 체크하나 **"기존 조직 규약(C6-1 백업 포맷) 준수" 항목 부재**
3. **감사관 체크 부재**: pm-auditor·dev-auditor에 백업 파일명 규약 점검 문항 없음
4. **PM 자기검증 누락**: 스크립트 Write 시 "백업 자동 수행" 자체만 확인, 포맷 표준 대조 생략
## 영향
- **데이터 손실**: 0건 (백업 자체는 정상 수행)
- **복구 가능성**: 문제없음 (파일 존재 확인 가능)
- **규약 준수**: 형식 위반 (감사 시 Major급 지적 대상)
- **탐지성 저하**: `grep .bak_2026` 표준 쿼리로 누락 위험
## 해결 (2026-04-19 집행)
1. **8곳 백업 포맷 C6-1 표준 수정**:
- Bash: `.bak_$(date +%Y%m%d_%H%M)`
- PowerShell: `.bak_$(Get-Date -Format yyyyMMdd_HHmm)`
2. **기존 생성된 `.bak-*` 디렉토리**: PD님 결정 "생략" 수용 — 데이터 멀쩡, 앞으로 생성분만 표준 적용
3. **C34-15 체크리스트 6번째 질문 추가 안건**: "신규 스크립트의 백업·삭제·롤백 로직이 C6-1 표준(`.bak_YYYYMMDD_HHMM`)을 따르는가"
4. **감사관 체크 추가**: pm-auditor·dev-auditor에 "백업 파일명 C6-1 표준 준수" 체크 신설
## 재발 방지 체크 (세션 리더 의무)
- 신규 스크립트에서 **백업·삭제·롤백 로직 작성 시 C6-1 본문 재읽기**
- 기존 스크립트 포맷을 **무조건 답습하지 말고** 조직 표준 대조
- `grep -n "\\.bak" scripts/ setup/`으로 정기 전수 감사
- 백업 파일명은 **`{원본명}.bak_{YYYYMMDD_HHMM}.{확장자}` 템플릿 고정**
## 연관
- **C6-1** 원본 보호 (본 조항 대상)
- **C2** 근원적 해결 / **C5** 정직성 / **C3** 이슈 은폐 금지 (자진 보고 의무)
- **C34-15** worktree 경계 체크리스트 (6번째 질문 확장 안건)
- `feedback_pm_over_conservative_interpretation.md` (관성적 답습은 과도 보수의 변종)
- `feedback_memory_junction_repo_root_misdirect.md` (C34 확장 세션 동반 집행)
## 교훈
**"기존 코드 답습 ≠ 조직 표준 준수"**. 신규 스크립트 작성 시 가장 가까운 기존 코드를 참조하는 건 생산성 측면에서 자연스러우나, **해당 기존 코드 자체가 이미 조직 표준 위반일 가능성**을 전제로 규약 대조가 필수. C34 Live junction 스크립트가 2026-04-18에 이미 비표준 포맷으로 도입되어 그 후 모든 파생 스크립트 오염 — 최초 위반이 길게 연쇄되는 전형 사례.

View File

@ -24,7 +24,7 @@ fi
# 3. 로컬 .live/ 가 실체 디렉토리인 경우 → 백업 후 junction 전환 (C6-1 원본 보호) # 3. 로컬 .live/ 가 실체 디렉토리인 경우 → 백업 후 junction 전환 (C6-1 원본 보호)
if [ -d "$LOCAL_LIVE" ] && [ ! -L "$LOCAL_LIVE" ]; then if [ -d "$LOCAL_LIVE" ] && [ ! -L "$LOCAL_LIVE" ]; then
BAK="$LOCAL_LIVE.bak-$(date +%Y%m%d%H%M%S)" BAK="$LOCAL_LIVE.bak_$(date +%Y%m%d_%H%M)"
# 기존 파일 중앙으로 복사 (기존 중앙 파일 덮어쓰기 안 함) # 기존 파일 중앙으로 복사 (기존 중앙 파일 덮어쓰기 안 함)
for f in "$LOCAL_LIVE"/*.md "$LOCAL_LIVE"/*.json; do for f in "$LOCAL_LIVE"/*.md "$LOCAL_LIVE"/*.json; do
[ -f "$f" ] || continue [ -f "$f" ] || continue

View File

@ -69,7 +69,7 @@ for hash_dir in "$CLAUDE_PROJECTS"/E--NerdNavisAi*; do
basename=$(basename "$f") basename=$(basename "$f")
[ ! -f "$CENTRAL_MEM/$basename" ] && cp "$f" "$CENTRAL_MEM/$basename" 2>/dev/null [ ! -f "$CENTRAL_MEM/$basename" ] && cp "$f" "$CENTRAL_MEM/$basename" 2>/dev/null
done done
mv "$mem_link" "$mem_link.bak-$(date +%Y%m%d%H%M%S)" 2>/dev/null || continue mv "$mem_link" "$mem_link.bak_$(date +%Y%m%d_%H%M)" 2>/dev/null || continue
fi fi
fi fi

View File

@ -49,7 +49,7 @@ if [ -d "$CLAUDE_BASE" ]; then
if [ -L "$MEM" ]; then if [ -L "$MEM" ]; then
echo "이미 symlink. 유지: $MEM" echo "이미 symlink. 유지: $MEM"
elif [ -d "$MEM" ]; then elif [ -d "$MEM" ]; then
mv "$MEM" "$MEM.bak-$(date +%s)" mv "$MEM" "$MEM.bak_$(date +%Y%m%d_%H%M)"
ln -s "$ORG_MEM" "$MEM" ln -s "$ORG_MEM" "$MEM"
echo "Symlink 생성: $MEM -> $ORG_MEM" echo "Symlink 생성: $MEM -> $ORG_MEM"
else else
@ -74,7 +74,7 @@ fi
if [ -L "$LOCAL_LIVE" ]; then if [ -L "$LOCAL_LIVE" ]; then
echo "Live symlink 이미 존재. 유지: $LOCAL_LIVE" echo "Live symlink 이미 존재. 유지: $LOCAL_LIVE"
elif [ -d "$LOCAL_LIVE" ]; then elif [ -d "$LOCAL_LIVE" ]; then
BAK="$LOCAL_LIVE.bak-$(date +%s)" BAK="$LOCAL_LIVE.bak_$(date +%Y%m%d_%H%M)"
for f in "$LOCAL_LIVE"/*.md "$LOCAL_LIVE"/*.json; do for f in "$LOCAL_LIVE"/*.md "$LOCAL_LIVE"/*.json; do
[ -f "$f" ] || continue [ -f "$f" ] || continue
DST="$CENTRAL_LIVE/$(basename "$f")" DST="$CENTRAL_LIVE/$(basename "$f")"
@ -117,7 +117,7 @@ if [ -d "$CLAUDE_BASE" ]; then
fi fi
if [ -d "$mem_link" ] && [ ! -L "$mem_link" ]; then if [ -d "$mem_link" ] && [ ! -L "$mem_link" ]; then
mv "$mem_link" "$mem_link.bak-$(date +%s)" mv "$mem_link" "$mem_link.bak_$(date +%Y%m%d_%H%M)"
elif [ -L "$mem_link" ]; then elif [ -L "$mem_link" ]; then
rm -f "$mem_link" rm -f "$mem_link"
fi fi

View File

@ -92,7 +92,7 @@ foreach ($d in $hashDirs) {
$attr = (Get-Item $memLink -Force).Attributes $attr = (Get-Item $memLink -Force).Attributes
if (($attr -band [IO.FileAttributes]::ReparsePoint) -eq 0) { if (($attr -band [IO.FileAttributes]::ReparsePoint) -eq 0) {
# 실체 폴더. 백업 후 junction으로 교체 # 실체 폴더. 백업 후 junction으로 교체
$bak = "$memLink.bak-$(Get-Date -Format yyyyMMddHHmmss)" $bak = "$memLink.bak_$(Get-Date -Format yyyyMMdd_HHmm)"
Rename-Item $memLink $bak Rename-Item $memLink $bak
Write-Host "기존 memory 폴더 백업: $bak" Write-Host "기존 memory 폴더 백업: $bak"
cmd /c mklink /J "`"$memLink`"" "`"$orgMemoryTarget`"" | Out-Null cmd /c mklink /J "`"$memLink`"" "`"$orgMemoryTarget`"" | Out-Null
@ -134,7 +134,7 @@ if (Test-Path $localLive) {
$isReparse = ($liveItem.Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0 $isReparse = ($liveItem.Attributes -band [IO.FileAttributes]::ReparsePoint) -ne 0
if (-not $isReparse) { if (-not $isReparse) {
# 실체 디렉토리 — 백업 후 junction 전환 (C6-1 원본 보호) # 실체 디렉토리 — 백업 후 junction 전환 (C6-1 원본 보호)
$bak = "$localLive.bak-$(Get-Date -Format yyyyMMddHHmmss)" $bak = "$localLive.bak_$(Get-Date -Format yyyyMMdd_HHmm)"
# 기존 파일 중앙으로 복사 (기존 중앙 파일 덮어쓰기 안 함) # 기존 파일 중앙으로 복사 (기존 중앙 파일 덮어쓰기 안 함)
Get-ChildItem $localLive -File -ErrorAction SilentlyContinue | ForEach-Object { Get-ChildItem $localLive -File -ErrorAction SilentlyContinue | ForEach-Object {
$dst = Join-Path $centralLive $_.Name $dst = Join-Path $centralLive $_.Name
@ -199,7 +199,7 @@ foreach ($d in $allHashDirs) {
$dst = Join-Path $centralMemory $_.Name $dst = Join-Path $centralMemory $_.Name
if (-not (Test-Path $dst)) { Copy-Item $_.FullName $dst -Force } if (-not (Test-Path $dst)) { Copy-Item $_.FullName $dst -Force }
} }
Rename-Item $memLink "$memLink.bak-$(Get-Date -Format yyyyMMddHHmmss)" Rename-Item $memLink "$memLink.bak_$(Get-Date -Format yyyyMMdd_HHmm)"
} else { } else {
Remove-Item $memLink -Force -ErrorAction SilentlyContinue Remove-Item $memLink -Force -ErrorAction SilentlyContinue
} }

View File

@ -91,6 +91,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**.
| # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 | | # | 일시 | 지시 요지 | 처리 상태 | 산출물 경로 | 중단 사유 | 사후 조치 |
|---|------|----------|----------|-----------|----------|----------| |---|------|----------|----------|-----------|----------|----------|
| 41 | 2026-04-19 | (PD님 직접 지시) **C6-1 원본 보호 규칙 위반 보정 + PM 보고 혼선 재발 방지 교훈 기록**. PD님 직접 지적: "C34 확장 집행 완료 과정에 C6-1 원본 보호 규칙을 지키지 않았어?" → 백업 파일명 포맷 8곳 비표준(`.bak-*`) 발견 + PM 보고 "같은 안건 중복·이미 결정된 사안 재질문" 혼선 지적. 보정 1·3·4 PM 재량 집행, 결정 1(기존 `.bak-*` rename) 생략 | **완료** | **[완료: 2026-04-19 01:15 · commit: (본 4차 commit) · 참조: `공유/대화로그/조직운영/2026-04-19.md` "C6-1 위반 보정 + 혼선 교훈" 엔트리]** (보정 3종 + 교훈 2종) 보정 1: `memory_junction_ensure.sh`·`live_junction_ensure.sh`·`setup_windows.ps1`(3곳)·`setup_macos.sh`(3곳) 총 8곳 백업 포맷 C6-1 표준(`.bak_YYYYMMDD_HHMM`) 수정 · 보정 3: `memory/org/feedback_backup_filename_format_violation.md` + `feedback_agenda_framing_duplication.md` 2종 신설 + MEMORY.md 인덱스 2건 · 보정 4: `pm-auditor.md` 5-B(백업 포맷)·5-C(안건 프레이밍 중복) 2문항 + `dev-auditor.md` 6-B(백업 포맷) 1문항 신설 | - | 기존 `.bak-*` 디렉토리는 PD님 결정 "생략" 수용, 현 그대로 유지. 향후 백업만 표준 적용 |
| 40 | 2026-04-19 | (PD님 조직 생존급 선언 · C34와 동급) **C34 확장 — memory junction HOME 중앙화 근원 해결 (옵션 A 집행)**. PD님 직접 지적: "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) | **완료** | **[완료: 2026-04-19 01:00 · commit: (본 3차 commit hash) · 참조: `공유/대화로그/조직운영/2026-04-19.md` "[PM 단계 1·2 집행 완료] C34 확장" 엔트리 + 실무 검토 보고서]** (15+종 일괄) SKILL.md C34 제목 개정·C34-1/3/14/**C34-16 신설** + `scripts/memory_junction_ensure.sh`·`sync_memory_repo_to_central.sh`·`sync_memory_central_to_repo.sh`·`sync_memory.sh`·`rollback_memory_central.sh` 5종 신규 + `setup_windows.ps1`·`setup_macos.sh` 3.6 섹션 + `verify_setup.ps1` 2.6 섹션 + `.claude/settings.json` hook 체인 + `scripts/git-hooks/post-commit` 확장 + `공유/조직공지/2026-04-19_C34_확장_memory_junction_중앙화.md` 신설 + `공유/조직공지/폐기_규칙_아카이브.md` §14 기록 + `memory/org/feedback_issue_under_reporting.md`·`feedback_memory_junction_repo_root_misdirect.md` 신설 + MEMORY.md 인덱스 + 감사관 3종(pm/dev/plan-auditor) "축소 보고 감지" 체크 신설 + CLAUDE.md 요약 갱신 + `.live/C34_memory_확장.md` + `공유/대화로그/조직운영/2026-04-19.md` 2엔트리. **실측 검증**: 38개 worktree junction 중앙 연결 성공 (신규 10 + 기존 유지 28, 실패 0건) | - | 조직 전원 세션 1회 재시작 안내 (C1 사전 고지) + 1주일 관찰 후 `.bak-*`·`nerdnavis-memory.conflict-*` 정리 공지 | | 40 | 2026-04-19 | (PD님 조직 생존급 선언 · C34와 동급) **C34 확장 — memory junction HOME 중앙화 근원 해결 (옵션 A 집행)**. PD님 직접 지적: "근본 해결이 아닌 임시 방편은 코어 룰 위반이야. C34와 동급의 생존성 이슈는 '권고' 수준이 아니었어. 옵션 A 방안대로 처리해." PM 자진 반성(C2·C3·C5·C29 위반 자인) | **완료** | **[완료: 2026-04-19 01:00 · commit: (본 3차 commit hash) · 참조: `공유/대화로그/조직운영/2026-04-19.md` "[PM 단계 1·2 집행 완료] C34 확장" 엔트리 + 실무 검토 보고서]** (15+종 일괄) SKILL.md C34 제목 개정·C34-1/3/14/**C34-16 신설** + `scripts/memory_junction_ensure.sh`·`sync_memory_repo_to_central.sh`·`sync_memory_central_to_repo.sh`·`sync_memory.sh`·`rollback_memory_central.sh` 5종 신규 + `setup_windows.ps1`·`setup_macos.sh` 3.6 섹션 + `verify_setup.ps1` 2.6 섹션 + `.claude/settings.json` hook 체인 + `scripts/git-hooks/post-commit` 확장 + `공유/조직공지/2026-04-19_C34_확장_memory_junction_중앙화.md` 신설 + `공유/조직공지/폐기_규칙_아카이브.md` §14 기록 + `memory/org/feedback_issue_under_reporting.md`·`feedback_memory_junction_repo_root_misdirect.md` 신설 + MEMORY.md 인덱스 + 감사관 3종(pm/dev/plan-auditor) "축소 보고 감지" 체크 신설 + CLAUDE.md 요약 갱신 + `.live/C34_memory_확장.md` + `공유/대화로그/조직운영/2026-04-19.md` 2엔트리. **실측 검증**: 38개 worktree junction 중앙 연결 성공 (신규 10 + 기존 유지 28, 실패 0건) | - | 조직 전원 세션 1회 재시작 안내 (C1 사전 고지) + 1주일 관찰 후 `.bak-*`·`nerdnavis-memory.conflict-*` 정리 공지 |
| 39 | 2026-04-18 | (PD님 조직 생존급 선언 · PM 경유) **C34 Live 증분 동기화 체계 신설 — worktree 격리 근원 해결 (P25 헌법급 승격)**. PD님 직접 표현: "이 문제가 해결되지 않으면 앞으로 우리 조직은 유지될 수 없어" · "철저히 검토해서 관련 문서에 일괄 반영하고 재발되지 않도록 가능한 모든 수단을 써서 개선해" | **완료** | **[완료: 2026-04-18 22:00 · commit: e04a204 (집행 시작 53fa316) · 참조: `공유/대화로그/조직운영/2026-04-18.md` "[PM 집행 완료] C34 Live 증분 동기화 체계 신설" 엔트리]** (10종 일괄) SKILL.md C34 신설 + C34-15 + P25 본문 삭제 + C16-1 보강 + C31-1-E 갱신 · CLAUDE.md 요약 6건 갱신 · `scripts/live_junction_ensure.sh` 신규 · `setup/setup_windows.ps1`·`setup/setup_macos.sh`·`scripts/verify_setup.ps1` 확장 · `.claude/settings.json`·`.gitignore` 갱신 · `공유/조직공지/2026-04-18_C34_신설_worktree_격리_근원해결.md` 신설 · `공유/조직공지/폐기_규칙_아카이브.md` §13 승격 기록 · `공유/소통/개발팀→PM/2026-04-18_worktree_격리_근원해결_실무검토.md` 실무 검토서 · `memory/org/feedback_worktree_isolation.md`·`feedback_agent_path_boundary.md` 신설 + MEMORY.md 인덱스 · 감사관 3종(pm/dev/plan-auditor) 체크 확장 · `공유/대화로그/조직운영/2026-04-18.md` 2엔트리 | - | 조직 전원 세션 1회 재시작 안내 (C1 사전 고지) + 1주일 관찰 후 `.live.bak-*` 정리 공지 | | 39 | 2026-04-18 | (PD님 조직 생존급 선언 · PM 경유) **C34 Live 증분 동기화 체계 신설 — worktree 격리 근원 해결 (P25 헌법급 승격)**. PD님 직접 표현: "이 문제가 해결되지 않으면 앞으로 우리 조직은 유지될 수 없어" · "철저히 검토해서 관련 문서에 일괄 반영하고 재발되지 않도록 가능한 모든 수단을 써서 개선해" | **완료** | **[완료: 2026-04-18 22:00 · commit: e04a204 (집행 시작 53fa316) · 참조: `공유/대화로그/조직운영/2026-04-18.md` "[PM 집행 완료] C34 Live 증분 동기화 체계 신설" 엔트리]** (10종 일괄) SKILL.md C34 신설 + C34-15 + P25 본문 삭제 + C16-1 보강 + C31-1-E 갱신 · CLAUDE.md 요약 6건 갱신 · `scripts/live_junction_ensure.sh` 신규 · `setup/setup_windows.ps1`·`setup/setup_macos.sh`·`scripts/verify_setup.ps1` 확장 · `.claude/settings.json`·`.gitignore` 갱신 · `공유/조직공지/2026-04-18_C34_신설_worktree_격리_근원해결.md` 신설 · `공유/조직공지/폐기_규칙_아카이브.md` §13 승격 기록 · `공유/소통/개발팀→PM/2026-04-18_worktree_격리_근원해결_실무검토.md` 실무 검토서 · `memory/org/feedback_worktree_isolation.md`·`feedback_agent_path_boundary.md` 신설 + MEMORY.md 인덱스 · 감사관 3종(pm/dev/plan-auditor) 체크 확장 · `공유/대화로그/조직운영/2026-04-18.md` 2엔트리 | - | 조직 전원 세션 1회 재시작 안내 (C1 사전 고지) + 1주일 관찰 후 `.live.bak-*` 정리 공지 |
| 37 | 2026-04-17 | (#5 후속 분리) Q-P2 정밀 2차 응답 + Unity MCP 시뮬레이션 인프라 4종 구현 (SimulationRunner 프로토타입·파라미터 외부화·결과 JSON 스키마·MCP 호출 스니펫) · **2026-04-17 PD님 재지시 추가 제약**: 기존 수상한잡화점 코드·구조 불변, 독립 어셈블리(`Assets/Sim/` + `NerdNavis.Sim.asmdef`)로 격리, Editor-only, 설계문서는 `프로젝트/수상한잡화점/시뮬레이터/`·실행코드는 Unity 프로젝트 내 | **완료** | `공유/소통/완료/2026-04-17_Phase0-C_QP2_정밀2차_응답서.md` + `프로젝트/수상한잡화점/시뮬레이터/{01_아키텍처,02_시나리오_JSON_스키마,03_결과_JSON_포맷,04_MCP_호출_스니펫}_v1.md` + (Unity) `Assets/Sim/NerdNavis.Sim.asmdef` · `Assets/Sim/Runtime/{SimulationRunner.cs,ScenarioLoader.cs,ResultEmitter.cs}` · `Assets/Sim/Runtime/Models/{ActorModel,DefenceModel,DamageCalc}.cs`. **Q-P2 실측**: PCDefence_Mul=0.3 (30%, 기획 가정 50% 불일치 확인)·쿨다운 없음·지속형·방어 중 공격 불가. **독립성 증명**: `git diff --stat Assets/Script/` = 0건 | - | Unity MCP 실행 검증은 Editor 기동 + MCP 연결 환경에서 기획팀·개발팀 공동 수행 (C23 정직). PM 자동 push 대상 (C20-1-A) | | 37 | 2026-04-17 | (#5 후속 분리) Q-P2 정밀 2차 응답 + Unity MCP 시뮬레이션 인프라 4종 구현 (SimulationRunner 프로토타입·파라미터 외부화·결과 JSON 스키마·MCP 호출 스니펫) · **2026-04-17 PD님 재지시 추가 제약**: 기존 수상한잡화점 코드·구조 불변, 독립 어셈블리(`Assets/Sim/` + `NerdNavis.Sim.asmdef`)로 격리, Editor-only, 설계문서는 `프로젝트/수상한잡화점/시뮬레이터/`·실행코드는 Unity 프로젝트 내 | **완료** | `공유/소통/완료/2026-04-17_Phase0-C_QP2_정밀2차_응답서.md` + `프로젝트/수상한잡화점/시뮬레이터/{01_아키텍처,02_시나리오_JSON_스키마,03_결과_JSON_포맷,04_MCP_호출_스니펫}_v1.md` + (Unity) `Assets/Sim/NerdNavis.Sim.asmdef` · `Assets/Sim/Runtime/{SimulationRunner.cs,ScenarioLoader.cs,ResultEmitter.cs}` · `Assets/Sim/Runtime/Models/{ActorModel,DefenceModel,DamageCalc}.cs`. **Q-P2 실측**: PCDefence_Mul=0.3 (30%, 기획 가정 50% 불일치 확인)·쿨다운 없음·지속형·방어 중 공격 불가. **독립성 증명**: `git diff --stat Assets/Script/` = 0건 | - | Unity MCP 실행 검증은 Editor 기동 + MCP 연결 환경에서 기획팀·개발팀 공동 수행 (C23 정직). PM 자동 push 대상 (C20-1-A) |

View File

@ -183,3 +183,29 @@
3. **옵션 B(rollback 후 재집행)로 전환** — PD님 옵션 A 명시 선택 수용, 기각 3. **옵션 B(rollback 후 재집행)로 전환** — PD님 옵션 A 명시 선택 수용, 기각
4. **사이드 이펙트 5종을 "감수" 수준으로 방치** — race condition은 실체 리스크, Lock 추가로 해결, 기각 4. **사이드 이펙트 5종을 "감수" 수준으로 방치** — race condition은 실체 리스크, Lock 추가로 해결, 기각
- **상태**: 완료. commit + push 대기 → 완료 후 조직 전원 세션 재시작 안내 - **상태**: 완료. commit + push 대기 → 완료 후 조직 전원 세션 재시작 안내
<!-- #PD지시 #PM #완료 #C6-1위반보정 #안건중복혼선교훈 -->
## [PM 집행 완료] C6-1 원본 보호 위반 보정 + 안건 프레이밍 혼선 재발 방지 교훈
- **요지**: PD님 2차 지적 2건 수용 — (1) "C34 확장 집행 과정에 C6-1 지키지 않았어?" → 백업 포맷 8곳 비표준 발견·수정, (2) "보정 2와 결정 1이 같은 안건 아니야?" → PM 보고 안건 중복·이미 결정 사안 재질문 혼선 교훈화.
- **이유**: 본 세션 내 PM 품질 문제 **2건 연속 발생** — (1) C6-1 표준 미준수는 **2026-04-18 C34 신설 최초 위반이 8곳으로 연쇄 오염** 관성적 답습, (2) 안건 프레이밍 혼선은 **PM 재량·PD 결정 카테고리 상호 배타성 자기검증 부재**. 양쪽 모두 PD님 직접 지적 없었다면 침묵했을 가능성 — `feedback_issue_under_reporting.md` 패턴과 동일 구조.
- **집행 보정 3종 + 교훈 2종**:
- **보정 1** (PM 재량) — 8곳 백업 포맷 C6-1 표준(`.bak_YYYYMMDD_HHMM`) 수정 (memory_junction_ensure·live_junction_ensure·setup_windows·setup_macos)
- **보정 3** (PM 재량) — feedback 2종 신설 (`feedback_backup_filename_format_violation.md` 기술 경위·`feedback_agenda_framing_duplication.md` 혼선 교훈) + MEMORY.md 인덱스 2건
- **보정 4** (PM 재량) — pm-auditor 5-B·5-C, dev-auditor 6-B 체크 3문항 신설
- **결정 1** (PD님 결정) — 기존 `.bak-*` 디렉토리 rename **생략** 수용
- **방지 대책 3종 (PM 보고 혼선 재발 차단)**:
1. **PM 자기검증 체크리스트 추가 (C31 확장 안건)**: (a) 안건 카테고리 상호 배타성 (b) PD님 이전 결정 재질문 여부 (c) "PM 재량"과 "PD 결정" 경계 명확성
2. **감사관 자동 체크 (pm-auditor 5-C)**: PM 보고의 중복 안건·재질문 감지
3. **안건 분류 표준 포맷** 문서화 (feedback에 템플릿 명시)
- **근본 패턴 분석**:
- C6-1 위반 = **"기존 코드 답습 ≠ 조직 표준 준수"** — 신규 스크립트 작성 시 기존 패턴이 이미 표준 위반일 가능성 전제로 규약 대조 의무
- 안건 혼선 = **"같은 안건을 다른 말로 포장해 두 번 묻지 말 것"** — 카테고리 경계 흐려짐은 PD님 의사결정 피로 유발 + C19 승인 범위 모호화
- **C34-15 확장 안건** (후속 PD님 승인 시):
- 5개 질문 → 6번째 질문 추가 "신규 스크립트의 백업·삭제·롤백 로직이 C6-1 표준을 따르는가"
- **기각안**:
1. **기존 `.bak-*` rename** — 데이터 멀쩡·복구 가능, PD님 "생략" 결정 수용, 기각
2. **PM 위반 2건을 Critical로 자가 격상하여 역할 재검토 자진 상정** — PD님 지시는 교훈 기록 + 방지 대책 수준. PM 독단 격상은 과도 보수 해석 재발, 기각
3. **보정 내용을 #40에 통합하지 않고 #41 별도 등록**#40은 이미 완료 아카이브 상태. 본 지시는 별개 PD 직접 지시라 #41 신규 등록이 C13·P19 정합, 채택
- **PD 지시 로그 #41 완료 아카이브 이동** (P19 강화·즉답 접두 포함)
- **상태**: 완료. commit + push 대기