Skip to main content

inbox-sorter

This skill should be used when the user asks to "inbox 정리해줘", "파일 분류해줘", "파일 정리", "inbox 비워줘", "쌓인 파일 분류", "받은 파일 정리", "인박스 정리", "/inbox-sorter", "file sort", "organize inbox".

Informations de source

Dépôt
fivetaku/workmate
Dernière activité de la source
7 mai 2026 à 06:59
Langue détectée de SKILL.md
coréen
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
inbox-sorter
description
This skill should be used when the user asks to "inbox 정리해줘", "파일 분류해줘", "파일 정리", "inbox 비워줘", "쌓인 파일 분류", "받은 파일 정리", "인박스 정리", "/inbox-sorter", "file sort", "organize inbox".
tools
["Bash","Read","Write","Glob","Agent"]
# Inbox Sorter > 00-inbox/ 폴더의 파일과 폴더를 분석하고, 적절한 목적지로 분류합니다. > 모든 항목의 내용을 먼저 읽고 한 번에 분류 결과를 제시합니다. --- ## WHEN TRIGGERED - EXECUTE IMMEDIATELY `00-inbox/` 폴더를 스캔하고 Step 1부터 시작합니다. --- ## Workflow ### Step 1: 프리플라이트 [script] ```bash # inbox 존재 확인 ls ./00-inbox/ 2>/dev/null || echo "INBOX_NOT_FOUND" # 도구 확인 command -v pandoc >/dev/null 2>&1 && echo "PANDOC=yes" || echo "PANDOC=no" python3 -c "import openpyxl" 2>/dev/null && echo "OPENPYXL=yes" || echo "OPENPYXL=no" ``` **inbox가 없으면**: "00-inbox/ 폴더를 찾을 수 없습니다. 먼저 폴더를 만들고 파일을 넣어주세요." → 종료 **항목 목록 수집**: ```bash # 숨김파일, 임시파일 제외. 파일과 폴더 모두 포함. ls -1 ./00-inbox/ | grep -v '^\.' | grep -v '^~\$' | grep -v '.tmp$' ``` **항목이 없으면**: "00-inbox/가 비어있습니다. 정리할 파일을 넣어주세요." → 종료 **지원 형식**: pdf, docx, xlsx, pptx, csv, md, txt, hwp, jpg, png + 폴더 + 기타 --- ### Step 2: 내용 읽기 + 분류 [script + prompt] **모든 항목을 처음부터 내용까지 읽고 한 번에 분류한다.** 중간 단계 없음. #### 항목 유형별 내용 읽기 방법 | 유형 | 방법 | 범위 | |------|------|------| | **폴더** | `ls -1 ./00-inbox/폴더명/` | 내부 파일 목록으로 성격 판단 | | `.pptx` | `pandoc -t plain "파일" \| head -30` | 첫 슬라이드 텍스트 | | `.docx` | `pandoc -t plain "파일" \| head -50` | 첫 50줄 | | `.xlsx` | `python3 -c "import openpyxl; ..."` (헤더+4행) | 첫 시트 상단 | | `.pdf` | `Read(pages: "1")` | 첫 1페이지 | | `.csv` | `head -5 "파일"` | 헤더+4행 | | `.md`, `.txt` | `Read(limit: 30)` | 첫 30줄 | | `.hwp` | 파일명 기반 분류 (내용 추출 불가) | — | | 이미지 | 파일명 기반 분류 | — | **pandoc/openpyxl 미설치 시**: 해당 형식은 파일명 기반 분류 + `신뢰도: 낮음`. **대용량 파일 (50MB+)**: 내용 추출 생략. 파일명 기반 분류 + `신뢰도: 낮음`. **읽기 실패 시**: 에러 무시. 파일명 기반 fallback. 절대 중단하지 않는다. **병렬 실행**: 항목이 5개 이상이면 Bash 호출을 최대한 병렬로 실행하여 속도를 높인다. #### xlsx 읽기 스크립트 ```python python3 -c " import openpyxl wb = openpyxl.load_workbook('파일경로') ws = wb.active for row in ws.iter_rows(max_row=5, values_only=True): print(row) " ``` #### 분류 목적지 | 폴더 | 자연어 표시 | 이런 항목이 갈 수 있음 | |------|-----------|---------------------| | `data/` | 분석용 데이터 | CSV, 원시 데이터, 측정값, 로그 | | `references/` | 참고 자료 | 용어집, 가이드, 매뉴얼, 기준 문서, SOP | | `reports/` | 보고서/결과물 | 보고서, 분석 결과, 발표 자료, 대책서 | | `10-projects/` | 프로젝트 문서 | 기획서, 제안서, 프로젝트 산출물, 검토 자료 | | `20-operations/` | 운영/업무 자료 | 회의록, SOP, 양식, 프로세스 문서 | | `30-knowledge/` | 학습/지식 자료 | 아티클, 학습 자료, 리서치, 인사이트 | | `50-resources/` | 외부 참고 자료 | 외부 벤치마크, 샘플, 레퍼런스, teardown | | `90-archive/` | 보관 | 오래된 문서, 완료된 프로젝트 자료 | **분류 판단 순서:** 1. 파일명 키워드 + 내용을 **함께** 고려하여 최적 목적지를 판단 2. 내용이 확인되면 파일명보다 내용 기반 판단을 우선 3. 모든 항목에 대해 확정된 목적지를 결정 — "uncertain"으로 남기지 않는다 4. 내용을 읽었지만 여전히 애매하면 가장 가까운 목적지 + `신뢰도: 낮음` --- ### Step 3: 분류표 제안 + 승인 게이트 [review] **중복 체크 먼저:** 각 항목의 목적지에 같은 이름이 있는지 확인: ```bash test -e "./목적지/항목명" && echo "CONFLICT" ``` **최종 분류표 출력 (한 번만):** ``` ■ 인박스 분류 결과 | # | 항목명 | → 목적지 | 판단 근거 | 신뢰도 | |---|--------|---------|---------|--------| | 1 | 월간보고서_3월.xlsx | 보고서/결과물 (reports/) | 내용: 실적 집계 | 높음 | | 2 | meeting_0405.docx | 운영/업무 (20-operations/) | 내용: 회의 안건 | 높음 | | 3 | 설계리뷰/ | 프로젝트 문서 (10-projects/) | 내부 파일: 도면, 검토서 | 중간 | 이대로 이동할까요? 수정할 항목이 있으면 번호로 알려주세요. ``` **주의: 중간 과정(1차 분류, uncertain 목록 등)을 사용자에게 보여주지 않는다. 최종 결과만 한 번 깔끔하게 제시한다.** **사용자 응답 처리:** - "이대로" / "확인" / "ㅇㅇ" → Step 4 실행 - 번호 지정 → 해당 항목 목적지 변경 후 다시 표시 - "취소" → 종료 (항목 그대로) --- ### Step 4: 실행 + 결과 보고 [script] **이동 실행:** ```bash mv "./00-inbox/항목명" "./목적지/항목명" ``` **이동 규칙:** - 모든 경로는 쌍따옴표로 감싼다 (한글, 공백 대응) - 폴더도 mv로 동일하게 이동 (재귀 이동됨) - 충돌 항목은 사용자 선택에 따라 처리 (덮어쓰기 / `항목명_2.확장자` / 건너뛰기) - 이동 실패한 항목은 건너뛰고 계속 진행 (부분 실패 허용) - 삭제는 절대 하지 않는다 **결과 보고:** ``` 인박스 정리 완료 이동 완료: N개 - 보고서/결과물 (reports/): 3개 - 분석용 데이터 (data/): 2개 건너뜀: M개 (있을 경우만) 이동 실패: K개 (있을 경우만) 00-inbox/ 남은 항목: X개 ``` **메모리 기록:** 분류 결과를 `memory/MEMORY.md`의 `## Unsorted`에 한 줄 기록: `- YYYY-MM-DD: inbox-sorter 실행, N개 항목 분류 (reports/ 3, data/ 2, ...)` **ONBOARDING_MODE 추가 저장:** onboarding 스킬이 `ONBOARDING_MODE`로 호출하면 (인수 또는 컨텍스트 플래그), 분류 결과를 JSON으로 별도 저장: ```bash cat > ./memory/state/onboarding-inbox-snapshot.json << 'EOF' { "run_at": "2026-04-09T14:23:11Z", "items": [ {"name": "월간보고_4월.xlsx", "dest": "reports/", "reason": "실적 집계", "confidence": "높음"}, {"name": "defect_2603.csv", "dest": "data/", "reason": "원시 데이터", "confidence": "높음"} ], "dest_counts": {"reports/": 3, "data/": 2, "references/": 1} } EOF ``` 그리고 결과 메시지 끝에 한 줄 추가: ``` → 온보딩 Phase 4로 돌아갑니다. 이 분류 결과를 기반으로 직무 해석을 제안할게요. ``` onboarding 스킬은 이 JSON을 Read하여 Phase 4 재해석의 근거로 활용합니다. --- ## Edge Cases **사용자가 새 목적지를 원하면**: "다른 폴더에 넣고 싶으면 경로를 알려주세요" → 분류표에서 수정. **항목이 매우 많으면 (내부 처리)**: 15개 이상이면, Agent 도구로 5개씩 배치 병렬 처리. 각 Agent에게 항목 목록을 명시적으로 파티셔닝하여 중복 처리 방지. 사용자에게는 투명하게 — 결과만 보여줌. **목적지 폴더가 없으면**: mkdir -p로 생성 후 이동. --- ## Integration Points - **council**: 분류 판단이 애매한 항목에 대해 다관점 분석 요청 가능 - **data-analyst**: 분류 후 data/ 폴더의 CSV를 바로 분석 - **content-draft**: 분류 후 references/의 문서를 참조하여 보고서 초안 - **cross-check**: 분류 결과의 신뢰도를 교차 검증
Voir sur GitHub