ad-creative — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ad-creative (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Turn a product into ad creatives that a buyer could actually run: a stated angle, a hook written to be read in under a second, and a rendered image sized for the placement.
The inReels MCP server must be connected. Check with get_account — if it fails, the user needs to add the connector:
claude mcp add --transport http --scope user inreels https://www.inreels.ai/api/mcpThen set an API key from https://www.inreels.ai/dashboard/settings/api-keys.
Do not generate anything yet. Ads fail on the angle far more often than on the render, and an image made before the angle is settled is a wasted credit.
From the product (URL, description, or images the user gave you) establish:
If the user gave you a landing page, read it first. The page's own headline is usually the weakest available angle, because it was written to satisfy everyone. Look at what the page's objection-handling and FAQ reveal about the real hesitation, and aim there.
State the angle and hook back to the user before spending anything. One round of correction here is worth three regenerations.
quote { "media": "image", "image": { "prompt": "<your prompt>", "aspect_ratio": "9:16" } }The number returned is exactly what the generation charges. Report it if the user has not already approved a spend.
Call list_models and pick on what the creative needs:
reference images, so this is the one to use when the real product must appear.
up at full size.
committing to a final render.
edits it rather than inventing a new scene.
If the user supplied product photos, pass them as ref_urls so the product in the ad is the real product. An invented stand-in is the fastest way to make a creative unusable.
generate_image {
"prompt": "<scene, framing, lighting, where the product sits, where text goes>",
"aspect_ratio": "9:16",
"model": "nano-banana",
"ref_urls": ["https://…/product.jpg"]
}This returns a run_id immediately. Then:
get_run_status { "run_id": "…", "wait": true }wait: true blocks up to 45 seconds and usually returns a finished image in one call. Never give the user a URL before the run reports completed.
When the user wants options, change exactly one variable per creative — the angle, or the framing, or the product placement — and say which. Four images that differ in everything teach nothing about what worked.
What actually moves ad performance, in rough order:
uncluttered. State it in the prompt: "lower third clear for text overlay".
get scrolled. Phone-camera framing, ordinary light, and a real surface beat a seamless gradient.
the creative does not work, however good it looks full size.
quote before generate_image whenever the user has not pre-approved.successful render of the wrong angle is.
go back to the angle and say so.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.