name: 数据上下文提取器 description: > 通过从分析师中提取隐性知识,生成或改进公司特定的数据分析技能。
引导模式 - 触发器:“创建一个数据上下文技能”,“为我们的仓库设置数据分析”, “帮我为我们的数据库创建一个技能”,“为[公司]生成一个数据技能” → 发现模式,询问关键问题,生成初始技能和参考文件
迭代模式 - 触发器:“添加关于[领域]的上下文”,“技能需要更多关于[主题]的信息”, “用[指标/表/术语]更新数据技能”,“改进[领域]参考” → 加载现有技能,询问针对性问题,附加/更新参考文件
当数据分析师希望Claude理解他们公司的特定数据仓库、 术语、指标定义和常见查询模式时使用。
数据上下文提取器
一种元技能,从分析师中提取公司特定的数据知识,并生成定制的数据分析技能。
工作原理
该技能有两种模式:
- 引导模式:从零创建新的数据分析技能
- 迭代模式:通过添加领域特定的参考文件改进现有技能
引导模式
使用时机:用户想为其仓库创建新的数据上下文技能。
阶段1:数据库连接与发现
步骤1:识别数据库类型
询问:“您使用什么数据仓库?”
常见选项:
- BigQuery
- Snowflake
- PostgreSQL/Redshift
- Databricks
使用 ~~data warehouse 工具(查询和模式)连接。如果不明确,检查当前会话中可用的MCP工具。
步骤2:探索模式
使用 ~~data warehouse 模式工具:
- 列出可用的数据集/模式
- 识别最重要的表(询问用户:“分析师最常查询的3-5个表是什么?”)
- 提取这些关键表的模式详情
按方言的示例探索查询:
-- BigQuery: 列出数据集
SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA
-- BigQuery: 列出数据集中的表
SELECT table_name FROM `project.dataset.INFORMATION_SCHEMA.TABLES`
-- Snowflake: 列出模式
SHOW SCHEMAS IN DATABASE my_database
-- Snowflake: 列出表
SHOW TABLES IN SCHEMA my_schema
阶段2:核心问题(询问这些)
模式发现后,以对话方式询问这些问题(不要一次问完):
实体澄清(关键)
“当这里的人说’用户’或’客户’时,具体指什么?有不同的类型吗?”
倾听:
- 多种实体类型(用户vs账户vs组织)
- 它们之间的关系(1:1, 1:多, 多:多)
- 链接它们的ID字段
主要标识符
“对于[客户/用户/账户],主要标识符是什么?同一实体有多个ID吗?”
倾听:
- 主键与业务键
- UUID vs 整型ID
- 遗留ID系统
关键指标
“人们最常问的2-3个指标是什么?每个如何计算?”
倾听:
- 精确公式(ARR = monthly_revenue × 12)
- 每个指标来自哪些表/列
- 时间段惯例(过去7天、日历月等)
数据卫生
“在查询中应该总是过滤掉什么?(测试数据、欺诈、内部用户等)”
倾听:
- 总应包含的标准WHERE子句
- 指示排除的标志列(is_test, is_internal, is_fraud)
- 要排除的特定值(status = ‘deleted’)
常见陷阱
“新分析师在使用这些数据时通常会犯什么错误?”
倾听:
- 混淆的列名
- 时区问题
- NULL处理怪癖
- 历史与当前状态表
阶段3:生成技能
创建具有此结构的技能:
[公司]-数据-分析师/
├── SKILL.md
└── 参考/
├── 实体.md # 实体定义和关系
├── 指标.md # KPI计算
├── 表/ # 每个领域一个文件
│ ├── [领域1].md
│ └── [领域2].md
└── 仪表板.json # 可选:现有仪表板目录
SKILL.md模板:参见 参考/技能模板.md
SQL方言部分:参见 参考/SQL方言.md 并包含适当的方言注释。
参考文件模板:参见 参考/领域模板.md
阶段4:打包和交付
- 在技能目录中创建所有文件
- 打包为zip文件
- 向用户展示捕获的内容摘要
迭代模式
使用时机:用户有现有技能但需要添加上下文。
步骤1:加载现有技能
要求用户上传其现有技能(zip或文件夹),或如果已在会话中找到则定位。
阅读当前的SKILL.md和参考文件以了解已有文档。
步骤2:识别差距
询问:“需要更多上下文的领域或主题是什么?哪些查询失败或产生错误结果?”
常见差距:
- 新的数据领域(市场营销、财务、产品等)
- 缺失的指标定义
- 未文档化的表关系
- 新术语
步骤3:针对性发现
对于识别的领域:
-
探索相关表:使用
~~data warehouse模式工具查找该领域的表 -
询问领域特定问题:
- “用于[领域]分析的表有哪些?”
- “[领域]的关键指标是什么?”
- “对[领域]数据有特殊过滤器或陷阱吗?”
-
生成新参考文件:使用领域模板创建
参考/[领域].md
步骤4:更新和重新打包
- 添加新参考文件
- 更新SKILL.md的"知识库导航"部分以包含新领域
- 重新打包技能
- 向用户展示更新后的技能
参考文件标准
每个参考文件应包括:
对于表文档
- 位置:完整表路径
- 描述:此表包含什么,何时使用
- 主键:如何唯一标识行
- 更新频率:数据刷新频率
- 关键列:列名、类型、描述、备注的表
- 关系:此表如何连接到其他表
- 示例查询:2-3个常见查询模式
对于指标文档
- 指标名称:人类可读的名称
- 定义:简明英语解释
- 公式:精确计算与列引用
- 源表:数据来自哪里
- 注意事项:边缘情况、排除、陷阱
对于实体文档
- 实体名称:叫什么
- 定义:在业务中代表什么
- 主表:在哪里找到此实体
- ID字段:如何标识它
- 关系:如何与其他实体相关
- 常见过滤器:标准排除(内部、测试等)
质量检查表
交付生成的技能前,验证:
- [ ] SKILL.md有完整的前缀(名称、描述)
- [ ] 实体澄清部分清晰
- [ ] 关键术语已定义
- [ ] 标准过滤器/排除已文档化
- [ ] 每个领域至少2-3个示例查询
- [ ] SQL使用正确的方言语法
- [ ] 参考文件从SKILL.md导航部分链接