{"id":6137,"plugin_id":"plugin_asdk_app_6a97af93ebc88191961039f177688fa9","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:47:43.722Z","digest":"982c37f2cd5ce20e06bd4b8a05bfed88a3848e96d6b1f8c0283ef76ae5fded9a","against":null,"payload":{"description":"Content for feeds and channels — Instagram posts, multi-slide carousels, stories, YouTube thumbnails, video covers, and burned-in captions or subtitles. Use when the destination is a social platform or a video needs captions. Not for marketplace listing images (use Product Studio).","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":490},{"relative_path":"assets/ATTRIBUTION.md","size_in_bytes":952},{"relative_path":"assets/icon.svg","size_in_bytes":306},{"relative_path":"references/errors.md","size_in_bytes":2325},{"relative_path":"references/models.md","size_in_bytes":3809},{"relative_path":"references/qa.md","size_in_bytes":803},{"relative_path":"references/recipes.md","size_in_bytes":1631}],"name":"social","skill_md_contents":"---\nname: social\ndescription: Content for feeds and channels — Instagram posts, multi-slide carousels, stories, YouTube thumbnails, video covers, and burned-in captions or subtitles. Use when the destination is a social platform or a video needs captions. Not for marketplace listing images (use Product Studio).\n---\n\n# Social Studio\n\nRead `references/recipes.md` for the prompt library and destination sizing.\n\n## Tokens\n\n| Token | What it does |\n|---|---|\n| `/instagram` `/post` | Single feed post |\n| `/carousel` | Multi-slide deck |\n| `/story` | Vertical story graphic |\n| `/thumbnail` `/cover` | YouTube thumbnail (16:9 only) |\n| `/captions` `/subtitles` | Burn captions into an existing video |\n\n## Truth gate — claims\n\n- **The claims the user supplies are the complete allowlist.** Preserve each as written.\n  Never strengthen, combine, or infer a new claim from them.\n- **With no claims supplied**, write only about what is directly observable — materials,\n  controls, how it is used, what is included.\n- **No superlatives you cannot support** — \"best\", \"revolutionary\", \"#1\". They read as\n  advertising and fail on review.\n- **No comparison to a named competitor.**\n\n## Posts and carousels\n\n- Single post → `generate_instagram_post`\n- Multi-slide → `generate_carousel`. The `prompt` is the **topic**, not a per-slide prompt\n  — upstream plans each slide with an LLM. Pass `slides` for the count.\n- A carousel about a specific product → pass `product_id`; it resolves the product photo\n  itself. Don't hunt for a URL.\n\n**Carousels bill per requested slide up front, and a partial failure is not refunded.** If\nfewer slides come back than requested, say so plainly.\n\n## Thumbnails\n\n`generate_youtube_thumbnail` takes `title`, plus optional `channel_style` and\n`subject_description`. **Know its real shape before promising anything:**\n\n- **It is 16:9 only.** There is no aspect-ratio argument. **It cannot produce a vertical\n  Shorts cover.** If the user asks for one, say so and offer a 16:9 thumbnail or a\n  `generate_image` route at `9:16`.\n- **It takes no reference image.** You cannot feed it the user's face. `subject_description`\n  is *text*. If the user needs their own face preserved, this tool is the wrong route —\n  use `generate_image` with their photo as `image_url`.\n- **It deliberately renders no text**, because image models render letterforms poorly. It\n  returns a striking image *plus text-overlay guidance*: 2–3 overlay options of 3–5 bold\n  words, where to place them, and font suggestions.\n\n**So a thumbnail from this tool is not finished.** Deliver the image and the overlay\nguidance together, and say plainly that the text still needs adding. For a finished\nthumbnail with exact text, hand off to the **Canva** skill, which adds it as editable\nelements — that is the completion path this tool was designed for.\n\nWhat makes a thumbnail work, for the prompt you write:\n\n- **Readable at 120px wide.** Big subject, few elements, hard contrast.\n- **Faces beat objects**, and a clear expression beats a neutral one.\n- Keep suggested overlay copy to 3–4 words.\n\n\n## Captions\n\n1. **Identify the video.** `asset_id` must be a finished video **this server hosts** — from\n   `list_assets`, or the last path segment of an `asset.imagine.art/processed/<uuid>` URL\n   already in the conversation. **A link from anywhere else cannot be captioned.** Say so\n   plainly rather than trying.\n2. **Style.** Named one (\"whisper captions\") → straight to `generate_video_captions`.\n   Named none → `select_caption_preset`, which also collects language, position and shadow.\n3. Pass `preset` **verbatim** — the upstream match is exact, so recapitalising fails.\n\n**Cost, said while they choose, not after:** animated (\"dynamic\") presets cost twice static\nones; cost scales per started minute and doubles again for 2K/4K sources.\n\nUse region-qualified locales — `en-US`, not `en`. `translation_language` adds a surcharge.\n\n## Defaults\n\n`4:5` feed, `9:16` stories, `1:1` if they say square. Thumbnails are `16:9` only —\nthe tool has no other option.\n5 slides for a carousel.\n\n## Conventions\n\nNever print `org_id`, `folder_id`, or raw asset uuids.\n\n## When something fails\n\nRead `references/errors.md`. Identify the kind of failure before responding: pending jobs\nare waited on, technical errors retried at most twice, unsupported capabilities stated\nplainly, safety refusals never routed around, and every material change disclosed.\n\n## Inspect before generating\n\nA request to change something that already exists is an **edit**, not a build. Find the\nexisting asset and modify it. Generate only what the requested change actually requires.\n\n## QA before delivery\n\nRun `references/qa.md` before calling this finished. Inspect the actual output — never\nclaim quality you have not observed, and say plainly what you could not verify.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}