mureo 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. mureo-0.6.0/.claude/commands/budget-rebalance.md +62 -0
  2. mureo-0.6.0/.claude/commands/competitive-scan.md +40 -0
  3. mureo-0.6.0/.claude/commands/creative-refresh.md +45 -0
  4. mureo-0.6.0/.claude/commands/daily-check.md +64 -0
  5. mureo-0.6.0/.claude/commands/goal-review.md +54 -0
  6. mureo-0.6.0/.claude/commands/learn.md +39 -0
  7. mureo-0.6.0/.claude/commands/onboard.md +47 -0
  8. mureo-0.6.0/.claude/commands/rescue.md +51 -0
  9. mureo-0.6.0/.claude/commands/search-term-cleanup.md +46 -0
  10. mureo-0.6.0/.claude/commands/sync-state.md +31 -0
  11. mureo-0.6.0/.claude/commands/weekly-report.md +53 -0
  12. mureo-0.6.0/.claude/settings.json +5 -0
  13. mureo-0.6.0/.github/CODEOWNERS +10 -0
  14. mureo-0.6.0/.github/ISSUE_TEMPLATE/bug_report.md +51 -0
  15. mureo-0.6.0/.github/ISSUE_TEMPLATE/config.yml +8 -0
  16. mureo-0.6.0/.github/ISSUE_TEMPLATE/feature_request.md +35 -0
  17. mureo-0.6.0/.github/PULL_REQUEST_TEMPLATE.md +36 -0
  18. mureo-0.6.0/.github/dependabot.yml +26 -0
  19. mureo-0.6.0/.github/workflows/ci.yml +52 -0
  20. mureo-0.6.0/.github/workflows/release.yml +32 -0
  21. mureo-0.6.0/.github/workflows/security.yml +31 -0
  22. mureo-0.6.0/.gitignore +27 -0
  23. mureo-0.6.0/AGENTS.md +233 -0
  24. mureo-0.6.0/CHANGELOG.md +175 -0
  25. mureo-0.6.0/CLAUDE.md +1 -0
  26. mureo-0.6.0/CONTEXT.md +282 -0
  27. mureo-0.6.0/CONTRIBUTING.md +243 -0
  28. mureo-0.6.0/LICENSE +190 -0
  29. mureo-0.6.0/PKG-INFO +989 -0
  30. mureo-0.6.0/README.ja.md +345 -0
  31. mureo-0.6.0/README.md +945 -0
  32. mureo-0.6.0/SECURITY.md +252 -0
  33. mureo-0.6.0/docs/architecture.md +405 -0
  34. mureo-0.6.0/docs/authentication.md +293 -0
  35. mureo-0.6.0/docs/cli.md +199 -0
  36. mureo-0.6.0/docs/img/logo-dark.png +0 -0
  37. mureo-0.6.0/docs/img/logo.png +0 -0
  38. mureo-0.6.0/docs/integrations.md +178 -0
  39. mureo-0.6.0/docs/mcp-server.md +668 -0
  40. mureo-0.6.0/docs/strategy-context.md +293 -0
  41. mureo-0.6.0/gemini-extension.json +6 -0
  42. mureo-0.6.0/mureo/__init__.py +3 -0
  43. mureo-0.6.0/mureo/_data/commands/budget-rebalance.md +54 -0
  44. mureo-0.6.0/mureo/_data/commands/competitive-scan.md +38 -0
  45. mureo-0.6.0/mureo/_data/commands/creative-refresh.md +43 -0
  46. mureo-0.6.0/mureo/_data/commands/daily-check.md +48 -0
  47. mureo-0.6.0/mureo/_data/commands/goal-review.md +52 -0
  48. mureo-0.6.0/mureo/_data/commands/onboard.md +39 -0
  49. mureo-0.6.0/mureo/_data/commands/rescue.md +42 -0
  50. mureo-0.6.0/mureo/_data/commands/search-term-cleanup.md +44 -0
  51. mureo-0.6.0/mureo/_data/commands/sync-state.md +31 -0
  52. mureo-0.6.0/mureo/_data/commands/weekly-report.md +51 -0
  53. mureo-0.6.0/mureo/_data/skills/mureo-google-ads/SKILL.md +837 -0
  54. mureo-0.6.0/mureo/_data/skills/mureo-learning/SKILL.md +262 -0
  55. mureo-0.6.0/mureo/_data/skills/mureo-meta-ads/SKILL.md +699 -0
  56. mureo-0.6.0/mureo/_data/skills/mureo-shared/SKILL.md +233 -0
  57. mureo-0.6.0/mureo/_data/skills/mureo-strategy/SKILL.md +371 -0
  58. mureo-0.6.0/mureo/_data/skills/mureo-workflows/SKILL.md +316 -0
  59. mureo-0.6.0/mureo/_image_validation.py +128 -0
  60. mureo-0.6.0/mureo/analysis/__init__.py +0 -0
  61. mureo-0.6.0/mureo/analysis/anomaly_detector.py +320 -0
  62. mureo-0.6.0/mureo/analysis/lp_analyzer.py +391 -0
  63. mureo-0.6.0/mureo/auth.py +462 -0
  64. mureo-0.6.0/mureo/auth_setup.py +1295 -0
  65. mureo-0.6.0/mureo/cli/__init__.py +1 -0
  66. mureo-0.6.0/mureo/cli/_tty.py +65 -0
  67. mureo-0.6.0/mureo/cli/auth_cmd.py +211 -0
  68. mureo-0.6.0/mureo/cli/main.py +26 -0
  69. mureo-0.6.0/mureo/cli/rollback_cmd.py +154 -0
  70. mureo-0.6.0/mureo/cli/setup_cmd.py +485 -0
  71. mureo-0.6.0/mureo/cli/setup_codex.py +354 -0
  72. mureo-0.6.0/mureo/cli/setup_gemini.py +98 -0
  73. mureo-0.6.0/mureo/cli/web_auth.py +1230 -0
  74. mureo-0.6.0/mureo/context/__init__.py +53 -0
  75. mureo-0.6.0/mureo/context/errors.py +7 -0
  76. mureo-0.6.0/mureo/context/models.py +129 -0
  77. mureo-0.6.0/mureo/context/state.py +270 -0
  78. mureo-0.6.0/mureo/context/strategy.py +181 -0
  79. mureo-0.6.0/mureo/google_ads/__init__.py +5 -0
  80. mureo-0.6.0/mureo/google_ads/_ads.py +451 -0
  81. mureo-0.6.0/mureo/google_ads/_ads_display.py +330 -0
  82. mureo-0.6.0/mureo/google_ads/_analysis.py +45 -0
  83. mureo-0.6.0/mureo/google_ads/_analysis_auction.py +506 -0
  84. mureo-0.6.0/mureo/google_ads/_analysis_btob.py +200 -0
  85. mureo-0.6.0/mureo/google_ads/_analysis_budget.py +255 -0
  86. mureo-0.6.0/mureo/google_ads/_analysis_constants.py +113 -0
  87. mureo-0.6.0/mureo/google_ads/_analysis_keywords.py +392 -0
  88. mureo-0.6.0/mureo/google_ads/_analysis_performance.py +673 -0
  89. mureo-0.6.0/mureo/google_ads/_analysis_rsa.py +266 -0
  90. mureo-0.6.0/mureo/google_ads/_analysis_search_terms.py +689 -0
  91. mureo-0.6.0/mureo/google_ads/_creative.py +302 -0
  92. mureo-0.6.0/mureo/google_ads/_diagnostics.py +710 -0
  93. mureo-0.6.0/mureo/google_ads/_extensions.py +47 -0
  94. mureo-0.6.0/mureo/google_ads/_extensions_callouts.py +113 -0
  95. mureo-0.6.0/mureo/google_ads/_extensions_conversions.py +447 -0
  96. mureo-0.6.0/mureo/google_ads/_extensions_sitelinks.py +162 -0
  97. mureo-0.6.0/mureo/google_ads/_extensions_targeting.py +553 -0
  98. mureo-0.6.0/mureo/google_ads/_gaql_validator.py +142 -0
  99. mureo-0.6.0/mureo/google_ads/_intent_classifier.py +194 -0
  100. mureo-0.6.0/mureo/google_ads/_keywords.py +465 -0
  101. mureo-0.6.0/mureo/google_ads/_media.py +84 -0
  102. mureo-0.6.0/mureo/google_ads/_message_match.py +173 -0
  103. mureo-0.6.0/mureo/google_ads/_monitoring.py +655 -0
  104. mureo-0.6.0/mureo/google_ads/_rda_validator.py +228 -0
  105. mureo-0.6.0/mureo/google_ads/_rsa_insights.py +183 -0
  106. mureo-0.6.0/mureo/google_ads/_rsa_validator.py +685 -0
  107. mureo-0.6.0/mureo/google_ads/client.py +1063 -0
  108. mureo-0.6.0/mureo/google_ads/mappers.py +634 -0
  109. mureo-0.6.0/mureo/mcp/__init__.py +13 -0
  110. mureo-0.6.0/mureo/mcp/__main__.py +7 -0
  111. mureo-0.6.0/mureo/mcp/_handlers_analysis.py +188 -0
  112. mureo-0.6.0/mureo/mcp/_handlers_google_ads.py +553 -0
  113. mureo-0.6.0/mureo/mcp/_handlers_google_ads_analysis.py +529 -0
  114. mureo-0.6.0/mureo/mcp/_handlers_google_ads_extensions.py +408 -0
  115. mureo-0.6.0/mureo/mcp/_handlers_meta_ads.py +691 -0
  116. mureo-0.6.0/mureo/mcp/_handlers_meta_ads_extended.py +379 -0
  117. mureo-0.6.0/mureo/mcp/_handlers_meta_ads_other.py +214 -0
  118. mureo-0.6.0/mureo/mcp/_handlers_rollback.py +179 -0
  119. mureo-0.6.0/mureo/mcp/_handlers_search_console.py +229 -0
  120. mureo-0.6.0/mureo/mcp/_helpers.py +61 -0
  121. mureo-0.6.0/mureo/mcp/_tools_google_ads_analysis.py +457 -0
  122. mureo-0.6.0/mureo/mcp/_tools_google_ads_assets.py +25 -0
  123. mureo-0.6.0/mureo/mcp/_tools_google_ads_campaigns.py +444 -0
  124. mureo-0.6.0/mureo/mcp/_tools_google_ads_extensions.py +518 -0
  125. mureo-0.6.0/mureo/mcp/_tools_google_ads_keywords.py +300 -0
  126. mureo-0.6.0/mureo/mcp/_tools_meta_ads_audiences.py +202 -0
  127. mureo-0.6.0/mureo/mcp/_tools_meta_ads_campaigns.py +364 -0
  128. mureo-0.6.0/mureo/mcp/_tools_meta_ads_catalog.py +224 -0
  129. mureo-0.6.0/mureo/mcp/_tools_meta_ads_conversions.py +146 -0
  130. mureo-0.6.0/mureo/mcp/_tools_meta_ads_creatives.py +247 -0
  131. mureo-0.6.0/mureo/mcp/_tools_meta_ads_insights.py +173 -0
  132. mureo-0.6.0/mureo/mcp/_tools_meta_ads_leads.py +139 -0
  133. mureo-0.6.0/mureo/mcp/_tools_meta_ads_other.py +292 -0
  134. mureo-0.6.0/mureo/mcp/_tools_search_console.py +264 -0
  135. mureo-0.6.0/mureo/mcp/server.py +110 -0
  136. mureo-0.6.0/mureo/mcp/tools_analysis.py +113 -0
  137. mureo-0.6.0/mureo/mcp/tools_google_ads.py +65 -0
  138. mureo-0.6.0/mureo/mcp/tools_meta_ads.py +263 -0
  139. mureo-0.6.0/mureo/mcp/tools_rollback.py +102 -0
  140. mureo-0.6.0/mureo/mcp/tools_search_console.py +81 -0
  141. mureo-0.6.0/mureo/meta_ads/__init__.py +17 -0
  142. mureo-0.6.0/mureo/meta_ads/_ad_rules.py +133 -0
  143. mureo-0.6.0/mureo/meta_ads/_ad_sets.py +170 -0
  144. mureo-0.6.0/mureo/meta_ads/_ads.py +142 -0
  145. mureo-0.6.0/mureo/meta_ads/_analysis.py +378 -0
  146. mureo-0.6.0/mureo/meta_ads/_audiences.py +183 -0
  147. mureo-0.6.0/mureo/meta_ads/_campaigns.py +155 -0
  148. mureo-0.6.0/mureo/meta_ads/_catalog.py +208 -0
  149. mureo-0.6.0/mureo/meta_ads/_conversions.py +148 -0
  150. mureo-0.6.0/mureo/meta_ads/_creatives.py +460 -0
  151. mureo-0.6.0/mureo/meta_ads/_hash_utils.py +127 -0
  152. mureo-0.6.0/mureo/meta_ads/_insights.py +264 -0
  153. mureo-0.6.0/mureo/meta_ads/_instagram.py +100 -0
  154. mureo-0.6.0/mureo/meta_ads/_leads.py +177 -0
  155. mureo-0.6.0/mureo/meta_ads/_page_posts.py +90 -0
  156. mureo-0.6.0/mureo/meta_ads/_pixels.py +113 -0
  157. mureo-0.6.0/mureo/meta_ads/_split_test.py +128 -0
  158. mureo-0.6.0/mureo/meta_ads/client.py +369 -0
  159. mureo-0.6.0/mureo/meta_ads/mappers.py +233 -0
  160. mureo-0.6.0/mureo/rollback/__init__.py +25 -0
  161. mureo-0.6.0/mureo/rollback/executor.py +163 -0
  162. mureo-0.6.0/mureo/rollback/models.py +58 -0
  163. mureo-0.6.0/mureo/rollback/planner.py +181 -0
  164. mureo-0.6.0/mureo/search_console/__init__.py +5 -0
  165. mureo-0.6.0/mureo/search_console/client.py +206 -0
  166. mureo-0.6.0/mureo/throttle.py +130 -0
  167. mureo-0.6.0/pyproject.toml +110 -0
  168. mureo-0.6.0/skills/mureo-google-ads/SKILL.md +837 -0
  169. mureo-0.6.0/skills/mureo-learning/SKILL.md +262 -0
  170. mureo-0.6.0/skills/mureo-meta-ads/SKILL.md +699 -0
  171. mureo-0.6.0/skills/mureo-pro-diagnosis/SKILL.md +68 -0
  172. mureo-0.6.0/skills/mureo-shared/SKILL.md +233 -0
  173. mureo-0.6.0/skills/mureo-strategy/SKILL.md +371 -0
  174. mureo-0.6.0/skills/mureo-workflows/SKILL.md +316 -0
  175. mureo-0.6.0/tests/__init__.py +0 -0
  176. mureo-0.6.0/tests/test_anomaly_detector.py +343 -0
  177. mureo-0.6.0/tests/test_auth.py +493 -0
  178. mureo-0.6.0/tests/test_auth_oauth_helpers.py +239 -0
  179. mureo-0.6.0/tests/test_auth_setup.py +1675 -0
  180. mureo-0.6.0/tests/test_auth_setup_meta.py +907 -0
  181. mureo-0.6.0/tests/test_cli.py +220 -0
  182. mureo-0.6.0/tests/test_cli_rollback.py +196 -0
  183. mureo-0.6.0/tests/test_commands.py +403 -0
  184. mureo-0.6.0/tests/test_gaql_validator.py +181 -0
  185. mureo-0.6.0/tests/test_google_ads_ads.py +1034 -0
  186. mureo-0.6.0/tests/test_google_ads_analysis.py +2008 -0
  187. mureo-0.6.0/tests/test_google_ads_client.py +1323 -0
  188. mureo-0.6.0/tests/test_google_ads_creative.py +538 -0
  189. mureo-0.6.0/tests/test_google_ads_diagnostics.py +821 -0
  190. mureo-0.6.0/tests/test_google_ads_extensions.py +1968 -0
  191. mureo-0.6.0/tests/test_google_ads_keywords.py +691 -0
  192. mureo-0.6.0/tests/test_google_ads_mappers.py +528 -0
  193. mureo-0.6.0/tests/test_google_ads_monitoring.py +563 -0
  194. mureo-0.6.0/tests/test_image_upload.py +421 -0
  195. mureo-0.6.0/tests/test_imports.py +140 -0
  196. mureo-0.6.0/tests/test_llm_removed.py +508 -0
  197. mureo-0.6.0/tests/test_lp_analyzer.py +249 -0
  198. mureo-0.6.0/tests/test_mcp_server.py +213 -0
  199. mureo-0.6.0/tests/test_mcp_tools_analysis.py +309 -0
  200. mureo-0.6.0/tests/test_mcp_tools_google_ads.py +837 -0
  201. mureo-0.6.0/tests/test_mcp_tools_google_ads_analysis.py +710 -0
  202. mureo-0.6.0/tests/test_mcp_tools_google_ads_extensions.py +561 -0
  203. mureo-0.6.0/tests/test_mcp_tools_meta_ads.py +464 -0
  204. mureo-0.6.0/tests/test_mcp_tools_meta_ads_analysis.py +159 -0
  205. mureo-0.6.0/tests/test_mcp_tools_meta_ads_extended.py +479 -0
  206. mureo-0.6.0/tests/test_mcp_tools_meta_ads_other.py +367 -0
  207. mureo-0.6.0/tests/test_mcp_tools_rollback.py +203 -0
  208. mureo-0.6.0/tests/test_mcp_tools_search_console.py +424 -0
  209. mureo-0.6.0/tests/test_meta_ads_ad_rules.py +189 -0
  210. mureo-0.6.0/tests/test_meta_ads_catalog.py +245 -0
  211. mureo-0.6.0/tests/test_meta_ads_client.py +242 -0
  212. mureo-0.6.0/tests/test_meta_ads_conversions.py +301 -0
  213. mureo-0.6.0/tests/test_meta_ads_instagram.py +324 -0
  214. mureo-0.6.0/tests/test_meta_ads_leads.py +583 -0
  215. mureo-0.6.0/tests/test_meta_ads_mappers.py +329 -0
  216. mureo-0.6.0/tests/test_meta_ads_media.py +686 -0
  217. mureo-0.6.0/tests/test_meta_ads_operations.py +832 -0
  218. mureo-0.6.0/tests/test_meta_ads_split_test.py +215 -0
  219. mureo-0.6.0/tests/test_meta_oauth_helpers.py +153 -0
  220. mureo-0.6.0/tests/test_meta_token_refresh.py +377 -0
  221. mureo-0.6.0/tests/test_rda_validator.py +497 -0
  222. mureo-0.6.0/tests/test_rollback.py +232 -0
  223. mureo-0.6.0/tests/test_rollback_execute.py +337 -0
  224. mureo-0.6.0/tests/test_rsa_validator.py +371 -0
  225. mureo-0.6.0/tests/test_search_console_client.py +384 -0
  226. mureo-0.6.0/tests/test_setup_cmd.py +352 -0
  227. mureo-0.6.0/tests/test_setup_codex.py +379 -0
  228. mureo-0.6.0/tests/test_setup_gemini.py +109 -0
  229. mureo-0.6.0/tests/test_state.py +990 -0
  230. mureo-0.6.0/tests/test_strategy.py +422 -0
  231. mureo-0.6.0/tests/test_throttle.py +267 -0
  232. mureo-0.6.0/tests/test_tty.py +141 -0
  233. mureo-0.6.0/tests/test_web_auth.py +1398 -0
@@ -0,0 +1,62 @@
1
+ Analyze budget allocation and suggest rebalancing across all campaigns.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json must exist (run `/onboard` first)
5
+
6
+ ## Steps
7
+
8
+ 1. **Load context**: Read STRATEGY.md (Operation Mode, Market Context, Goal sections, Data Sources) and STATE.json.
9
+
10
+ 2. **Discover platforms**: Identify all configured ad platforms from STATE.json `platforms`.
11
+
12
+ 3. **Structural check before rebalancing** (apply learned insights from `mureo-pro-diagnosis` skill if available): Before shifting budgets, check if the problem is allocation or structural dispersion:
13
+ - Calculate budget-per-ad-group ratios for each campaign
14
+ - If ad groups are starving (< 5 clicks/day avg), recommend consolidation BEFORE reallocation
15
+ - If a campaign has too many ad groups for its budget, consolidation may be more effective than increasing budget
16
+ - For low-volume accounts (< 50 conversions/month total), recommend concentrating budget into 1-2 campaigns rather than spreading across many
17
+
18
+ 4. **Analyze budget efficiency**: For each ad platform, analyze budget efficiency using the platform's budget and performance analysis tools.
19
+
20
+ 5. **Rank campaigns** by efficiency (CPA, ROAS, or CVR depending on campaign goals) across all platforms to enable cross-platform comparison.
21
+
22
+ 6. **Goal-driven prioritization**: Reference Goal sections from STRATEGY.md to guide allocation:
23
+ - Identify which platform is closer to achieving each Goal
24
+ - Consider shifting budget toward the platform with better Goal progress
25
+
26
+ 7. **Cross-platform rebalancing**: Evaluate whether budget should move between any configured platforms:
27
+ - Compare CPA/ROAS across all platforms
28
+ - If one platform significantly outperforms, suggest cross-platform budget shift
29
+ - Present cross-platform comparison before within-platform reallocation
30
+
31
+ 8. **Organic intelligence** (if Search Console is available): If organic rankings are strong for certain keywords, consider reducing paid spend on those terms and reallocating to keywords without organic coverage.
32
+
33
+ 9. **Conversion quality check** (if GA4 is available): Incorporate conversion quality data (bounce rate, pages/session, time on site by traffic source) into budget decisions. A platform with lower CPA but higher bounce rate may not be the better allocation.
34
+
35
+ 10. **Mode guard**: If Operation Mode is `ONBOARDING_LEARNING` or `CREATIVE_TESTING`, warn that budget changes are discouraged in this mode and ask whether to proceed.
36
+
37
+ 11. **Generate reallocation plan** based on Operation Mode:
38
+ - **EFFICIENCY_STABILIZE**: Shift budget from high-CPA to low-CPA campaigns
39
+ - **SCALE_EXPANSION**: Increase budget for campaigns not limited by budget but performing well
40
+ - **TURNAROUND_RESCUE**: Cut budget from campaigns with 0 conversions
41
+ - **COMPETITOR_DEFENSE**: Increase budget on core brand/keyword campaigns under competitive pressure
42
+ - **LTV_QUALITY_FOCUS**: Prioritize campaigns with highest conversion quality
43
+ - **ONBOARDING_LEARNING**: Minimal changes only if user confirmed in step 10
44
+ - **CREATIVE_TESTING**: Minimal changes only if user confirmed in step 10
45
+
46
+ 12. **Present plan** as a table:
47
+ | Platform | Campaign | Current Budget | Proposed Budget | Change | Reason |
48
+ |----------|----------|---------------|-----------------|--------|--------|
49
+
50
+ 13. **Risk assessment**: Flag any budget changes >20% (smart bidding learning risk).
51
+
52
+ 14. **Ask for approval** before any changes.
53
+
54
+ 15. **Check pending observations**: Before executing, check `action_log` for campaigns being modified. If a previous budget change is still within its observation window, warn about stacking changes.
55
+
56
+ 16. **Execute**: Use each platform's budget update tools to apply approved changes.
57
+
58
+ 17. **Record outcome context**: For each campaign modified, log to `action_log` with `metrics_at_action` (current cost, impressions, clicks, conversions, CPA, budget utilization) and `observation_due` (7 days from today for budget changes).
59
+
60
+ 18. **Update STATE.json** with new budget values, notes, and log the rebalancing action to `action_log`.
61
+
62
+ 19. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
@@ -0,0 +1,40 @@
1
+ Scan the competitive landscape and suggest strategic responses across all channels.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json must exist (run `/onboard` first)
5
+
6
+ ## Steps
7
+
8
+ 1. **Load context**: Read STRATEGY.md (Market Context, USP, Data Sources) and STATE.json.
9
+
10
+ 2. **Discover platforms**: Identify all configured platforms from STATE.json `platforms`.
11
+
12
+ 3. **Paid competitive analysis**: For each ad platform that provides competitive/auction data, run competitive analysis using the platform's auction insights and trend detection tools. Compare impression share, overlap rate, CPC trends, and device landscape.
13
+
14
+ 4. **Organic competitive landscape** (if Search Console is available):
15
+ - Compare organic search performance trends (impressions, clicks, CTR, average position)
16
+ - Identify queries where organic position is declining (potential competitor content gains)
17
+ - Cross-reference paid auction competitors with organic ranking competitors
18
+ - Present a unified paid + organic competitive picture
19
+
20
+ 5. **On-site competitive signals** (if GA4 is available): Check referral traffic and direct/brand traffic trends. Declining brand search or direct traffic may indicate competitors capturing mind share.
21
+
22
+ 6. **Compare with Market Context** from STRATEGY.md:
23
+ - Are known competitors gaining share?
24
+ - Are new competitors appearing?
25
+ - Has the competitive landscape changed since STRATEGY.md was last updated?
26
+
27
+ 7. **Noise guard**: Look at trends over 4+ weeks, not week-to-week changes. A single week's impression share dip is not a competitive threat — it may be seasonality or auction noise. Only flag competitive changes that are consistent over multiple weeks.
28
+
29
+ 8. **Strategic recommendations**: Based on findings and USP, suggest responses across all channels:
30
+ - Paid adjustments (bid, budget, targeting) per platform
31
+ - Organic content gaps to address (from Search Console data)
32
+ - Cross-channel coordination opportunities
33
+
34
+ 9. **Ask for my approval** before updating any files or making changes.
35
+
36
+ 10. **Update STRATEGY.md** Market Context section if approved.
37
+
38
+ 11. **Update STATE.json** with competitive insights in campaign notes.
39
+
40
+ 12. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
@@ -0,0 +1,45 @@
1
+ Refresh ad creatives based on strategy context and performance data across all platforms.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json must exist (run `/onboard` first)
5
+
6
+ ## Steps
7
+
8
+ 1. **Load context**: Read STRATEGY.md (Persona, USP, Brand Voice, Data Sources) and STATE.json.
9
+
10
+ 2. **Discover platforms**: Identify all configured ad platforms from STATE.json `platforms`.
11
+
12
+ 3. **Audit current creatives**: For each ad platform, audit current ad creative performance using the platform's creative analysis tools. Identify underperforming assets (LOW/POOR ratings for search ads, low CTR/engagement for social ads).
13
+
14
+ 4. **Analyze landing pages**: For each campaign's final URL, analyze the landing page to extract key selling points, CTAs, and features. If GA4 is available, pull engagement metrics (time on page, scroll depth, bounce rate) to inform creative direction.
15
+
16
+ 5. **Organic keyword insights** (if Search Console is available): Incorporate top-performing organic search queries into ad copy. Terms that drive organic clicks likely resonate with users.
17
+
18
+ 6. **Generate platform-appropriate creative recommendations**:
19
+ Using Persona pain points + USP + LP selling points + Brand Voice rules, draft:
20
+ - **Search ads**: Headlines and descriptions aligned with character limits and ad format requirements
21
+ - **Social ads**: Primary text, headline, description, CTA suggestions
22
+ - Consider platform-specific best practices and format requirements
23
+
24
+ Each creative must:
25
+ - Address a specific Persona pain point OR highlight a USP
26
+ - Match the Brand Voice guidelines
27
+ - Include keywords from top-performing search terms (paid and organic)
28
+
29
+ 7. **Validate**: Run each through the relevant platform's ad validation rules (character limits, prohibited expressions, no duplicates).
30
+
31
+ 8. **Present recommendations** with rationale for each. Group by platform.
32
+
33
+ 9. **Ask for approval** before creating/updating any ads.
34
+
35
+ 10. **Check pending observations**: Before executing, check `action_log` for campaigns being modified. If a previous creative change is still within its observation window, warn about stacking changes.
36
+
37
+ 11. **Execute approved changes**: Use each platform's ad creation/update tools to apply changes.
38
+
39
+ 12. **Record outcome context**: For each campaign modified, log to `action_log` with `metrics_at_action` (current CTR, CPA, conversions, impressions, clicks) and `observation_due` (14 days from today).
40
+
41
+ 13. **Update STATE.json** with notes.
42
+
43
+ 14. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
44
+
45
+ IMPORTANT: Every headline/description must have a clear rationale tied to Persona, USP, or LP content. Never generate generic ad copy. Consult past action_log — if previous creative refreshes have evaluated outcomes, reference what worked.
@@ -0,0 +1,64 @@
1
+ Run a daily health check on all marketing accounts using the strategy context.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json must exist in the current directory (run `/onboard` first if not)
5
+
6
+ ## Steps
7
+
8
+ 1. **Load context**: Read STRATEGY.md (especially Operation Mode, Data Sources, and all Goal sections) and STATE.json.
9
+
10
+ 2. **Discover available platforms**: Identify all configured platforms from STATE.json `platforms` and check which data sources (Search Console, GA4) are accessible.
11
+
12
+ 3. **Sync state**: For each platform in STATE.json `platforms`, fetch current campaign data and update STATE.json.
13
+
14
+ 4. **Structural health check** (apply learned insights from `mureo-pro-diagnosis` skill if available): Before analyzing metrics, evaluate account structure health:
15
+ - Calculate budget-per-ad-group and budget-per-keyword ratios for each campaign
16
+ - Flag ad groups averaging < 5 clicks/day (7-day average)
17
+ - Flag campaigns with < 30 conversions/month using smart bidding
18
+ - Flag budget dispersion issues (too many ad groups/campaigns for the budget)
19
+ - If structural issues are found, prioritize them above metric-level findings
20
+
21
+ 5. **Platform health checks**: Run health diagnostics on each configured ad platform. Use the platform's health check, performance analysis, and cost anomaly detection tools. Present a unified health summary across all platforms.
22
+
23
+ 6. **Mode-specific checks** based on Operation Mode:
24
+ - **ONBOARDING_LEARNING**: Check learning status on each platform. Warn against making changes.
25
+ - **EFFICIENCY_STABILIZE**: Analyze CPA trends across all platforms. Flag if CPA increased >10% on any platform.
26
+ - **TURNAROUND_RESCUE**: Identify zero-conversion campaigns and cost spikes across all platforms.
27
+ - **SCALE_EXPANSION**: Check budget utilization across all platforms. Flag underspending campaigns.
28
+ - **COMPETITOR_DEFENSE**: Run auction/competitive insights on key campaigns. Flag impression share drops >5%.
29
+ - **CREATIVE_TESTING**: Audit ad asset performance across all platforms. Flag underperforming creatives.
30
+ - **LTV_QUALITY_FOCUS**: Review search term quality and audience alignment across all platforms.
31
+
32
+ 7. **Organic search pulse** (if Search Console is available): Check top organic queries for the site. Identify any organic ranking drops that may need paid coverage, or organic gains where paid spend can be reduced.
33
+
34
+ 8. **On-site behavior check** (if GA4 is available): Correlate ad platform metrics with on-site behavior — LP conversion rates, bounce rates, session quality. Flag discrepancies between ad platform and GA4 conversion data.
35
+
36
+ 9. **Goal progress check**: For each Goal in STRATEGY.md, gather current metric values from all relevant platforms and data sources (ad platforms, GA4, Search Console) based on each Goal's declared platform/source. Present a Goal progress summary:
37
+ ```
38
+ Goal: CPA < 5,000 -- Platform A: 4,800 OK, Platform B: 6,200 OVER TARGET
39
+ Goal: CV >= 100/month -- Platform A: 62, Platform B: 28, Total: 90 AT RISK
40
+ Goal: Organic clicks +20% -- Search Console: +12% IN PROGRESS
41
+ ```
42
+
43
+ 10. **Evidence check**: Review `action_log` entries that have `observation_due` dates:
44
+ - For entries whose observation window has passed: collect current metrics for the same campaign, compare with `metrics_at_action`, and evaluate the outcome. Report findings with confidence level (see `mureo-learning` skill).
45
+ - For entries still within their observation window: note them as "pending observation" and do NOT recommend further changes to those campaigns.
46
+ - Do NOT attribute metric movements to specific actions without checking sample sizes and observation windows.
47
+
48
+ 11. **Proactive alerts** (apply learned insights from `mureo-pro-diagnosis` skill if available): Check for and flag these issues without being asked:
49
+ - Conversion tracking adequacy: Are there enough conversions for the bidding strategy? If not, recommend micro-conversions.
50
+ - Self-cannibalization: Multiple campaigns targeting similar keywords
51
+ - Conversion tracking discrepancies: Platform vs GA4 conversion gaps > 20%
52
+ - Learning period violations: Pending changes on campaigns still in learning
53
+ - CPC trend + impression share context: Rising CPCs may indicate competition, not ad quality issues
54
+
55
+ 12. **Report**: Summarize findings as:
56
+ - Healthy — no action needed
57
+ - Watch — minor issues to monitor
58
+ - Action needed — requires immediate attention
59
+
60
+ For each issue, suggest specific actions aligned with the current Operation Mode. Do NOT recommend actions based on single-day fluctuations — at least 7 consecutive days of critical metrics (>30% off target) before suggesting rescue.
61
+
62
+ 13. **Update STATE.json**: Update campaign snapshots, add notes for flagged issues, and log this daily check to the `action_log` with a summary of findings.
63
+
64
+ 14. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed (e.g., "that's wrong because...", "you should also check...", "in this situation, the correct approach is..."), propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file so it is available in future sessions.
@@ -0,0 +1,54 @@
1
+ Review progress toward all marketing goals across all platforms.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md with at least one Goal section (run `/onboard` first)
5
+ - STATE.json (run `/sync-state` first)
6
+
7
+ ## Steps
8
+
9
+ 1. **Load context**: Read STRATEGY.md (all Goal sections, Data Sources) and STATE.json.
10
+
11
+ 2. **Discover platforms**: Identify all configured platforms and available data sources.
12
+
13
+ 3. **For each Goal**, gather current metrics from all relevant platforms and data sources:
14
+ - Ad platforms: Use performance reporting tools for each platform
15
+ - GA4 (if available): Website conversion data, user behavior metrics
16
+ - Search Console (if available): Organic search metrics for SEO-related goals
17
+ - CRM (if available): Lead quality, pipeline data for LTV-related goals
18
+
19
+ For goals that span multiple data sources, synthesize a unified view. Example: "Total leads = Platform A 62 + Platform B 28 + Organic 15 = 105 total"
20
+
21
+ 4. **Evaluate progress** for each Goal:
22
+ - Compare current value against target
23
+ - Calculate % of target achieved
24
+ - Calculate days remaining until deadline
25
+ - Assess trajectory: on-track / at-risk / off-track
26
+
27
+ 5. **Present Goal dashboard**:
28
+ | Goal | Target | Current | Progress | Deadline | Status |
29
+ |------|--------|---------|----------|----------|--------|
30
+
31
+ Status indicators:
32
+ - On track — current value meets or exceeds the pace needed to hit target by deadline
33
+ - At risk — current value is within 20% of target but trajectory is concerning
34
+ - Off track — current value is more than 20% away from target pace
35
+
36
+ 6. **Consult evidence**: Before recommending actions, check `action_log` for past actions with evaluated outcomes:
37
+ - Reference validated findings when proposing similar actions ("Negative keyword cleanup has consistently improved CPA by 10-20% on this account")
38
+ - Flag previously rejected actions ("Device bid adjustments had no significant impact in the last 2 attempts")
39
+ - Do NOT attribute goal progress to specific actions without checking observation windows and sample sizes
40
+
41
+ 7. **Recommend actions** for off-track Goals:
42
+ - Tie recommendations to the specific platform(s) where the Goal is off-track
43
+ - If cross-platform rebalancing could help, suggest it
44
+ - Suggest specific commands to run (`/rescue`, `/budget-rebalance`, `/creative-refresh`)
45
+ - Prioritize recommendations by Goal priority (P0 > P1 > P2)
46
+ - Prefer actions backed by past validated evidence over unproven strategies
47
+
48
+ 8. **Update STATE.json**:
49
+ - Log the review to `action_log` with a summary of Goal statuses
50
+ - Update Current values in STRATEGY.md Goal sections if approved
51
+
52
+ 10. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
53
+
54
+ IMPORTANT: When updating Goal "Current" values in STRATEGY.md, ask for approval first.
@@ -0,0 +1,39 @@
1
+ Save a marketing diagnosis insight to the pro-diagnosis skill file.
2
+
3
+ Use this command when you want to explicitly teach the agent a marketing insight, correction, or diagnostic pattern. The insight will be saved to `skills/mureo-pro-diagnosis/SKILL.md` and applied in future operations across all platforms.
4
+
5
+ ## How to use
6
+
7
+ Run `/learn` followed by your insight. Examples:
8
+ - `/learn CV少ないサイトではマイクロCVを活用すべき`
9
+ - `/learn 予算5000円/日で広告グループ8個は多すぎる`
10
+ - `/learn Target CPAを下げすぎると逆にCV減る`
11
+
12
+ You can also run `/learn` without arguments — the agent will review the current conversation for corrections and insights to save.
13
+
14
+ ## Steps
15
+
16
+ 1. **Identify the insight**: If the user provided a specific insight as an argument, use that. If no argument is given, review the current conversation for moments where the user corrected the agent's analysis or provided marketing expertise.
17
+
18
+ 2. **Read current skill**: Read `skills/mureo-pro-diagnosis/SKILL.md` to check for duplicate or conflicting insights.
19
+
20
+ 3. **Structure the insight**: Format the insight using the template below:
21
+
22
+ ```markdown
23
+ ### [Short descriptive title]
24
+
25
+ **Situation:** [When this insight applies]
26
+ **Wrong assumption:** [What an inexperienced agent might think]
27
+ **Correct approach:** [The right way to handle this situation]
28
+ **Why:** [The reasoning behind the correct approach]
29
+
30
+ Date learned: YYYY-MM-DD
31
+ ```
32
+
33
+ 4. **Present for approval**: Show the formatted insight to the user and ask for confirmation before saving.
34
+
35
+ 5. **Save to skill file**: Append the approved insight to the "Learned Insights" section of `skills/mureo-pro-diagnosis/SKILL.md`. Do NOT save to memory — save to the skill file.
36
+
37
+ 6. **Confirm**: Tell the user the insight has been saved and will be applied in future `/daily-check`, `/rescue`, `/budget-rebalance`, and other diagnostic workflows.
38
+
39
+ IMPORTANT: Always save to `skills/mureo-pro-diagnosis/SKILL.md`, never to Claude Code memory. The skill file persists across sessions and is read by all mureo commands.
@@ -0,0 +1,47 @@
1
+ Guide me through setting up mureo for a new marketing account.
2
+
3
+ ## Steps
4
+
5
+ 1. **Check installation**: Verify mureo is installed by running `mureo --help`. If not found, guide the user to run `pip install mureo`.
6
+
7
+ 2. **Check authentication**: Run `mureo auth status` to verify credentials are configured and see which accounts are connected (customer_id / account_id are displayed). If no credentials are found, run `mureo auth setup` to walk through Google Ads and/or Meta Ads OAuth authentication. This step is interactive — it requires the user to enter tokens and authenticate in a browser.
8
+
9
+ Note: When calling MCP tools, you do NOT need to specify customer_id or account_id — they are automatically loaded from credentials.json. Just omit them.
10
+
11
+ 3. **Create STRATEGY.md**: Ask me about my business to fill in each section:
12
+ - **Persona**: Who is the target customer? (role, age, goals, pain points)
13
+ - **USP**: What makes the product/service unique? (3-5 bullet points)
14
+ - **Target Audience**: Demographics, geography, budget range
15
+ - **Brand Voice**: Tone and style guidelines for ad copy
16
+ - **Market Context**: Competitors, market trends, competitive advantages
17
+ - **Operation Mode**: Start with `ONBOARDING_LEARNING` for new accounts
18
+ Write the completed STRATEGY.md to the current directory.
19
+
20
+ 4. **Discover platforms and data sources**:
21
+ - For each advertising platform with configured credentials, discover accessible accounts and list campaigns
22
+ - Check if Search Console credentials are available — if so, run site discovery and list verified sites
23
+ - Check if GA4 MCP is available by probing for analytics tools
24
+ - Record all available platforms and data sources in STRATEGY.md under a `## Data Sources` section
25
+
26
+ 5. **Initialize STATE.json**: For each discovered platform, snapshot campaigns into STATE.json under the corresponding `platforms` key.
27
+
28
+ 6. **Set up Goals**: Ask about quantitative marketing goals:
29
+ - "What are your key marketing goals? (e.g., CPA target, lead volume, ROAS target, organic traffic growth)"
30
+ - For each goal, ask for: target value, deadline, and which platforms/data sources it applies to
31
+ - For goals involving website conversions or user behavior, note that GA4 data will be used for tracking
32
+ - For goals involving organic search, note Search Console as the data source
33
+ - Create `## Goal: <title>` sections in STRATEGY.md with Target, Deadline, Current (TBD), Platform, and Priority fields
34
+
35
+ 7. **Initial diagnosis**: Run health checks on each configured ad platform using the platform's diagnostic tools. If Search Console is available, run a top-queries check to establish an organic baseline. If GA4 is available, check overall site conversion metrics.
36
+
37
+ 8. **Structural and conversion adequacy assessment** (apply learned insights from `mureo-pro-diagnosis` skill if available):
38
+ - **Structure check**: Is the account structure appropriate for the budget? Calculate budget-per-ad-group ratios. Flag structural dispersion issues.
39
+ - **Conversion strategy check**: Are there enough conversions for the current bidding strategy? If monthly conversions < 30 per campaign, recommend micro-conversions (pricing page views, contact page views, etc.) or bid strategy adjustment.
40
+ - **Low-volume account check**: If total account conversions < 50/month, recommend concentrating budget and simplifying structure. Set appropriate expectations for optimization timelines.
41
+ - Present findings with specific recommendations, not just raw metrics.
42
+
43
+ 9. **Summary**: Show what was set up — platforms discovered, data sources available, goals defined — and recommend next steps.
44
+
45
+ 10. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
46
+
47
+ IMPORTANT: Ask me questions interactively — don't assume answers. Each STRATEGY.md section should reflect MY actual business, not generic examples.
@@ -0,0 +1,51 @@
1
+ Run an emergency performance rescue workflow for underperforming campaigns.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json must exist (run `/onboard` first)
5
+
6
+ ## Steps
7
+
8
+ 1. **Load context**: Read STRATEGY.md (including Goal sections and Data Sources) and STATE.json. Set Operation Mode to `TURNAROUND_RESCUE` in STRATEGY.md.
9
+
10
+ 2. **Discover platforms**: Identify all configured ad platforms from STATE.json `platforms`.
11
+
12
+ 3. **Diagnose: platform-side or site-side?** (if GA4 is available): Before making ad changes, check if the performance problem is platform-side or site-side. If LP conversion rates dropped in GA4 too, the issue may be the landing page, not the ads. Recommend LP investigation before ad changes.
13
+
14
+ 4. **Structural diagnosis first** (apply learned insights from `mureo-pro-diagnosis` skill if available): Before optimizing metrics, diagnose root causes top-down:
15
+ - **Level 1 — Structure**: Is the account structure appropriate for the budget? Calculate budget-per-ad-group ratios. If ad groups are starving (<5 clicks/day avg), recommend consolidation BEFORE keyword or bid changes.
16
+ - **Level 2 — Data adequacy**: Are there enough conversions for the bidding strategy? If < 30 conversions/month with smart bidding, recommend micro-conversions or bid strategy change.
17
+ - **Level 3 — Targeting**: Only after structure is sound, evaluate keyword relevance, geo, device, schedule.
18
+ - **Level 4 — Creative/Bids**: Only after targeting is sound, optimize ads and bids.
19
+ Present findings with root cause, evidence, impact, and priority-ordered actions.
20
+
21
+ 5. **Identify problem campaigns across all platforms**: For each configured ad platform, use the platform's health check, zero-conversion detection, and cost anomaly tools to find unhealthy campaigns.
22
+
23
+ 6. **Evaluate severity against Goals**: For each problem campaign, reference Goal targets from STRATEGY.md:
24
+ - Calculate how far off the campaign is from the Goal
25
+ - Prioritize rescue actions by impact on Goal achievement
26
+ - Flag campaigns that are the biggest blockers to reaching Goals
27
+
28
+ 7. **Search term cleanup** (for platforms that support search term data):
29
+ - Review search terms for waste on each problem campaign
30
+ - Cross-reference with Persona from STRATEGY.md — flag terms that don't match target audience
31
+ - If Search Console is available, identify terms better served by organic
32
+ - Suggest negative keywords to add
33
+ - **Ask for my approval before adding any negative keywords**
34
+
35
+ 8. **Budget efficiency**: Analyze budget efficiency across all platforms. Identify campaigns wasting budget (high spend, low/zero conversions). Suggest budget reallocation from wasteful to efficient campaigns.
36
+ - **Ask for my approval before changing any budgets**
37
+
38
+ 9. **Platform-specific optimizations**: For each platform, run the platform's specialized analysis (device performance, placement analysis, audience analysis, etc.) on problem campaigns. Suggest specific optimizations.
39
+ - **Ask for my approval before making changes**
40
+
41
+ 10. **Execute approved actions**: Only after I approve each recommendation, execute the changes using each platform's update tools.
42
+
43
+ 11. **Record outcome context**: For each campaign modified, log to `action_log` with `metrics_at_action` (current CPA, conversions, clicks, cost, impressions) and `observation_due` (7 days for budget changes, 14 days for keyword/creative changes).
44
+
45
+ 12. **Update STATE.json**: Record all changes made in campaign notes with timestamps. Log all rescue actions to the `action_log` with platform, action type, and expected impact.
46
+
47
+ 13. **Summary**: List all changes made per platform with expected impact on Goal metrics.
48
+
49
+ 14. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
50
+
51
+ IMPORTANT: Never make changes without explicit approval. Present each action as a recommendation first. Do NOT trigger rescue based on a single bad day — at least 7 consecutive days of critical metrics (>30% off target) before recommending rescue actions.
@@ -0,0 +1,46 @@
1
+ Review and clean up search terms and keywords across all platforms.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json must exist (run `/onboard` first)
5
+
6
+ ## Steps
7
+
8
+ 1. **Load context**: Read STRATEGY.md (Persona, USP, Target Audience, Data Sources) and STATE.json.
9
+
10
+ 2. **Discover platforms**: Identify all configured platforms that support search term data from STATE.json `platforms`.
11
+
12
+ 3. **Review search terms**: For each ad platform that supports search term data, review search terms using the platform's search term analysis tools. Analyze N-gram patterns and user intent.
13
+
14
+ 4. **Paid/organic cross-reference** (if Search Console is available):
15
+ - Pull top organic queries for the site
16
+ - Cross-reference with paid search terms to identify overlap
17
+ - For terms ranking well organically (position 1-3), consider reducing paid bids or pausing paid keywords
18
+ - For terms with strong paid performance but weak organic ranking, flag as SEO opportunity
19
+ - Present a paid/organic overlap matrix
20
+
21
+ 5. **Landing page quality check** (if GA4 is available): Check landing page performance for key search terms. Terms driving traffic to high-bounce-rate pages may need LP improvements rather than keyword changes.
22
+
23
+ 6. **Score candidates** against strategy:
24
+ - **Exclude candidates**: Terms with 0 conversions + high cost, informational-only queries, terms misaligned with Persona
25
+ - **Add candidates**: High-converting terms not yet added as keywords, terms matching USP themes
26
+ - **Reduce candidates**: Terms well-covered by organic rankings
27
+
28
+ 7. **Present recommendations** in a table:
29
+ | Term | Platform | Action | Reason | Score | Campaign |
30
+ |------|----------|--------|--------|-------|----------|
31
+
32
+ Group by platform and campaign. Show estimated cost savings from exclusions.
33
+
34
+ 8. **Ask for approval**: Let me select which recommendations to apply.
35
+
36
+ 9. **Check pending observations**: Before executing, check `action_log` for this campaign. If a previous action is still within its observation window, warn that stacking changes will make outcome evaluation difficult. Recommend waiting if possible.
37
+
38
+ 10. **Execute**: Use each platform's keyword management tools to apply approved changes (add negative keywords, add positive keywords, adjust bids).
39
+
40
+ 11. **Record outcome context**: For each campaign modified, log to `action_log` with `metrics_at_action` (current CPA, conversions, clicks, CTR, impressions, cost) and `observation_due` (14 days from today). This enables evidence-based evaluation later.
41
+
42
+ 12. **Update STATE.json** with notes about the cleanup.
43
+
44
+ 13. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
45
+
46
+ IMPORTANT: Always explain WHY a term should be excluded/added, referencing the Persona or USP from STRATEGY.md. Consult past action_log entries — if a similar cleanup was previously evaluated, reference whether it was effective.
@@ -0,0 +1,31 @@
1
+ Synchronize STATE.json with the current state of all marketing platforms.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md and STATE.json should exist in the current directory (run `/onboard` first if not)
5
+
6
+ ## Steps
7
+
8
+ 1. **Read current STATE.json** (if exists) to track changes.
9
+
10
+ 2. **Discover platforms**: Identify all platforms registered in STATE.json `platforms`.
11
+
12
+ 3. **Fetch platform data**: For each registered platform, fetch current campaign data using the platform's campaign listing tools.
13
+
14
+ 4. **Check data sources**: If Search Console is configured, verify site access is still valid. If GA4 is available, verify connectivity.
15
+
16
+ 5. **Detect new platforms**: If new platform credentials exist but have no entry in `platforms`, prompt the user to run `/onboard` to add them.
17
+
18
+ 6. **Verify STRATEGY.md Data Sources**: If STRATEGY.md is missing a `## Data Sources` section (older setup), prompt the user to add it listing all configured platforms.
19
+
20
+ 7. **Update STATE.json** with all campaign snapshots.
21
+
22
+ 8. **Show diff**: Compare old vs new state and highlight changes:
23
+ - New campaigns added
24
+ - Campaigns removed/paused
25
+ - Budget changes
26
+ - Status changes
27
+ - Bidding strategy changes
28
+
29
+ 9. **Update `last_synced_at`** timestamp.
30
+
31
+ If STATE.json doesn't exist yet, suggest running `/onboard` first.
@@ -0,0 +1,53 @@
1
+ Generate a weekly marketing operations report.
2
+
3
+ ## Prerequisites
4
+ - STRATEGY.md with Goals (run `/onboard` first)
5
+ - STATE.json with action_log (actions must have been logged during the week)
6
+
7
+ ## Steps
8
+
9
+ 1. **Load context**: Read STRATEGY.md and STATE.json.
10
+
11
+ 2. **Discover platforms**: Identify all configured platforms and available data sources.
12
+
13
+ 3. **Period**: Determine the reporting period (last 7 days from today).
14
+
15
+ 4. **Goal progress**: For each Goal, pull performance data from the relevant platforms using their reporting tools. Compare current week vs previous week. Show week-over-week change for each Goal metric. If GA4 is available, include website-level metrics (sessions, conversion rate, revenue) for a holistic view.
16
+
17
+ 5. **Actions taken**: Read `action_log` from STATE.json, filter to the reporting period.
18
+ Present as a timeline:
19
+ | Date | Command | Action | Platform | Summary |
20
+ |------|---------|--------|----------|---------|
21
+
22
+ 6. **Impact assessment**: For each action taken, evaluate impact using the relevant platform's trend/analysis tools. Cross-reference with GA4 data if available to validate on-site impact.
23
+ - Example: "Added 5 negative keywords on Mon → CPA decreased 8% by Thu"
24
+ - Example: "Shifted 20% budget to Platform A on Tue → impressions increased 15%"
25
+
26
+ 7. **Cross-platform insights**:
27
+ - Compare performance across platforms (CPA, CVR, ROAS)
28
+ - Identify platforms gaining or losing efficiency
29
+ - If Search Console data is available, include organic search trend summary (clicks, impressions, CTR WoW change) and paid/organic keyword overlap changes
30
+ - Suggest cross-platform shifts if one platform significantly outperforms others toward Goal achievement
31
+
32
+ 8. **Next week recommendations**:
33
+ - Based on Goal trajectory, suggest focus areas
34
+ - Recommend specific commands to run (`/rescue`, `/budget-rebalance`, `/creative-refresh`, `/goal-review`)
35
+ - Suggest Operation Mode change if appropriate (e.g., "Goals on track — consider switching from TURNAROUND_RESCUE to EFFICIENCY_STABILIZE")
36
+
37
+ 9. **Evidence pipeline**: Include an evidence assessment section:
38
+ - List actions with `observation_due` dates that passed this week — evaluate their outcomes by comparing `metrics_at_action` with current metrics
39
+ - List actions still in observation — note them as "pending, do not draw conclusions"
40
+ - Rate confidence in reported improvements: low (< 1 week data), medium (1 observation period), high (2+ consistent periods)
41
+ - Do NOT present pending observations as confirmed wins
42
+
43
+ 10. **Present report** in a structured format suitable for sharing with stakeholders:
44
+ - Executive summary (2-3 sentences)
45
+ - Goal progress table
46
+ - Cross-platform performance comparison
47
+ - Key actions and their impact (with confidence level)
48
+ - Evidence pipeline summary
49
+ - Recommendations for next week
50
+
51
+ 11. **Log to action_log** in STATE.json that a weekly report was generated, including the reporting period.
52
+
53
+ 12. **Diagnosis learning**: If during this workflow the user corrected your analysis or pointed out something you missed, propose saving the insight to `skills/mureo-pro-diagnosis/SKILL.md` under the "Learned Insights" section. Use the format documented in that file. Ask for approval before writing. Do NOT save to memory — save to the skill file.
@@ -0,0 +1,5 @@
1
+ {
2
+ "attribution": {
3
+ "commit": ""
4
+ }
5
+ }
@@ -0,0 +1,10 @@
1
+ # Default owner for everything in the repository.
2
+ # Override per-path below as contributors are added.
3
+ * @hyoshi
4
+
5
+ # Critical areas — require explicit review even for small changes
6
+ /mureo/auth.py @hyoshi
7
+ /mureo/auth_setup.py @hyoshi
8
+ /pyproject.toml @hyoshi
9
+ /.github/workflows/ @hyoshi
10
+ /SECURITY.md @hyoshi
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a bug to help us improve mureo
4
+ title: "[Bug] "
5
+ labels: bug
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Describe the bug
10
+
11
+ A clear and concise description of what the bug is.
12
+
13
+ ## To reproduce
14
+
15
+ Steps to reproduce the behavior:
16
+
17
+ 1. Run `mureo ...`
18
+ 2. ...
19
+ 3. See error
20
+
21
+ ## Expected behavior
22
+
23
+ A clear and concise description of what you expected to happen.
24
+
25
+ ## Error output
26
+
27
+ ```
28
+ Paste any error messages or logs here
29
+ ```
30
+
31
+ ## Environment
32
+
33
+ - **OS**: [e.g., macOS 15, Ubuntu 24.04]
34
+ - **Python version**: [e.g., 3.12.3]
35
+ - **mureo version**: [e.g., 0.2.0]
36
+ - **Installation method**: [e.g., pip, pipx]
37
+
38
+ ## Component
39
+
40
+ - [ ] CLI (`mureo` commands)
41
+ - [ ] MCP server
42
+ - [ ] Google Ads client
43
+ - [ ] Meta Ads client
44
+ - [ ] Auth / OAuth
45
+ - [ ] Other
46
+
47
+ ## Additional context
48
+
49
+ Add any other context about the problem here (e.g., relevant parts of `~/.mureo/` config, environment variables set).
50
+
51
+ **Note:** Never include credentials, tokens, or API keys in bug reports.
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 💬 Questions & Ideas
4
+ url: https://github.com/logly/mureo/discussions
5
+ about: Ask questions, share ideas, or start a discussion. Please use Issues only for bug reports and feature requests.
6
+ - name: 🔒 Security Vulnerabilities
7
+ url: https://github.com/logly/mureo/security/advisories/new
8
+ about: Report security vulnerabilities privately. Do NOT open a public Issue.