Skip to content
Productivity
Skill

/museum-art

Source authentic, high-res PUBLIC-DOMAIN artwork from museum open-access APIs (Met, Cleveland, SMK, Rijksmuseum, NGA, Art Institute of Chicago, Getty, Smithsonian) instead of AI-generated or generic-stock imagery. The default move whenever a visual needs an aesthetic, credible

BOOST
From plugin
cog-second-brain
1.3k36 skills10 agents
Install
$ npx -y skills add huytieu/COG-second-brain --skill museum-art --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/museum-art

Context preview

The summary Claude sees to decide when to auto-load this skill.

Source authentic, high-res PUBLIC-DOMAIN artwork from museum open-access APIs (Met, Cleveland, SMK, Rijksmuseum, NGA, Art Institute of Chicago, Getty, Smithsonian) instead of AI-generated or generic-stock imagery. The default move whenever a visual needs an aesthetic, credible

SKILL.md

museum-art.SKILL.md
name: museum-art
description: Source authentic, high-res PUBLIC-DOMAIN artwork from museum open-access APIs (Met, Cleveland, SMK, Rijksmuseum, NGA, Art Institute of Chicago, Getty, Smithsonian) instead of AI-generated or generic-stock imagery. The default move whenever a visual needs an aesthetic, credible image (blog heroes, decks, social cards, essay/spec figures). Verified keyless recipes + licensing rules inside.

museum-art: Public-Domain Artwork for Visuals

> Standing rule (adopted 2026-07-24, from Eric Li's post on museum open-access): **whenever a visual needs a real image with aesthetic weight, source public-domain museum artwork first** - over AI-generated imagery and over generic stock. Curated, historically significant art reads as credible and sophisticated; AI-gen reads as slop. This stacks with, and reinforces, the `no-ai-slop` skill and your house image style. It does NOT replace the generative `editorial-illustrations` skill (that owns claim-driven diagrams/figures) or your house chart style - use museum art for photographic/hero/decorative/mood imagery, generative figures for data and concept diagrams.

When to reach for this

  • Blog post hero images, section breaks, mood imagery (the blog-publish image step).
  • Deck/slide backgrounds and section dividers, social cards, essay figures, spec cover art.
  • Any time the instinct is "generate an image" for something decorative or evocative. Stop and pull a real painting instead.
  • NOT for: product screenshots, UI mockups, data charts, logos, or claim-driven explanatory diagrams (those are editorial-illustrations / real captures).

Decision: which source

1. **Met -> Cleveland -> SMK first.** All keyless, one JSON hop, CC0/PD, broad collections. Fastest path to a hi-res image. 2. **Need Dutch/Flemish masters or decorative arts?** Rijksmuseum (keyless, 3 hops). 3. **Need European antiquities/photography and keyword isn't essential?** Getty (keyless, SPARQL). 4. **Nothing fits, or you want a cross-museum search?** Wikimedia Commons API (keyless aggregator, normalized license metadata) is the best general fallback. 5. **"Historical illustration/engraving/old photo" rather than fine-art painting?** Go straight to Internet Archive or Wikimedia Commons. 6. **Science/health/medical essay figure?** Wellcome Collection (keyless, CC0/PD).

How to fetch in THIS environment

  • Use **WebFetch** to hit the JSON search endpoint, then WebFetch/download the returned image URL. These APIs are server-side reachable; no browser needed.
  • **Exception - Art Institute of Chicago images:** the JSON API (`api.artic.edu`) is fine, but the image host `www.artic.edu/iiif/...` 403s scripted/curl fetches via a Cloudflare bot challenge. Use the JSON metadata from AIC, but download the actual image through a real/headless browser (browser-harness) or prefer a different museum for the image bytes.
  • Always **filter for public domain in the query AND spot-check the per-image license flag** before shipping (see Licensing).

Freshness over caching (mandatory)

**Fetch fresh per need. Do NOT build a reusable local pool of downloaded images to draw from.** A small cached set gets reused everywhere and becomes the new "same stock photo on every post" - sameness is a form of slop, and the variety of a huge open collection is the entire point. Fetching is keyless and sub-second, so there is no cost reason to cache pixels.

  • **Cache recipes/metadata, not images** - that is what this skill's `references/` already are.
  • **Commit an image only into the specific artifact that uses it** (a post's `assets/`, a deck's media) once chosen - for provenance and offline builds. That is an artifact asset, never a shared library other artifacts pull from.
  • Each new visual = a fresh query. Vary the search terms and the source museum so consecutive posts do not converge on the same few crowd-pleasers.

Verified keyless recipes (2026-07-24, all live-tested)

1. The Met - best all-around default

  • Base: `https://collectionapi.metmuseum.org/public/collection/v1/` - no key, 80 req/s, CC0 where `isPublicDomain:true`.
  • Search: `GET /search?q=<term>&hasImages=true&isPublicDomain=true` -> `{total, objectIDs[]}`
  • Object: `GET /objects/{id}` -> read `primaryImage` (full-res JPEG, static, no IIIF hop) or `primaryImageSmall` (web-large).
  • Example: `https://collectionapi.metmuseum.org/public/collection/v1/search?q=sunflowers&hasImages=true&isPublicDomain=true`

2. Cleveland Museum of Art - only one with archival TIFF

  • Base: `https://openaccess-api.clevelandart.org/api/artworks/` - no key, CC0.
  • Search: `GET /api/artworks/?cc0=1&has_image=1&limit=10` (add `&q=monet`, `&skip=10`).
  • Image fields on each result: `images.web.url` (900px), `images.print.url` (3400px JPEG), `images.full.url` (archival TIFF). Directly downloadable from `openaccess-cdn.clevelandart.org`.
  • Confirm `share_license_status == "CC0"` per result.

3. SMK (Denmark) - one-hop, broad European/Nordic

  • Base: `https://api.smk.dk/api/v1` - no key. License: Public Domain Mark 1.0 (functionally CC0).
  • Search: `GET /art/search?keys=*&filters=[public_domain:true]&filters=[has_image:true]`
  • Read `image_native` directly from each result (no chain).
  • **Gotcha (verified):** pass `filters` as a **repeated** query param, one `[field:value]` bracket each. Concatenating `filters=[public_domain:true][has_image:true]` returns 200 but silently ignores the second condition.

4. Rijksmuseum - Dutch/Flemish masters (keyless, 3 hops)

  • Base: `https://data.rijksmuseum.nl/search/collection` (Linked Art, no key).
  • `GET /search/collection?type=painting&imageAvailable=true` -> walk object -> VisualItem -> DigitalObject -> `access_point[0].id` is a ready IIIF URL.
  • Mixed license: mostly CC0/PD but some CC BY 4.0 - **check the per-object rights block** (a CC BY item requires attribution).

5. NGA (Washington) - bulk/offline, no live search

  • CSV: `https://raw.githubusercontent.com/NationalGalleryOfArt/ope
Read more
Ships withcog-second-brain

Cognition + Obsidian + Git — A self-evolving second brain powered by AI agents, markdown files, and version control. No database, no vendor lock-in — just .md files that think.

Get the whole plugin

Other skills on cog-second-brain.