From mureo
Generates a client-facing monthly marketing operations report with month-over-month comparison, goal attainment, action-log recap, budget utilization, and next-month recommendations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mureo:monthly-reportThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> 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).
PREREQUISITE: Read
../_mureo-shared/SKILL.mdfor auth, security rules, output format, and Tool Selection (Read/Write on Code,mureo_strategy_*/mureo_state_*MCP on Desktop / Cowork).
Generate a client-facing monthly marketing operations report. This mirrors /weekly-report but over a calendar month, with month-over-month comparison, a goal-attainment verdict, and language written for the client/stakeholder who receives it — not internal shorthand.
onboard skill first)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.
Load context: Read STRATEGY.md (Goals, Operation Mode, Persona, any ## Custom: Monthly Budget) and STATE.json.
Discover platforms: Identify all configured platforms and available data sources — built-in, mcp__mureo__<plugin>_* plugin platforms, and any hosted official-MCP connector present in the session (e.g. TikTok's tt-ads-* tools, key tiktok_ads). See ../_mureo-shared/SKILL.md → Plugin platforms and Hosted-connector platforms; pull a hosted connector's numbers from its own reporting tools and omit mureo-only value-adds.
Reporting window: Default to the previous full calendar month. If the user explicitly asks for a mid-month / month-to-date view, use MTD instead — and state clearly at the top of the report which window it is (a partial month is not comparable to a full one).
google_ads_performance_report with period="LAST_MONTH"; Meta Ads meta_ads_insights_report with period="last_month".period="THIS_MONTH"; Meta Ads period="this_month". Label it "MTD (through )".MUREO_DISABLE_GOOGLE_ADS=1 / MUREO_DISABLE_META_ADS=1 after mureo providers add …-official), fall back to the official google-ads-official / meta-ads-official MCP over the equivalent window; note that mureo-only value-adds (result_indicator CV-mismatch) are absent from the official surface.Month-over-month (MoM) comparison — the reporting month vs the month before it, using only windows the tools genuinely support (same honesty rule as the period above):
meta_ads_insights_report supports an explicit 'YYYY-MM-DD..YYYY-MM-DD' range, so pull the month-before with its exact date range and compare against last_month. A true Meta MoM is available.google_ads_performance_report's period is a fixed enum (LAST_MONTH, THIS_MONTH, LAST_30/90_DAYS, …) with no custom date range and no "month-before-last" preset. So a native Google Ads figure for the month-before-last is not directly available. Use, in order: (a) STATE.json's persisted prior-month rollup (platforms[<p>].periods[...]) or the previous monthly report's kpis (from mureo_state_report_set history) as the MoM baseline; (b) if neither exists, state that the Google Ads MoM comparison is unavailable this month rather than mislabel LAST_90_DAYS (a 3-month blend) as "the prior month". Never silently substitute a different window.Goal attainment summary (the month): For each Goal in STRATEGY.md, gather the month's metric from the relevant platforms / data sources and render a met / missed / partial verdict with the numbers:
Goal: CPA < 5,000 -- Met (Google 4,600 / Meta 4,900; blended 4,720)
Goal: CV >= 100/month -- Partial (Google 71 / Meta 24; total 95, 95% of target)
Goal: Organic clicks +20% -- Missed (Search Console +11%)
Actions taken — month recap grouped by command: read action_log, filter to the reporting month, and group by the command / skill that produced each entry (daily-check, budget-rebalance, rescue, creative-refresh, budget-pacing, …). For each group summarize what was done and how often:
| Command | # actions | What changed | Platforms |
|---|
Outcome verdicts (evidence pipeline): for action_log entries whose observation_due window closed within or before this month, call mureo_outcome_evaluate with before = the entry's metrics_at_action and after = the current metrics for the same campaign — it returns a deterministic improved / regressed / inconclusive verdict per metric and overall. Report each action's outcome with the confidence it implies (low: <1 period, medium: 1 period, high: 2+ consistent periods). For entries still within their observation window, list them as "pending — not yet conclusive" and do not present them as wins. Normalize any hosted-connector / plugin metric names to the standard keys (cpa, conversions, ctr, cost, …) before scoring. When summing Meta "results" across campaigns, group by result_indicator — never aggregate link_click totals with offsite_conversion.fb_pixel_lead totals (PR #61).
Budget utilization: if a ## Custom: Monthly Budget section exists in STRATEGY.md, compare actual month spend vs the monthly target (total and per-platform sub-targets) and report utilization %. Cross-link /budget-pacing for the in-month trajectory view and for landing-forecast mechanics. If no Monthly Budget section exists, report actual spend per platform and note that no monthly target is configured.
Cross-platform insights: compare the month's efficiency across platforms (CPA, CVR, ROAS); call out which platform gained or lost efficiency MoM; if Search Console is available, include the organic search trend (clicks, impressions, CTR MoM) and paid/organic overlap shifts; suggest cross-platform shifts if one platform is clearly outperforming toward Goal achievement.
Next-month recommendations:
/rescue, /budget-rebalance, /budget-pacing, /creative-refresh, /goal-review).TURNAROUND_RESCUE → EFFICIENCY_STABILIZE"), with the reason.Executive summary — written for the CLIENT: lead the report with a 3-5 sentence executive summary in plain language for an agency's client audience. No internal jargon, no tool names, no mode codenames — translate them ("we tightened targeting to protect your cost-per-lead", not "ran /rescue, switched to TURNAROUND_RESCUE"). State the headline result, whether goals were met, and the one thing to watch next month.
Present the report in a structured, shareable layout:
This report is read-only — it never mutates platform state. If a recommendation calls for a change, run the relevant skill (/rescue, /budget-rebalance, /budget-pacing), which applies its own approval gate and confirms with the operator before any write; monthly-report itself only reads and summarizes.
Log to action_log (via mureo_state_action_log_append) that a monthly report was generated, including the reporting month.
Persist the report summary (best-effort): Call mureo_state_report_set with report="monthly" and a concise summary object so the read-only dashboard can render this report without re-running you. Follow this convention:
generated_at: ISO 8601 timestamp of this runperiod: the reporting month (e.g. "2026-06"), and whether full-month or MTDkpis: per-platform + totals headline numbers (spend, conversions, cpa, MoM change)flags: notable items (e.g. ["cv_goal_missed", "meta_cpa_up_12pct_mom"])narrative: the client-facing executive summary (plain language)Reflect the FINAL state, and persist this LAST. This is best-effort: if mureo_state_report_set is unavailable (e.g. a pure file-mode host without the context MCP), skip it silently — the rest of this skill still works.
npx claudepluginhub logly/mureo --plugin mureoGenerates a weekly marketing operations report across platforms (Google Ads, Meta Ads, etc.) with goal progress, week-over-week changes, and platform discovery.
Generates concise marketing reports following a 'read 5 minutes, know what to do next' format with insights first, metrics as evidence, and actionable recommendations with deadlines and owners. Supports weekly/monthly global performance reports.
Generates white-labeled client reports with KPI performance, channel breakdowns, strategic recommendations, and approval-gated delivery via Slack, email, Google Sheets, or markdown.