---
type: 조직자산_시행착오_아카이브
subject: dev-auditor 개발팀 감사 이력·교훈 — 수상한잡화점 프로젝트
origin_project: 수상한잡화점 (NerdNavis)
target_project: EerieVillage (BurningTimes)
period: 2026-04-17 ~ 2026-04-20
version: v1
created: 2026-04-21
author: dev-auditor (아카이브 작성 역할)
purpose: 조직 전환(NerdNavis → BurningTimes) 및 신 프로젝트(EerieVillage, Unity 6000.3.13f1 LTS) 착수 시 dev-auditor 운영 노하우 계승
---

# dev-auditor 개발팀 감사 이력·교훈 아카이브 v1

> **본 문서는 감사 실행이 아닌 아카이브 작성**. 수상한잡화점 프로젝트에서 dev-auditor가 축적한 개발팀 감사 이력·교훈을 BurningTimes 조직 자산으로 이관하여, 차기 프로젝트(EerieVillage) 착수 시 동일 시행착오 반복을 구조적으로 차단한다.

---

## 1. 발견된 핵심 패턴 6종

### 1-1. 산출물 3종 규범 실종 (output gap)

**2026-04-17 dev-auditor 첫 감사 호출**에서 실증. pm-auditor와 동시 3축 감사 체계 가동 시 감사 실행은 이루어졌으나 **조직 기록 채널에 흔적 미생성**.

- `공유/소통/dev-auditor→PM/` 실측 결과: `.gitkeep`만 존재, md **0건**
- `memory/org/feedback_dev_*.md` 실측 결과: **0건**
- 2026-04-17 대화로그 `공유/대화로그/조직운영/`: 간접 흔적만, dev-auditor 직접 명의 엔트리 미확인

**구조 원인**: Agent 응답 관성(자연어 요약 텍스트만 반환) + 호출 프롬프트 집행 강제력 부족 + 감사관 자체 정의(`.claude/agents/dev-auditor.md`)의 산출물 3종 체크리스트 위상 낮음. C23 "완전 허위"는 아니나 **"실측 근거 반쪽 이행"** 경계 위반.

**교정**: 2026-04-18 모드 C 호출 프롬프트에 "산출물 3종 필수 — Write 실행으로 파일 생성 후 응답 작성" 명시 편입 → 첫 정규 md(`2026-04-18_원칙1_재검토_감사.md`) 및 feedback 생성 실증.

### 1-2. 감사 범위 단축 (scope shortcut) — SKILL.md 문언만 보고 설계 맥락 미확인

**2026-04-18 모드 C 감사 요청 2**에서 실증. 08 전투시스템 SOT §4.4 "기획 초기 가정 50% | 실측 확정 0.3" 병기 테이블을 SKILL.md C14-5 "병기 금지" 문언만 보고 "가정 열 삭제" 권고 발행 → Phase 0-C Q-P2 응답서 L136 기각안 B "50% 추정 유지 — 기획팀 가정 정정 필요성 명시가 본 2차 응답의 존재 이유" 사후 확인 → **자진 철회**.

**구조 원인**: (a) SKILL.md 문언만 적용하는 3단 삼단논법 단축 (b) 감사 대상 문서의 "왜 이렇게 작성되었나" 생성 경위 추적 누락 (c) 형식주의 안전 편향.

**교정**: dev-auditor 정의 "행동 지침 0번"으로 **"감사 착수 전 관련 설계 문서 선행 Read 의무"** 명문화 제안. "활성 경고 신호·정정 촉구 기능" vs 단순 히스토리 병기 판별 기준 체계화.

### 1-3. Agent 절대 경로 하드코딩 (worktree 격리 2차)

**2026-04-18 오후** 개발팀장 Agent 호출 시 Write 도구 경로에 `E:\NerdNavisAi\공유\소통\개발팀→PM\...` 절대 경로 지정 → main 브랜치 체크아웃 레포 루트에 산출물 유출, 본 worktree `git status` 미감지.

**복구**: `git -C <레포루트> stash push -u -- 공유/` → 본 worktree `git stash pop` 수동 이관.

**교정 (C34-11 신설)**: Agent 호출 프롬프트에 **"산출물 경로는 `$(git rev-parse --show-toplevel)` 기준 또는 상대 경로. 절대 경로 하드코딩 금지"** 명시 의무. PM 책임: Agent 응답 수령 직후 본 worktree + 레포 루트 `git status` 2축 병행 검증.

### 1-4. memory junction 레포 루트 오연결

**2026-04-18~19 총 4건 연속 실증**. `$HOME/.claude/projects/E--NerdNavisAi*/memory` junction이 **레포 루트 `memory/org/`** 타깃. Claude Code Write 시 본 worktree 우회하여 레포 루트에 기록, stash 이관 없이는 본 worktree commit 불가.

- 2026-04-18 오후 3건: `feedback_worktree_isolation.md`·`feedback_agent_path_boundary.md`·`MEMORY.md` 유출
- 2026-04-19 오전 1건: `feedback_active_archive_promotion_omission.md` 유출

**근본 해결 (C34 옵션 A)**: `$HOME/.claude/nerdnavis-memory/` 중앙 실 저장소 + user memory junction 23+개 재연결 + 양방향 sync 4계층(SessionStart·post-commit·수동·감사관). C34-16 Write 경로 규약("본 worktree 절대 경로 vs user memory 경로 택1, 혼용 금지") 신설.

### 1-5. C6-1 백업 이전 편집 위반 — Unity MCP 편집 표준 워크플로우

Unity MCP 편집 시 원본 백업 없이 편집 착수 패턴. C6-1 "원본 데이터 변형 전 백업 필수" 위반. 백업 파일명 표준 `{원본명}.bak_{YYYYMMDD_HHMM}.{확장자}` 미준수 실증(`.bak-*`·Unix timestamp `%s` 혼재).

**교정**: dev-auditor 6-B 체크리스트 편입 — 개발팀 스크립트 감사 시 백업 로직 C6-1 표준 전수 검증. Unity MCP 편집 표준 워크플로우 v1 0단계에 "원본 백업 선행" 강제.

### 1-6. git scope shortcut — 상위 디렉토리만 확인 후 "레포 아님" 단언

**2026-04-20 #57 A 집행**에서 실증. 개발팀장 Agent가 `D:\NerdNavis\FilGoodBandits` 상위만 확인하고 "C30 점검 불가 · git 레포 아님" 자진 고지 → PM이 추가 검증 없이 대화로그·PD 지시 로그 등재 → 실제로 `D:\NerdNavis\FilGoodBandits\DeckBuilding\.git` 실존.

**양축 위반**: 개발팀장 C23(추정의 사실화) + C5(실측 근거 불완전). PM C27(Agent 응답 재검증 누락) + C5.

**교정**: (a) "레포 아님" 단언 전 후보 경로 2~3단계 하위까지 `.git` 검사 (b) `git -C <경로> remote -v` 실측 근거 첨부 의무 (c) PM은 Agent의 "불가·부재·권한 없음" 단언을 `bash`/`ls`로 직접 재실측.

---

## 2. 감사 영역 운용 현황 (수상한잡화점 기간)

| 영역 | 주요 활동 | 대표 산출물 |
|------|----------|-----------|
| 1. 커밋 ↔ 문서 정합성 (실종 패턴) | Unity MCP 전환 선례 #28 비고란 1줄 놓침 사건 예방 체크 | `2026-04-18_새PC동기화_최종점검_개발영역.md` 요청 1 |
| 2. 개발팀 기록 의무 준수 | 개발팀 대화로그 `#개발` 태그 엔트리 품질 점검 | 자체 교차 검증 보고서 (2026-04-17) |
| 3. Agent 호출 맥락 완결성 | C34-11 Agent 경계 보호 체크 편입 | feedback_agent_path_boundary.md |
| 4. 기술 결정 근거 보존 | 07 Headless 기각 설계 외부화 안건 (Minor) | 2026-04-18 원칙 1 재검토 감사 §2 |
| 5. 팀 간 기술 인터페이스 동기화 | Python·C# 이원화 리스크 진단 보존 | 07 §1·§6 보존 권고 |
| 6. Agent 경계·worktree 안전성 (C34-11·C34-15) | 5개 질문 체크리스트 전수 통과 검증 | worktree_isolation 관련 사건 로그 |
| 6-A. C34/C16-1 동급 생존성 이슈 축소 보고 감지 | memory junction "권고 수준" 축소 사건 탐지 | feedback_memory_junction_repo_root_misdirect §거부된 대안 |
| 6-B. C6-1 백업 파일명 표준 감지 | 스크립트 전수 `.bak` 패턴 grep 감사 | — (BT 출범 후 본격 가동) |

**수행 모드 3종**: A(응답 발신 직전 교차 검증) · B(세션 말미 주기 감사) · C(주제 집중) — 2026-04-18 모드 C 첫 정규 수행 실증.

---

## 3. BT(EerieVillage) 출범 시 운영 체크리스트

### 3-1. 신 프로젝트 착수 첫 감사 체크 (Unity 6000.3.13f1 LTS 전용)

1. 신 프로젝트 레포 루트 `.git` 실존 + `git remote -v` 실측 (git scope shortcut 재발 방지)
2. Unity 프로젝트 경로(`paths.local.json` `UNITY_PROJECT_ROOT`) 2~3단계 하위까지 `.git` 검사 — FilGoodBandits/DeckBuilding 구조 대응
3. Unity 6000.3.13f1 LTS 버전 환경 정합성 (신규 버전 도입 시 호환성 점검)
4. 중앙 저장소 3종(`.live/`·`memory/org/`·audit) junction 실체 검증 — verify_setup 2.5·2.6·2.7
5. `공유/소통/dev-auditor→PM/` 디렉토리 실존 + `.gitkeep` 배치

### 3-2. 매 감사 호출 시 자기 검증 (산출물 3종 규범 100% 준수)

- [ ] 감사 보고서 md Write 완료 (`공유/소통/dev-auditor→PM/YYYY-MM-DD_<주제>.md`)
- [ ] 대화로그 엔트리 append 완료 (`공유/대화로그/<프로젝트>/YYYY-MM-DD.md` — EerieVillage 프로젝트명 적용)
- [ ] feedback 메모리 필요 시 신설 (`memory/org/feedback_dev_*.md`)
- [ ] 관련 설계 문서 선행 Read 수행 여부 — SKILL.md 문언만 보고 판정 금지
- [ ] 활성 매니페스트(C35-9) 등록 후 Write 수행 (PreToolUse 차단 해제)

### 3-3. Agent 경계 보호 (C34-11) 매 호출 전 확인

1) Agent 호출 프롬프트에 "산출물 경로 `$(git rev-parse --show-toplevel)` 기준 또는 상대 경로. `E:\BurningTimes\...` 절대 경로 하드코딩 금지" 명시
2) Agent 응답 수령 직후 본 worktree + 레포 루트 `git status` 2축 병행 검증
A. 경계 이탈 발견 시 stash 이관 복구 즉시 수행 + PD님 자진 보고
B. 반복 위반 시 `memory/org/feedback_agent_path_boundary.md` 재발 기록 추가

### 3-4. C34-15 worktree 경계 5문항 체크 (신규 자산 도입 시)

1) 단위 판정 (PC 단위 vs worktree 단위)
2) 경계 안전성 (다른 worktree·레포 루트 기록 방지)
3) 중앙화 필요성 (`$HOME/.claude/burningtimes-*/` 패턴 — 명칭 조직 전환 반영)
4) 레포 루트 vs worktree 실행 차이
5) Agent 경계 보호 (C34-11 준수)

### 3-5. 운영 금지 사항 재확인

A. 감사 결과를 응답 텍스트로만 회신 (Write 도구 호출 누락) — output gap 재발
B. SKILL.md 문언만 보고 설계 맥락 미확인 판정 — scope shortcut 재발
C. "레포 아님"·"권한 없음"·"불가" 단언을 실측 근거 없이 발신
D. `git add -A`·`git add .` 오남용 (scope 미지정) — C6 원본 보호·환경 파일 유출 리스크
E. 감사 실행 중 감사 실행자가 감사 대상을 직접 수정 (역할 월권)

---

## 4. 관련 feedback 메모리 인덱스 (BT 이관 후 명칭 조정 필요)

| 메모리 경로 | 패턴 | BT 전환 시 확인점 |
|------------|------|-----------------|
| `feedback_dev_auditor_output_gap.md` | 산출물 3종 실종 | dev-auditor 정의 체크리스트 최상단 승격 |
| `feedback_dev_auditor_scope_shortcut.md` | 형식주의 오판 | "행동 지침 0번" 관련 설계 문서 선행 Read 의무 |
| `feedback_agent_path_boundary.md` | Agent 절대 경로 유출 | 절대 경로 `E:\NerdNavisAi\...` → `E:\BurningTimesAi\...` 명칭 이관 |
| `feedback_memory_junction_repo_root_misdirect.md` | junction 타깃 오연결 | `nerdnavis-memory` → `burningtimes-memory` 중앙 저장소명 변경 |
| `feedback_worktree_isolation.md` | C34 신설 경위 | 5문항 체크리스트 BT에서 재가동 |
| `feedback_git_scope_shortcut.md` | 레포 점검 범위 축소 | Unity 프로젝트 경로 2~3단계 하위 검사 표준 |

---

## 5. 핵심 교훈 종합

1. **감사는 응답 텍스트 아닌 Write 도구 흔적으로 입증된다** — output gap은 C23 경계선 위반. 산출물 3종 규범 100% 준수가 감사관 존재 증명
2. **SKILL.md 문언만 보고 판정 금지** — 설계 맥락(응답서·기각안·활성 경고 신호)을 선행 Read하지 않으면 형식주의 오판. 규칙 문언과 설계 의도 충돌 시 설계 맥락 보존 쪽 판정 근거 검토 의무
3. **worktree 경계는 조직 공유 체계의 숨겨진 경계** — "같은 PC = 같은 파일시스템" 직관 무력화. 신규 자산은 반드시 C34-15 5문항 통과 + `$HOME/.claude/burningtimes-*/` 중앙화 + junction/sync 패턴 기본 채택
4. **Agent 위임은 PM 책임 해제가 아니다** — Agent 응답의 "완료·불가·부재" 단언은 PM이 실측 재검증. C27 외연 확장. 절대 경로 유출·git 레포 오판은 양축(Agent·PM) 모두 위반
5. **C6-1 백업 이전 편집·표준 파일명** 은 개발팀 전수 스크립트 감사의 1순위 — Unity MCP 편집 집행 시 0단계 백업 강제, `.bak_{YYYYMMDD_HHMM}.{확장자}` 포맷만 허용

---

**본 아카이브의 수명**: BurningTimes 조직 자산. 수정·축약은 PD님 직접 승인 필수. EerieVillage 프로젝트 착수 시 dev-auditor 신규 호출 프롬프트에 본 문서 참조 링크 편입하여 시행착오 반복 차단.

**연관 자산**:
- `공유/조직자산/시행착오_아카이브/README.md` (인덱스)
- `공유/조직자산/시행착오_아카이브/감사_pm_auditor_v1.md` (pm-auditor 쌍 아카이브, 예정)
- `공유/조직자산/시행착오_아카이브/감사_plan_auditor_v1.md` (plan-auditor 쌍 아카이브, 예정)
- SKILL.md C34·C34-11·C34-15·C34-16·C35·C36 (감사 체계 헌법급 근거)
- `.claude/agents/dev-auditor.md` (BT 전환 시 규칙 번호·명칭 이관)
