# task: 파일 자동 정리 시스템 구축

## 목표
불필요한 임시 파일이 쌓이지 않도록 주기적 자동 정리 스크립트 생성.
정리 원칙: `/home/jay/workspace/memory/specs/file-organization.md` 참조.

## 작업 내용

### 1. 자동 정리 스크립트 생성
- 파일: `/home/jay/workspace/scripts/file-cleanup.py`
- 기능:
  1. **cokacdir 업로드 파일 정리** (30일 초과)
     - 경로: `/home/jay/.cokacdir/workspace/*/` 내 PDF, PNG, JPG, JPEG 파일
     - CLAUDE.md, *.py, *.sh 등 설정/스크립트 파일은 삭제 금지
     - 30일 이상 된 미디어 파일만 삭제
  2. **.done.clear 정리** (30일 초과)
     - 경로: `/home/jay/workspace/memory/events/*.done.clear`
     - 30일 이상 된 파일 삭제
  3. **dispatch 지시서 정리** (90일 초과)
     - 경로: `/home/jay/workspace/memory/tasks/dispatch-*.md`
     - 90일 이상 된 파일 삭제
  4. **시스템 로그 정리** (60일 초과)
     - 경로: `/home/jay/workspace/logs/*.log`
     - 60일 이상 된 로그 파일 삭제
     - 현재 활성 로그는 보존 (오늘 수정된 파일 스킵)

### 2. 실행 모드
- `python3 file-cleanup.py` → 기본: dry-run (삭제 대상만 출력)
- `python3 file-cleanup.py --execute` → 실제 삭제 실행
- `python3 file-cleanup.py --report` → 현재 디스크 사용량 + 정리 가능 용량 보고

### 3. 안전장치
- **삭제 금지 리스트**: file-organization.md의 "삭제 금지 대상" 참조
  - memory/reports/, memory/research/, memory/specs/, memory/meetings/, memory/plans/
  - CLAUDE.md, MEMORY.md, .env, .env.keys
- **dry-run 기본**: --execute 플래그 없으면 절대 삭제 안 함
- **로그 기록**: 삭제한 파일 목록을 `/home/jay/workspace/logs/file-cleanup.log`에 기록
- **최소 보존**: 각 카테고리에서 최소 1개 파일은 보존 (전체 삭제 방지)

### 4. cron 등록용 래퍼
- 파일: `/home/jay/workspace/scripts/run-file-cleanup.sh`
- 내용: `python3 /home/jay/workspace/scripts/file-cleanup.py --execute >> /home/jay/workspace/logs/file-cleanup.log 2>&1`
- cokacdir --cron으로 매일 새벽 3시 등록 가능하도록 준비

### 5. 업로드 파일 정리 유틸리티 (보너스)
- `python3 file-cleanup.py --organize` 모드
- cokacdir workspace에 있는 업로드 파일을 적절한 위치로 이동
  - 프로젝트명이 파일명/경로에 포함된 경우 → 해당 프로젝트 assets/docs/로 이동
  - 그 외 → workspace/uploads/YYYY-MM/ 로 이동
- 이동 전 확인 목록 출력 (dry-run)
- `--organize --execute`로 실제 이동

## 검증
- dry-run 실행 → 삭제 대상 목록 정상 출력, 실제 삭제 없음
- --execute 실행 → 대상 파일 삭제 + 로그 기록
- 삭제 금지 대상 파일이 절대 삭제되지 않음 확인
- --report → 디스크 사용량 + 정리 가능 용량 정상 출력
- uploads/ 디렉토리 자동 생성 확인

## 주의사항
- 삭제 전 반드시 dry-run 기본
- 프로젝트 폴더(/home/jay/projects/) 내 파일은 절대 건드리지 않음
- git 관련 파일(.git, .worktrees) 절대 건드리지 않음
- 현재 활성 세션 폴더의 파일은 삭제하지 않음 (modification time 기준)
