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-referencesInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AI & Machine LearningSupported Platforms
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.
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.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| find-references (this skill)by hashgraph-online | 85 | 1.1k | 46d ago | SKILL.md |
| claude-memby thedotmack | 100 | 115.0k | today | CLAUDE.md |
| taste-skillby Leonxlnx | 100 | 112.1k | today | CLAUDE.md |
| Understand-Anythingby Egonex-AI | 100 | 91.6k | 2d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 79.2k | 1d ago | CLAUDE.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.
Skill content
View source on GitHubname: 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
- 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).
- 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).
- 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. - 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. - Respect access. Every source is
agent,token,personordead(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-Aftersays, or 60 s, try once more, then stop using that source for this run. - A server error (500, 504) gets one retry.
- 401, 403 and a bot wall are final. Stop and write the link in
- Tag every reference
feed,wordsorlook.feedmay go to a generator: yours, licensed for this use, CC0 or public domain, and no identifiable person.wordsis read and described. CC BY and BY-SA arewordsby default; a person may clear them for feeding.lookis 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.
- 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). - 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
claude-mem
115.0kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
taste-skill
112.1kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Understand-Anything
91.6kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
headroom
79.2kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
