Reference Hunt
The output is found material with provenance. Every finding carries a live URL, a date checked, and one line saying why it survived. A claim without a source is not a finding — it is memory wearing a citation's clothes.
0. Pin the frame before the first query
Three lines, written down. They are the accept/reject rule for everything after.
| Pin | Question | Example |
|---|---|---|
| Type | visual / code / written / mixed | visual — Roblox GFX character renders |
| Acceptance | what makes one finding good, testably | "a named in-frame emitter lighting the character, not studio 3-point" |
| Volume + stop | how many, and what ends the hunt | "6 refs; stop when 2 consecutive angles return only already-seen URLs" |
If X is a broad category ("good UI", "nice thumbnails"), narrow it to a testable phrase first. A broad hunt returns aggregator sludge, and no amount of ranking rescues it.
1. Vault first — one cheap pass
Skip only when the topic is plainly external and new.
mem-search— did an earlier session already hunt this?/vault-search "<question>"— semantic index over the vault.- Visual: check
ClaudeFX/Knowledge/Design/<domain>/— a profile and arefs/folder may already exist for that domain (gfx,thumbnails,web-layout,logo,vfx, …).
Name what already exists before adding to it. A duplicate reference is worse than no reference: it inflates a profile's apparent evidence without adding any.
2. Fan out — multi-search, never one query
One query is one hypothesis about vocabulary. Run 3–5 angles, in parallel, in a single tool block.
| Angle | Phrasing |
|---|---|
| Plain | the thing as the requester named it |
| Practitioner | the jargon a professional in that field uses instead |
| Container | the artifact type that holds it — "breakdown", "case study", "portfolio", "showcase", "post-mortem", "gallery" |
| Negative space | the adjacent thing it is often confused with, to map the boundary |
| Named authority | a studio, artist, repo or author known for it, searched by name |
Tool per angle:
mcp__exa__web_search_exa— default. Describe the ideal page, not keywords: "blog post breaking down a Roblox GFX render pipeline in Blender" beats "roblox gfx blender".mcp__exa__web_search_advanced_exa— when a filter is doing real work:includeDomainsfor gallery/authority sites,category(github,pdf,publication,personal site,news),startPublishedDatefor fast-moving domains,excludeDomainsto kill a farm that keeps ranking.WebSearch— a different index, US-only. Run it alongside Exa on at least one angle so an Exa blind spot becomes visible instead of silent.mcp__exa__web_fetch_exa— batch every confirmed candidate URL into one call, not one call per URL.
Stop at saturation, not at a target count. If angle 4 and angle 5 both return only URLs already seen, the vocabulary is exhausted and more queries buy nothing.
3. Visual references take a different path
This is the common case and the one most often done wrong. Search tools return text. They cannot see an image. Four consequences:
Search for pages that host image sets, not for images. Named galleries beat generic
queries — target them with includeDomains: artstation.com, behance.net,
dribbble.com, cara.app for art and GFX; mobbin.com, land-book.com,
godly.website, awwwards.com, siteinspire.com for UI and web layout;
devforum.roblox.com and create.roblox.com for Roblox specifically.
Look at what you found. Download candidates to disk, then Read the image file —
Claude sees images through Read. A reference that was never viewed is a link, not a
reference. Never describe a style from a page's alt text, its title, or your own prior:
that produces a plausible profile of a picture nobody looked at.
File them with provenance. Images go in
ClaudeFX/Knowledge/Design/<domain>/refs/, each with its origin URL recorded. Then hand
off to image-dna (extract mode) to turn refs into a style profile. That skill writes
the rules; this one only supplies vetted inputs.
Handing refs to an external image model: batch into labelled contact sheets — Gemini
web caps at 10 attachments. See image-handoff. Roblox avatars come from the public
thumbnail API, not from a search engine.
4. Reject before ranking
Kill on sight:
- Listicle content farms ("Top 15 …") that only link elsewhere — chase the outbound link, drop the page itself.
- Undated pages in a domain that moves.
- Anything whose claims trace to no primary source and no inspectable artifact.
- AI-generated example galleries when the acceptance criterion was "how professionals actually do it". They match the description and miss the craft.
Rank survivors: primary over secondary; an artifact you can open over a description of one; recent over old only where recency changes correctness.
5. Verify each survivor
Fetch it. A search snippet is a claim about a page, not the page. Every named claim — a
number, an API, a version, a technique, an attribution — is confirmed in the fetched text
or dropped. A finding that survives on snippet alone ships labelled unverified, never
silently. Same discipline as verifying-agent-reports.
6. Deliver — choose, don't ask
| Situation | Output |
|---|---|
| ≤8 findings, one-off, no reuse | chat only: name, one-line why-it-survived, link |
| Reusable link collection | ClaudeFX/Sources/<topic>/<name>.md — entries with per-entry verdict |
| Visual refs meant to shape later work | files in Knowledge/Design/<domain>/refs/ + origin URLs, then image-dna |
| Findings that harden into a rule | ClaudeFX/Knowledge/<area>/, tagged derived (traced to a ref) vs general (asserted) |
| >15 findings, or feeds a decision | research note in Planning/<initiative>/ |
Any written form carries, per finding: what it is, source URL, date checked, why it survived, verified or unverified. Assets downloaded alongside a note live next to it, and the note names each file's origin URL.
7. Delegation
Bulk fan-out goes to crew-researcher (has Exa, WebSearch, WebFetch). Hand it the step-0
frame verbatim — type, acceptance rule, stop condition — or it will return volume instead
of matches. Verify every count and claim it reports before repeating them.
Visual judgment does not delegate cleanly: a subagent can return links, but a report
saying a reference "matches the style" is worth nothing unless something actually opened
the image. Use crew-vision when many downloaded images need describing, and look
yourself at the ones the decision rests on.
Hands off to, doesn't replace
image-dna (refs → style profile) · gfx-prompt / image-handoff / image-request
(generating from the refs) · /graphify and /vault-search (questions answerable inside
the vault — don't go to the web for those) · customer-research (evidence about people,
not artifacts) · context7 MCP (library and framework docs — query it instead of
web-searching them).