SkillAgentSearch skills...

find-references

Find real, human-made references before anything is made, for AI image, video and music and for video made with code. Turns a request into one query pack per job (light first, then framing, people, location, texture, type, motion, palette, music and a "never" board), searches each source in its own…

Install / Use

npx skills add hashgraph-online/awesome-codex-plugins --skill find-references

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

85/100

Supported Platforms

Universal

Our assessment of find-references

find-references scores 85/100 on our quality scale, 588th of 955 AI & Machine Learning skills we index.

Its SKILL.md is 26 KB long, well organised into 19 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.

With 1,075 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
13/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 2 months ago, so find-references is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

find-references compared with similar skills

All 4 of these similar skills score higher than find-references; compare them before choosing.

SkillScoreStarsUpdatedFormat
find-references (this skill)by hashgraph-online851.1k46d agoSKILL.md
claude-memby thedotmack100115.0ktodayCLAUDE.md
taste-skillby Leonxlnx100112.1ktodayCLAUDE.md
Understand-Anythingby Egonex-AI10091.6k2d agoCLAUDE.md
headroomby headroomlabs-ai10079.2k1d agoCLAUDE.md

Frequently asked questions

How do I install find-references?
Run npx skills add hashgraph-online/awesome-codex-plugins --skill find-references. The install tabs above show the steps for each supported agent.
Which AI agents does find-references work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is find-references safe to use?
It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is find-references still maintained?
The repository was last updated about 2 months ago, so find-references is actively maintained.

name: find-references description: >- Find real, human-made references before anything is made, for AI image, video and music and for video made with code. Turns a request into one query pack per job (light first, then framing, people, location, texture, type, motion, palette, music and a "never" board), searches each source in its own words, opens everything it keeps, proves who made it, measures what code can measure, checks light with an LLM judge, and hands a person three candidates per job. Use when someone says "find references", "reference board", "what should this look like", "lighting reference", "framing reference", "texture reference", "font reference", "motion reference", "casting reference", "music reference", "moodboard references", "make it not look like AI", "avoid slop", "rank these references", or starts a video with no look yet. Not for writing the look from chosen references (video-moodboard, varg-video-prompting), building the cast (character-passport) or downloading one known link (media-download). license: MIT metadata: author: vargHQ version: "2.0.1" openclaw: requires: anyBins: - python3 - curl homepage: https://github.com/vargHQ/skills/tree/main/find-references compatibility: >- Works in any agent with a shell and web access. scripts/search.py needs only Python 3 and reaches 22 open sources with no key. frame_light.py needs ffmpeg. motion_read.py needs ffmpeg and uv. judge.py and the palette commands need ImageMagick; judge.py read uses the person's own logged-in claude or codex CLI, with no API key. OCR needs tesseract. FrameThrower, Refs Pro, Are.na v3, Flickr's API, Mapillary and Epidemic Sound need the person's own account. No varg credits are used. allowed-tools: Bash(python3:) Bash(curl:) Bash(ffmpeg:) Bash(ffprobe:) Bash(magick:) Bash(uv:) Bash(tesseract:*) WebFetch WebSearch Read Write Edit

Find references

Without a reference an agent falls back to its default look: "centered text, gradient background, everything fading in" (https://x.com/rexan_wong/status/2103707054108299437). Adding more words does not fix it. Three facts shape this skill:

  • No library searches by ratio, shadow edge or Kelvin. Search with words a cataloguer would use, then measure what you find. A spec and a query are different things.
  • Machines read light and taste badly (references/evidence.md). A judge answers literal questions about what is visible, and nothing else.
  • The best libraries forbid bots. Film-Grab, ShotDeck, Pinterest, Instagram, Rate Your Music and Bandcamp's pages are for people. The agent reads open archives and writes links for the person.

So each part does what it can do. Code owns facts in pixels and timing. Records own who made it and the rights. The LLM owns literal yes/no checks and the shortlist. A named person owns meaning and the final pick.

Some things only a person can find. In the cold run on an ad (tested 2026-11-03), no open source returned the inside of an old Portuguese tile shop, the thing that person loved most. Finding that out early and writing the link is a good result. Say so plainly, and do not pass off something near it as the thing.

Read and run

Read this file and references/queries.md. Then read only the job files this piece needs. Every rule that matters for the whole run is in this file. Job files hold routes, traps and queries.

Run from the project folder. Call scripts by absolute path. Never write into the skill folder. Use -I when a folder holds downloads, which is nearly every folder here, so the commands below all have it.

S=<skill folder>/scripts     # absolute path
python3 -I "$S/search.py" sources

| Script | Does | Needs | |---|---|---| | search.py | 22 open sources, person-only links, fusion, the search log | Python 3 | | board.py | the board page | Python 3 | | sun.py | sunrise, sunset, sun altitude and azimuth | Python 3 | | ai_marker.py, hdri_light.py, mcp_call.py | AI marker scan; light in an HDRI; any MCP tool with no client | Python 3 | | frame_light.py | bright side, contrast, colour | ffmpeg | | motion_read.py | cuts, holds, camera, elements, scale | ffmpeg and uv, in the uv run form below | | judge.py | blind, read, enforce, aggregate, pairs, rank | magick. read and pairs use the person's logged-in claude or codex CLI |

What you come back with

brief.json        the request as 11 fields, each marked said, assumed or asked
queries.md        one query pack per job, plus the whole-brief control query
search_log.jsonl  source, exact query, status, rank and count for each search
never.md          reject-if tests, with a positive translation for prompts
want/<job>.txt    one want card per job, frozen before you look
refs/<job>/       every frame or clip you opened and kept, named NN-job-source.ext
refs.md           one job card per kept candidate; picks are marked when the person picks
links.md          searches only a person may open, with a one-line reason each
board.html        three candidates per job, shuffled, no scores, for the person to pick
DESIGN.md         coded only: hex, type, grid, motion, each value labelled measured, record, by eye or assumed
timing.md         coded only: beat, seconds, frames, what moves first, ease, source

For a coded piece the picks become numbers in those two files. With nobody there to pick, write them from the first passers and head them PROVISIONAL. For a generated piece the picks become role lines and words. See references/templates.md.

The jobs

Priority depends on the method. Generated: light first, because people and machines both read it badly. Coded: type, motion and palette first, and light only where a shot has it (a 3D scene, a single still, an HDRI). Change the order to fit the piece, and say so in queries.md. Run only the jobs a piece needs: People only with a cast or one generated person, Characters only with a cast. Queries and sources are a floor to start from, not a limit.

| Job | What the reference proves | Queries, sources | Agent starts with | Person gets links to | Read | |---|---|---|---|---|---| | Never | what the default looks like, so it can be rejected | 2, 2 | Refs obvious query; generated: Commons deepcat:; coded: Impeccable | Meta Ad Library and TikTok Creative Center for ads; Kagi ai:only, r/aislop | references/never.md | | Light | one source, a side, a hardness, and why it is there | 6, 3 | Deakins site, Met by artist, Commons, LoC; Poly Haven for code | Film-Grab, ShotDeck | references/light.md | | Framing | shot size, height, angle, where the subject sits | 4, 2 to 3 | Met, Commons, ShotOnWhat | Film-Grab, Shot Cafe, Frame Set | references/framing.md | | People | who this person is, apart from pose, place, expression, clothes | 4, 2 to 3 | LoC FSA/OWI, Commons | Flickr group 100 Strangers, ShotDeck | references/people.md | | Characters | shape language and how a non-human moves | 2, 2 | Sakugabooru metadata, Are.na | ArtStation | references/characters.md | | Location | a real place, decade and region | 3, 2 | Commons categories, LoC HABS, TheFilmMap MCP | Street View, Atlas Obscura | references/location.md | | Texture | one named material or process, at pixel level | 2 to 3, 2 | Commons, LoC, ambientCG; Flickr feed for leads | filmdev.org, Camera-wiki, Lomography | references/texture.md | | Palette | colours and proportions from a named frame | 2, 2 | your candidates' frames, Wada JSON, Meditations in Color | Movies in Color, Screenmusings | references/palette.md | | Type, graphics | a real use of a named typeface, or its class, in a year | 2 to 3, 2 | Fonts In Use numbered paths, Art of the Title, Poster House, a Commons category of the genre's posters | Fonts In Use search | references/type-graphics.md | | Motion | timing you can measure and rebuild | 3, 2 | Refs, Commons filetype:video for clips you may process, Sakugabooru metadata, Motionographer | whatships films, Instagram Reels, Meta Ad Library, TikTok Creative Center, Ads of the World, Vimeo Staff Picks | references/motion.md | | Music, voice | tempo, instruments, era, for a person to hear. Voice: a casting line (age, region, texture, pace), and video-sound casts candidates | 3, 2 | Discogs, MusicBrainz, ListenBrainz, NTS | Rate Your Music, Bandcamp pages | references/music.md |

Style is not a job. It comes from a board (references/style-boards.md), which answers how a piece should feel; archives answer who and where. A style you cannot break into these jobs is a mood, not a reference.

Rules

  1. Brief before search. The output of this step is a written description of light and staging. Images are how you get there. Roger Deakins produces "sketches of possible shots and staging as well as detailed diagrams for lighting" (https://www.rogerdeakins.com/?p=215049).
  2. One job per card. Say what it lends and what it must not copy. An image may have two cards if it truly does two jobs, each with its own do-not-copy line. Everything else in the image leaks: "Any asset you pass as a reference, even if you're not explicitly prompting for it, will still influence the output" (https://x.com/henrydaubrez/status/2037554793850499369).
  3. Open what you keep. Keyword hits lie: of two Met hits for candlelight, one has a single low candle and one has no candle at all. Write one line saying only what you can see. Delete what you could not open.
  4. Prove who made it before judging pixels. People and detectors both fail at spotting AI, and curated AI is the worst case. Sort sources by when the collection closed. Give each reference one label (references/never.md): HUMAN-PROVEN (a verified film title or a named archive or museum as holder, or a named author plus a date before 2022 plus a body of work or credits), LIKELY HUMAN (a named author or a date, with nothing against), UNKNOWN (nothing proven: mood only, no measurements, no feeding) or AI (a marker, or the maker says so: never board only). "No AI marker" and "the detector says human" are never a pass.
  5. Respect access. Every source is agent, token, person or dead (references/sources.md). Never fetch a person-only site, not even to check a link. Never spoof a user agent, sign in for someone or download store previews.
    • 401, 403 and a bot wall are final. Stop and write the link in links.md.
    • A 429 means slow down. Wait what Retry-After says, or 60 s, try once more, then stop using that source for this run.
    • A server error (500, 504) gets one retry.
  6. Tag every reference feed, words or look.
    • feed may go to a generator: yours, licensed for this use, CC0 or public domain, and no identifiable person.
    • words is read and described. CC BY and BY-SA are words by default; a person may clear them for feeding.
    • look is seen by a person, and nobody keeps a copy.
    • Any identifiable real person is words, even in a public-domain photo. Copyright and likeness are separate rights.
    • A public-domain painting is legally feed, but start from words: whether paint texture comes back is untested, so feed one only after a test frame.
    • Audio used as an asset has its own licence rules in references/music.md.
  7. Feed a model far fewer references than it accepts: 1 to 5, each with a role. @Image1 defines the light only. Do not copy the room, the person or the colours from @Image1. Scores fell as reference count rose in the benchmarks we found. Keep identity sheets flatly lit so the light reference can work (references/queries.md).
  8. Never ask a judge for what it cannot perceive. Lens, film stock, ratios and exact hex come from records or code. Report "these three pass the checks", never "the best" (`references/j

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars1.1k
CategoryAI
Updated1mo ago
Forks294

Languages

Python

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions