{"id":47378,"plugin_id":"plugin_asdk_app_6abde87d08048191b2ee7cda76721749","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:33:13.342Z","digest":"d2acb164338a309cbca9980863f8629cc60cba0504993700e62a625a3d5107cf","against":null,"payload":{"description":"Create an image or video ad for the user's brand with Hermoso. Use when the user asks to make, design or render an ad, a social post visual, a product shot, a video ad, a UGC-style ad, a clone of an ad they like, cut-ins of their own screens over a video, a longer version of a clip, or variations of an ad they already have.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":426},{"relative_path":"references/hooks.md","size_in_bytes":3131}],"name":"make-an-ad","skill_md_contents":"---\nname: make-an-ad\ndescription: Create an image or video ad for the user's brand with Hermoso. Use when the user asks to make, design or render an ad, a social post visual, a product shot, a video ad, a UGC-style ad, a clone of an ad they like, cut-ins of their own screens over a video, a longer version of a clip, or variations of an ad they already have.\n---\n\n# Make an ad\n\nUse this skill to turn a request like \"make an Instagram ad for our summer sale\" into a finished file in the\nuser's Hermoso Library. Explicit instructions from the user always take priority over this skill: their format,\nsize, length, wording, product and style choices win over any default below.\n\n## Before you start\n- Hermoso reads the saved brand profile (products, logo, colours, voice) by itself. Call `get_brand` only if you\n  do not yet know whether a brand is saved. If none is saved, use the get-started skill first.\n- You need to know: image or video, and where it will run (for example an Instagram feed post is square, a Reel\n  or TikTok is vertical 9:16). If the user did not say and it matters, ask one short question. If they say \"you\n  choose\", pick and say what you picked.\n\n## Choose the route\n- **An image ad** (a feed post, a banner, a product visual): call `generate_image` with a clear prompt that names\n  the product, the scene, the offer and the text to show, plus `aspectRatio` (1:1 square, 4:5 portrait, 9:16\n  vertical, 16:9 landscape).\n- **A video ad**: call `plan_ad` with the product, format and, if the user named one, the length in seconds. Show\n  the user the concept and script in a few lines. When they are happy (or asked you not to check), call\n  `render_ad` with the plan's full output as `creative`. Pass the length the user asked for; never shorten it.\n- **A quick short video from a description** (no script needed): `generate_video` with a prompt, `aspectRatio` and\n  `durationSeconds`.\n- **A simple native format** (for example a photo slideshow or a text-led post): `make_template_ad`.\n- **Copy the structure of an ad they like, for their brand**: for a video link (TikTok, Reel, Facebook, X, YouTube)\n  call `remake_video_for_brand`, then `render_ad` with the creative it returns. For a static image ad call `clone_static` with\n  the image URL. The result keeps the structure and pacing and uses the user's own product and words, never the\n  original brand's.\n- **Cut-ins of the user's own screens** (an app, a web page, a dashboard, a review or a chart shown for a beat as a\n  card while the footage keeps playing): pass the pictures as `inserts` to `plan_ad` and `render_ad`. Keep them few\n  and short, on the line that talks about them. A photo is not laid over the video.\n- **A longer version of a clip**: `generate_video` with `extend` set to true, the clip as `refVideo`, and a prompt for\n  what happens next. By default it cuts to a new shot of the same scene rather than stretching the old one.\n- **Variations of an ad they already have**: different headlines on a static ad with `headline_variants`, new\n  opening hooks on a video with `hook_variants`, or more versions of a winning ad with `multiply_ad`. For a small\n  change to an image (swap the background, fix a word) use `edit_image`.\n\nFor the opening of a video, the hook mechanics in `references/hooks.md` help you pick one that fits the product.\nRead it when you are writing or choosing a hook.\n\n## Long renders\nVideo renders usually take a few minutes. When a tool returns a job id instead of a file, call `get_job` with that\nid until it reports done or error. Several checks are normal; do not start the render again, because that would\ncharge twice. If the user asks later where a render went, `list_jobs` and `list_library` show recent jobs and\nfinished files.\n\n## Files from the user\nIf the user wants to use their own photo or video, and gives you a public link, `upload_file` turns it into a URL\nthe other tools accept.\n\n## Saving the file\nFinished files are in the user's Hermoso Library already. If they want a copy in Google Drive, `save_to_drive` saves\nit (with `folder` when they name one). It needs Google Drive connected in the Hermoso workspace.\n\n## Output\nShow the finished image or video (the Hermoso card displays it) with one line on what it is, and offer one useful\nnext step: a variation, a different size, or scheduling it (the schedule-posts skill).\n\n## Do not\n- Do not add prices, discounts, ratings, awards or claims the user or the saved brand did not state.\n- Do not write health, medical, financial or other claims the product cannot back up (for example \"cures\" a\n  disease). Offer an honest alternative instead.\n- Do not add an end card, captions or music unless the user asks for them.\n- Do not use another company's logo, trademark or a real person's likeness without the user confirming they have\n  the rights.\n- Creating ads uses credits from the user's Hermoso account, and each paid reply says what it charged: pass that on\n  in one line rather than estimating it. Make what the user asked for; do not render extra versions they did not\n  ask for.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}