---
task_id: task-2419
type: plan
scope: task
created: 2026-05-03
updated: 2026-05-03
status: completed
---

# 계획서: task-2419 — 메모리 강화 자동화

**task**: task-2419
**목표**: ★ 메모리 dead code 차단을 위한 3-Layer 자동 방어 인프라 구축 (pre-commit + 위반 감지 + MC 강제 read)
**승인**: 제이회장 2026-05-03 "md 파일 자꾸 만들면 뭐해. 안 보면 끝인데??? 정말 필요한 건 코드 상 자동으로 항상 읽게 만들어야 함."
**근거**: memory/tasks/task-2419.md, feedback_no_dead_code_skills.md, feedback_modularity_mindset.md, Codex 사전 검증 (5개 risk 반영)

---

## 목표 (Codex 검증 반영 후)

본 task는 **인프라 제공만** 수행한다. 봇 응답 검증, finish-task.sh 통합, DIRECT-WORKFLOW Step 0 추가는 모두 후속 task에서 진행 (forbidden_paths 충돌 회피).

1. **Fix 1 — pre-commit memory check (단독 hook 추가)**: `feedback_*.md` 신규/수정 시 MEMORY.md ★ 등록 검증
2. **Fix 2 — violation detector (standalone CLI)**: YAML 룰 spec 기반, finish-task와 분리된 단독 실행 도구
3. **Fix 3 — MC 데이터 강화 + 마커 (allowed_resources 범위 내)**:
   - utils/memory_check.py의 log entry에 `mc_id`/`acknowledged`/`pending` 필드 추가
   - dispatch.py issue_mc 호출 직후 mc_pending 카운터 증가 (별도 마커 파일 X — 로그 단일 소스 + 헬퍼 ack_mc())
4. **회귀 0**: 기존 ★ 메모리 자동 주입 + MC 발급 작동 유지

## Codex risk 반영 사항

| Codex risk | 반영 결정 |
|---|---|
| critical #1 충돌 | finish-task.sh / DIRECT-WORKFLOW.md / memory/audit/** 절대 무수정. allowed_resources 범위 내에서만 작업. |
| critical #2 MC 시점 | dispatch가 위임 후 issue_mc 호출 → log 즉시 기록. 봇이 첫 turn에 task_id 기반 log 조회 가능. 본 task는 데이터/조회 헬퍼만 제공, 봇 응답 검증은 후속. |
| high #3 데이터 모델 | memory-check-log.json entry에 `mc_id`, `acknowledged`, `pending`, `acked_at` 필드 추가. 단일 소스 유지. |
| medium #4 --skip-memory-check | `SKIP_MEMORY_CHECK=1` 환경변수로 변경 (--no-verify 외 우회 경로 제공). |
| medium #5 PR description | detector 범위를 commit messages + 변경 파일 + log entries로 한정. PR description 스캔 제외. |

## 범위

### 포함 (allowed_resources only)
- 신규: `scripts/hooks/pre-commit-memory-check.py`
- 신규: `scripts/memory_violation_detector.py`
- 신규: `memory/specs/memory-violation-rules.yaml`
- 신규: `tests/test_memory_enforcement.py`
- 수정: `dispatch/__init__.py` (issue_mc 호출 직후 utils 헬퍼로 마커 카운터 갱신)
- 수정: `utils/memory_check.py` (log entry 스키마 확장 + ack_mc 헬퍼 + get_pending_mcs 헬퍼)
- 수정: `.git/hooks/pre-commit` (신규 메모리 검사 호출 1줄 추가, 기존 모듈화 린트 보존)
- 보고서: `memory/reports/task-2419.md`

### 제외 (변경 금지)
- `scripts/finish-task.sh` (forbidden)
- `scripts/auto_merge.py`, `scripts/session-watchdog.sh`, `scripts/worktree_manager.py`, `scripts/done-watcher.py`
- `prompts/DIRECT-WORKFLOW.md` (forbidden — task-2417)
- `memory/specs/cron-priority-markers.md` (task-2417)
- `dashboard/**` (task-2414)
- `scripts/whisper-compile.py`, `scripts/bot_status_resolver.py`
- `teams/shared/**`, `CLAUDE.md`
- `memory/audit/**`, `memory/state/**`, `memory/capabilities/**` (forbidden)

## 위임 계획

- Phase 1A (Fix 1): **불칸(백엔드)** — pre-commit hook Python + .git/hooks 추가
- Phase 1B (Fix 2): **불칸(백엔드)** — YAML 룰 spec + standalone CLI detector
- Phase 1C (Fix 3): **불칸(백엔드)** — utils/memory_check.py 스키마 확장 + dispatch 통합
- Phase 2 (테스트): **아르고스(테스터)** — tests/test_memory_enforcement.py 12+
- Phase 3 (검증/보고): **헤르메스** — 통합 검증, L1, G3, 보고서

## 검증 기준

- Fix 1: 임의 신규 `feedback_test_xxx.md` commit 시도 → 차단; ★ 등록 후 → 통과; `SKIP_MEMORY_CHECK=1 git commit` → 우회 통과
- Fix 2: `python3 scripts/memory_violation_detector.py --task-id <id>` → 위반 시 exit 1, 정상 시 exit 0
- Fix 3: `issue_mc()` 호출 후 log entry에 `mc_id`/`pending: true` 기록 확인. `ack_mc(mc_id)` 호출 후 `acknowledged: true`/`acked_at` 기록 확인. `get_pending_mcs()` 미응답 목록 반환 확인.
- 통합: pytest tests/test_memory_enforcement.py → 12+ PASS
- 회귀: 기존 dispatch.py memory_check 작동 유지 (test 결과로 검증)
- 성능: pre-commit hook 추가 검사 < 500ms
- mypy 0 (allowed_resources 파일) + shellcheck 0

## 3 Step Why (Codex 반영 갱신)

**1st Why** — 왜 이 설계가 필요한가?
A: 회장 메모리 dead code 차단. 매뉴얼/체크리스트는 강제력 0, 코드 게이트만이 100% 강제 가능.

**2nd Why** — 왜 A가 최선의 접근인가?
B: 회장 명시 "코드로 100% 자동화". (a) 봇 프롬프트 강화는 LLM 비결정성 (b) 외부 watchdog 단독은 검증 게이트 누락. 코드 단계 게이트(commit/log/detector)가 가장 결정적.

**3rd Why** — 왜 B가 다른 대안보다 나은가?
C: 단일 소스(YAML 룰 + memory-check-log) + 부분 적용 가능(인프라만 본 task, 통합은 후속) → 회장 메모리 `feedback_modularity_mindset.md`(단일 소스), `feedback_no_dead_code_skills.md`(시스템 통합) 부합. forbidden_paths 충돌 회피로 task-2417 진행 차단 0.

일관성: A→B→C "코드 게이트 강제 자동화" 일관 + Codex 검증 반영으로 실행 가능성 확보.
