# harvard-art-museums-data-engineering-analytics

Builds an ETL pipeline for the Harvard Art Museums collection and sets up interactive analytics. Uses Python, SQL databases, and Streamlit.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 978 installs · ★ 5
- Author: reason-machines
- License: LicenseRef-Unknown · policy=link-only · description only; the file stays with the author
- Source: https://github.com/reason-machines/data-skills/tree/HEAD/skills/harvard-art-museums-data-engineering-analytics/SKILL.md
- Updated: 2026-10-09
- HTML: https://affpapa.org/en/nevibecode/skills/harvard-art-museums-data-engineering-analytics

## What it does

This skill guides the assistant through extracting artifact records from the museum REST API. The workflow handles page iteration and respects rate limits during network calls. Incoming nested JSON payloads get separated into relational tables covering object details and media items using pandas.

Data gets cleaned by trimming text and dropping broken entries before insertion into MySQL or TiDB Cloud. On top of the database, it provides twenty analytical SQL queries paired with interactive Plotly visual charts inside a Streamlit web app.

Execution requires a registered `HARVARD_API_KEY` alongside database connection credentials. Without these environment variables, ingestion scripts cannot reach endpoints or store records.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering-analytics -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/harvard-art-museums-data-engineering-analytics/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/harvard-art-museums-data-engineering-analytics/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering-analytics -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/harvard-art-museums-data-engineering-analytics/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering-analytics -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/harvard-art-museums-data-engineering-analytics/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install reason-machines/data-skills harvard-art-museums-data-engineering-analytics
```

2. **Manually: put the files in place**
- File: `.github/skills/harvard-art-museums-data-engineering-analytics/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering-analytics -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/reason-machines/data-skills --path skills/harvard-art-museums-data-engineering-analytics
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/harvard-art-museums-data-engineering-analytics/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering-analytics -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/reason-machines/data-skills/tree/HEAD/skills/harvard-art-museums-data-engineering-analytics/SKILL.md

## When to use it
- fetch museum artifacts with pagination from the Harvard API
- normalize nested JSON into tables for media and metadata
- ingest validated records into MySQL or TiDB Cloud schemas
- display collection insights using Plotly charts in Streamlit

## Example prompts
- Build an ETL pipeline to pull artifact records from Harvard Art Museums into MySQL
- Parse nested image fields from museum JSON into pandas DataFrames
- Set up a Streamlit dashboard with Plotly charts for museum collection metrics

## Similar
- [xlsx](https://affpapa.org/en/nevibecode/skills/xlsx.md) — skill · 187223 installs
- [google-agents-cli-observability](https://affpapa.org/en/nevibecode/skills/google-agents-cli-observability.md) — skill · 511300 installs
- [caveman-evidence-review](https://affpapa.org/en/nevibecode/skills/caveman-evidence-review.md) — skill · 104500 installs
- [migration](https://affpapa.org/en/nevibecode/skills/migration.md) — skill · 103900 installs
- [performance-optimization](https://affpapa.org/en/nevibecode/skills/performance-optimization.md) — skill · 65200 installs
- [supabase](https://affpapa.org/en/nevibecode/skills/supabase.md) — skill · 8 installs

From the same set: [reason-machines/data-skills](https://affpapa.org/en/nevibecode/by/reason-machines/data-skills.md) — 74 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
