mit einem Klick
asset-sourcing
// Source image candidates for a brand-new WorldSeed scene, let an AI visually review them, and generate a local review HTML for human selection.
// Source image candidates for a brand-new WorldSeed scene, let an AI visually review them, and generate a local review HTML for human selection.
| name | asset-sourcing |
| description | Source image candidates for a brand-new WorldSeed scene, let an AI visually review them, and generate a local review HTML for human selection. |
Use this skill when a user wants image candidates for a new or existing WorldSeed scene and the goal is to build a reviewable asset board, not auto-pick final assets.
Produce a local review bundle:
manifest.jsonreview.htmlDefault bundle:
tmp/asset-sourcing/{scene_id}/
manifest.json
review.html
images/{entity_id}/...
This skill is standalone. It stops at a reviewable bundle and selected picks. Import into a scene should happen later as a separate step.
Default sources:
openverseaicclevelandvamwellcomeycbametOptional sources:
wikimediawaltersnasaRead references/source-catalog.md before using a source you have not used recently.
exact, adjacent, and vibe can all be usable.met as a later pass, not a universal first call.wikimedia for known motifs, named figures, or coverage gapswalters for watches, keys, portraits, and manuscript-adjacent objectsnasa for cosmic or scientific entities onlyThe input scene JSON must contain:
scene_idpremiseentitiesEach entity must contain:
idlabelroleInitialize a bundle with:
python3 skills/asset-sourcing/scripts/init_bundle.py \
tmp/asset-sourcing/{scene_id} \
--fixture tmp/asset-sourcing/{scene_id}/scene.json
For each entity, start with:
literal queryrelated queryvibe queryUseful defaults:
zone
literal: {label} interiorrelated: {label} roomvibe: {label} paintingagent
literal: {label} portraitrelated: {label} figurevibe: {label} paintingitem
literal: {label}related: {label} still lifevibe: {label} objectsymbolic
literal: {label}related: {label} illustrationvibe: {label} printRewrite rules:
portrait, interior, still life, illustration, or engravingSource strategy:
zone: start with openverse, aic, cleveland; widen with vam, ycba, then metagent: start with openverse, aic, wellcome; widen with ycba, then metitem: start with openverse, aic, cleveland; use walters when objects/manuscripts fit; widen with metsymbolic: start with openverse; use wikimedia for motifs and nasa for celestial/scientific entitiesFor each entity:
Before final retention:
miss or drop itsymbolic, item, and animal-like entities, treat person-name homonyms as likely false positives until the image proves otherwiseDefault target:
4-8 usable candidates overall per entityFor each retained candidate, capture:
search_fit_labelsearch_fit_notesource_tierquery_roundrecommended_rank and recommendation_reason only after agent/human visual reviewsearch_candidates.py is a thin helper, not a full scene runner. It should be called once per entity + source + query.
By default it performs cheap recall and appends metadata without downloading images.
Save downloaded images under:
tmp/asset-sourcing/{scene_id}/images/{entity_id}/
Example:
python3 skills/asset-sourcing/scripts/search_candidates.py \
--manifest tmp/asset-sourcing/{scene_id}/manifest.json \
--entity-id singer \
--source openverse \
--query 'singer portrait' \
--query-type related \
--query-round 1 \
--source-tier default
The AI should decide:
After cheap recall, write a shortlist JSON:
{
"picks": {
"singer": [
{"source": "openverse", "title": "Street singer, portrait"}
]
}
}
Then download only those candidates:
python3 skills/asset-sourcing/scripts/download_candidates.py \
tmp/asset-sourcing/{scene_id}/manifest.json \
tmp/asset-sourcing/{scene_id}/download-plan.json
Run:
python3 skills/asset-sourcing/scripts/render_review.py \
tmp/asset-sourcing/{scene_id}/manifest.json \
tmp/asset-sourcing/{scene_id}/review.html
The review page is the main product. It should let a human quickly scan the strongest reviewed picks, open more options only when needed, and choose final assets.
The current picker behavior is:
Top 1/2/3 only when the manifest contains trusted visual-review recommendationsTop badgestitlesourceIf an agent or human has visually reviewed the downloaded images and chosen ranked picks, write them back into the manifest before the final render.
Review file shape:
{
"reviewer": "agent-name",
"picks": {
"raven": [
{"source": "wikimedia", "title": "Kalila and Dimna - The Owls and the raven", "reason": "Only candidate that clearly reads as a raven scene."}
]
}
}
Apply it with:
python3 skills/asset-sourcing/scripts/apply_visual_review.py \
tmp/asset-sourcing/{scene_id}/manifest.json \
tmp/asset-sourcing/{scene_id}/visual-review.json
Then rerender:
python3 skills/asset-sourcing/scripts/render_review.py \
tmp/asset-sourcing/{scene_id}/manifest.json \
tmp/asset-sourcing/{scene_id}/review.html
When this skill is active, the AI should:
recommended_rank after actual image reviewThe AI should not:
references/source-catalog.md — supported source list and exact usage patternsreferences/review-output.md — bundle and manifest contract