关于 nutmeg-store
nutmeg-store 是一项为足球数据选择存储格式、项目结构和发布方式的技能。它按项目规模和用户目标提供建议,并支持控制原始数据是否纳入研究项目打包。
主要功能
- 01按项目规模选择存储方案
- 02足球数据目录结构建议
- 03仪表板与静态网站发布选项
- 04数据共享方式建议
- 05可控制原始数据的研究打包
- 06按目标提供成本提示
适用场景
- 01为足球分析数据选择格式
- 02发布仪表板或静态可视化
- 03与协作者共享数据集
- 04打包研究成果以供审阅或交接
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ withqwerty/ nutmeg --skill nutmeg-store安装后在 Claude Code 中输入/nutmeg-store确认已加载。
详细介绍
存储
帮助用户为其足球数据选择存储格式、位置和发布方式。
准确性
在回答有关特定提供方事实(ID、端点、架构、坐标、速率限制)的任何问题之前,请阅读并遵循 ${CLAUDE_PLUGIN_ROOT}/docs/accuracy-guardrail.md。始终使用 search_docs,绝不要根据训练数据猜测。
首先:检查配置文件
读取 .nutmeg.user.md。如果文件不存在,则使用合理的默认设置(Python 和 pandas,中级水平)继续,并在最后建议运行 /nutmeg 设置。
存储格式决策树
小型项目(< 100MB,单用户)
| 格式 | 最适合 | 工具 |
|---|---|---|
| JSON | 原始事件数据、API 响应 | 任何语言 |
| CSV | 表格统计数据,易于共享 | 电子表格、pandas、R |
| Parquet | 列式分析、快速查询 | polars、pandas、DuckDB、Arrow |
| SQLite | 关系型查询、多张表 | 任何语言、数据库浏览工具 |
建议: 原始数据从 JSON 入手,处理后的数据使用 Parquet。
中型项目(100MB - 10GB)
| 格式 | 最适合 | 备注 |
|---|---|---|
| Parquet 文件 | 分析工作负载 | 比 JSON 小 5-10 倍,列式读取速度快 |
| DuckDB | 对本地文件进行 SQL 分析 | 可直接查询 Parquet/CSV,无需服务器 |
| SQLite | 带联接的关系型数据 | 单个文件、可移植、符合 ACID |
建议: 使用 Parquet 存储,使用 DuckDB 查询。
大型项目(> 10GB,多用户)
| 解决方案 | 最适合 | 费用 |
|---|---|---|
| PostgreSQL | 生产应用、复杂查询 | 可免费自托管;托管服务需付费 |
| BigQuery | 大规模分析查询 | 有免费额度,之后按查询付费 |
| Cloudflare R2 | 对象存储(原始文件) | 有免费额度,之后按 GB 付费 |
| S3 / GCS | 大规模对象存储 | 按 GB 付费 |
价格和免费额度会变化。在报价前,请查看提供方当前的定价页面。
目录结构
建议足球数据项目使用以下结构:
project/
data/
raw/ # Untouched API/scrape responses
statsbomb/
events/
matches.json
fbref/
2024/
processed/ # Cleaned, transformed data
events.parquet
shots.parquet
passes.parquet
derived/ # Computed metrics
xg_model.parquet
passing_networks/
notebooks/ # Analysis notebooks
scripts/ # Data pipeline scripts
outputs/ # Charts, reports, exports
.env # API keys (gitignored)
.nutmeg.user.md # Nutmeg profile
发布和共享
交互式仪表板
| 平台 | 语言 | 费用 | 备注 |
|---|---|---|---|
| Streamlit | Python | 免费(社区云) | 最受欢迎的足球分析工具。可从 GitHub 部署 |
| Observable | JavaScript | 免费额度 | 非常适合 D3.js 可视化。Notebooks + Framework |
| Shiny | R | 免费额度(shinyapps.io) | 与 R 生态系统集成 |
| Gradio | Python | 免费(HuggingFace Spaces) | 快速演示 ML 模型 |
静态网站
| 平台 | 备注 |
|---|---|
| GitHub Pages | 免费。适合静态图表(D3、matplotlib 导出内容) |
| Cloudflare Pages | 免费。比 GH Pages 更快、功能更多 |
| Vercel | 免费额度。适合 Next.js/Astro 网站 |
共享数据
| 方法 | 最适合 |
|---|---|
| GitHub 仓库 | 小型数据集(< 100MB),代码和数据放在一起 |
| GitHub Releases | 较大的文件(查看 GitHub 当前的大小限制) |
| Kaggle Datasets | 社区共享,易于发现,免费 |
| HuggingFace Datasets | 面向 ML、支持版本管理、免费 |
移交研究项目
在研究项目中(存在 research/.active),使用
python3 "${CLAUDE_PLUGIN_ROOT}/core/nutmeg.py" bundle --raw no(或 --raw yes)将工作打包给队友、审查者或客户。每次都必须询问用户选择哪种方式:
--raw no不会包含原始数据(项目的data/、运行输出和图表快照),而是按哈希列出这些数据。 适用于获得许可的提供方数据或俱乐部数据。--raw yes会包含这些数据。仅当用户有权共享数据时使用;该选项会显示团队的许可说明。
打包内容始终包括问题、计划、日志、收据、输出、包含代码的运行记录、数据清单和环境(锁定文件,或 Python 版本和软件包列表)。
社交媒体 / 内容
| 输出 | 工具 | 备注 |
|---|---|---|
| 静态图表 | matplotlib、ggplot2、D3.js | 导出为 PNG/SVG |
| 动画图表 | matplotlib.animation、D3 transitions | 导出为 GIF/MP4 |
| Twitter/X 帖子串 | 图表图片 + 替代文本 | 无障碍访问很重要 |
| 博客文章 | Markdown + 嵌入式图表 | GitHub Pages、Medium、Substack |
成本意识
根据用户的 .nutmeg.user.md 目标,提示相关成本:
- 探索 / 学习: 所有内容都可以免费使用。StatsBomb 开放数据 + Jupyter/Colab + GitHub Pages。
- 内容创作: Streamlit Community Cloud 免费。Cloudflare Pages 免费。
- 专业用途: 为商业数据访问预留预算。供应商定价需协商,因此不要引用具体金额。
- 产品: 数据库托管($7-50/mo),数据许可成本需单独考虑。
评论
支持 Markdown