harvard-artifacts-data-engineering-app — Claude Code skill
A skill that walks an agent through an ETL pipeline on Harvard Art Museums API data, SQL storage and a Streamlit dashboard with Plotly charts.
npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -a claude-codeWhat harvard-artifacts-data-engineering-app does
The skill covers the whole chain. It pulls museum objects from the Harvard Art Museums API page by page, unpacks the nested JSON, and spreads it across three tables: artifactmetadata, artifactmedia and artifactcolors. From there the rows go into MySQL or TiDB, and a Streamlit dashboard with Plotly charts sits on top.
You get working pieces to start from: a pymysql connection helper, table definitions with foreign keys, extract and transform functions, and inserts that refresh existing rows with ON DUPLICATE KEY UPDATE. For analysis there are more than 20 ready SQL queries over the collection.
Nothing runs without HARVARD_API_KEY and a reachable database, since the app reads DB_HOST, DB_USER, DB_PASSWORD and DB_NAME from the environment. The schema targets MySQL or TiDB — the upsert statements will not work on SQLite. Dependencies come from requirements.txt: streamlit, pandas, requests, pymysql, plotly and python-dotenv.
What it helps with
- build an ETL pipeline from the Harvard Art Museums API into a relational database
- flatten nested object JSON into normalized tables
- stand up a dashboard with charts for a museum collection
- run analytical SQL over artifact metadata and colors
- load rows into MySQL or TiDB while updating existing records
Example prompts for the agent
- Build the pipeline: fetch objects from the Harvard Art Museums API and load them into
artifactmetadata,artifactmediaandartifactcolors. - Create a Streamlit dashboard with Plotly charts for artifact colors and techniques.
- Write SQL queries to analyze the collection by culture and period.
How to install harvard-artifacts-data-engineering-app
1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -a claude-code2Manually: put the files in place
~/.claude/skills/harvard-artifacts-data-engineering-app/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/harvard-artifacts-data-engineering-app/
1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -a codex2Manually: put the files in place
.agents/skills/harvard-artifacts-data-engineering-app/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -a cursor2Manually: put the files in place
.cursor/skills/harvard-artifacts-data-engineering-app/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install reason-machines/data-skills harvard-artifacts-data-engineering-app2Manually: put the files in place
.github/skills/harvard-artifacts-data-engineering-app/SKILL.md1Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -a gemini-cli2Platform CLI
gemini skills install https://github.com/reason-machines/data-skills --path skills/harvard-artifacts-data-engineering-appManually: put the files in place
.devin/skills/harvard-artifacts-data-engineering-app/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -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-artifacts-data-engineering-app
How do I install harvard-artifacts-data-engineering-app in Claude Code?
Run npx skills add reason-machines/data-skills --skill harvard-artifacts-data-engineering-app -a claude-code. The skill file lands at ~/.claude/skills/harvard-artifacts-data-engineering-app/SKILL.md.
What does harvard-artifacts-data-engineering-app do?
It guides an agent through fetching data from the Harvard Art Museums API, turning nested JSON into relational tables, loading MySQL or TiDB, and building a Streamlit dashboard with Plotly charts.
What do I need before running it?
A HARVARD_API_KEY and a MySQL or TiDB database, because the app reads DB_HOST, DB_USER, DB_PASSWORD and DB_NAME from environment variables.