content-angle-ranker
Rank content angles by engagement data, competition level, and platform fit. Data-driven angle selection instead of guesswork. Use this skill when the user has a keyword or product and needs to decide WHAT to create, which angle to take, which format to use, or which platform to target. Triggers on: "what angle should I use", "rank content ideas for [keyword]", "best angle for [product]", "which content idea will perform best", "help me pick an angle", "what should I write about", "content angle for [topic]", "rank my content ideas", "which approach will get the most views", "data-driven content planning", "angle ranker", "content scoring", "which hook should I use", "compare these content ideas", "prioritize my content angles", "what video should I make".
What this skill does
# Content Angle Ranker
You have a keyword. You know the niche. But what specific content should you create?
Which angle, format, and hook will actually perform? This skill answers that question
with data — not gut feeling.
It takes engagement data (from `trending-content-scout` or live research) and ranks
8-12 content angle candidates by a weighted score combining platform fit, competition
level, engagement prediction, and creator fit. The output is a prioritized list with
a clear recommendation and direct handoff to content creation skills.
Think of it as `/plan-ceo-review` from gstack, but for content strategy: "What is
the 10-star version of this content?" — except the answer is backed by engagement data.
## Stage
This skill belongs to Stage S1: Research — but it bridges directly into S2: Content Creation.
## When to Use
- After `trending-content-scout` ran — use its data to pick the best angle
- User has a product/keyword but doesn't know what content to create
- User has multiple content ideas and wants to prioritize by data
- User wants to know: "If I only have time for ONE piece of content, what should it be?"
- Before running any S2 content skill (viral-post-writer, tiktok-script-writer, etc.)
## Input Schema
```yaml
keyword: string # (required if no scout_data) "AI video tools"
product: object # (optional) Affiliate product being promoted
name: string # "HeyGen"
description: string # What it does
url: string # Product URL or affiliate link
reward_value: string # Commission info — never shown in content
platform: string # (required) Target platform for content creation
# "youtube" | "tiktok" | "linkedin" | "x" | "reddit" | "blog"
creator_strengths: string[] # (optional) What the user is good at
# "storytelling" | "technical" | "humor" | "authority" |
# "visual" | "data" | "personal_experience"
audience: string # (optional) Target audience — "beginners", "developers", "small business owners"
time_budget: string # (optional) "30min" | "2hours" | "1day" — affects difficulty filter
custom_angles: string[] # (optional) User's own angle ideas to include in ranking
```
**Auto-detection:** If `trending-content-scout` ran earlier in the conversation,
its output is automatically used as the data foundation. No need to pass it explicitly.
## Workflow
### Step 1: Gather Engagement Data
**If `trending-content-scout` output exists in context:**
- Use `pattern_analysis` (winning formats, hooks, engagement benchmarks)
- Use `content_gaps` as angle candidates
- Use `top_content` for competition assessment
- Skip to Step 2
**If no scout data:**
Run a quick scout internally:
1. `web_search "[keyword] site:youtube.com"` → top 10 videos, note formats and view counts
2. `web_search "[keyword] site:tiktok.com"` OR `web_search "[keyword] tiktok viral"` → top TikTok content
3. `web_search "[keyword] site:reddit.com top"` → top Reddit discussions
4. `web_search "[keyword] [platform] best performing"` → meta-analysis of what works
5. Extract: dominant formats, popular hooks, view count ranges, gaps
This takes 30-60 seconds and provides enough signal for angle scoring.
### Step 2: Generate Angle Candidates (8-12)
Generate 8-12 specific content angle candidates. Each angle must be concrete enough
to become a title — not vague ("write about HeyGen") but specific ("HeyGen vs Synthesia:
I tested both for 30 days — honest comparison for solo creators").
**Sources for angles:**
1. **Gap-based angles (from scout data or web_search):**
- Content gaps: topics nobody has covered well
- Format gaps: popular topic but missing in a specific format (e.g., comparison exists on YouTube but not TikTok)
- Audience gaps: existing content targets general audience, specific audience underserved
- Recency gaps: existing content is outdated, fresh version needed
2. **Pattern-based angles (from winning formats):**
- Take the winning format and apply it to the keyword
- Combine the best hook type with the topic
- Replicate the structure of the highest-engagement content with a fresh perspective
3. **Contrarian angles:**
- If all content is positive → honest cons angle
- If all content targets beginners → advanced user angle
- If all content is listicles → deep single-product dive
4. **User-provided angles (from custom_angles):**
- Include any angles the user suggested
- Score them alongside generated candidates — no bias
For each angle, define:
```yaml
Angle:
title: string # Specific, could be an actual content title
angle: string # Brief description of the angle
format: string # "comparison" | "review" | "tutorial" | "listicle" | "demo" | "story" | "reaction" | "explainer"
hook: string # The actual hook/opening line
hook_type: string # "question" | "shock" | "bold_claim" | "demo_first" | "relatable" | "contrarian"
source: string # "gap" | "pattern" | "contrarian" | "user_provided"
```
### Step 3: Score Each Angle
Score every angle on 4 dimensions (1-10 each), then calculate a weighted total:
```
angle_score = (platform_fit × 0.25) + (competition_level × 0.30) +
(engagement_prediction × 0.30) + (creator_fit × 0.15)
```
**Dimension 1: Platform Fit (weight: 25%)**
How well does this format/hook work on the target platform?
| Format | YouTube | TikTok | LinkedIn | X | Reddit | Blog |
|--------|---------|--------|----------|---|--------|------|
| comparison | 9 | 8 | 7 | 5 | 8 | 9 |
| review | 8 | 6 | 5 | 4 | 9 | 9 |
| tutorial | 9 | 7 | 6 | 3 | 7 | 10 |
| listicle | 7 | 8 | 9 | 8 | 6 | 8 |
| demo | 8 | 10 | 5 | 4 | 3 | 5 |
| story | 6 | 9 | 10 | 8 | 7 | 7 |
| reaction | 7 | 10 | 4 | 6 | 5 | 3 |
| explainer | 8 | 5 | 8 | 6 | 8 | 9 |
Adjust based on actual scout data if available (if comparisons outperform on a platform
where they usually don't, use the real data instead of the default table).
**Dimension 2: Competition Level (weight: 30%)**
How many similar content pieces already exist? Higher score = LESS competition.
```
IF scout data available:
Count how many top_content pieces match this angle's format + similar topic
10 = zero similar content found (blue ocean)
7-9 = 1-3 similar pieces (low competition)
4-6 = 4-10 similar pieces (moderate competition)
1-3 = 10+ similar pieces (saturated)
IF no scout data:
web_search for the exact angle title → count results
Fewer results with exact match = higher score
```
**Dimension 3: Engagement Prediction (weight: 30%)**
How likely is this angle to get high engagement based on data?
```
IF scout data available:
Look at engagement scores of similar formats and hooks in top_content
If this angle's format has avg_engagement > median → higher score
If this angle's hook_type has avg_engagement > median → higher score
Combine: angle uses top format + top hook → 9-10
Angle uses average format + average hook → 5-6
Angle uses underperforming format → 3-4
IF no scout data:
Use platform defaults and general engagement patterns
Comparisons generally outperform reviews → 8 vs 6
Bold claim hooks generally outperform questions → 8 vs 6
```
**Dimension 4: Creator Fit (weight: 15%)**
How well does this angle match the creator's strengths?
```
IF creator_strengths provided:
"storytelling" → story format, relatable hooks → high fit
"technical" → tutorial format, demo hooks → high fit
"humor" → reaction format, relatable hooks → high fit
"authority" → review format, bold claim hooks → high fit
"visual" → demo format, demo_first hooks → high fit
"data" → comparison format, explainer → high fit
"personal_experience" → story format, reaction → high fit
Match count: 2+ matches → 9-10, 1 match → 6-7, 0 matches → 4-5
IF nRelated in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.