# 작업 보고서: task-44.1

**작업명**: 아누 가이드 시스템 구축 — 즉시조치 + Phase 0
**팀**: dev1-team (헤르메스)
**일시**: 2026-03-02
**중요도**: CRITICAL

---

## 작업 내용

### Part 1: 즉시조치 — 보안

**A. dispatch.py BOT_KEYS 하드코딩 폴백 제거**
- BOT_KEYS에서 하드코딩된 기본값(폴백) 제거 → 환경변수 전용으로 전환
- dispatch() 함수에 key None 체크 + FATAL 에러 메시지 + sys.exit(1) 추가
- _register_followup()에도 anu_key None 체크 + 안전한 return 추가
- /home/jay/workspace/.env.keys 파일 생성 (기존 키 값 보존, chmod 640 적용)

**B. 핵심 파일 권한 640 강화**
- dispatch.py, task-timer.py, bot_settings.json, organization-structure.json, .env.keys 모두 640

### Part 2: Phase 0 — hooks 인프라

**A. 디렉토리 생성**
- ~/.claude/hooks/ 및 ~/.claude/hooks/lib/ 생성

**B. settings.json hooks 설정 추가**
- UserPromptSubmit: user-prompt-submit.sh (매처 없음, 항상 발동)
- PostToolUse: post-tool-use.sh (매처: Edit|Write|NotebookEdit)
- 기존 mcpServers (openclaw) 유지

**C. user-prompt-submit.sh 구현**
- stdin JSON에서 cwd 추출 (jq 우선, grep 폴백)
- detect-bot.sh로 봇 식별
- anu → 아누 가이드 핵심 규칙 주입
- dev1/dev2/dev3 → 개발팀 작업 규칙 주입
- unknown → 아무것도 출력하지 않음

**D. post-tool-use.sh 구현 (Audit Trail)**
- stdin JSON에서 tool_name, file_path, cwd, session_id 추출
- detect-bot.sh로 봇 식별
- /home/jay/workspace/memory/logs/audit-trail.jsonl에 JSONL 기록
- trap 'exit 0' ERR로 실패해도 작업 블로킹 없음

**E. detect-bot.sh 구현**
- cwd 기반 봇 식별 (autoset→anu, teams/devN→devN, unknown)
- .cokacdir/workspace/ 스케줄 세션 경로도 인식

**F. /tmp/ 로그 이전**
- /tmp/ 서버 로그 6개 파일을 memory/logs/servers/로 복사

---

## 생성/수정 파일 목록

**신규 생성:**
- /home/jay/workspace/.env.keys (환경변수 키 파일)
- /home/jay/.claude/hooks/user-prompt-submit.sh (UserPromptSubmit 훅)
- /home/jay/.claude/hooks/post-tool-use.sh (PostToolUse 훅)
- /home/jay/.claude/hooks/lib/detect-bot.sh (봇 식별 라이브러리)
- /home/jay/workspace/memory/logs/audit-trail.jsonl (Audit Trail 로그)
- /home/jay/workspace/memory/logs/servers/ (서버 로그 영구 경로)

**수정:**
- /home/jay/workspace/dispatch.py (BOT_KEYS 하드코딩 제거 + None 체크)
- /home/jay/.claude/settings.json (hooks 설정 추가)

**권한 변경 (640):**
- dispatch.py, task-timer.py, bot_settings.json, organization-structure.json, .env.keys

---

## 테스트 결과

총 10개 테스트, **전체 PASS (100%)**

1. user-prompt-submit.sh 아누 봇 감지: PASS
2. user-prompt-submit.sh dev1 봇 감지: PASS
3. user-prompt-submit.sh unknown 봇 무출력: PASS
4. post-tool-use.sh Audit Trail 기록 (dev1): PASS
5. post-tool-use.sh Audit Trail 기록 (anu): PASS
6. audit-trail.jsonl JSON 유효성: PASS
7. dispatch.py 하드코딩 키 제거 확인: PASS (0개 발견)
8. 파일 권한 640 확인 (5개 파일): PASS
9. settings.json JSON 유효성: PASS
10. detect-bot.sh 단위 테스트 (anu/dev2/unknown): PASS

**QC 독립 재검증**: 전체 동일 결과 확인

---

## 버그/이슈

- 없음

## 비고

- .env.keys를 .bashrc 등에서 source하도록 설정 필요 (운영 환경 적용 시)
- Phase 1 (skills 구현)은 2팀(오딘) 담당으로 별도 작업 예정
- hooks는 전역 공유이므로 detect-bot.sh로 봇별 분기 처리 완료
