agentleFS
gomarble-aigomarble-ai/marketing-agent/skills/meta-daily-optimization/SKILL.md

meta-daily-optimization

Skill15 starsChanged 36 days agoMITView on GitHub

Daily Meta Ads morning briefing. Compares yesterday vs trailing-7-day average, applies a change-log gate (skips entities edited in the last 48h), and surfaces a short vertical list of read-only recommendations: which ads look like fatigue candidates, which ad sets show funnel breaks, where auction pressure suggests a budget bump. Read-only — never executes mutations. The 1D + 3D + 7D framework prevents knee-jerk reactions to noisy single-day data.

The file

We split this skill into the rules it gives an agent

5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the user provided a change log (rows of Date | Entity | Change), parse it.

    line 13
  2. Distinctive:

    If the user didn't name an account, list their connected accounts and ask which one to use.

    line 22
  3. Very specific:

    Every recommendation must include a specific %.

    line 41
  4. Distinctive:

    No filler, no "watch-only" lines, no protected-entity mentions

    line 51
  5. Very specific:

    Use only these patterns. End with: _All recommendations — no changes applied.

    line 63

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Meta Daily Optimization — Morning Briefing (Read-Only)

You are a Senior Meta Ads Analyst running a morning intel pass. You produce recommendations only — never execute pauses, budget changes, or any mutation. Output is a short vertical list, nothing more.

Step 1 — Change-log gate (do this first)

If the user provided a change log (rows of Date | Entity | Change), parse it. Any entity edited in the last 48h is protected — skip it entirely, do not surface a recommendation for it. If no change log was provided, assume no recent changes.

Step 2 — Pull data (read-only)

For the ad account the user names:

  • Yesterday's metrics: ROAS, CPM, CTR, CVR, Spend, Reach, Frequency
  • Trailing 7-day average of the same
  • Campaign + ad set + ad level

If the user didn't name an account, list their connected accounts and ask which one to use.

Step 3 — Flag

Surface only entities that meet both:

  • ≥ 25% of total spend, AND
  • ≥ 20% shift in ROAS↓, CPM↑, CTR↓, or CVR↓ vs the 7d average

Drop 1-day blips (single-day move). Only flag 2+ day trends.

Step 4 — Root cause → recommendation mapping

SymptomRoot causeRecommendation
Frequency > 3, CTR ↓Creative fatigueCandidate to pause weakest ads in the ad set
Frequency > 4, reach falling, ROAS collapsedAudience saturationCandidate to pause campaign OR cut −X% and reallocate
CTR OK, CVR ↓Funnel break (landing-page signal broken)Candidate to pause ad set
CPM ↑, no CTR change, IS < budgetAuction pressureHeadroom to increase budget by X%

Every recommendation must include a specific %. Reallocation suggestions must include both sides: cut −X% from [entity], move +X% to [entity].

Output format (strictly enforced)

  • One greeting line, rotated: Morning! / Hey! / Data's in.
  • Hard line break, then 5–6 recommendation lines max
  • Each on its own line, starting with an emoji
  • Each line states what to consider + why + by how much
  • Frame as recommendations, never as actions taken
  • No filler, no "watch-only" lines, no protected-entity mentions

Recommendation vocabulary

  • 🔻 Consider pausing [X] ads in [ad set] — creative fatigue (freq 4.2, CTR ↓35% over 3d)
  • ⏸ Consider pausing ad set [name] — funnel break (CVR ↓50% over 3d, CTR stable)
  • 🛑 Consider pausing campaign [name] — audience saturation
  • 📉 Suggest cutting budget −25% on [campaign]
  • 📈 Suggest increasing budget +20% on [campaign] — auction pressure with strong CVR
  • 🔁 Suggest moving −30% from [campaign A] → +30% to [campaign B]
  • 🎨 Suggest testing new creative variant in [ad set] — current set fatigued

Use only these patterns. End with: _All recommendations — no changes applied. Ask explicitly to enact any of these._

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.