# task-940.2: 폴더 정리 규칙 강화 + 시스템화 (한정위임)

## 배경
- 작업량 증가로 파일/폴더가 늘어나면서 체계적 정리 필요성 증가
- 기존 규칙 존재: `/home/jay/workspace/memory/specs/file-organization.md`
- 임시 작업물 분리 및 주기적 정리 필요
- 규칙이 시스템적으로 강제되어야 함 (문서만으로는 부족)

## 작업 범위

### Step 1: 현행 폴더 구조 감사 (Audit)
현재 실제 폴더 구조를 스캔하고 문제점 파악:

- `/home/jay/workspace/` 전체 트리 구조 분석
- `/home/jay/projects/` 전체 트리 구조 분석
- 임시 파일 / 미분류 파일 식별
- 팀별 작업 디렉토리(`teams/dev*/`) 상태 점검
- memory/ 하위 구조 일관성 점검
- 기존 file-organization.md 대비 준수율 평가

### Step 2: 폴더 정리 규칙 강화
기존 `/home/jay/workspace/memory/specs/file-organization.md`를 업그레이드:

**workspace 구조 (확정)**
```
/home/jay/workspace/
├── scripts/              # 유틸리티 스크립트 (독립 실행 가능)
│   └── tests/            # 스크립트 테스트
├── services/             # 상시 가동 서비스
│   └── whisper-gpu/      # Whisper GPU 서비스 등
├── dashboard/            # 대시보드 UI
├── workers/              # 백그라운드 워커
├── prompts/              # 팀장 워크플로우 프롬프트
├── teams/
│   ├── shared/           # 공유 규칙 (QC-RULES 등)
│   ├── dev1/             # 1팀 작업 디렉토리
│   │   └── task-xxx/     # 태스크별 격리
│   ├── dev2/ ~ dev8/
│   └── security/
├── memory/
│   ├── specs/            # 시스템 스펙 (영구 보존)
│   ├── reports/          # 완료 보고서 (영구 보존)
│   ├── tasks/            # 위임 지시서 (90일)
│   ├── events/           # .done 프로토콜 (30일 후 정리)
│   ├── daily/            # 일일 로그
│   ├── research/         # 리서치 결과 (영구 보존)
│   ├── meetings/         # 미팅 기록 (영구 보존)
│   ├── plans/            # 계획서 (영구 보존)
│   ├── backups/          # 백업 (자동 정리)
│   └── projects/         # 프로젝트별 메모리
├── logs/                 # 시스템 로그 (60일)
└── tmp/                  # 임시 작업물 (7일 후 자동 삭제)
```

**프로젝트 구조 (확정)**
```
/home/jay/projects/<프로젝트명>/
├── src/                  # 소스 코드
├── tests/                # 테스트
├── docs/                 # 프로젝트 문서
├── scripts/              # 프로젝트 전용 스크립트
└── CLAUDE.md             # 프로젝트 규칙
```

**팀 작업 디렉토리 규칙**
```
/home/jay/workspace/teams/devN/
├── task-xxx.x/           # 태스크별 격리 디렉토리
│   ├── *.py / *.ts       # 작업 파일
│   └── output/           # 산출물 (v1/, v2/ 버전별)
└── (루트에 직접 파일 두지 않음)
```

### Step 3: 자동 정리 스크립트
`/home/jay/workspace/scripts/cleanup-workspace.py` 생성

**정리 대상 및 보존 기간:**
- `workspace/tmp/`: 7일
- `memory/events/*.done.clear`: 30일
- `memory/events/*.done.acked`: 30일
- `memory/tasks/dispatch-*.md`: 90일 (task-*.md는 영구)
- `logs/`: 60일
- `memory/backups/`: 각 백업 정책에 따라
- `teams/dev*/task-*/`: 완료 후 30일 (보고서가 있는 경우에만)
- cokacdir 업로드 파일(`~/.cokacdir/workspace/*/`): 30일

**삭제 금지 (하드코딩):**
- memory/reports/, memory/research/, memory/specs/
- memory/meetings/, memory/plans/
- CLAUDE.md, MEMORY.md, .env, .env.keys
- organization-structure.json, task-timers.json, token-ledger.json

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

### Step 4: 폴더 검증 스크립트 (Linter)
`/home/jay/workspace/scripts/lint-workspace.py` 생성

- 규칙 위반 감지:
  - workspace 루트에 불필요한 파일 존재
  - teams/ 하위에 task-* 없이 파일 산재
  - 프로젝트 파일이 workspace에 존재 (workspace-project 분리 위반)
  - 200줄 초과 파일 감지
  - tmp/에 7일 초과 파일
- 위반 사항을 리포트로 출력
- 심각도 분류: ERROR (즉시 조치), WARNING (권장 조치), INFO (참고)

### Step 5: 자동 정리 cron 등록
- cleanup-workspace.py를 매일 자정 실행 (--execute 모드)
- lint-workspace.py를 매주 월요일 09시 실행 (결과 보고)
- cokacdir --cron으로 등록

### Step 6: file-organization.md 최종 업데이트
- Step 2의 강화된 규칙으로 기존 문서 업데이트
- 팀장 봇들이 참조할 수 있도록 명확한 경로 가이드 포함
- MEMORY.md에도 참조 링크 추가

## 참조 자료
- 기존 규칙: `/home/jay/workspace/memory/specs/file-organization.md`
- 모듈화 철학: `/home/jay/.openclaw/workspace/memory/MODULARIZATION-PHILOSOPHY.md`
- 이미지 버전 보존 규칙: MEMORY.md "이미지/산출물 버전 보존 필수" 참조

## 주의사항
- cleanup-workspace.py는 반드시 --dry-run 기본값 (실수 방지)
- 삭제 전 반드시 로그 기록 (`logs/cleanup-YYYY-MM-DD.log`)
- 기존 파일 삭제는 보존 기간 경과한 것만 (절대 현재 작업 파일 삭제 금지)
- 진행 중인 팀의 작업 디렉토리 절대 건드리지 않음
- 200줄 이하 규칙 준수 (스크립트 자체도)

## 산출물
- memory/specs/file-organization.md 업데이트
- scripts/cleanup-workspace.py (자동 정리)
- scripts/lint-workspace.py (규칙 검증)
- cron 스케줄 2건 등록 (정리 + 검증)
- 현행 감사 보고서 (memory/reports/task-940.2.md에 포함)
