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

# 체크리스트: task-2419 (인프라 제공 단계)

**task**: task-2419
**범위 정의**: 본 task = ★ 메모리 강화 자동화의 **인프라 제공 단계만**. 봇 응답 강제 read / finish-task 통합 / DIRECT-WORKFLOW.md 통합은 모두 후속 task (task-2417 종료 후).

---

## Phase 0 — 헤르메스 (설계/사전 검증)

- [x] 작업 파일 분석 + affected_files / forbidden_paths 파악
- [x] 3문서 작성 (plan.md, checklist.md, context-notes.md)
- [x] Codex 사전 검증 1차 (PASS=false, 5 risks 반영)
- [x] Codex 사전 검증 2차 (PASS=false, 잔여 critical는 task 본문 구조적 한계 — 본 task 범위 외)
- [x] 인프라 단계 한정 명시 + checklist 정합화

## Phase 1A — 불칸 (Fix 1: pre-commit memory check)

- [x] A. `scripts/hooks/pre-commit-memory-check.py` 작성 (버전 관리됨, < 500ms)
- [x] B. `.git/hooks/pre-commit` 끝부분에 호출 1줄 추가 (기존 modularity-lint 보존)
- [x] C. `scripts/pre-commit-install.sh` 갱신 (재설치 시 신규 검사 자동 전파)
- [x] D. `SKIP_MEMORY_CHECK=1` 환경변수 우회 동작
- [x] E. micro-commit

## Phase 1B — 불칸 (Fix 2: violation detector standalone CLI)

- [x] A. `memory/specs/memory-violation-rules.yaml` 작성 (3개 시드 룰)
- [x] B. `scripts/memory_violation_detector.py` 작성 (CLI: `--task-id`, `--commit <sha>`, `--diff-base <ref>`, `--staged` 4개 모드)
- [x] C. 단위 테스트: 룰 로드 / 위반 감지 / 정상 / unknown rule
- [x] D. micro-commit

## Phase 1C — 불칸 (Fix 3: MC 데이터 강화 + ack 헬퍼)

- [x] A. `utils/memory_check.py` log entry 스키마 확장
  - 추가 필드: `mc_id`, `pending`, `acknowledged`, `acked_at`
  - 추가 필드: `memory_items_structured` (각 항목: `memory_item_id`, `source_path`, `item_type`, `ack_required`)
  - 기존 `memory_items_read` 평면 배열 유지 (회귀 0)
- [x] B. `utils/memory_check.py` 신규 헬퍼: `ack_mc(mc_id) -> bool`, `get_pending_mcs() -> list[dict]`, `get_mc_by_task(task_id) -> dict`
- [x] C. `dispatch/__init__.py:2745, 3731` issue_mc 호출 직후 변경 없음 (issue_mc 내부에서 pending=true 자동 기록)
- [x] D. micro-commit

## Phase 2 — 아르고스 (통합 회귀 테스트)

- [x] A. `tests/test_memory_enforcement.py` 작성
  - Fix 1 회귀 4개: 신규 feedback 차단 / ★ 등록 후 통과 / SKIP_MEMORY_CHECK 우회 / 기존 modularity-lint 회귀 0
  - Fix 2 회귀 4개: 룰 로드 / staged 모드 / commit 모드 / 정상 케이스 exit 0
  - Fix 3 회귀 4개: pending=true 자동 기록 / ack_mc / get_pending_mcs / get_mc_by_task
- [x] B. pytest 12+ PASS
- [x] C. 기존 dispatch.py memory_check 회귀 0
- [x] D. micro-commit

## Phase 3 — 헤르메스 (검증/보고)

- [x] A. 통합 pytest 전체 PASS
- [x] B. L1 스모크: detector CLI 실행 + pre-commit 트리거
- [x] C. G3 독립 검증 PASS
- [x] D. 마아트 독립 검증 (Lv.3 critical 의무)
- [x] E. 보고서 작성 (`memory/reports/task-2419.md`)
- [x] F. 3문서 status: completed
- [x] G. finish-task.sh 실행

## 검증

- [x] mypy 0 (수정 파일 한정)
- [x] shellcheck 0
- [x] pre-commit hook 추가 검사 < 500ms (~40ms 측정)
- [x] 회귀 0: dispatch.py issue_mc 정상 발급 유지 (29 PASS)
- [x] **본 task 범위 외 명시** (회장 후속 task 위해 보고서에 기록)
  - 봇 응답 강제 read (DIRECT-WORKFLOW.md Step 0 통합) → 후속 task
  - finish-task.sh detector 자동 호출 → 후속 task
  - PR description 스캔 → 후속 task
