creative-refresh

A workflow for updating advertising text and images using campaign results and a brand’s writing style. It covers formats such as responsive search ads (RSAs) and Performance Max asset groups.

In plain words
What is it for?
Use it to refresh ad headlines, descriptions, images, logos, and other creative assets, including A/B test proposals.
Why use it?
It helps identify weak-performing ads and prepare replacements that fit the existing strategy and brand voice.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/logly/mureo/creative-refresh
Any agent
npx skills add logly/mureo --skill creative-refresh
Clone the repo
git clone --depth 1 https://github.com/logly/mureo

Made for: Claude Code, Codex.

Per session 138 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,372 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00138 $0.04372
Opus 5 $0.00069 $0.02186
Sonnet 5 $0.00028 $0.00874
Haiku 4.5 $0.00014 $0.00437

Measured 2d ago against content hash fd35e4373ff4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

creative-refresh scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

directory (`curl -sL "<image_url>" -o <scratch>/creative_<id>.jpg`) and
mureo/_data/skills/creative-refresh/SKILL.md · 195 lines

How it starts

The opening of the file, as written. The whole thing — 195 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Creative Refresh

PREREQUISITE: Read ../_mureo-shared/SKILL.md for auth, security rules, output format, and Tool Selection (Read/Write on Code, mureo_strategy_* / mureo_state_* MCP on Desktop / Cowork).

Refresh ad creatives based on strategy context and performance data across all platforms.

Prerequisites

  • STRATEGY.md and STATE.json must exist (run the onboard skill first)

Steps

Before you start: Run the Diagnostic preamble from ../_mureo-shared/SKILL.md — load learning insights (mureo_learning_insights_get) and consult advisors (mureo_consult_advisor) before drawing conclusions.

  1. Establish today: call mureo_state_get first, on every host (including Claude Code, where you would otherwise Read the file) and take server_now from its response — ISO 8601 with UTC offset, e.g. 2026-07-28T10:12:33+09:00. Its date is the only source of the current date for this run: the observation_due you write in step 12, and every "is a previous creative change still inside its observation window?" check in step 10, are measured from it. Do not shell out (this skill must run in Bash-less headless hosts) and do not read the date off STATE.json — last_synced_at, reports.*.period and action_log timestamps are history, never evidence of what day it is now. Never write server_now into STATE.json: it is a response field, and a persisted copy becomes tomorrow's stale "today".

  2. Load context: Read STRATEGY.md (Persona, USP, Brand Voice, Data Sources) and STATE.json (the same mureo_state_get response from step 0 on MCP hosts).

  3. Discover platforms: Identify all configured ad platforms from STATE.json platforms. Also include any hosted official-MCP connector present in the session (e.g. TikTok, key tiktok_ads) — drive it via its own tools and skip mureo-only value-adds; see ../_mureo-shared/SKILL.mdHosted-connector platforms.

  4. Audit current creatives: For each ad platform:

    • Google Ads: prefer mureo native — call google_ads_ad_performance_report per campaign, plus google_ads_rsa_assets_audit (per-asset CTR/CVR ratings) and google_ads_rsa_assets_analyze (LOW/POOR detection). A Performance Max campaign has no ad_group_ad, so google_ads_ads_list and the RSA asset tools return nothing for it — an audit that stops there reports a P-MAX account as having no creative at all. Read its creative with google_ads_asset_group_assets_list (pass campaign_id when you have no asset_group_id); one call returns both the HEADLINE / LONG_HEADLINE / DESCRIPTION text (each entry with text) and the MARKETING_IMAGE / SQUARE_MARKETING_IMAGE / PORTRAIT_MARKETING_IMAGE / LOGO / LANDSCAPE_LOGO images (each entry with asset_name, a full-size serving url, width_pixels, height_pixels). field_type says which. Every entry carries the asset_id you will need to change it. Video and business-name assets are not returned. In BYOD mode, the Apps Script bundle does not include per-asset ratings — these tools return []; fall back to google_ads_ads_list for headline/description text and use ad_performance.report for ad-level CTR/conv only. If mureo's Google Ads tools are unavailable (e.g. MUREO_DISABLE_GOOGLE_ADS=1 after mureo providers add google-ads-official), fall back to the official google-ads-official MCP for ad-level performance and ad listing, then skip the mureo-only RSA asset audit tools (google_ads_rsa_assets_audit, google_ads_rsa_assets_analyze) and note: "per-asset LOW/POOR detection and the RSA asset audit are mureo-specific value-add features — install or re-enable via mureo setup claude-code for the full creative audit."
    • Meta Ads: prefer mureo native — call meta_ads_creatives_list, meta_ads_analysis_compare_ads, and meta_ads_analysis_suggest_creative. In BYOD mode, creative URLs / headlines / body / CTA may be present in ~/.mureo/byod/meta_ads/creatives.csv (best-effort, populated only when those columns were in the export). If mureo's Meta Ads tools are unavailable, fall back to the official meta-ads-official hosted MCP for the creative list and ad-level insights only, then skip the mureo-only analysis tools (meta_ads_analysis_compare_ads, meta_ads_analysis_suggest_creative); perform the ad-comparison and creative-suggestion logic yourself using the rules in step 6 and note to the user that mureo's automated creative-suggestion engine requires the native MCP.
    • mureo BYOD data is centralized in the workspace byod/ directory (or ~/.mureo/byod/ for legacy CLI users) and is only accessible through mureo MCP tools — do not look for raw CSVs in the project directory.
    • Identify underperforming assets (LOW/POOR ratings for search ads, low CTR/engagement for social ads).
    • Image / banner creatives: the text-and-metrics audit above does not look at the picture itself. When a creative carries an image you can actually reach — image_url / thumbnail_url from meta_ads_creatives_list, a P-MAX asset group's images from google_ads_asset_group_assets_list (which says which asset group serves each one), or a Google image asset from google_ads_image_assets_list (account-level: name, dimensions and a full-size serving url) — also run the Visual creative evaluation section below to score the banner's design, not just its copy and CTR.

Read the full file on GitHub · 195 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 195 lines · 138 tokens per session scan A fd35e4373ff4

Subscribe to this mod's changes

creative-refresh is a skill published in the GitHub repository logly/mureo (42 stars, last pushed 2d ago), licensed Apache-2.0. It adds 138 tokens to every session and 4,372 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

adcp-advertising

Automate advertising campaigns with AI. Create ads, buy media, manage ad budgets, discover ad inventory, run display ads, video ads, CTV campaigns, and optimize ad performance. Perfect for marketing automation, programmatic advertising, media buying, ad management, campaign optimization, creative management, and…

LeoYeAI/openclaw-master-skills · 103 tokens

adspirer-ads-agent

Adspirer — AI-powered advertising and performance marketing agent. Manage Google Ads, Meta Ads (Facebook & Instagram), LinkedIn Ads, and TikTok Ads via natural language. 400+ tools for paid media campaign creation, live performance analysis, PPC keyword research with real CPC data, budget optimization, ad creative…

amekala/ads-mcp · 187 tokens

google-ads-manager

Google Ads campaign management - campaign setup, keyword research, bid optimization, and performance reporting.

claude-office-skills/skills · 22 tokens

ads-copywriter

Multi-platform ad copy generation for Google Ads, Meta/Facebook, TikTok, LinkedIn with A/B testing variants.

claude-office-skills/skills · 27 tokens

adcp-advertising

Automate advertising campaigns with AI. Create ads, buy media, manage ad budgets, discover ad inventory, run display ads, video ads, CTV campaigns, and optimize ad performance. Perfect for marketing automation, programmatic advertising, media buying, ad management, campaign optimization, creative management, and…

LeoYeAI/openclaw-master-skills · 103 tokens

adcp-advertising

Automate advertising campaigns with AI. Create ads, buy media, manage ad budgets, discover ad inventory, run display ads, video ads, CTV campaigns, and optimize ad performance. Perfect for marketing automation, programmatic advertising, media buying, ad management, campaign optimization, creative management, and…

Imd11/marketing-skills · 103 tokens