diagnose-performance
Skill15 starsChanged 37 days agoMITView on GitHub
Use when the user asks why performance changed or what's going on with an account: ROAS dropped, CPA spiked, spend jumped, conversions fell, blended results slipped, or 'what moved this week'. Traces the move across Meta, Google, TikTok, LinkedIn and Microsoft Ads plus GA4 and Shopify to the real driver, then proposes the smallest fix. Also for account audits and weekly performance reads.
In this repository61 other files it gives its agents.
- access-and-permissionsSkill
- accounts-and-connectionsSkill
- ad-brief-generatorSkill
- affiliate-marketingSkill
- analyse-creativeSkill
- automate-with-agentsSkill
- brief-creativeSkill
- build-reportsSkill
- clean-wasted-spendSkill
- competitor-ad-intelligenceSkill
- creative-psychology-hooksSkill
- creative-researchSkill
- email-marketingSkill
- ga4-source-of-truthSkill
- get-startedSkill
- gomarble-skills-creative-strategistsSkill
- gomarble-skills-ecommerce-brandsSkill
- gomarble-skills-google-ads-auditSkill
- gomarble-skills-meta-ads-auditSkill
- gomarble-skills-saas-companiesSkill
- google-ads-create-master-skillSkill
- google-ads-depth-of-analysisSkill
- google-ads-guardrailsSkill
- google-ads-keywordplannerSkill
- google-ads-pmax-evaluationSkill
- google-ads-pmax-scalingSkill
- google-ads-search-analysisSkill
- google-ads-search-executionSkill
- google-ads-shoppingSkill
- google-ads-tool-fundamentalsSkill
- google-impression-shareSkill
- google-pmax-pulseSkill
- google-search-auditSkill
- google-search-term-auditSkill
- launch-campaignsSkill
- linkedin-adsSkill
- manage-campaignsSkill
- meta-ads-auditSkill
- meta-agent-operationsSkill
- meta-create-master-skillSkill
- meta-creative-analysisSkill
- meta-creative-fatigue-detectionSkill
- meta-creative-strategySkill
- meta-custom-event-interpretationSkill
- meta-daily-optimizationSkill
- meta-depth-of-analysisSkill
- meta-guardrailsSkill
- meta-performance-analysisSkill
- meta-tool-fundamentalsSkill
- microsoft-adsSkill
- organic-socialSkill
- own-creative-diagnosisSkill
- research-competitorsSkill
- search-console-master-skillSkill
- shift-budgetSkill
- shopify-order-disciplineSkill
- tiktok-adsSkill
- tiktok-create-master-skillSkill
- winning-ads-engineSkill
- winning-ads-orchestratorSkill
- The first 60 shown.
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
- Very specific: line 20
Call recall_memory for the account: its baselines, targets, known patterns and earlier findings.
- Distinctive: line 29
Check that the change is outside normal variance and isn't partial data.
- Distinctive: line 30
Check volume. Ten conversions moving to eight is noise, not a trend.
- Very specific: line 51
Before any recommendation, read meta-guardrails or google-ads-guardrails.
- Very specific: line 69
If the user wants to apply a fix, hand off to the matching skill: shift-budget, clean-wasted-spend or manage-campaigns.
≈ “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.
Files
Diagnose performance
Find the cause before changing the account. Trace a performance move to its real driver, then recommend the smallest action that fixes it.
When to use
- "Why did ROAS drop last week?" / "Why is CPA up?"
- "What changed in my account?" / "What moved this week?"
- "Audit my Meta (or Google) account."
- Blended results slipped and the user doesn't know which channel caused it.
Before you start
- Find the accounts (see
get-started) and confirm the currency. - Call
recall_memoryfor the account: its baselines, targets, known patterns and earlier findings. Judge the move against this account's normal range, not a universal benchmark. - Settle the comparison: the period in question vs the one before it (for example last 7 days vs the prior 7), and the target KPI (ROAS, CPA, CPL). If there's no target, use the account's trailing 30-day average and say so.
Workflow
1. The movement
Confirm the move is real before explaining it.
- Pull both periods at account level for every channel involved.
- Check that the change is outside normal variance and isn't partial data. Recent days can still be missing conversions.
- Check volume. Ten conversions moving to eight is noise, not a trend.
2. The driver
Drill down one level at a time until the change is isolated to a specific line.
| Where to look | What it can show |
| Channel | Which channel owns the move. Compare with GA4 sessions and conversions by channel, and Shopify revenue, to separate platform attribution from real business change. |
| Campaign → ad set / ad group → ad | Where spend and results actually shifted. Quantify it: "Campaign X is 60% of spend and 90% of the CPA increase." |
| Changes in the account | Budget, bid, targeting, status or creative edits right before the move. |
| Creative | Hook rate, hold rate and CTR decay together with rising frequency means fatigue (see analyse-creative). |
| Audience and placement | Delivery shifting to a worse segment, placement or geography. |
| Search terms | New low-intent queries or match-type leakage (see clean-wasted-spend). |
| Auction | CPM or CPC up with impression share down means competition, not quality. |
| Tracking | Conversions falling while GA4 or Shopify stay flat usually means a tracking or attribution break, not a performance problem. |
Apply the platform methodology:
- Meta:
meta-performance-analysis, withmeta-depth-of-analysis. Readmeta-custom-event-interpretationbefore judging any sales campaign that optimizes for COMPLETE_REGISTRATION. - Google:
google-ads-search-analysis,google-ads-shoppingorgoogle-ads-pmax-evaluation, withgoogle-ads-depth-of-analysis. - TikTok, LinkedIn, Microsoft Ads: the matching channel skill.
- Before any recommendation, read
meta-guardrailsorgoogle-ads-guardrails.
3. The proposed actions
Recommend the smallest change that addresses the driver. Refreshing creative is often better than cutting budget. For each action give the entity, what to change, the evidence, and the expected effect. Then surface one or two things the user didn't ask about but should know: a trend that will become a problem in the next 7–14 days.
Output
Use three parts:
- The movement. The metric, the change and the period, against the account's normal range. Example: "ROAS 2.1 vs a normal 2.8–3.2, down 27% week over week."
- The driver. The root cause with evidence. Example: "Hook rate and conversion rate fell together on the two top-spend ads, which are 70% of spend."
- The proposed actions. A ranked list with entity, change, reason and expected effect.
End by offering to make the changes (with approval) or to keep watching with an agent.
Acting on it
If the user wants to apply a fix, hand off to the matching skill: shift-budget, clean-wasted-spend or manage-campaigns. Every change goes dry run → the user approves in chat → live (see get-started).
Put it on a schedule
Offer a daily "performance analyst" agent that flags the next meaningful move (see automate-with-agents).
Tools
| Source | Tools |
| Meta Ads | facebook_get_details_of_ad_account, facebook_get_adaccount_insights, facebook_get_async_adaccount_insights (large pulls), facebook_fetch_pagination_url, facebook_list_campaigns, facebook_list_adsets, facebook_list_ads, facebook_get_campaign_details, facebook_get_adset_details, facebook_get_activities_by_adaccount (change history) |
| Google Ads | google_ads_run_gaql, google_ads_get_change_logs (changes joined with performance) |
| TikTok Ads | tiktok_get_basic_report_enhanced, tiktok_get_async_report, tiktok_get_audience_report, tiktok_get_campaigns, tiktok_get_adgroups, tiktok_get_ads, tiktok_fetch_pagination, tiktok_get_change_log |
| LinkedIn Ads | linkedin_get_ad_analytics, linkedin_get_campaigns |
| Microsoft Ads | bing_ads_get_performance, bing_ads_get_change_history |
| GA4 | google_analytics_run_report, google_analytics_get_traffic_sources (read ga4-source-of-truth first) |
| Shopify | shopify_run_analytics_query (read shopify-order-discipline first) |
| Memory | recall_memory |
Reach, frequency and rate metrics can't be summed across rows. Recompute them from totals.
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
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.

