kdyclean - 프로젝트 파일/폴더 정리 도구
개발 중 발생한 불필요한 파일을 체계적으로 정리하는 skill입니다.
실행 단계
Phase 1: 프로젝트 분석
먼저 프로젝트 구조를 분석하여 정리 대상을 파악합니다.
# 프로젝트 타입 감지
ls -la package.json pyproject.toml requirements.txt Cargo.toml go.mod 2>/dev/null
Phase 2: 정리 대상 식별
아래 카테고리별로 파일/폴더를 검색합니다:
2.1 루트 레벨 임시 파일
| 패턴 | 설명 |
|---|---|
nul | Windows 시스템 파일 |
*.tmp, *.bak | 임시/백업 파일 |
status.md, task.md | 오래된 상태 파일 |
test_result.json | 임시 테스트 결과 |
_verify_batch*, _tmp_* | 서브에이전트가 생성한 임시 스크립트 |
batch_*.json | 임시 배치 데이터 파일 |
2.2 로그/디버그 파일
| 패턴 | 위치 |
|---|---|
*.log | src/, 루트 |
log*.txt, debug*.txt | src/ |
error*.log | src/ |
output*.txt | src/ |
2.3 빌드 아티팩트 / 캐시 (복구 가능)
| 디렉토리 | 프로젝트 타입 | 복구 방법 |
|---|---|---|
node_modules/ | Node.js | npm install |
.next/ | Next.js | npm run build |
dist/, build/ | 빌드 출력 | 빌드 명령 재실행 |
.turbo/ | Turborepo | 자동 생성 |
.eslintcache | ESLint | 자동 생성 |
*.tsbuildinfo | TypeScript | 자동 생성 |
tsconfig.tsbuildinfo | TypeScript | 자동 생성 |
.swc/ | SWC 컴파일러 | 자동 생성 |
venv/, .venv/ | Python | python -m venv venv |
__pycache__/ | Python | 자동 생성 |
.pytest_cache/ | pytest | 자동 생성 |
.mypy_cache/ | mypy | 자동 생성 |
.ruff_cache/ | Ruff | 자동 생성 |
target/ | Rust | cargo build |
2.4 로그 디렉토리 정리
logs/또는*/logs/내 오래된 로그- 최신 N개만 유지 (기본: 1개)
Phase 3: 사용자 확인
반드시 삭제 전 사용자에게 목록을 보여주고 확인받기!
표시 형식:
## 삭제 예정 파일/폴더
### 루트 레벨 (X개)
- file1, file2, ...
### 로그/디버그 (X개)
- src/error.log, src/log.txt, ...
### 빌드 아티팩트 (~XXX MB)
- node_modules/, .next/, venv/, ...
### 로그 디렉토리 (X개 중 최신 1개 유지)
- logs/old_log_1.log, ...
진행하시겠습니까?
Phase 4: 삭제 실행
사용자 확인 후 순서대로 삭제:
# 1. 루트 임시 파일
rm -f nul *.tmp *.bak
rm -f _verify_batch* _tmp_* batch_*.json
# 2. 로그/디버그 파일
rm -f src/*.log src/log*.txt src/debug*.txt
# 3. 빌드 아티팩트 / 캐시
rm -rf node_modules/ .next/ dist/ build/
rm -rf .turbo/ .swc/
rm -f .eslintcache *.tsbuildinfo tsconfig.tsbuildinfo
rm -rf venv/ .venv/ __pycache__/ .pytest_cache/
rm -rf .mypy_cache/ .ruff_cache/
# 4. 로그 정리 (최신 1개 유지)
cd logs && ls -1 *.log | sort | head -n -1 | xargs rm -f
Phase 5: .gitignore 업데이트 (선택)
삭제된 파일 패턴을 .gitignore에 추가할지 확인:
# 임시 파일
*.tmp
*.bak
nul
_verify_batch*
_tmp_*
batch_*.json
# 로그
*.log
**/logs/
# 빌드 아티팩트 / 캐시
node_modules/
.next/
dist/
build/
.turbo/
.swc/
.eslintcache
*.tsbuildinfo
venv/
.venv/
__pycache__/
.pytest_cache/
.mypy_cache/
.ruff_cache/
Phase 6: 결과 보고
## 정리 완료
### 삭제됨
- 루트 레벨: X개 파일
- 로그/디버그: X개 파일
- 빌드 아티팩트: ~XXX MB
- 로그 디렉토리: X개 (최신 1개 유지)
### 수정됨
- .gitignore: X개 패턴 추가
### 복구 방법
[프로젝트 타입에 맞는 복구 명령 제공]
주의사항
- 삭제 전 반드시 확인 - 사용자 승인 없이 삭제하지 않음
- .env 파일 보존 - 환경 변수 파일은 절대 삭제하지 않음
- Git 저장소 확인 - .git/ 디렉토리는 건드리지 않음
- 커스텀 제외 - 사용자가 제외할 파일/폴더 지정 가능
사용 예시
# 기본 실행
/kdyclean
# 특정 디렉토리만
/kdyclean src/
# 빌드 아티팩트만
/kdyclean --artifacts-only
# 로그만 정리
/kdyclean --logs-only
프로젝트별 설정
프로젝트 루트에 .kdyclean.yml 파일이 있으면 해당 설정을 따름:
# .kdyclean.yml 예시
exclude:
- important_logs/
- custom_cache/
keep_logs: 3 # 최신 로그 3개 유지
extra_patterns:
- "*.debug"
- "temp_*"
관련 스킬/에이전트
| 도구 | 역할 | 관계 |
|---|---|---|
/kdysetting | 프로젝트 셋팅 전 정리 | Recommend (kdysetting 전 실행 권장) |
/kdyextract | 코드 추출 전 정리 | Recommend (추출 전 실행 권장) |
code-reviewer | 코드 리뷰 후 정리 | Recommend (리뷰 후 실행 권장) |
/kdyweb | 페이지 검증 후 정리 | Recommend (verify 후 실행 권장) |