From mureo
Applies statistical thinking to marketing ad account decisions, distinguishing signal from noise and requiring evidence before strategy changes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mureo:_mureo-learningThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A decision framework for AI agents managing marketing accounts through mureo. This skill teaches agents to distinguish signal from noise, avoid premature optimization, and only commit to strategy changes backed by sufficient evidence.
A decision framework for AI agents managing marketing accounts through mureo. This skill teaches agents to distinguish signal from noise, avoid premature optimization, and only commit to strategy changes backed by sufficient evidence.
Marketing data is noisy. A campaign's CPA can swing 30% day-to-day from random variation alone. Without statistical rigor, agents will:
The antidote: observe, wait, verify, then act.
Every action that modifies a campaign enters this lifecycle. The agent tracks it via action_log entries in STATE.json.
Action taken (e.g., add negative keywords)
│
├── Record metrics_at_action + observation_due in action_log
│
▼
[OBSERVING] ── Do NOT draw conclusions yet
│ Wait for the observation window to pass
│
├── Observation window elapsed, collect current metrics
│
▼
[CANDIDATE] ── "This looks like it worked" or "This didn't help"
│ But one observation is NOT enough
│
├── Wait for a second observation period to confirm
│
▼
[VALIDATED] ── Consistent improvement across 2+ observation periods
│ NOW you can recommend a strategy change
│
▼
[APPLIED] ── User approved, STRATEGY.md updated
At any stage:
[REJECTED] ── Not significant, contradicted, or confounded by concurrent actions
Critical rule: OBSERVING and CANDIDATE findings are NOT actionable. Only VALIDATED insights should influence strategy.
Different actions need different wait times before evaluation:
| Action Type | Observation Window | Why |
|---|---|---|
| Budget change (>10%) | 7 days | Smart bidding needs ~7 days to re-learn |
| Keyword addition/removal | 14 days | Need enough impressions/clicks to evaluate |
| Negative keyword addition | 14 days | Impact on CPA unfolds gradually |
| Creative/ad copy change | 14 days | Ad rotation needs time to gather data |
| Bid strategy change | 21 days | Full learning period for smart bidding |
| Audience/targeting change | 14 days | Need sufficient reach data |
| Operation Mode change | 21 days | Compound effects across multiple campaigns |
Do NOT evaluate an action before its observation window has passed.
Before drawing any conclusion about a metric change, verify sufficient data:
| Metric | Minimum Sample | What Counts as "Sample" |
|---|---|---|
| CPA | 30 conversions (before) + 30 (after) | Each conversion is a sample point |
| CTR | 1,000 impressions (before) + 1,000 (after) | Each impression is a sample point |
| CVR | 200 clicks (before) + 200 (after) | Each click is a sample point |
| ROAS | 30 conversions with revenue | Each conversion is a sample point |
| Impression share | 7 days of daily data | Each day is a sample point |
If the sample size is insufficient, the finding stays in OBSERVING. Do NOT promote it.
When the observation window for an action has passed:
metrics_at_action (recorded when action was taken):
CPA: 5,200 | Conversions: 45 | Clicks: 1,200 | CTR: 3.2%
metrics_now (collected after observation window):
CPA: 4,100 | Conversions: 58 | Clicks: 1,400 | CTR: 3.5%
Ask these questions:
Is the change large enough to matter?
Is the change consistent across the observation period?
Were there confounding factors?
Does the direction match the hypothesis?
| Condition | Classification |
|---|---|
| Sample size insufficient | Stay in OBSERVING |
| Observation window not yet passed | Stay in OBSERVING |
| Change < 5% | REJECTED (noise) |
| Change 5-15%, consistent, no confounders | CANDIDATE → wait for 2nd period |
| Change > 15%, consistent, no confounders | CANDIDATE → wait for 2nd period |
| CANDIDATE confirmed in 2nd observation period | VALIDATED |
| CANDIDATE contradicted in 2nd observation period | REJECTED |
| Multiple concurrent actions on same campaign | Flag as confounded, extend window 2x |
When reporting findings, always state the evidence level:
GOOD (high confidence):
"CPA improved 18% (5,200 → 4,100) after negative keyword cleanup.
Observed over 14 days with 58 conversions. Consistent daily trend.
Confirmed across 2 observation periods. [VALIDATED]"
BAD (jumping to conclusions):
"CPA improved! The keyword changes are working great!"
(No sample size, no observation window, no consistency check.)
When executing any write operation, record the context needed for future evaluation:
{
"timestamp": "2026-04-01T10:30:00+09:00",
"action": "Added 15 negative keywords",
"platform": "google_ads",
"campaign_id": "12345",
"command": "/search-term-cleanup",
"summary": "Excluded informational queries misaligned with Persona",
"metrics_at_action": {
"cpa": 5200,
"conversions": 45,
"clicks": 1200,
"impressions": 37500,
"ctr": 0.032,
"cost": 234000
},
"observation_due": "2026-04-15"
}
Which metrics to record depends on the action type:
| Action Type | Key Metrics to Record |
|---|---|
| Budget change | cost, impressions, clicks, conversions, cpa |
| Keyword change | impressions, clicks, conversions, cpa, ctr |
| Creative change | impressions, clicks, ctr, conversions, cpa |
| Targeting change | impressions, clicks, conversions, cpa, reach |
| Bid strategy change | conversions, cpa, cost, impression_share |
Before proposing any action, check the action_log for:
| Anti-Pattern | Why It's Bad | What to Do Instead |
|---|---|---|
| "CPA dropped today, the change worked!" | One day is noise | Wait for the full observation window |
| Reverting a change after 2 days | Not enough data | Respect the observation window |
| Making 5 changes at once | Cannot attribute outcomes | Make one change, observe, then make the next |
| "Conversions went up 50%!" (from 2 to 3) | Tiny sample size | Check minimum sample requirements |
| Ignoring seasonality | External factors confound | Note day-of-week and seasonal patterns |
| Strategy update after one good week | One period insufficient | Require 2 consistent observation periods |
| Never updating strategy | Analysis paralysis | Once VALIDATED, commit to the learning |
1. Every write action → record metrics_at_action + observation_due
2. Before the window passes → DO NOT evaluate, DO NOT reverse
3. After the window passes → collect current metrics, check sample size
4. Sufficient data + meaningful change → CANDIDATE
5. Confirmed in 2nd period → VALIDATED → recommend strategy update
6. Not confirmed → REJECTED → document and move on
Be patient. Be rigorous. Let the data speak — but only when it has enough to say.
npx claudepluginhub logly/mureo --plugin mureoAudits marketing performance across Meta Ads, TikTok Ads, Google Ads, and organic channels. Diagnoses root causes of issues like high CPMess or low ROAS, benchmarks against industry data, and outputs a 48h action plan plus weekly optimization checklist.
Manages STRATEGY.md and STATE.json files for strategy-driven ad operations. Provides structured sections for personas, USPs, brand voice, and campaign state.
Core creative strategy reasoning methodology for the motion-creative plugin. This is a reference skill — it defines how to think about performance, competitive intelligence, and concept generation. Other skills read this for methodology. Only invoke directly when the user asks about the creative strategy framework itself or when no action skill matches. For specific tasks, route to: analyze-ad, performance-analysis, create-concepts, build-brief, write-hooks, find-iterations, industry-trends, qa-feedback, weekly-performance, etc.