Data Analysis Report
Overview
Produce a report-ready data analysis document from data tables — either all data files in the current folder, or specific files the user provides/attaches. The report is structured so the user can take it directly to a presentation: a one-screen conclusion summary, followed by detail tables and a "needs manual confirmation" list.
Core principles:
- Traceability: every number must be traceable to a specific cell in the original data.
- No fabrication: when uncertain, leave blank and flag — never make up numbers.
- Confirm before analyzing: always confirm scope and time range with the user first.
When to Use
Trigger this skill when the user wants to:
- Create a data analysis report from tables in the current folder
- Create a data analysis report from specific files they provide or attach
- Generate a presentable/hand-off analysis based on local data files
- Analyze data tables and produce a report-ready summary
Typical user phrasings:
- "基于当前文件夹里的数据表,做一份分析报告"
- "分析一下这几个文件,出个报告"
- "帮我做个能拿去汇报的数据分析"
- "分析一下这些表,出个报告"
- "做个数据汇报"
Data Source
The skill accepts data from either:
- A directory: scan all supported data files in the folder (recursive)
- Specific files: one or more individual files the user points to or attaches
- Mixed: a combination of directories and individual files
Determine the data source at the start of Phase 1:
- If the user mentions a folder/directory, scan that directory.
- If the user mentions or attaches specific files, scan those files directly.
- If the user says "当前文件夹" or doesn't specify, scan the current workspace directory.
- If unclear, ask the user which files or folder to use.
Supported Data Formats
- Excel: .xlsx, .xls
- CSV/TSV: .csv, .tsv
- JSON: .json
- Other tabular formats: attempt to read; if unsupported, flag in the scan output
Workflow
Phase 1: Scan — Understand the Data Landscape
-
Determine the data source (see "Data Source" section above):
- Directory path, specific file path(s), or the current workspace.
-
Run the scan script to get a comprehensive overview of all data files:
# Scan a directory "<managed-python>" "C:\Users\86176\.workbuddy\skills\data-analysis-report\scripts\scan_tables.py" "<directory>" # Scan specific files "<managed-python>" "C:\Users\86176\.workbuddy\skills\data-analysis-report\scripts\scan_tables.py" "<file1>" "<file2>" # Mixed: directory + files "<managed-python>" "C:\Users\86176\.workbuddy\skills\data-analysis-report\scripts\scan_tables.py" "<directory>" "<file1>"Replace
<managed-python>with the managed Python path. Replace the path arguments with the actual directory or file paths identified in step 1. -
If pandas is not installed, install it first:
"<managed-python>" -m pip install pandas openpyxl xlrd -
Read the scan output carefully. Understand:
- What tables exist and their formats
- Column names and data types
- Row counts (data volume)
- Date ranges (time scope of the data)
- Numeric column statistics (min, max, mean, sum)
- Sample rows (data content and quality)
-
If the scan script fails or data is complex, manually read key files to supplement understanding. Use the Read tool for JSON, or run Python snippets for Excel/CSV.
Phase 2: Confirm Scope — Do NOT Skip This Step
Before any analysis, present findings to the user and confirm:
- Table inventory: list all data files found, with row counts and key columns.
- Time range: state the date range detected in the data, ask if this is the analysis period.
- Metrics & dimensions: identify which columns are metrics (数值) vs dimensions (维度), ask the user which ones matter for this report.
- Analysis focus: ask what the user cares about most — revenue trend, cost breakdown, growth rate, anomaly detection, etc.
- Reporting context: who is the audience? What is the purpose? This affects the level of detail and language.
Present this as a clear summary and wait for user confirmation. Use AskUserQuestion if multiple options need to be selected. Do not proceed to Phase 3 until the user confirms the scope.
Example confirmation message:
我扫描了数据文件,发现以下数据表:
1. 销售明细.xlsx — 3个Sheet,共12,450行,时间范围 2024-01-01 ~ 2024-09-30
2. 客户清单.csv — 320行
3. 退货记录.csv — 156行,时间范围 2024-06-01 ~ 2024-09-30
可分析的指标:营收、订单数、客单价、退货率
可拆解的维度:地区、品类、渠道、客户
请确认:
1. 分析时间范围是否为 2024-07-01 ~ 2024-09-30(Q3)?
2. 重点关注的指标是什么?
3. 报告受众是谁?
Phase 3: Analyze — Find the Top 3 Fluctuations
After scope confirmation:
-
Calculate changes: compute period-over-period (环比) or year-over-year (同比) changes for all key metrics. Use Python/pandas for accuracy.
-
Rank fluctuations: sort by absolute change magnitude (percentage or absolute, whichever is more meaningful for the metric). Pick the top 3.
-
For each of the top 3 fluctuations, determine:
- What happened: the metric, the direction (up/down), the magnitude (actual numbers: before → after, plus percentage change).
- When it happened: which time period showed the biggest change.
- Where it concentrated: break down by available dimensions (region, category, channel, etc.) to see if the fluctuation is concentrated in a specific segment.
- Possible why: based ONLY on data evidence — e.g., a specific dimension changed, a specific time point had an anomaly, a correlated metric moved. Clearly label as "基于数据推断" (data-based inference). Do NOT speculate beyond what the data shows.
-
Record data sources for every number: file name, sheet name, column, row range. This is mandatory for traceability.
-
Quality check: if any number cannot be traced to a specific data point, or if data is missing/ambiguous, add it to the "需人工确认" list. Do not include untraceable numbers in the main conclusions.
Phase 4: Produce Report — Ask for Format, Then Generate
-
Ask the user for output format if not already clear from context:
- Word (.docx): for formal reports, editable, clear pagination
- HTML: for browser viewing, flexible layout, supports table highlighting
- Markdown (.md): lightweight, universal, easy to convert
-
Generate the report following the structure in
references/output_format.md. Load that reference file for the detailed format specification.The report has four sections:
- 结论摘要 (one screen): 3-5 bullet points, each with fact + possible cause
- Top 3 波动分析: detailed analysis of each fluctuation
- 明细表: supporting data tables with source citations
- 需人工确认清单: items that need manual verification
-
Verify traceability: before finalizing, check that every number in Sections 1 and 2 has a source citation. Move any unverifiable numbers to Section 4.
-
One-screen check: ensure Section 1 fits on one screen (approximately 15-20 lines). If it doesn't, condense — merge similar points, remove redundant detail.
-
Save the report to the workspace directory and present it to the user.
Quality Rules (Non-Negotiable)
- Every conclusion must be traceable: cite file name, sheet, column, and row range.
- Never fabricate numbers: if data is missing or uncertain, leave blank and add to the "需人工确认" list.
- Separate facts from inferences: "发生了什么" = data facts; "可能原因" = data-based inferences, clearly labeled.
- Use actual numbers, not vague qualifiers: write "下降23%(¥1.2M → ¥0.92M)", not "大幅下降".
- Stay within confirmed scope: do not analyze tables or time periods the user did not confirm.
- Acceptance-ready: the user will spot-check 2-3 conclusions against the original data. Every conclusion must hold up under this check.
Resources
scripts/scan_tables.py
Automated data table scanner. Accepts one or more paths — directories (scanned recursively) or individual files. Run it at the start of Phase 1 to get a structured overview of all data files. Outputs: file names, formats, sheet names, columns, row counts, data types, date ranges, numeric column statistics, and sample rows.
references/output_format.md
Detailed specification for the report document structure. Load this file before generating the report in Phase 4. Contains: section structure, formatting rules, number formatting, traceability requirements, and examples.
微信扫一扫