harvard-art-museums-data-engineering — Claude Code skill: ETL
A skill for building ETL pipelines on Harvard Art Museums API data: normalise into MySQL, run SQL analytics, ship a Streamlit dashboard.
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a claude-codeWhat harvard-art-museums-data-engineering does
The skill walks an agent through the whole path from an API request to an interactive dashboard. It covers paged fetching of objects with rate limits in mind, splitting nested JSON into metadata, image and colour tables, then querying the result.
Inside you get requests and pandas code, a MySQL/TiDB schema with foreign keys, a set of analytical queries, and a Streamlit app with Plotly charts. You need a Harvard Art Museums API key, a MySQL database, and environment variables in .env: HARVARD_API_KEY, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME. Without the key the API calls fail outright, so get one before the first run.
The pipeline assumes MySQL or TiDB. On Postgres you rewrite the schema and the connection code. Dependencies come from requirements.txt plus streamlit, pandas, requests, mysql-connector-python, plotly, python-dotenv.
What it helps with
- pull museum objects from the Harvard Art Museums API page by page
- flatten nested JSON into normalised tables
- design a MySQL schema with foreign keys for artifact metadata
- run SQL analytics over a collection
- build a Streamlit dashboard with Plotly charts
Example prompts for the agent
- Build an ETL pipeline for Harvard Art Museums API artifacts and load them into MySQL
- Write SQL queries for collection analytics and show the results in Streamlit
- Design tables for artifact metadata, images and colors
How to install harvard-art-museums-data-engineering
1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a claude-code2Manually: put the files in place
~/.claude/skills/harvard-art-museums-data-engineering/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/harvard-art-museums-data-engineering/
1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a codex2Manually: put the files in place
.agents/skills/harvard-art-museums-data-engineering/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a cursor2Manually: put the files in place
.cursor/skills/harvard-art-museums-data-engineering/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install reason-machines/data-skills harvard-art-museums-data-engineering2Manually: put the files in place
.github/skills/harvard-art-museums-data-engineering/SKILL.md1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a gemini-cli2Platform CLI
gemini skills install https://github.com/reason-machines/data-skills --path skills/harvard-art-museums-data-engineeringManually: put the files in place
.devin/skills/harvard-art-museums-data-engineering/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about harvard-art-museums-data-engineering
How do I install harvard-art-museums-data-engineering in Claude?
Run npx skills add reason-machines/data-skills --skill harvard-art-museums-data-engineering -a claude-code. The skill file then lands at ~/.claude/skills/harvard-art-museums-data-engineering/SKILL.md.
What does harvard-art-museums-data-engineering do?
It guides an agent through building a pipeline: fetching data from the Harvard Art Museums API, transforming JSON into relational tables, running analytical SQL, and rendering a Streamlit dashboard.
What do I need before running it?
A Harvard Art Museums API key and access to a MySQL database. Both the key and the connection settings go into .env.