Vibe Coding 课程-干货集训
04 数据分析大师
实操流程
项目开发文档
- 下载此项目开发文档SPEC-FULL.md下载
新建项目
- 打开vs code或其他IDE
- 点击「New File...」
- 完成创建并打开



- 点击「New File...」
用Claude Code开发
- 把开发文档放入这个项目中

- 打开Claude Code插件页面
- 在对话页面输入下列文案,Claude Code就会自动开始开发。中间有需要人工配置的环境,Claude Code都会给出详细的操作步骤
@SPEC-FULL.md 按照这个开发文档,拆解开发计划,并逐步完成开发。有需要我配置的节点,要告诉我详细的操作步骤
- 在对话页面输入下列文案,Claude Code就会自动开始开发。中间有需要人工配置的环境,Claude Code都会给出详细的操作步骤
Skill文档
Skill文件夹结构

文件夹详细内容
References
文件名 | 代码 |
|---|---|
cognitive-biases.md | |
data-interpretation.md | |
data-storytelling.md | |
driver-tree-analysis.md | |
general-frameworks.md | |
hypothesis-driven-analysis.md | |
personal-methodology.md (这个模块取决于个人常用的分析方法有哪些) | |
visualization-rules.md | |
Script
文件名 | 内容 |
|---|---|
chart_generator.py | |
file_processor.py | |
report_builder.py | |
SKILL.md
---
name: data-insight-orchestrator
description: |
数据洞察分析 skill。包含完整的分析流程、方法论和原则库。
当用户上传数据文件(Excel/PDF/Word/TXT/CSV)并要求分析时自动激活。
---
# Data Insight Orchestrator
## 概述
这是一个**完整的数据分析 skill**,包含:
- 分析流程编排(Phase 1-6)
- 分析方法论(假设驱动、So What 追问)
- 认知偏差检验库
- 数据叙事框架
---
## 触发条件
以下情况自动激活此 skill:
- 用户上传数据文件(.xlsx, .xls, .pdf, .docx, .csv, .txt)
- 用户使用 `/analyze-data` 命令
- 用户表达"分析数据"、"数据洞察"、"帮我分析"等意图
---
## 执行流程
```
Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 → Phase 6
文件识别 询问侧重点 数据分析 图表生成 页面构建 交付
```
---
# Part A: 执行流程
## Phase 1: 文件识别与预处理
### 数据来源(二选一)
| 来源 | 触发方式 | 处理方式 |
|------|----------|----------|
| **用户 attach 文件** | 用户在对话中附加文件 | 直接读取 attach 的文件路径 |
| **uploads/ 目录** | 用户提前放入文件 | 扫描 `uploads/` 目录 |
**优先级**:如果用户 attach 了文件,优先使用 attach 的文件;否则扫描 uploads/ 目录。
### 支持格式
| 格式 | 扩展名 | 处理库 |
|-----|--------|-------|
| Excel | .xlsx, .xls | openpyxl + pandas |
| PDF | .pdf | PyPDF2 |
| Word | .docx | python-docx |
| CSV | .csv | pandas |
| TXT | .txt | 原生读取 |
### 输出示例
```
检测到 3 份文件:
- 销售数据.xlsx (Excel) - 2.3MB - 包含12个月销售记录
- 用户调研.pdf (PDF) - 1.1MB - 满意度调研报告
- 会议纪要.docx (Word) - 256KB - Q3复盘会议记录
```
---
## Phase 2: 了解分析侧重点
**必须在分析前完成此步骤**
向用户询问:
```
在开始分析之前,请告诉我:
1. 核心问题:你最想通过这些数据回答什么问题?
(例如:销售趋势、用户行为、成本构成...)
2. 关注指标:有特别关注的指标或维度吗?
(例如:增长率、转化率、某个时间段...)
3. 用途场景:这份分析的用途是什么?
□ 内部汇报(简洁专业)
□ 公开发布(视觉吸引)
□ 决策支持(数据详尽)
4. 其他要求:还有什么特别需要注意的吗?
(可选,如:需要对比竞品、关注异常值...)
```
**等待用户回复后再继续下一阶段**
---
## Phase 3: 数据分析
### 3.1 假设驱动分析(核心方法)
**不是"看看数据说什么",而是"用数据验证假设、驱动决策"**
执行步骤:
1. **明确核心问题**
- 问题重构:`"分析销售数据"` → `"找到销售增长的机会点"`
- 确认:分析结果会影响什么决策?
2. **构建假设树**
```
核心问题:为什么 Q3 销售下滑?
│
├─ 假设1:需求端问题(市场萎缩/竞品抢占/需求转移)
├─ 假设2:供给端问题(产品力/定价/供应链)
└─ 假设3:渠道端问题(流量/经销商/营销效率)
```
3. **验证假设**:按优先级逐个用数据验证
4. **So What 追问**(每个发现至少追问3层)
```
数据现象 → So What? → 业务含义 → So What? → 行动建议 → So What? → 预期影响
```
### 3.2 应用基础框架
- **MECE**:相互独立,完全穷尽
- **金字塔原理**:结论先行,以上统下
- **5W1H**:What/Why/Who/When/Where/How
- **对比分析**:时间对比/空间对比/标杆对比/目标对比
### 3.3 偏差检验(必须)
每个结论都要检验:
**统计陷阱**:
- [ ] 辛普森悖论:分组后结论是否仍成立?
- [ ] 幸存者偏差:有没有看不到的数据?
- [ ] 回归均值:极端值是否会自然回归?
**因果检验**:
- [ ] 相关≠因果:是否把相关当因果?
- [ ] 反向因果:因果方向是否正确?
- [ ] 遗漏变量:是否有隐藏的混淆变量?
**心理偏误**:
- [ ] 确认偏误:是否在找支持预设的证据?
- [ ] 是否有反面证据被忽略?
### 3.4 核心准则检查
- [ ] **因果推演**:每个结论是相关性还是因果性?链条是否完整?
- [ ] **可落地性**:用户看完能做什么?能在下周一开始执行吗?
- [ ] **执行计划**:短期如何破局?中长期如何积累复利?
- [ ] **反常识验证**:如果结论反直觉,证据链是否足够坚实?
### 3.5 提炼核心结论
- 交叉关联多份文件的数据
- 提取 **3-7 个核心结论**
- 每个结论必须:有数据支撑 + 指向行动 + 可量化预期
---
## Phase 4: 图表生成
**图表选择规则**:
| 分析目的 | 图表类型 | chart_type 值 |
|---------|---------|---------------|
| 时间趋势 | 折线图 | `line` |
| 占比构成 | 饼图 | `pie` |
| 对比差异 | 柱状图 | `bar` |
| 相关性探索 | 散点图 | `scatter` |
| 分布情况 | 面积图 | `area` |
**输出位置**:`outputs/charts/`
---
## Phase 5: 前端页面构建
技术栈:React + Tailwind CSS + Recharts
执行:
1. 生成 `outputs/reports/report.json`
2. 启动开发服务器:`npm run dev`
3. 访问:http://localhost:5173
---
## Phase 6: 交付
**叙事结构**:采用 SCR 结构
- **S(情境)**:分析背景和数据概况
- **C(冲突)**:发现的问题或机会
- **R(解决)**:行动建议和预期影响
**输出格式**:
```
分析完成!
背景概要:
[1-2句话说明分析了什么数据]
核心发现(按重要性排序):
1. [发现1] — So What: [业务含义] — 建议: [行动]
2. [发现2] — So What: [业务含义] — 建议: [行动]
...
最高优先级行动:
[最重要的一个行动建议,预期效果量化]
查看完整报告:
http://localhost:5173
```
---
# Part B: 核心分析准则
## 准则1:相关性 ≠ 因果性
**原则**:数据只能告诉我们"什么在一起发生",不能直接告诉我们"什么导致了什么"。
**推演方法**:
- 时间顺序检验:原因必须发生在结果之前
- 排除第三变量:是否存在同时影响两者的隐藏变量?
- 反向因果检验:是A导致B,还是B导致A?
- 机制合理性:因果链条是否符合常识?
**示例**:
```
错误:付费用户生成图片少 → 所以我们应该限制用户生成图片
正确:付费用户生成图片少,但修改次数多、使用时长长
→ 说明他们是"质量追求者"而非"数量追求者"
→ 因果推演:追求质量的用户更愿意为专业功能付费
→ 行动建议:服务这类用户,强调"精修"价值主张
```
## 准则2:结论必须指向行动
**检验标准**:
- 具体性:能否在下周一就开始执行?
- 可衡量:执行后能否用数据验证效果?
- 权责清晰:谁来负责执行?
**结论模板**:
```
[发现] + [原因分析] + [具体行动] + [预期效果]
示例:
发现:Android中端用户转化率(21.7%)是iPhone用户(6.8%)的3倍
原因:这类用户需要引导来明确需求
行动:① 保留风格选择流程 ② 投放定向调整为Android中端
预期:付费转化率提升15-20%
```
## 准则3:短期突破 + 中长期复利
| 阶段 | 目标 | 思考重点 |
|------|------|----------|
| **短期(1-2周)** | 快速突破 | 最大痛点?什么能立竿见影? |
| **中期(1-2月)** | 建立飞轮 | 如何形成正向循环? |
| **长期(3月+)** | 构建壁垒 | 什么能产生复利? |
**长期思考**:
- 这个动作做完后,是消耗掉了还是积累下来了?
- 一年后回看,这件事会不会越来越有价值?
## 准则4:反常识结论必须经得起推敲
当结论与常识相悖时,必须检验:
- [ ] 数据来源是否可靠?样本量是否足够?
- [ ] 是否存在选择偏差或幸存者偏差?
- [ ] 能否找到支撑这个结论的第二数据源?
- [ ] 领域专家是否认可这个逻辑?
---
# Part C: 报告数据规范
## 写作风格规范
**核心原则**:说人话,不要写成营销文案。
### 标题(title)
| 要求 | 好例子 | 坏例子 |
|-----|--------|--------|
| 直接说发现,不加修饰 | `Android中端转化率是iPhone的3倍` | `被忽视的金矿——Android的惊人表现` |
| 用数字说话 | `抖音渠道ROI比信息流高2.4倍` | `抖音投放的隐藏价值` |
| 口语化,像同事聊天 | `付费用户其实生成图更少` | `付费用户行为的反直觉真相` |
| 不用"惊人""颠覆""真相"等词 | `老用户复购贡献了60%收入` | `老用户的惊人贡献` |
### 描述(description)
| 要求 | 好例子 | 坏例子 |
|-----|--------|--------|
| 解释原因+给建议 | `完成风格选择的用户更明确需求,转化更高。建议保留引导流程。` | `数据揭示了令人震惊的真相:风格选择竟然是转化的关键!` |
| 一句话说完,不铺垫 | `朋友推荐渠道的Android用户转化最好,值得加大投放。` | `我们发现了一个被严重低估的机会点...` |
| 不用感叹号 | `这个渠道值得重点投入` | `这是被严重低估的金矿!` |
### 摘要(summary.overall)
| 要求 | 好例子 | 坏例子 |
|-----|--------|--------|
| 先说最重要的结论 | `Android中端用户是核心付费群体,转化率21.7%。抖音+朋友推荐是最优渠道组合。` | `我们深入分析了用户数据,发现了多个重要洞察...` |
| 不要"我们发现""数据显示" | `Q3销售下滑主要因为华东区经销商流失` | `通过深入分析,我们发现Q3销售下滑的原因...` |
---
## 完整结构
```json
{
"meta": {
"title": "报告标题(直接说分析了什么)",
"generated_at": "2024-01-01T00:00:00.000000",
"version": "1.0"
},
"summary": {
"overall": "整体摘要:先说最重要的结论,再说次要的(100字以内)",
"total_conclusions": 5,
"high_importance_count": 2,
"source_files": ["文件1.xlsx", "文件2.pdf"]
},
"conclusions": [
{
"id": 1,
"title": "结论标题:数字+发现,不加修饰词(15字以内)",
"description": "解释原因+行动建议,不铺垫不感叹(80字以内)",
"data_support": "关键数据,用分号分隔多条",
"source_files": ["文件1.xlsx"],
"importance": "high | medium | low",
"chart_type": "bar | line | pie | scatter | area",
"chart_data": { ... }
}
]
}
```
## chart_data 格式
**柱状图 (bar)**:
```json
{
"xKey": "name",
"yKey": "value",
"data": [{"name": "A", "value": 100}, {"name": "B", "value": 200}]
}
```
**折线图 (line)**:
```json
{
"xKey": "month",
"series": ["actual", "target"],
"data": [{"month": "Q1", "actual": 100, "target": 90}]
}
```
**饼图 (pie)**:
```json
{
"nameKey": "name",
"valueKey": "value",
"data": [{"name": "华东", "value": 42}, {"name": "华南", "value": 28}]
}
```
---
# Part D: 参考文档按需加载指南
`references/` 目录包含详细方法论文档。**不要全部读取**,根据分析场景按需加载。
---
## 场景 → 文档 对照表
| 遇到的场景 | 读取哪个文档 | 文件大小 |
|-----------|-------------|---------|
| 不知道从何下手,需要构建分析框架 | `hypothesis-driven-analysis.md` | 6.7KB |
| 结论反常识,需要检验是否有偏差 | `cognitive-biases.md` | 13KB |
| 需要拆解 KPI/收入/增长的驱动因素 | `driver-tree-analysis.md` | 9.2KB |
| 准备汇报/写报告,需要叙事结构 | `data-storytelling.md` | 11KB |
| 不确定用什么图表展示 | `visualization-rules.md` | 1.2KB |
| 需要 MECE/金字塔原理等基础框架 | `general-frameworks.md` | 1KB |
| 数据解读有疑问(异常值/基准线等) | `data-interpretation.md` | 1.3KB |
---
## 具体触发条件
### 1. `hypothesis-driven-analysis.md`(假设驱动)
**何时读取**:
- 用户给的问题很模糊(如"帮我分析一下")
- 需要构建假设树
- 需要做 So What 追问但不确定怎么追
### 2. `cognitive-biases.md`(认知偏差)
**何时读取**:
- 发现的结论与常识相悖
- 数据呈现的趋势很"完美",需要怀疑
- 需要检验:辛普森悖论、幸存者偏差、相关≠因果
- 用户质疑结论的可靠性
### 3. `driver-tree-analysis.md`(驱动因素树)
**何时读取**:
- 需要拆解"为什么收入下降"
- 需要量化各因素的贡献度
- 需要做敏感性分析(哪个杠杆影响最大)
### 4. `data-storytelling.md`(数据叙事)
**何时读取**:
- 用户说"要向老板汇报"
- 需要写执行摘要
- 需要 SCR/SCQA 叙事结构
- 需要针对不同受众调整内容
### 5. `visualization-rules.md`(可视化规则)
**何时读取**:
- 不确定该用柱状图还是折线图
- 图表设计有疑问
### 6. `general-frameworks.md`(通用框架)
**何时读取**:
- 需要用 MECE 拆解问题
- 需要金字塔原理组织结论
- 需要 5W1H 全面覆盖
### 7. `data-interpretation.md`(数据解读)
**何时读取**:
- 遇到异常值不知道怎么处理
- 需要确定对比基准
---
## 读取示例
```
场景:用户说"销售下降了,帮我分析原因"
思考:
1. 问题比较模糊 → 需要构建假设树
2. 要拆解销售下降的驱动因素
行动:
- 读取 hypothesis-driven-analysis.md(构建假设)
- 读取 driver-tree-analysis.md(拆解因素)
```
```
场景:分析发现"付费用户反而生成内容更少"
思考:
1. 这个结论反直觉
2. 可能存在因果谬误或幸存者偏差
行动:
- 读取 cognitive-biases.md(检验偏差)
```
---
## 注意事项
- **不要一次性读取所有文档**,会浪费 token
- 先用 Part B 的核心准则完成分析
- 只在遇到具体困难时,按需读取对应文档
- 读取后将关键方法应用到当前分析中