skills/utility/laniameda-gallery-query/SKILL.md
Query the laniameda-gallery to browse, search, retrieve, and download vault content. Use when an agent needs to find assets, prompts, or structured designs-pillar references in the gallery and pull them into the current task.
npx skillsauth add michailbul/laniameda-skills laniameda-gallery-queryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to read from laniameda.gallery.
It covers two read surfaces:
Counterpart to laniameda-gallery-ingest (which writes).
CONVEX_URL or NEXT_PUBLIC_CONVEX_URL — requiredKB_OWNER_USER_ID — required for owner-scoped reads (scope: "mine") and all designs-pillar actionsBest practice:
KB_OWNER_USER_ID env-drivenscope: "public" only for public asset discovery; design inspiration reads are owner-scopedcd ~/work/laniameda/laniameda.gallery
bun run skills/laniameda-gallery-query/scripts/query.ts '<JSON>'
listBrowse assets with structured filters.
Supported filters:
scope: mine or public (mine default)pillarkindmodelNamefolderId (mine only)assetRolesearch (text filter on hydrated asset content)limitExample:
{
"action": "list",
"scope": "mine",
"pillar": "cars",
"assetRole": "reference",
"folderId": "folders:abc123",
"limit": 10
}
searchSemantic asset search via semanticSearch:searchAssets.
Supported filters:
scopequerypillarkindmodelNamefolderId (mine only)assetRolelimitExample:
{
"action": "search",
"query": "dark moody editorial portrait with film grain",
"scope": "mine",
"pillar": "creators",
"assetRole": "generated_output",
"limit": 5
}
getFetch one owner-scoped asset with hydrated prompt/tag metadata.
{
"action": "get",
"assetId": "asset:abc123"
}
Raw Convex asset IDs are also accepted for assetId, but copied gallery IDs use the typed asset:<id> form.
getPackFetch one owner-scoped asset pack and its hydrated member assets.
{
"action": "getPack",
"packId": "pack:abc123"
}
getByIdResolve a copied gallery ID without first deciding which table to query.
Supported copied ID formats:
asset:<id>pack:<id>design:<id>These tokens are produced by the gallery UI when the user clicks:
asset:<id> chip in the detail panel metadata stripAccept the pasted token verbatim — do not strip the prefix. Raw Convex IDs are also accepted, but the typed form lets the skill resolve the correct table automatically.
Example:
{
"action": "getById",
"id": "pack:abc123"
}
downloadDownload one owner-scoped asset to local disk.
{
"action": "download",
"assetId": "asset:abc123",
"outDir": "/tmp/laniameda-gallery"
}
listDesignsBrowse structured entries from the designInspirations pillar.
Supported filters:
inspirationTypeplatformworkflowTypecaptureKindsaveIntentfolderIdsourceDomainsearchdateFromdateTorequireAssetlimitExample:
{
"action": "listDesigns",
"platform": "web",
"captureKind": "website",
"saveIntent": "inspiration",
"search": "pricing",
"requireAsset": true,
"limit": 10
}
getDesignFetch one owner-scoped design inspiration and, when present, hydrate its linked preview asset.
{
"action": "getDesign",
"designInspirationId": "design:abc123"
}
search to find the best assetdownload to save the asset locallysavedPath and promptText in the current taskgetById with the exact copied ID from the gallery UIpack:, inspect the returned assets array and choose the needed member assetdownload with the chosen asset:<id>listDesigns with search, platform, or captureKindgetDesign to inspect the full record and linked preview assetAsset actions return compact asset objects with fields like:
idkindpillarmodelNamepromptTexttagNamesurlthumbUrlfolderIdassetRoleassetPackIdpackSlotIndexscore (semantic search only)Pack actions return:
pack.idpack.titlepack.descriptionpack.pillarpack.modelNamepack.coverAssetIdpack.itemCountassets hydrated like asset resultsDesign actions return compact design objects with fields like:
idtitlesummarysourceUrlsourceTitleuserNoteinspirationTypeplatformworkflowTypecaptureKindsaveIntenttemplateKeysourceFingerprintpreviewUrlpreviewThumbUrlassetIdpromptIdSEMANTIC_EMBEDDINGS_ENABLED=true on the Convex deployment.gemini-embedding-2-preview.download saves raw bytes; video assets are not transcoded.development
Seedance 2.0 video prompt director. Converts plain-text scene descriptions into production-ready bilingual EN+ZH video prompts optimized for the Seedance 2.0 video generator. Handles all Seedance work — action (combat, pursuit, stunts), general (landscapes, journeys, atmosphere), dialogue (confrontations, negotiations, interrogations), and non-narrative commercial work (ad spots, music videos, fashion films, automotive inserts, product shots, pet/character demos, cutaway montages, social reels for TikTok / Reels / YouTube Shorts). Use whenever the user wants to create a Seedance video prompt, mentions Seedance, or describes a cinematic scene for video generation. For NARRATIVE screenplay-integrated work, use seedance-screenwriter instead.
development
Write Seedance 2.0 prompts in screenplay format for narrative storytelling — when the prompts will be cut into a film, short, or scene. Use whenever you're generating shots that will be edited into a continuous story with dialogue, character beats, scene continuity, or coverage. Pairs with the screenwriter skill — read the scene's screenplay first (or the project's `scene.md` if it exists), then translate each shot into a Seedance prompt that reads as a screenplay page, not as an engineering spec.
documentation
Скилл-инструмент для сценариста полнометражного фильма или сериала. Используй всегда, когда пользователь хочет писать сценарий, поэпизодник, разрабатывать сцены, бит-шит, диалоги, делать ревизии, считать экранное время, резать длину, работать с персонажами или мифологией истории. Скилл работает на основе методологий Макки, Кэмпбелла и Аристотеля, выдаёт Hollywood-формат .docx, поддерживает билингвальные сценарии (диалог на одном языке + перевод в скобках под ним), и помогает аудитировать структуру по причинности и движению ценности. Скилл не привязан к конкретной истории — пользователь приносит свою.
development
Extract shot composition DNA from any car photograph into structured JSON — camera angle, lens, framing, lighting — stripped of car-specific details. Then reuse extracted angles with any car identity to generate new images at scale. Use when: extracting angles from reference photos, building a shot library, batch-analyzing car photography, replicating a great angle with a different car, running extraction pipelines in Freepik or Flora. Triggers: "extract this angle", "steal this composition", "shot DNA", "analyze this car photo", "replicate this shot with my car", "batch extract angles", "car photography analysis", "angle extraction", "build a shot library".