Skip to main content

excel-to-report

This skill should be used when the user asks to "엑셀 분석 보고서 만들어줘", "데이터 종합 분석해줘", "파일들 연결해서 분석해줘", "원인 분석 PPT 만들어줘", "이번 달 실적 분석해줘", "불량 원인 찾아줘", "경영진 보고용 PPT", "데이터 분석 보고서", "excel analysis report", "multi-file analysis". Make sure to use this skill whenever the user provides multiple Excel files and wants cross-file analysis, root cause analysis, or a presentation report. This skill combines audit, cleaning, cross-analysis, visualization, and PPT generation into one workflow.

Datos de origen

Repositorio
fivetaku/workmate
Última actividad en el origen
7 de mayo de 2026 a las 06:59
Idioma detectado de SKILL.md
coreano
Estrellas
0
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
excel-to-report
description
This skill should be used when the user asks to "엑셀 분석 보고서 만들어줘", "데이터 종합 분석해줘", "파일들 연결해서 분석해줘", "원인 분석 PPT 만들어줘", "이번 달 실적 분석해줘", "불량 원인 찾아줘", "경영진 보고용 PPT", "데이터 분석 보고서", "excel analysis report", "multi-file analysis". Make sure to use this skill whenever the user provides multiple Excel files and wants cross-file analysis, root cause analysis, or a presentation report. This skill combines audit, cleaning, cross-analysis, visualization, and PPT generation into one workflow.
arguments
[{"name":"path","description":"분석 대상 엑셀 파일이 있는 폴더 경로 또는 개별 파일 경로","default":""}]
tools
["Bash","Read","Write","Glob","Grep","Agent"]
# Excel-to-Report > 여러 엑셀 파일을 입력받아 오딧 → 클리닝 → 크로스파일 분석 → 문제점 탐지 → 근본원인 분석 → 차트 시각화 → PPT 보고서까지 자동 생성합니다. --- ## WHEN TRIGGERED - EXECUTE IMMEDIATELY 이 스킬이 트리거되면 Phase 1부터 순서대로 실행한다. 사용자가 폴더/파일 경로를 이미 제공했으면 바로 시작, 아니면 경로를 물어본다. --- ## Preflight: Dependency Check ```bash python3 -c "import openpyxl" 2>/dev/null || python3 -m pip install --break-system-packages openpyxl python3 -c "import matplotlib" 2>/dev/null || python3 -m pip install --break-system-packages matplotlib python3 -c "import pptx" 2>/dev/null || python3 -m pip install --break-system-packages python-pptx python3 -c "import pandas" 2>/dev/null || python3 -m pip install --break-system-packages pandas ``` --- ## Phase 1: INGEST & AUDIT (수집 · 오딧 · 클리닝) **Type**: script + prompt ### Step 1-1: 파일 탐색 및 확인 1. 지정된 경로에서 `.xlsx`, `.xls`, `.csv` 파일을 Glob으로 탐색 2. 파일 목록을 사용자에게 제시: ``` 분석 대상 파일 N개를 확인했습니다: 1. 파일명.xlsx (시트 N개, 행 N개) 2. ... 이 파일들로 진행할까요? ``` **GATE 1**: 사용자 승인 없이 다음 단계 진행 금지. ### Step 1-2: 오딧 Python 스크립트(Bash)로 각 파일에 대해 자동 실행: | 검사 항목 | 방법 | |----------|------| | 수식 에러 | `#REF!`, `#VALUE!`, `#N/A`, `#DIV/0!` 탐지 | | 합계 검증 | 소계/합계 행의 값 ≠ 상세 행의 합산 | | 비율 검증 | 퍼센트 값 ≠ 분자/분모 계산값 | | 크로스시트 | 같은 워크북 내 시트 간 동일 항목 수치 불일치 | | 크로스파일 | 파일 간 동일 항목(매출, 생산량 등) 수치 불일치 | | 구조 이슈 | 병합셀 수, 숨겨진 행/열, 수식 유무, 혼합 타입 열 | 결과를 심각도별(Critical/Warning/Info) 테이블로 보고. ### Step 1-3: 클리닝 오딧 결과를 기반으로 AI 가독성 클리닝 실행: - 병합셀 해제 → 빈 셀에 원래 값 채우기 - 퍼센트 문자열("30.9%") → 숫자(0.309) 변환 - datetime 객체 → "YYYY-MM-DD" 문자열 정규화 - 소계/합계 행 구분을 위한 `row_type` 컬럼 추가 (data/subtotal/total) - 클린 파일은 `_clean.xlsx` 접미사로 **원본 보존 + 별도 저장** **원본 파일은 절대 수정하지 않는다.** --- ## Phase 2: CONNECT & DETECT (연결 · 탐지 · 원인분석) **Type**: script + prompt ### Step 2-1: 크로스파일 연결 분석 클린 데이터를 기반으로 Python으로 크로스파일 집계: - 일별/주별/월별 집계 (생산, 불량, 재고, 판매, 손익 등) - 라인별/제품별/거래처별 분해 - 파일 간 동일 지표 비교 (매출: 경영현황 vs 판매현황 등) ### Step 2-2: 문제 시점 탐지 통계적 이상치 및 패턴 이탈 탐지: - 달성률/불량률/이익률 등 핵심 지표의 시계열 이상치 - 주별 비교에서 분기 평균 대비 ±1.5σ 초과 구간 - 전월 대비 급변(±20% 이상) 시점 탐지 결과를 "문제 시점 목록"으로 정리. ### Step 2-3: 근본원인 구조 분석 **LLM이 담당** — 데이터 패턴에서 인과관계 가설을 생성: - Level 0 (외부 환경) → Level 1 (1차 대응) → Level 2 (생산 충격) → Level 3 (실적 영향) → Level 4 (경영 결과) - 모든 인사이트에 **출처 파일명 + 근거 수치** 필수 - 데이터 근거 없는 추정은 **"데이터 미확인 가설"**로 명시 - `references/기준값.md`가 있으면 판단 기준으로 참조 **GATE 2**: 근본원인 가설을 사용자에게 제시하고 승인/수정 요청. ``` 근본원인 분석 가설입니다: 1. [외부] ... 2. [1차 영향] ... 3. [경영 결과] ... 수정하거나 추가할 내용이 있으신가요? ``` --- ## Phase 3: VISUALIZE (시각화) **Type**: script 확정된 분석 결과를 기반으로 matplotlib 차트 자동 생성. ### 기본 차트 세트 (6종) | # | 차트 | 용도 | |---|------|------| | 1 | KPI 대시보드 | 핵심 지표 월별 비교 (카드 + 막대) | | 2 | 위기 타임라인 | 듀얼축 라인 + 이벤트 마커 (인과 시각화) | | 3 | 비용 구조 | 100% 누적 막대 (비용 비중 변화) | | 4 | 라인/부문 비교 | 그룹 막대 (피해 vs 정상 비교) | | 5 | 폭포(Waterfall) | 이익 변동 요인 분해 | | 6 | 회복 추적 | 불릿/게이지 (기준선 대비 현재 위치) | ### 차트 생성 규칙 - 한글 폰트 자동 감지 (우선순위): 1. Windows/WSL: `/mnt/c/Windows/Fonts/malgun.ttf` (맑은 고딕) 2. macOS: `Apple SD Gothic Neo` (system font) 3. Linux: `Nanum Gothic` (apt install fonts-nanum) 4. 최종 fallback: `DejaVu Sans` (한글 깨질 수 있음, 경고 출력) Python helper 권장: ```python import os, matplotlib.font_manager as fm def get_korean_font(): candidates = [ "/mnt/c/Windows/Fonts/malgun.ttf", # WSL "C:/Windows/Fonts/malgun.ttf", # Windows native ] for path in candidates: if os.path.exists(path): return fm.FontProperties(fname=path).get_name() for name in ["Apple SD Gothic Neo", "AppleGothic", # macOS "NanumGothic", "Nanum Gothic", # Linux "Malgun Gothic"]: # Windows installed try: fm.findfont(name, fallback_to_default=False) return name except Exception: continue return "DejaVu Sans" # last resort plt.rcParams["font.family"] = get_korean_font() plt.rcParams["axes.unicode_minus"] = False ``` - DPI: 150 (보고서용 고해상도) - 색상: 문제 시점은 빨강, 정상은 파랑, 목표선은 점선 - 차트 제목 = 인사이트 (예: "2월 영업이익 79% 감소") - `charts/` 폴더에 PNG로 저장 분석 내용에 따라 차트 종류와 수를 LLM이 판단하여 조정. --- ## Phase 4: REPORT (PPT 보고서) **Type**: script + prompt ### Step 4-1: 슬라이드 구성 확인 **GATE 3**: PPT 생성 전 슬라이드 구성을 사용자에게 제시. ``` 보고서 슬라이드 구성: 1. 표지 2. Executive Summary (3카드 요약) 3. KPI 대시보드 4. 위기 타임라인 5. 부문별 비교 6. 비용 구조 분석 7. 이익 변동 분석 8. 회복 추적 9. 시사점 및 조치 사항 추가/수정할 내용이 있으신가요? ``` ### Step 4-2: PPT 생성 python-pptx로 슬라이드 조립: - 와이드스크린 16:9 (13.333" x 7.5") - 표지: 제목 + 소속 + 기준일 (`CLAUDE.md` 담당자 정보 참조) - 차트 슬라이드: 이미지 삽입 + 하단 인사이트 박스 - 시사점 슬라이드: 단기/중기/확인필요 3분할 레이아웃 - 모든 수치에 출처 명시 - 크로스체크 포인트가 있으면 별도 표시 ### Step 4-3: 저장 및 보고 ``` reports/YYYY-MM-DD_{주제}_분석보고서.pptx ``` 최종 산출물 목록을 사용자에게 보고: - PPT 보고서 (핵심) - 클린 엑셀 파일 (_clean.xlsx) - 차트 이미지 (charts/) - 크로스체크 포인트 목록 --- ## Edge Cases | 상황 | 대응 | |------|------| | 파일이 1개뿐 | 크로스파일 분석 건너뛰고, 단일 파일 심층 분석으로 전환 | | 파일이 10개 초과 | "파일이 많습니다. 핵심 파일 5~7개를 선택해주세요" 안내 | | 컬럼명이 파일마다 다름 | 오딧 단계에서 스키마 비교표 제시 후 사용자에게 매핑 확인 | | 기간이 파일마다 다름 | 날짜 범위 불일치 경고 + 공통 기간만 분석할지 사용자 선택 | | 데이터가 비어있음 | 해당 파일 제외하고 진행할지 사용자 확인 | | 차트 생성 실패 (폰트 등) | 기본 폰트로 fallback, 경고만 표시하고 계속 진행 | --- ## 금지 사항 - 원본 파일 수정 금지 (항상 _clean.xlsx로 별도 저장) - 데이터에 없는 수치를 생성(할루시네이션)하지 않는다 - 상관관계를 인과관계로 단정하지 않는다 (가설로 제시) - 예측/예보 수치를 제시하지 않는다 (과거 데이터 분석만) - 사용자 승인 없이 PPT를 저장하지 않는다 --- ## Integration Points - `references/기준값.md`: 정상/주의/경고 판단 기준으로 참조 - `references/보고서양식.md`: PPT 양식이 있으면 해당 양식 준수 - `CLAUDE.md` 담당자 정보: 표지 소속/이름에 반영 - `audit-xls` 스킬: Phase 1 오딧 로직의 기반 - `clean-data-xls` 스킬: Phase 1 클리닝 로직의 기반 - `data-analyst` 스킬: 단일 파일 분석은 data-analyst로 라우팅 - `cross-check` 스킬: 크로스체크 포인트 검증에 활용 가능
Ver en GitHub