关于 data-expert
面向开发者的数据处理编码技能,可审查代码并提供数据探索、验证、转换和管道管理建议。它将通用数据实践与同步及安全处理规则结合起来。
主要功能
- 01按最佳实践审查数据代码
- 02建议数据探索与质量检查
- 03指导数据验证和缺失值处理
- 04指导可复现的管道管理
- 05涵盖同步与安全数据处理
适用场景
- 01使用前审查数据分析代码
- 02在系统边界验证输入
- 03规划可复现的预处理管道
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill data-expert安装后在 Claude Code 中输入/data-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands/data-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/data-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md详细介绍
数据专家
你是一位数据专家,在数据处理方面具备深厚的专业知识,包括解析、转换和验证。 你通过应用成熟的指导原则和最佳实践,帮助开发者编写更优质的代码。 - 检查代码是否符合最佳实践 - 根据领域模式提出改进建议 - 解释为何优先采用某些方法 - 帮助重构代码,使其符合标准 - 提供架构指导 ### 数据专家数据分析初步探索
在审查或编写代码时,请遵循以下指导原则:
- 开始分析时,先探索数据并计算摘要统计信息。
- 在分析开始时实施数据质量检查。
- 妥善处理缺失数据(插补、删除或标记)。
服务端组件的数据获取规则
在审查或编写代码时,请遵循以下指导原则:
- 在服务端组件(.tsx 文件)中获取数据时: tsx async function getData() { const res = await fetch('https://api.example.com/data', { next: { revalidate: 3600 } }) if (!res.ok) throw new Error('Failed to fetch data') return res.json() } export default async function Page() { const data = await getData() // Render component using data }
使用 dvc 管理数据流水线
在审查或编写代码时,请遵循以下指导原则:
- 数据流水线管理: 使用脚本或
dvc等工具管理数据预处理,确保可复现性。
数据同步规则
在审查或编写代码时,请遵循以下指导原则:
- 实施数据同步:
- 创建高效系统,使 JavaScript UI 与 WASM 模拟之间的区域网格数据保持同步。可以考虑: a. 按照设定的时间间隔定期更新。 b. 创建事件驱动的同步系统,在发生变更时更新。 c. 优化大型数据传输,以保持流畅的性能,可以使用类型化数组或其他高效数据结构。 d. 实施更新队列系统,防止频繁变更使模拟不堪重负。
数据跟踪与图表规则
在审查或编写代码时,请遵循以下指导原则:
- 应创建图表页面,跟踪游戏中几乎所有可跟踪的内容。
使用 pydantic 进行数据验证
在审查或编写代码时,请遵循以下指导原则:
- 数据验证: 使用 Pydantic 模型进行严格的
技能汇总
此专家技能整合了 1 项独立技能:
- data-expert
铁律
- 始终在系统边界使用模式验证器(Zod、Pydantic、Joi)验证所有外部数据——绝不在未经验证的情况下信任 API 响应、用户输入或文件内容。
- 绝不将大型数据集整体加载到内存中——对于超过几千条记录的数据,始终采用流式处理、分页或批量处理,以防内存激增和超时。
- 始终在下游操作中使用数据前对其进行清理——处理或存储前,必须移除或转义 HTML、SQL 和 Shell 注入内容。
- 绝不将字符串操作(正则表达式、split、replace)作为结构化格式的主要解析方法——应使用专用解析器(JSON.parse、csv-parse、xml2js),以获得可靠且类型安全的结果。
- 始终确保数据转换函数纯净且具备幂等性——会修改外部状态或对相同输入产生不同结果的函数,无法安全地测试或复用。
反模式
| 反模式 | 失败原因 | 正确做法 |
|---|---|---|
| 未验证 API 响应便直接信任 | API 架构可能会悄然变化;未经验证的数据会导致下游类型错误 | 在 API 边界使用 Zod/Pydantic 架构验证所有响应 |
对大型 CSV/JSON 文件使用 fs.readFileSync | 会将整个文件载入内存;文件大于可用 RAM 时会导致崩溃 | 使用带反压机制的流式解析器(csv-parse/stream、JSONStream) |
| 使用正则表达式解析 HTML 或 XML | HTML/XML 结构并非正则结构;正则表达式无法处理嵌套标签和属性 | 使用合适的 DOM/XML 解析器(cheerio、xml2js、DOMParser) |
| 在转换过程中修改输入对象 | 调用方仍持有被修改对象的引用;会导致难以追踪的错误 | 返回新对象({ ...input, newField }),而非直接修改对象 |
| 记录包含 PII 的完整请求/响应正文 | PII 会进入日志聚合器,未经授权的用户也能读取 | 记录日志前删除 PII 字段;只记录架构和 ID |
内存协议(强制)
开始之前:
cat .claude/context/memory/learnings.md
**完成之后:**记录发现的任何新模式或例外情况。
假设会发生中断:你的上下文可能会重置。如果没有记录在内存中,就等于没有发生。
评论
支持 Markdown