# dirty hygiene D1a — system-spec backup 35 targeted restore (2026-06-23)

**상태명**: `DIRTY_HYGIENE_D1A_BACKUP35_RESTORED_EVENTS44_DYNAMIC_SEPARATED_ACTIVE_FALSE`
**승인 범위**: deleted 79 중 **static system-spec backup 35개만** HEAD 기준 targeted restore. events 44 = dynamic marker 분리(restore 안 함). 삭제 확정 commit 미승인.

## 실행 전 (snapshot)
- local HEAD = **5c21fddaad22**.
- deleted 79 snapshot = **backup 35** (memory/backups/system-spec/*, 2026-04-07~05-02) + **events 44** (memory/events/*.done.acked·.notified, 2026-04) + 기타 0.
- backup 35 전수 HEAD + origin/main 존재 확인 = **누락 0**.

## 실행 (backup 35만, targeted)
- `git checkout HEAD -- <backup35 명시 목록>` (working tree 정렬, **repo history 무변경**). exit 0.
- 명시 목록 = /tmp/backup35.txt (system-spec 35개 한정, events/8파일/modified 제외).

## 검증 (전부 PASS)
- **backup system-spec deleted 잔여 = 0** ✅ (35개 전부 working tree 복원, dirty 해소).
- **events 44 = 여전히 deleted, 건드리지 않음** ✅ (done-watcher dynamic marker 영역으로 분리 기록).
- **8파일 clean 유지 = dirty 0** ✅ (sync 반영분 무영향).
- **modified 7 불변** ✅ (matrix.json 포함 = matrix delta 별도축, 건드리지 않음).
- restore 대상 **backup 35개 밖으로 안 번짐** (events/modified/untracked 보존).

## 결과 집계
- deleted(D): 79 → **44** (backup 35 복원, events 44 잔존).
- 남은 전체 dirty: 245 → **211** (35 감소 + untracked 미세 +1 = net -34). untracked 160·modified 7·deleted 44.
- ★ events 44 = **done-watcher dynamic marker 영역**으로 분리 박제. restore 안 함(watcher 재토글로 불안정). task-2536.done 등 실시간 토글 관측 → 무리한 반복 복구 금지.

## 불변식 / 다음
- 복구 = working tree 정렬(checkout HEAD), **history 변경 0** · 삭제 확정 commit **0** · 수동 .done **0**.
- events 44 / modified 7(matrix 포함) / untracked memory/* 보존 — **별도축 유지**.
- matrix delta 미착수 · Activation Readiness 미착수 · **ACTIVE=false · P0-B FROZEN**.
- 다음(별도 승인): ①events 44 dynamic marker 처리 방향(watcher 정책 — restore 아님) ②matrix delta ③untracked 정리 ④Activation Readiness. 자동 착수 금지.
