← MotionCONTENT HISTORY

Update to Motion

Snapshot Sep 30, 2026 · 23:08 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "industry-trends",
  "description": "Analyze competitor ad libraries — surface creative trends, formats, hooks, and messaging strategies across the industry.",
  "included_files": [],
  "skill_md_contents": "---\nname: industry-trends\ndescription: Analyze competitor ad libraries — surface creative trends, formats, hooks, and messaging strategies across the industry.\nargument-hint: \"[--brand domain.com] [--days 30]\"\nallowed-tools:\n  - Read\n  - \"mcp__ruimotion__get_auth_context\"\n  - \"mcp__ruimotion__get_workspace_competitors\"\n  - \"mcp__ruimotion__get_inspo_creatives\"\n  - \"mcp__ruimotion__get_creative_transcript\"\n  - \"mcp__ruimotion__get_inspo_brand_context\"\n  - \"mcp__ruimotion__search_brands\"\n  - \"mcp__ruimotion__get_brand_by_domain\"\n  - \"mcp__ruimotion__get_workspace_brand\"\nmodel: opus\n---\n\n# Industry Trends Analysis\n\nAnalyze competitor ad libraries to surface creative trends — what formats, hooks, and messaging strategies are being used across the industry. Uses the creative-strategist skill's competitive intelligence framework.\n\n**Critical caveat to carry through the entire analysis:** Competitor creatives have no performance data. You're reading bets, not results. Frame everything as \"they're testing this\" not \"this is working for them.\"\n\n---\n\n## Phase 1: Setup\n\n### 1a. Parse Arguments\n\n- `--brand`: Optional. A domain (e.g., `nike.com`) or brand name to focus on a single competitor. If omitted, analyze all tracked competitors.\n- `--days`: Controls the launch date filter. Default: `30`. Maps to: 7 → `LAST_7_DAYS`, 14 → `LAST_14_DAYS`, 30 → `LAST_30_DAYS`, 90 → `LAST_90_DAYS`.\n\n### 1b. Load Settings & Auth\n\n1. Read `${CLAUDE_PLUGIN_ROOT}/motion-creative.config.md` for org-specific configuration. If the file does not exist, use these defaults and suggest the user run `/customize`:\n   - `competitors`: pull from `get_workspace_competitors`\n   - Brand guidelines: pull from `get_workspace_brand`\n2. Call `get_auth_context()` to resolve workspaceId.\n\n**Settings influence:**\n- If no `--brand` specified and settings has a `competitors` list, use those as fallback if workspace competitors are empty.\n- Use brand guidelines (voice, positioning, do's/don'ts) to sharpen the \"Compare Against Own Approach\" analysis.\n- Use target audience from settings to evaluate which competitor approaches are relevant to your segments.\n\n### 1c. Load Methodology\n\nRead the creative-strategist skill for the competitive intelligence framework.\n\n---\n\n## Phase 2: Data Collection\n\n### 2a. Get Competitors\n\n**If `--brand` is provided:**\n- Try `get_brand_by_domain(brandUrl)` first\n- If that fails, try `search_brands(query, workspaceId)` with the brand name\n- If no match, tell the user the brand wasn't found and suggest checking the domain\n\n**If no `--brand`:**\n- Call `get_workspace_competitors(workspaceId)` to get all tracked competitors\n- If the list is empty, tell the user they haven't set up competitor tracking in Motion\n\n### 2b. Pull Competitor Data (Parallel)\n\nFor each competitor, dispatch in parallel:\n\n1. `get_inspo_creatives(brandId, workspaceId, limit=10, sort=\"NEWEST\", launchDate=mapped_preset, status=\"ACTIVE\")` — recent active ads\n2. `get_inspo_brand_context(brandId, workspaceId)` — brand positioning, voice, strategy\n\n### 2c. Pull Transcripts\n\nFor video creatives from each competitor, pull transcripts for the **3-5 most recent** per competitor using `get_creative_transcript(creativeEntityId, creativeOrigin)`. Budget transcript calls — they're expensive. Prioritize:\n1. Most recently launched\n2. Video format (transcripts only work for video)\n3. Variety of creative approaches (don't pull 5 similar-looking ads)\n\n### 2d. Get Own Brand Context\n\nCall `get_workspace_brand(workspaceId)` for comparison context — your positioning, voice, strategy.\n\n---\n\n## Phase 3: Analysis\n\n### 3a. Format Trends\n\nAcross all competitor creatives:\n- What percentage is video vs. static vs. carousel?\n- For videos: what's the duration distribution?\n- What production styles dominate (UGC, studio, hybrid)?\n- Are there emerging formats that multiple competitors are converging on?\n\n### 3b. Hook & Messaging Patterns\n\nFrom transcripts:\n- Classify first-3-second hooks: question, problem-agitation, testimonial, statistic, pattern-interrupt, bold claim, confession, warning\n- What messaging themes appear across competitors? (e.g., convenience, trust, transformation, urgency)\n- What CTAs are being used?\n- What emotional triggers dominate?\n\nQuote actual hooks and headlines from the data — don't generalize.\n\n### 3c. Brand Context Analysis\n\nFrom inspo brand context:\n- Where are competitors positioning themselves?\n- What tone/voice are they using?\n- Where are gaps between their stated positioning and actual creative execution?\n- What audiences are they targeting?\n\n### 3d. Activity & Freshness\n\n- Which competitors are most active (most new launches)?\n- Which competitors have the highest active-to-inactive ratio (more conviction in current creative)?\n- Are there competitors who have slowed down or stopped launching?\n\n### 3e. Compare Against Own Approach\n\nUsing workspace brand data:\n- What are competitors doing that your brand isn't?\n- What is your brand doing that nobody else is? (potential differentiator)\n- Where are there crowded angles that everyone is running? (opportunity to differentiate)\n- Where are there white spaces nobody is filling?\n\n---\n\n## Phase 4: Output\n\nOpen by reflecting what data was gathered: how many competitors, how many creatives analyzed, what time window, whether transcripts were available.\n\n### Report Structure\n\n**If You Read Nothing Else**\n3-5 trend bullets. What the industry is converging on, what's shifting, what nobody's doing.\n\n**Industry Creative Landscape**\nFormat mix across competitors. Activity levels. Production style trends. The macro view.\n\n**Hook & Messaging Patterns**\nSpecific patterns from transcripts. Quote actual hooks. Categorize by type. Note which patterns appear across multiple competitors (convergence) vs. unique approaches.\n\n**Competitor Deep Dives**\nPer-competitor summary for the most notable competitors:\n- Brand context: their positioning, audience, voice\n- Creative approach: what they're running, how it connects to their strategy\n- Notable creatives: 2-3 specific ads worth paying attention to (with descriptions)\n\nSkip this section if `--brand` is specified — the whole analysis is already a deep dive.\n\n**Gaps & Opportunities**\nWhat nobody's doing. What your data says works but competitors haven't caught onto. Angles that are crowded (avoid) vs. underexplored (test). Frame as specific creative opportunities, not abstract observations.\n\n**Implications for Your Creative Strategy**\nHow these trends should (or shouldn't) influence your next creative bets. Be specific: \"Test a [format] with a [hook type] targeting [audience]\" not \"Consider diversifying your creative mix.\"\n\n---\n\n## Error Handling\n\n- **No competitors tracked:** Tell the user to set up competitor tracking in Motion, or use `--brand` to analyze a specific brand\n- **Brand not found:** Suggest checking the domain or trying a different search term\n- **Inspo brand context unavailable:** Note it and proceed — analyze creatives without strategic context\n- **No video creatives (no transcripts):** Analyze visual formats and positioning only — note reduced messaging insight\n- **Single competitor with few ads:** Adjust scope — don't over-interpret a thin sample. Suggest expanding the time window with `--days 90`\n"
}

SHA-256: 21d2241b72e0ccf4903b91fd56e7c49e0d1ff0f8d36771af9eff75e21cc3aea5