@botlearn/social-media 0.1.0

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 BotLearn
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,35 @@
1
+ # @botlearn/social-media
2
+
3
+ > Platform-adapted social media content creation with optimal hashtags, timing, and engagement optimization for OpenClaw Agent
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # via npm
9
+ npm install @botlearn/social-media
10
+
11
+ # via clawhub
12
+ clawhub install @botlearn/social-media
13
+ ```
14
+
15
+ ## Category
16
+
17
+ Creative Generation
18
+
19
+ ## Dependencies
20
+
21
+ `@botlearn/copywriter`
22
+
23
+ ## Files
24
+
25
+ | File | Description |
26
+ |------|-------------|
27
+ | `manifest.json` | Skill metadata and configuration |
28
+ | `skill.md` | Role definition and activation rules |
29
+ | `knowledge/` | Domain knowledge documents |
30
+ | `strategies/` | Behavioral strategy definitions |
31
+ | `tests/` | Smoke and benchmark tests |
32
+
33
+ ## License
34
+
35
+ MIT
@@ -0,0 +1,74 @@
1
+ ---
2
+ domain: social-media
3
+ topic: anti-patterns
4
+ priority: medium
5
+ ttl: 30d
6
+ ---
7
+
8
+ # Social Media — Anti-Patterns
9
+
10
+ ## Content Creation Anti-Patterns
11
+
12
+ ### 1. Cross-Posting Without Adaptation
13
+ - **Problem**: Copying the same text verbatim across Twitter, LinkedIn, Instagram, and TikTok. Each platform's algorithm penalizes content that doesn't match its native format, and audiences perceive cross-posted content as lazy and inauthentic.
14
+ - **Symptoms**: LinkedIn post with Twitter hashtags; Instagram caption that reads like a tweet; TikTok caption pasted from LinkedIn
15
+ - **Fix**: Rewrite content for each platform — adjust tone, length, format, and CTA. Reuse the core idea but adapt the delivery. Wait 24-48 hours between cross-platform posts of the same idea.
16
+
17
+ ### 2. Hashtag Spam
18
+ - **Problem**: Stuffing posts with 15-30 irrelevant or overly broad hashtags to "maximize reach." Modern algorithms detect hashtag spam and suppress distribution. It also signals low-quality content to users.
19
+ - **Symptoms**: Wall of hashtags at the bottom of every post; hashtags unrelated to the content; using the same hashtag set for every post regardless of topic
20
+ - **Fix**: Use 3-5 highly relevant hashtags per post. Rotate hashtags based on content topic. Follow the relevance pyramid: 1 broad + 2-3 niche + 1 branded. Test and measure which hashtags drive actual engagement.
21
+
22
+ ### 3. Ignoring Platform Culture
23
+ - **Problem**: Writing formal corporate language on TikTok, or casual slang on LinkedIn. Each platform has unspoken cultural norms that determine whether content feels native or foreign.
24
+ - **Symptoms**: Corporate press release tone on Instagram; meme language on LinkedIn; overly polished content on TikTok
25
+ - **Fix**: Study top-performing content on each platform. Match the tone: LinkedIn = professional-but-human, Twitter = conversational-and-opinionated, Instagram = aspirational-and-visual, TikTok = authentic-and-entertaining.
26
+
27
+ ### 4. Missing the Hook
28
+ - **Problem**: Burying the most interesting point three sentences deep. Social media feeds are scroll-driven; users decide in 1-2 seconds whether to engage.
29
+ - **Symptoms**: Posts that start with "I wanted to share..." or "So today I was thinking..."; TikTok videos with 5+ second intros before the value
30
+ - **Fix**: Lead with the hook. Start with the most surprising, useful, or provocative element. Use knowledge/best-practices.md hook techniques for each platform.
31
+
32
+ ### 5. Engagement Bait Without Value
33
+ - **Problem**: Using manipulative engagement tactics ("Like if you agree!", "Comment YES for a free guide!") without delivering actual value. Platforms increasingly detect and penalize engagement bait.
34
+ - **Symptoms**: High comment volume but low save/share rates; comments are all one-word responses; followers don't grow despite engagement numbers
35
+ - **Fix**: Drive engagement through genuine value and authentic questions. If asking for comments, pose a thought-provoking question that encourages meaningful responses.
36
+
37
+ ## Formatting Anti-Patterns
38
+
39
+ ### 6. Wall-of-Text Posts
40
+ - **Problem**: Writing long, unbroken paragraphs on platforms where visual scannability is critical. Users don't read social media — they scan.
41
+ - **Symptoms**: LinkedIn posts with 500-word paragraphs; Instagram captions with no line breaks; Twitter threads with dense, text-heavy tweets
42
+ - **Fix**: Use single-sentence paragraphs. Add line breaks every 1-2 sentences on LinkedIn and Instagram. Use bullet points or numbered lists for scannable content. On Twitter, one idea per tweet in threads.
43
+
44
+ ### 7. Over-Designed Visuals
45
+ - **Problem**: Using overly polished, stock-photo-heavy, or corporate-branded visuals that feel like advertisements rather than native content. Authenticity outperforms polish on most platforms.
46
+ - **Symptoms**: Every post looks like a corporate ad; stock photos with text overlays; heavy brand watermarks; templates that scream "marketing department"
47
+ - **Fix**: Use authentic, behind-the-scenes photos. Screenshots and raw visuals outperform stock imagery. On TikTok and Instagram Reels, native filming (phone camera) outperforms professional production.
48
+
49
+ ### 8. Ignoring Accessibility
50
+ - **Problem**: Not adding alt text, captions, or considering color contrast. This excludes audiences with disabilities and reduces reach (auto-captions boost engagement even for hearing users).
51
+ - **Symptoms**: Videos without captions; images without alt text; text overlays in unreadable colors; font sizes too small for mobile
52
+ - **Fix**: Always add captions to videos (auto-captions as minimum). Write alt text for images. Use high-contrast text overlays. Ensure text is readable at mobile scale (minimum 24pt).
53
+
54
+ ## Strategy Anti-Patterns
55
+
56
+ ### 9. Posting Without a Content Calendar
57
+ - **Problem**: Posting randomly without a strategic plan leads to inconsistent output, missed opportunities (holidays, events, product launches), and burnout from last-minute content creation.
58
+ - **Symptoms**: Posting 5 times one week, zero the next; missing relevant industry events or trending topics; repeating content themes without variety
59
+ - **Fix**: Build a weekly content calendar. Plan 70% evergreen content, 20% trending/timely content, 10% experimental. Batch-create content in advance. Use the content-platform fit matrix from knowledge/best-practices.md.
60
+
61
+ ### 10. Ignoring Analytics and Iteration
62
+ - **Problem**: Publishing content without reviewing performance metrics. Without data-driven iteration, you repeat what doesn't work and miss opportunities to double down on what does.
63
+ - **Symptoms**: Same content format despite declining engagement; no A/B testing of hooks or CTAs; unfounded assumptions about audience preferences
64
+ - **Fix**: Review engagement metrics weekly. Track: impressions, engagement rate, saves, shares, follower growth. Identify top-performing content patterns and create more of what works. A/B test hooks, formats, and posting times.
65
+
66
+ ### 11. Link-Dumping on Algorithm-Hostile Platforms
67
+ - **Problem**: Posting external links directly in the post body on platforms that suppress link-containing posts (especially LinkedIn and Instagram).
68
+ - **Symptoms**: Low-reach posts with URLs in the body; "link in bio" without actually updating the bio link; LinkedIn posts with links getting 40% less reach
69
+ - **Fix**: On LinkedIn, add links in the first comment, not the post body. On Instagram, use "link in bio" tools (Linktree, etc.) and reference them in the caption. On Twitter, link-containing tweets are suppressed — consider a thread where the link is in the final tweet rather than the first.
70
+
71
+ ### 12. Neglecting Community Engagement
72
+ - **Problem**: Treating social media as a broadcast channel rather than a conversation. Posting content but never responding to comments, never engaging with others' content, and never participating in community discussions.
73
+ - **Symptoms**: Zero replies to comments on own posts; no engagement with other creators; declining reach despite consistent posting; audience asks questions that go unanswered
74
+ - **Fix**: Reply to every comment within the first hour of posting (critical for algorithmic boost). Engage with 10-15 relevant posts from others daily. Join conversations in your niche. Social media rewards social behavior.
@@ -0,0 +1,124 @@
1
+ ---
2
+ domain: social-media
3
+ topic: engagement-optimization-and-content-strategy
4
+ priority: high
5
+ ttl: 30d
6
+ ---
7
+
8
+ # Social Media — Best Practices
9
+
10
+ ## Platform-Native Content Creation
11
+
12
+ ### 1. Write for the Platform, Not for Yourself
13
+ Every platform has a distinct communication culture:
14
+ - **Twitter/X**: Punchy, opinionated, conversational. Use sentence fragments. Ask questions. Be quotable.
15
+ - **LinkedIn**: Professional but human. Lead with insights. Share lessons learned. Use paragraph breaks generously.
16
+ - **Instagram**: Visual-first storytelling. Captions complement the visual; start with a hook line. Use line breaks for readability.
17
+ - **TikTok**: Entertainment-first education. Front-load the hook in the first 1-3 seconds. Speak directly to the viewer.
18
+
19
+ ### 2. The Hook-First Principle
20
+ The first line (or first 3 seconds for video) determines whether users engage or scroll past:
21
+
22
+ | Platform | Hook Technique | Example |
23
+ |----------|---------------|---------|
24
+ | Twitter/X | Contrarian statement | "Most marketing advice is wrong. Here's what actually works:" |
25
+ | LinkedIn | Data-driven opener | "I analyzed 500 LinkedIn posts. Here's what the top 1% do differently." |
26
+ | Instagram | Curiosity gap | "Stop doing this one thing and watch your engagement triple" |
27
+ | TikTok | Pattern interrupt | "POV: You just discovered the one trick no one talks about" |
28
+
29
+ ### 3. Content-Platform Fit Matrix
30
+
31
+ | Content Type | Twitter/X | LinkedIn | Instagram | TikTok |
32
+ |-------------|-----------|----------|-----------|--------|
33
+ | Hot take / Opinion | Thread or single tweet | Text post with elaboration | Carousel with supporting points | Talking head with text overlay |
34
+ | Tutorial / How-to | Thread with steps | Carousel or document | Carousel with visuals | Step-by-step video |
35
+ | Announcement | Single tweet + visual | Text post + image | Feed post + story | Short announcement video |
36
+ | Behind the scenes | Photo tweet + context | Story-driven post | Story or reel | Raw, authentic video |
37
+ | Data / Research | Thread with charts | Carousel with data viz | Carousel infographic | Explainer video with overlays |
38
+
39
+ ## Hashtag Strategy
40
+
41
+ ### 4. The Hashtag Relevance Pyramid
42
+ For maximum discoverability without triggering spam detection:
43
+
44
+ ```
45
+ [1 Branded]
46
+ / \
47
+ [2-3 Niche Topic]
48
+ / \
49
+ [1-2 Industry Broad]
50
+ ```
51
+
52
+ - **Branded** (optional): Your unique campaign or company tag (e.g., #BotLearnTips)
53
+ - **Niche Topic**: Specific to the content's subject (e.g., #ContentCalendar, #LinkedInGrowth)
54
+ - **Industry Broad**: Category-level tags (e.g., #DigitalMarketing, #SocialMedia)
55
+
56
+ ### 5. Hashtag Selection Criteria
57
+ - **Relevance score**: Does the hashtag's content feed match your post topic? Check by browsing the hashtag feed first.
58
+ - **Volume sweet spot**: Avoid overly saturated tags (>10M posts on Instagram) where your content drowns. Target 50K-500K for growth accounts.
59
+ - **Community signal**: Hashtags used by your target audience (not just your competitors) drive better follower quality.
60
+ - **Recency check**: Ensure the hashtag is still actively used and not associated with banned or controversial content.
61
+
62
+ ### 6. Platform-Specific Hashtag Counts
63
+
64
+ | Platform | Minimum | Optimal | Maximum (before penalty) |
65
+ |----------|---------|---------|--------------------------|
66
+ | Twitter/X | 0 | 1-2 | 3 |
67
+ | LinkedIn | 2 | 3-5 | 9 |
68
+ | Instagram | 3 | 3-5 | 15 |
69
+ | TikTok | 2 | 3-5 | 8 |
70
+
71
+ ## Engagement Optimization
72
+
73
+ ### 7. The Engagement Flywheel
74
+ Content that generates engagement follows this cycle:
75
+
76
+ 1. **Hook** — Grab attention in the first line/second
77
+ 2. **Value** — Deliver useful, novel, or entertaining content
78
+ 3. **Relatability** — Make the audience see themselves in the content
79
+ 4. **CTA** — Ask for a specific, low-friction action (comment, save, share)
80
+ 5. **Response** — Reply to comments within the first hour to boost algorithmic distribution
81
+
82
+ ### 8. Call-to-Action Best Practices
83
+
84
+ | CTA Type | Platform Fit | Example |
85
+ |----------|-------------|---------|
86
+ | Question CTA | Twitter, LinkedIn | "What's your experience with this? Drop it below." |
87
+ | Save CTA | Instagram | "Save this for when you need it" |
88
+ | Share CTA | All platforms | "Tag someone who needs to see this" |
89
+ | Follow CTA | TikTok, Instagram | "Follow for Part 2" |
90
+ | Comment CTA | LinkedIn | "Agree or disagree? I want to hear your take." |
91
+ | Poll CTA | Twitter, LinkedIn | "Which approach do you prefer? Vote below." |
92
+
93
+ ### 9. Timing and Frequency
94
+
95
+ - **Consistency over volume**: Posting 3x/week consistently outperforms 10x/week sporadic posting
96
+ - **Platform-specific cadence**:
97
+ - Twitter/X: 3-5 tweets/day (including replies and RTs)
98
+ - LinkedIn: 3-5 posts/week (daily during campaigns)
99
+ - Instagram: 4-7 posts/week (mix of feed, reels, stories)
100
+ - TikTok: 1-3 videos/day (quantity + variety = growth)
101
+ - **Batch creation**: Create content in batches (e.g., 10 posts in one session), schedule across the week
102
+ - **Repurposing window**: Wait 7-14 days before adapting the same core idea for a different platform
103
+
104
+ ## Content Series and Threads
105
+
106
+ ### 10. Building Content Series
107
+ Series content drives returning viewers and follower growth:
108
+ - **Numbering**: "Day 5 of 30" or "Part 3/7" creates commitment and anticipation
109
+ - **Consistent format**: Same visual template, same intro structure, predictable rhythm
110
+ - **Hook forward**: End each piece with a tease for the next installment
111
+ - **Recap**: Every 5-7 installments, create a recap/compilation post
112
+
113
+ ### 11. Thread Construction (Twitter/X)
114
+ - **Tweet 1**: The hook — promise a clear value proposition ("I spent 100 hours analyzing X. Here's what I found:")
115
+ - **Tweet 2-N**: One idea per tweet; use numbers or bullets; include visuals every 2-3 tweets
116
+ - **Final tweet**: Summary + CTA + self-retweet of tweet 1 for thread visibility
117
+ - **Length**: 5-7 tweets for engagement; 10-15 for viral potential; never exceed 20
118
+
119
+ ### 12. Carousel Best Practices (LinkedIn/Instagram)
120
+ - **Slide 1**: Cover slide with a bold, curiosity-driven headline (this is the hook)
121
+ - **Slide 2**: Context or "why this matters"
122
+ - **Slides 3-N**: One takeaway per slide; large text; minimal clutter
123
+ - **Final slide**: Summary + CTA ("Save this", "Follow for more", "Share with your team")
124
+ - **Design**: Consistent brand colors; readable font size (min 24pt on mobile); high contrast
@@ -0,0 +1,175 @@
1
+ ---
2
+ domain: social-media
3
+ topic: platform-specifications-and-algorithms
4
+ priority: high
5
+ ttl: 30d
6
+ ---
7
+
8
+ # Social Media — Platform Specifications & Algorithm Preferences
9
+
10
+ ## Twitter / X
11
+
12
+ ### Technical Limits
13
+ - **Character limit**: 280 characters (standard), 25,000 characters (Premium+)
14
+ - **Image**: Up to 4 images per tweet; JPEG, PNG, GIF; max 5MB per image
15
+ - **Video**: Max 2 min 20 sec (standard), 60 min (premium); max 512MB; MP4/MOV
16
+ - **Thread**: Unlimited tweets per thread; each tweet counts independently toward character limit
17
+ - **Link preview**: Consumes ~23 characters regardless of URL length
18
+ - **Poll**: 2-4 options, max 25 characters per option, duration 5 min to 7 days
19
+
20
+ ### Algorithm Signals (Ranked by Impact)
21
+ 1. **Reply engagement** — Tweets that generate replies are boosted significantly
22
+ 2. **Dwell time** — Time spent reading the tweet (longer = better for threads)
23
+ 3. **Retweets with quote** — Weighted higher than plain retweets
24
+ 4. **Recency** — Strong recency bias; half-life ~20 minutes for non-viral content
25
+ 5. **Media attachment** — Tweets with images get ~150% more engagement; video ~200%
26
+ 6. **Follower interaction history** — Content from accounts users frequently engage with is prioritized
27
+ 7. **Topic relevance** — Tweets matching trending topics or user interest signals are boosted
28
+
29
+ ### Content Formats
30
+ - **Single tweet**: Concise take, question, or hot take — max impact in minimal words
31
+ - **Thread (1/n)**: Long-form storytelling or educational content; 3-10 tweets optimal
32
+ - **Quote tweet**: Commentary on existing content — adds perspective
33
+ - **Poll**: Community engagement; drives replies and shares
34
+ - **Spaces summary**: Recap of live audio discussions
35
+
36
+ ### Hashtag Rules
37
+ - **Optimal count**: 1-2 hashtags per tweet (3+ reduces engagement by ~17%)
38
+ - **Placement**: Inline with text or at end of tweet; never start with hashtag unless a branded campaign
39
+ - **Character impact**: Hashtags count toward the 280-character limit
40
+
41
+ ---
42
+
43
+ ## LinkedIn
44
+
45
+ ### Technical Limits
46
+ - **Post character limit**: 3,000 characters
47
+ - **Article**: Unlimited length (published via LinkedIn's article editor)
48
+ - **Image**: Up to 9 images per carousel post; JPEG, PNG; max 10MB
49
+ - **Video**: 3 sec to 10 min (recommended); max 5GB; MP4
50
+ - **Document/Carousel**: PDF upload; up to 300 pages (carousel format)
51
+ - **Poll**: 2-4 options, duration 1 day to 2 weeks
52
+
53
+ ### Algorithm Signals (Ranked by Impact)
54
+ 1. **Dwell time** — LinkedIn heavily weights time spent on a post; long-form outperforms short
55
+ 2. **Comments (especially early)** — Posts receiving comments within the first hour get massive distribution
56
+ 3. **Content format** — Carousels > Documents > Videos > Images > Text-only (in terms of algorithmic boost)
57
+ 4. **Personal stories** — Personal narrative posts outperform corporate or promotional content
58
+ 5. **"See more" clicks** — Posts that get users to click "...see more" signal engagement
59
+ 6. **Profile strength** — Posts from complete profiles with active networks distribute wider
60
+ 7. **External links** — Posts with external links receive ~40% less distribution (put links in comments)
61
+ 8. **Hashtag relevance** — Relevant hashtags help discovery; irrelevant ones can hurt
62
+
63
+ ### Content Formats
64
+ - **Text post**: Professional insight, career story, industry commentary — 1,200-1,500 chars optimal
65
+ - **Carousel**: Educational slide decks; 8-12 slides; each slide one clear takeaway
66
+ - **Document post**: PDF-based tutorials or frameworks shared as scrollable documents
67
+ - **Poll**: Professional opinion gathering; drives engagement and discussion
68
+ - **Article**: Long-form thought leadership; lower reach but higher authority signal
69
+ - **Video**: Behind-the-scenes, talking head, or explainer; vertical (9:16) or square (1:1)
70
+
71
+ ### Hashtag Rules
72
+ - **Optimal count**: 3-5 hashtags per post
73
+ - **Placement**: At the end of the post, below the main content
74
+ - **Mix strategy**: 1 broad industry tag + 2-3 niche topic tags + 1 branded tag
75
+ - **Capitalization**: Use CamelCase for readability (e.g., #ContentMarketing, #AIStrategy)
76
+
77
+ ---
78
+
79
+ ## Instagram
80
+
81
+ ### Technical Limits
82
+ - **Caption character limit**: 2,200 characters
83
+ - **Bio**: 150 characters
84
+ - **Image**: Square (1:1), Portrait (4:5), Landscape (1.91:1); JPEG/PNG; max 30MB
85
+ - **Reels**: 15 sec, 30 sec, 60 sec, 90 sec; vertical (9:16); MP4/MOV
86
+ - **Stories**: 15 sec per slide; vertical (9:16); auto-split longer videos
87
+ - **Carousel**: Up to 20 images/videos per carousel post
88
+ - **Hashtag limit**: 30 per post (but optimal is far fewer)
89
+
90
+ ### Algorithm Signals (Ranked by Impact)
91
+ 1. **Saves** — The strongest engagement signal; content worth revisiting is prioritized
92
+ 2. **Shares (DM shares)** — Content shared via DMs signals high value
93
+ 3. **Reel completion rate** — Reels watched to the end (or replayed) get massive distribution
94
+ 4. **Comments** — Especially comments with 4+ words (not just emojis)
95
+ 5. **Carousel swipe-through rate** — Users swiping through all carousel slides boosts ranking
96
+ 6. **Content type alignment** — Algorithm shows users more of the format they engage with
97
+ 7. **Posting consistency** — Regular posting (4-7 times/week) maintains algorithmic favorability
98
+ 8. **Audio trends** — Reels using trending audio get discovery boosts
99
+
100
+ ### Content Formats
101
+ - **Single image**: High-quality photo with educational or inspirational caption
102
+ - **Carousel**: Educational content, storytelling, before/after; 5-10 slides; first slide is the hook
103
+ - **Reel**: Short-form video; entertaining, educational, or trending format; 15-30 sec optimal for reach
104
+ - **Story**: Ephemeral, behind-the-scenes, polls, Q&A, links — drives engagement and community
105
+ - **Guide**: Curated collection of posts around a theme; evergreen content
106
+
107
+ ### Hashtag Rules
108
+ - **Optimal count**: 3-5 highly relevant hashtags (Instagram's own recommendation)
109
+ - **Placement**: In the caption (first comment placement no longer offers advantage)
110
+ - **Mix strategy**: 1 broad (1M+ posts) + 2-3 medium (100K-1M) + 1-2 niche (10K-100K)
111
+ - **Avoid**: Banned or flagged hashtags; check before using
112
+
113
+ ---
114
+
115
+ ## TikTok
116
+
117
+ ### Technical Limits
118
+ - **Video length**: 15 sec, 60 sec, 3 min, 10 min
119
+ - **Caption character limit**: 4,000 characters (expanded from original 150)
120
+ - **Aspect ratio**: 9:16 (vertical) required for full-screen experience
121
+ - **File size**: Max 287.6MB (mobile), 500MB (desktop); MP4/MOV/WebM
122
+ - **Text overlay**: On-screen text; auto-captions available
123
+ - **Stitch/Duet**: Collaborative formats using other creators' content
124
+
125
+ ### Algorithm Signals (Ranked by Impact)
126
+ 1. **Completion rate** — The single most important metric; short videos that play to the end win
127
+ 2. **Replay rate** — Videos watched multiple times get exponential distribution
128
+ 3. **Share rate** — Content shared to other platforms or via DM
129
+ 4. **Comment engagement** — Volume and sentiment of comments
130
+ 5. **Watch time** — Total time spent on the video (not just completion)
131
+ 6. **Sound usage** — Using trending sounds gives discovery advantages
132
+ 7. **Content diversity** — The algorithm favors creators who vary their content style
133
+ 8. **Posting frequency** — 1-4 posts per day is optimal for growth
134
+
135
+ ### Content Formats
136
+ - **Talking head**: Direct-to-camera education, opinion, or storytelling; authentic delivery
137
+ - **Tutorial**: Step-by-step how-to; visual demonstration; text overlays for clarity
138
+ - **Trend participation**: Using trending sounds, formats, or challenges with original twist
139
+ - **Stitch/Duet**: Reacting to or building on other creators' content
140
+ - **Story time**: Narrative format; hooks viewers with a compelling opening question or statement
141
+ - **List/Ranking**: "Top 5...", "3 things you...", numbered educational content
142
+
143
+ ### Hashtag Rules
144
+ - **Optimal count**: 3-5 hashtags
145
+ - **Placement**: In the caption, mixed with descriptive text
146
+ - **Strategy**: 1-2 trending/challenge hashtags + 2-3 niche/topic hashtags
147
+ - **Avoid**: #fyp, #foryou, #foryoupage — these generic tags no longer provide meaningful reach
148
+
149
+ ---
150
+
151
+ ## Cross-Platform Posting Schedule Reference
152
+
153
+ ### Peak Engagement Windows (UTC)
154
+
155
+ | Platform | Best Days | Best Times (UTC) | Worst Times |
156
+ |----------|-----------|-------------------|-------------|
157
+ | Twitter/X | Tue-Thu | 13:00-16:00 | Sat 22:00-Sun 06:00 |
158
+ | LinkedIn | Tue-Thu | 07:00-09:00, 12:00-13:00 | Weekends, after 18:00 |
159
+ | Instagram | Mon, Wed, Fri | 11:00-14:00, 19:00-21:00 | Sun 03:00-06:00 |
160
+ | TikTok | Tue-Thu | 10:00-12:00, 19:00-22:00 | Mon morning |
161
+
162
+ *Note*: These are global averages. Adjust for audience timezone and industry vertical. B2B content performs best during business hours; B2C content peaks in evening leisure hours.
163
+
164
+ ## Content Length Sweet Spots
165
+
166
+ | Platform | Format | Optimal Length | Engagement Impact |
167
+ |----------|--------|---------------|-------------------|
168
+ | Twitter/X | Tweet | 70-100 chars | +21% engagement vs 280-char tweets |
169
+ | Twitter/X | Thread | 5-7 tweets | +310% reach vs single tweet |
170
+ | LinkedIn | Text post | 1,200-1,500 chars | +37% engagement vs short posts |
171
+ | LinkedIn | Carousel | 8-12 slides | +280% reach vs image posts |
172
+ | Instagram | Caption | 400-800 chars | Optimal for saves and shares |
173
+ | Instagram | Reel | 15-30 sec | +55% reach vs 60+ sec |
174
+ | TikTok | Video | 21-34 sec | Highest completion rate bracket |
175
+ | TikTok | Caption | 100-300 chars | Enough for context + hashtags |
package/manifest.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@botlearn/social-media",
3
+ "version": "0.1.0",
4
+ "description": "Platform-adapted social media content creation with optimal hashtags, timing, and engagement optimization for OpenClaw Agent",
5
+ "category": "creative-generation",
6
+ "author": "BotLearn",
7
+ "benchmarkDimension": "creative-generation",
8
+ "expectedImprovement": 30,
9
+ "dependencies": {
10
+ "@botlearn/copywriter": "^1.0.0"
11
+ },
12
+ "compatibility": {
13
+ "openclaw": ">=0.5.0"
14
+ },
15
+ "files": {
16
+ "skill": "skill.md",
17
+ "knowledge": [
18
+ "knowledge/domain.md",
19
+ "knowledge/best-practices.md",
20
+ "knowledge/anti-patterns.md"
21
+ ],
22
+ "strategies": [
23
+ "strategies/main.md"
24
+ ],
25
+ "smokeTest": "tests/smoke.json",
26
+ "benchmark": "tests/benchmark.json"
27
+ }
28
+ }
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@botlearn/social-media",
3
+ "version": "0.1.0",
4
+ "description": "Platform-adapted social media content creation with optimal hashtags, timing, and engagement optimization for OpenClaw Agent",
5
+ "type": "module",
6
+ "main": "manifest.json",
7
+ "files": [
8
+ "manifest.json",
9
+ "skill.md",
10
+ "knowledge/",
11
+ "strategies/",
12
+ "tests/",
13
+ "README.md"
14
+ ],
15
+ "keywords": [
16
+ "botlearn",
17
+ "openclaw",
18
+ "skill",
19
+ "creative-generation"
20
+ ],
21
+ "author": "BotLearn",
22
+ "license": "MIT",
23
+ "dependencies": {
24
+ "@botlearn/copywriter": "0.1.0"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "https://github.com/readai-team/botlearn-awesome-skills.git",
29
+ "directory": "packages/skills/social-media"
30
+ },
31
+ "homepage": "https://github.com/readai-team/botlearn-awesome-skills/tree/main/packages/skills/social-media",
32
+ "bugs": {
33
+ "url": "https://github.com/readai-team/botlearn-awesome-skills/issues"
34
+ },
35
+ "publishConfig": {
36
+ "access": "public"
37
+ }
38
+ }
package/skill.md ADDED
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: social-media
3
+ role: Social Media Content Specialist
4
+ version: 1.0.0
5
+ triggers:
6
+ - "social media post"
7
+ - "tweet"
8
+ - "LinkedIn post"
9
+ - "Instagram caption"
10
+ - "TikTok script"
11
+ - "create a post"
12
+ - "social content"
13
+ - "post for"
14
+ ---
15
+
16
+ # Role
17
+
18
+ You are a Social Media Content Specialist. When activated, you create platform-adapted content with optimal hashtags, timing recommendations, and engagement-maximizing formatting. You leverage copywriting expertise (via @botlearn/copywriter) to craft persuasive, audience-resonant content tailored to each platform's unique culture, algorithm preferences, and technical constraints.
19
+
20
+ # Capabilities
21
+
22
+ 1. Analyze target platform specifications (character limits, media formats, algorithm signals) and adapt content accordingly
23
+ 2. Generate platform-native content that matches the tone, style, and conventions of Twitter/X, LinkedIn, Instagram, and TikTok
24
+ 3. Select and optimize hashtag strategies per platform — balancing discoverability with relevance and avoiding spam signals
25
+ 4. Recommend optimal posting times based on audience demographics, platform-specific engagement windows, and content type
26
+ 5. Predict engagement potential by evaluating hook strength, format alignment, CTA clarity, and algorithmic favorability
27
+ 6. Create content series and threads that build narrative momentum across multiple posts
28
+
29
+ # Constraints
30
+
31
+ 1. Never cross-post identical content across platforms — always adapt format, tone, and length to platform norms
32
+ 2. Never exceed platform character or media limits — respect Twitter's 280 chars, LinkedIn's 3,000 chars, Instagram's 2,200 chars
33
+ 3. Never use more than the platform-optimal number of hashtags — avoid hashtag spam that triggers algorithm suppression
34
+ 4. Never ignore platform culture — LinkedIn is professional, Twitter is conversational, Instagram is visual, TikTok is entertainment-first
35
+ 5. Never generate content without a clear call-to-action or engagement hook appropriate to the platform
36
+ 6. Always disclose when content is promotional or sponsored, in compliance with platform guidelines
37
+
38
+ # Activation
39
+
40
+ WHEN the user requests social media content creation:
41
+ 1. Identify the target platform(s) and audience from the user's request
42
+ 2. Analyze platform constraints and algorithm preferences using knowledge/domain.md
43
+ 3. Apply copywriting principles (inherited from @botlearn/copywriter) for persuasive messaging
44
+ 4. Follow the content creation strategy in strategies/main.md
45
+ 5. Validate content against knowledge/best-practices.md for engagement optimization
46
+ 6. Verify against knowledge/anti-patterns.md to avoid common social media mistakes
47
+ 7. Output platform-ready content with hashtags, timing recommendations, and engagement predictions
@@ -0,0 +1,111 @@
1
+ ---
2
+ strategy: social-media
3
+ version: 1.0.0
4
+ steps: 6
5
+ ---
6
+
7
+ # Social Media Content Creation Strategy
8
+
9
+ ## Step 1: Platform Analysis
10
+ - Parse the user's request to identify: **target platform(s)**, **audience**, **content goal**, **topic**, and **desired tone**
11
+ - IF no platform is specified THEN ask which platform(s) the content is for, or default to the most likely platform based on context clues
12
+ - Look up platform specifications from knowledge/domain.md:
13
+ - Character limits and media constraints
14
+ - Algorithm ranking signals
15
+ - Native content formats
16
+ - Hashtag rules and limits
17
+ - Identify the audience demographic and match to platform engagement windows from knowledge/domain.md
18
+ - IF multiple platforms are requested THEN plan separate, adapted content for each — never cross-post identical content
19
+
20
+ ## Step 2: Content Ideation
21
+ - Determine the content type that best fits the platform and goal using the content-platform fit matrix from knowledge/best-practices.md
22
+ - Apply copywriting principles from @botlearn/copywriter dependency:
23
+ - Identify the core value proposition or message
24
+ - Define the emotional trigger: curiosity, urgency, aspiration, relatability, humor
25
+ - Select the persuasion framework: problem-solution, storytelling, data-driven, social proof
26
+ - Generate 2-3 hook options following the hook-first principle from knowledge/best-practices.md:
27
+ - Twitter/X: Contrarian statement, bold claim, or provocative question
28
+ - LinkedIn: Data-driven opener, personal story lead, or industry insight
29
+ - Instagram: Curiosity gap, bold visual headline, or emotional trigger
30
+ - TikTok: Pattern interrupt, "POV" framing, or "things nobody tells you" format
31
+ - SELECT the strongest hook based on: novelty, emotional resonance, and scroll-stopping potential
32
+ - IF the content is part of a series THEN reference previous installments and tease future ones
33
+
34
+ ## Step 3: Format Adaptation
35
+ - Write platform-specific content following native format conventions:
36
+ - **Twitter/X single tweet**: 70-100 characters for maximum engagement; punch and clarity
37
+ - **Twitter/X thread**: 5-7 tweets; tweet 1 = hook with thread promise; one idea per tweet; final tweet = summary + CTA
38
+ - **LinkedIn text post**: 1,200-1,500 characters; single-sentence paragraphs; "see more" hook in first 2 lines; professional but human tone
39
+ - **LinkedIn carousel**: 8-12 slides; cover slide = bold headline; 1 takeaway per slide; final slide = CTA
40
+ - **Instagram caption**: 400-800 characters; hook in first line (before fold); line breaks every 1-2 sentences; end with CTA
41
+ - **Instagram carousel**: 5-10 slides; first slide = visual hook; educational or storytelling structure
42
+ - **TikTok script**: 21-34 seconds; hook in first 3 seconds; conversational tone; clear text overlays; trending sound note
43
+ - APPLY platform-specific formatting:
44
+ - Use line breaks generously (LinkedIn, Instagram)
45
+ - Use emojis sparingly and platform-appropriately (Instagram yes, LinkedIn minimal, Twitter situational)
46
+ - Include text overlay notes for video content (TikTok, Instagram Reels)
47
+ - VERIFY content does not exceed platform character/time limits from knowledge/domain.md
48
+ - VERIFY content avoids anti-patterns from knowledge/anti-patterns.md (no wall-of-text, no corporate tone on casual platforms)
49
+
50
+ ## Step 4: Hashtag Selection
51
+ - SELECT hashtags using the relevance pyramid from knowledge/best-practices.md:
52
+ 1. Choose 1 broad industry hashtag (high volume, category-level)
53
+ 2. Choose 2-3 niche topic hashtags (medium volume, specific to content subject)
54
+ 3. Choose 0-1 branded hashtag (if applicable to campaign or personal brand)
55
+ - VERIFY hashtag count matches platform optimal range from knowledge/domain.md:
56
+ - Twitter/X: 1-2 hashtags
57
+ - LinkedIn: 3-5 hashtags
58
+ - Instagram: 3-5 hashtags
59
+ - TikTok: 3-5 hashtags
60
+ - VALIDATE each hashtag:
61
+ - Is it currently active? (not dead or abandoned)
62
+ - Is it relevant to the content? (would browsing this hashtag's feed show similar content?)
63
+ - Is it safe? (not banned, flagged, or associated with controversial content)
64
+ - IF on Twitter/X THEN integrate hashtags naturally within the text or append at end
65
+ - IF on LinkedIn THEN place hashtags below the main content, separated by a line break
66
+ - IF on Instagram THEN place hashtags at the end of the caption
67
+ - IF on TikTok THEN weave hashtags into the caption text naturally
68
+
69
+ ## Step 5: Timing Optimization
70
+ - RECOMMEND optimal posting time based on:
71
+ 1. **Platform engagement windows** from knowledge/domain.md cross-platform schedule
72
+ 2. **Audience timezone** — IF specified, convert peak times to audience local time
73
+ 3. **Content type** — Educational content performs better in morning; entertaining in evening
74
+ 4. **Day of week** — B2B content peaks Tue-Thu; B2C content performs well on weekends
75
+ - IF the user specifies an audience region THEN adjust timing:
76
+ - US East Coast: UTC-5 (EST) / UTC-4 (EDT)
77
+ - US West Coast: UTC-8 (PST) / UTC-7 (PDT)
78
+ - Europe (Central): UTC+1 (CET) / UTC+2 (CEST)
79
+ - Asia (East): UTC+8 (CST/HKT) / UTC+9 (JST)
80
+ - RECOMMEND posting frequency based on platform best practices:
81
+ - Twitter/X: 3-5 tweets/day
82
+ - LinkedIn: 3-5 posts/week
83
+ - Instagram: 4-7 posts/week (mix of formats)
84
+ - TikTok: 1-3 videos/day
85
+ - IF the content is time-sensitive (event, trend, news) THEN recommend posting immediately regardless of optimal windows
86
+
87
+ ## Step 6: Engagement Prediction & Output
88
+ - EVALUATE the content's engagement potential by scoring these dimensions (1-5):
89
+ - **Hook strength**: Does the first line/second stop the scroll?
90
+ - **Value delivery**: Does the content teach, entertain, or inspire?
91
+ - **Format alignment**: Is the format native to the platform?
92
+ - **CTA clarity**: Is the call-to-action clear and low-friction?
93
+ - **Algorithmic fit**: Does the content match the platform's ranking signals?
94
+ - CALCULATE predicted engagement level:
95
+ - Average score 4.0+ → High engagement predicted
96
+ - Average score 3.0-3.9 → Moderate engagement predicted
97
+ - Average score below 3.0 → Low engagement — revise content before publishing
98
+ - IF predicted engagement is Low THEN loop back to Step 2 and strengthen the weakest dimension
99
+ - OUTPUT the final content package:
100
+ 1. **Platform-ready content**: The post text, formatted for the target platform
101
+ 2. **Hashtags**: Selected and placed per platform convention
102
+ 3. **Posting time**: Recommended day and time with timezone context
103
+ 4. **Media notes**: Suggested image, video, or carousel specifications (if applicable)
104
+ 5. **Engagement prediction**: Score breakdown and expected performance
105
+ 6. **Variation** (optional): An A/B test alternative with a different hook or CTA
106
+ - SELF-CHECK:
107
+ - Does the content respect platform character/media limits?
108
+ - Is the tone platform-native and audience-appropriate?
109
+ - Are hashtags relevant and within optimal count?
110
+ - Does the CTA match the platform's preferred engagement type?
111
+ - IF any check fails THEN revise the specific element before final output
@@ -0,0 +1,476 @@
1
+ {
2
+ "version": "0.0.1",
3
+ "dimension": "creative-generation",
4
+ "tasks": [
5
+ {
6
+ "id": "bench-easy-01",
7
+ "difficulty": "easy",
8
+ "description": "Create a single tweet for a simple product announcement",
9
+ "input": "Write a tweet announcing that our open-source CLI tool 'DevFlow' just hit 10,000 GitHub stars. Keep it celebratory and authentic. Include 1-2 relevant hashtags.",
10
+ "rubric": [
11
+ {
12
+ "criterion": "Platform Fit",
13
+ "weight": 0.35,
14
+ "scoring": {
15
+ "5": "Tweet is under 280 characters; concise, punchy, conversational tone; feels native to Twitter culture; celebratory without being corporate",
16
+ "3": "Under 280 characters but reads like a generic announcement; could be from any platform",
17
+ "1": "Exceeds character limit or uses non-Twitter formatting",
18
+ "0": "Not recognizable as a tweet"
19
+ }
20
+ },
21
+ {
22
+ "criterion": "Engagement Potential",
23
+ "weight": 0.35,
24
+ "scoring": {
25
+ "5": "Includes elements that drive engagement: community gratitude, milestone celebration, implicit CTA (star the repo, celebrate together); emotionally resonant",
26
+ "3": "Decent engagement potential but missing a clear hook or CTA",
27
+ "1": "Flat announcement with no engagement drivers",
28
+ "0": "Reads as spam or self-promotion"
29
+ }
30
+ },
31
+ {
32
+ "criterion": "Hashtag Usage",
33
+ "weight": 0.3,
34
+ "scoring": {
35
+ "5": "1-2 relevant hashtags naturally integrated; tags match the developer/open-source community",
36
+ "3": "Hashtags present but slightly off-target or awkwardly placed",
37
+ "1": "Too many hashtags or irrelevant tags",
38
+ "0": "No hashtags or hashtag spam"
39
+ }
40
+ }
41
+ ],
42
+ "expectedScoreWithout": 40,
43
+ "expectedScoreWith": 80
44
+ },
45
+ {
46
+ "id": "bench-easy-02",
47
+ "difficulty": "easy",
48
+ "description": "Write an Instagram caption for a product photo",
49
+ "input": "Write an Instagram caption for a photo of our new ergonomic standing desk 'AltitudeDesk'. The desk features bamboo wood, electric height adjustment, and a built-in wireless charger. Target audience: remote workers and home office enthusiasts. Include relevant hashtags.",
50
+ "rubric": [
51
+ {
52
+ "criterion": "Platform Fit",
53
+ "weight": 0.35,
54
+ "scoring": {
55
+ "5": "Caption is Instagram-native: strong hook in first line, line breaks for readability, 400-800 characters, aspirational/lifestyle tone, complements a visual",
56
+ "3": "Adequate caption but reads like product specs rather than lifestyle content",
57
+ "1": "Too long, too short, or formatted for another platform",
58
+ "0": "Not recognizable as an Instagram caption"
59
+ }
60
+ },
61
+ {
62
+ "criterion": "Hook & CTA",
63
+ "weight": 0.35,
64
+ "scoring": {
65
+ "5": "First line creates curiosity or emotional pull; ends with a clear CTA (save, comment, share, link in bio); both are platform-appropriate",
66
+ "3": "Hook or CTA present but not both; or both are generic",
67
+ "1": "Weak hook and no CTA",
68
+ "0": "No hook or CTA; reads as product description"
69
+ }
70
+ },
71
+ {
72
+ "criterion": "Hashtag Strategy",
73
+ "weight": 0.3,
74
+ "scoring": {
75
+ "5": "3-5 relevant hashtags; mix of broad (#HomeOffice) and niche (#StandingDeskSetup); placed at caption end",
76
+ "3": "Hashtags present but count or relevance is off",
77
+ "1": "Hashtag spam or irrelevant tags",
78
+ "0": "No hashtags"
79
+ }
80
+ }
81
+ ],
82
+ "expectedScoreWithout": 40,
83
+ "expectedScoreWith": 80
84
+ },
85
+ {
86
+ "id": "bench-easy-03",
87
+ "difficulty": "easy",
88
+ "description": "Create a simple LinkedIn poll post",
89
+ "input": "Create a LinkedIn post with a poll asking engineering managers about their biggest challenge with remote team management. The poll should have 4 options. Include a brief intro that encourages participation and relevant hashtags.",
90
+ "rubric": [
91
+ {
92
+ "criterion": "Platform Fit",
93
+ "weight": 0.3,
94
+ "scoring": {
95
+ "5": "LinkedIn-native tone; professional but conversational; appropriate length for a poll intro (300-600 chars); paragraph breaks for readability",
96
+ "3": "Reasonable LinkedIn post but the poll intro is generic or too formal",
97
+ "1": "Tone mismatch or poor formatting for LinkedIn",
98
+ "0": "Not suitable for LinkedIn"
99
+ }
100
+ },
101
+ {
102
+ "criterion": "Poll Quality",
103
+ "weight": 0.4,
104
+ "scoring": {
105
+ "5": "4 clear, distinct, non-overlapping poll options that resonate with engineering managers; options are concise and cover the most common challenges",
106
+ "3": "4 options but some overlap or are too vague",
107
+ "1": "Options are unclear, overlapping, or not relevant to the audience",
108
+ "0": "No poll options provided or completely irrelevant"
109
+ }
110
+ },
111
+ {
112
+ "criterion": "Engagement Driver",
113
+ "weight": 0.3,
114
+ "scoring": {
115
+ "5": "Intro asks a thought-provoking question; includes CTA to elaborate in comments; framed to encourage sharing with peers; hashtags are relevant",
116
+ "3": "Basic intro with poll; some engagement element present",
117
+ "1": "Flat intro with no engagement drivers",
118
+ "0": "No intro or engagement strategy"
119
+ }
120
+ }
121
+ ],
122
+ "expectedScoreWithout": 40,
123
+ "expectedScoreWith": 80
124
+ },
125
+ {
126
+ "id": "bench-med-01",
127
+ "difficulty": "medium",
128
+ "description": "Adapt a single topic into platform-specific content for two platforms",
129
+ "input": "We just published a blog post titled '5 Lessons from Scaling Our API from 1K to 1M Requests Per Second'. Create social media content to promote it on both Twitter/X (as a thread) and LinkedIn (as a text post). The target audience is backend engineers and engineering leaders. Include platform-appropriate hashtags and timing recommendations.",
130
+ "rubric": [
131
+ {
132
+ "criterion": "Platform Differentiation",
133
+ "weight": 0.3,
134
+ "scoring": {
135
+ "5": "Twitter thread and LinkedIn post are clearly distinct in tone, format, and length; each feels native to its platform; not a copy-paste between platforms",
136
+ "3": "Some differentiation but the core text is similar; one platform feels more natural than the other",
137
+ "1": "Minimal differentiation; essentially the same content on both platforms",
138
+ "0": "Identical content cross-posted"
139
+ }
140
+ },
141
+ {
142
+ "criterion": "Twitter Thread Quality",
143
+ "weight": 0.25,
144
+ "scoring": {
145
+ "5": "5-7 tweet thread; tweet 1 is a compelling hook with thread promise; one lesson per tweet; punchy, quotable language; final tweet has summary + CTA + link",
146
+ "3": "Thread structure present but hooks are weak or tweets are too dense",
147
+ "1": "Thread is really just one long tweet split arbitrarily; no narrative flow",
148
+ "0": "Not formatted as a thread or exceeds character limits"
149
+ }
150
+ },
151
+ {
152
+ "criterion": "LinkedIn Post Quality",
153
+ "weight": 0.25,
154
+ "scoring": {
155
+ "5": "1,200-1,500 chars; professional insights tone; 'see more' hook; lessons presented with leadership context; link in comments note; 3-5 relevant hashtags",
156
+ "3": "Reasonable LinkedIn post but generic hook or missing some elements",
157
+ "1": "Poorly formatted for LinkedIn or reads like a tweet",
158
+ "0": "Not suitable for LinkedIn"
159
+ }
160
+ },
161
+ {
162
+ "criterion": "Timing & Hashtags",
163
+ "weight": 0.2,
164
+ "scoring": {
165
+ "5": "Platform-specific timing recommendations with rationale; hashtags are different between platforms and appropriate to each; correct count per platform",
166
+ "3": "Some timing/hashtag guidance but not platform-specific",
167
+ "1": "Generic timing or identical hashtags on both platforms",
168
+ "0": "No timing or hashtag guidance"
169
+ }
170
+ }
171
+ ],
172
+ "expectedScoreWithout": 30,
173
+ "expectedScoreWith": 70
174
+ },
175
+ {
176
+ "id": "bench-med-02",
177
+ "difficulty": "medium",
178
+ "description": "Create a TikTok script with engagement optimization",
179
+ "input": "Write a TikTok video script (30 seconds) for a personal finance creator explaining the '50/30/20 budget rule'. The audience is Gen Z (18-25). The tone should be casual, relatable, and slightly humorous. Include text overlay suggestions, a trending sound recommendation note, and hashtags.",
180
+ "rubric": [
181
+ {
182
+ "criterion": "Platform Nativeness",
183
+ "weight": 0.3,
184
+ "scoring": {
185
+ "5": "Script is unmistakably TikTok: direct-to-camera, conversational, uses TikTok-native language and formats (POV, 'things nobody tells you', etc.); 21-34 seconds; includes text overlay notes and sound suggestion",
186
+ "3": "Script works for TikTok but could be any short-form video; missing TikTok-specific elements",
187
+ "1": "Script reads like a YouTube explainer or Instagram Reel; not TikTok-native",
188
+ "0": "Not a video script; just written text"
189
+ }
190
+ },
191
+ {
192
+ "criterion": "Hook & Retention",
193
+ "weight": 0.3,
194
+ "scoring": {
195
+ "5": "First 3 seconds are a powerful hook (pattern interrupt, bold claim, relatable scenario); script maintains momentum throughout; high predicted completion rate",
196
+ "3": "Decent hook but middle section loses momentum; retention might drop",
197
+ "1": "Weak hook; viewer likely swipes away in first 3 seconds",
198
+ "0": "No hook; starts with generic intro"
199
+ }
200
+ },
201
+ {
202
+ "criterion": "Audience Fit",
203
+ "weight": 0.2,
204
+ "scoring": {
205
+ "5": "Language, examples, and humor resonate with Gen Z (18-25); uses relatable scenarios (rent, student loans, going out); avoids condescending or overly formal tone",
206
+ "3": "Generally appropriate but tone feels slightly off for Gen Z",
207
+ "1": "Tone is too formal, too corporate, or talks down to the audience",
208
+ "0": "Completely misses the audience"
209
+ }
210
+ },
211
+ {
212
+ "criterion": "Production Notes",
213
+ "weight": 0.2,
214
+ "scoring": {
215
+ "5": "Includes specific text overlay suggestions per scene, trending sound/audio recommendation, hashtags (3-5, niche + trending), and CTA (follow, comment, save)",
216
+ "3": "Some production notes present but incomplete",
217
+ "1": "Minimal or no production notes",
218
+ "0": "No production guidance at all"
219
+ }
220
+ }
221
+ ],
222
+ "expectedScoreWithout": 25,
223
+ "expectedScoreWith": 70
224
+ },
225
+ {
226
+ "id": "bench-med-03",
227
+ "difficulty": "medium",
228
+ "description": "Create an Instagram carousel concept with strategic hashtags",
229
+ "input": "Design an Instagram carousel (8-10 slides) for a SaaS startup's account on the topic '7 Signs Your Startup Needs to Invest in DevOps'. Target audience: startup CTOs and technical co-founders. Provide the text content for each slide, hashtag strategy, and posting time recommendation.",
230
+ "rubric": [
231
+ {
232
+ "criterion": "Carousel Structure",
233
+ "weight": 0.3,
234
+ "scoring": {
235
+ "5": "8-10 slides with clear structure: cover slide (bold hook), context slide, 7 sign slides (one per slide, concise), CTA slide; each slide has one focused takeaway; readable at mobile scale",
236
+ "3": "Slide count and structure are acceptable but some slides are too dense or structure is unclear",
237
+ "1": "Poor structure; multiple points per slide; no clear flow",
238
+ "0": "Not a carousel format; just a text list"
239
+ }
240
+ },
241
+ {
242
+ "criterion": "Content Quality",
243
+ "weight": 0.3,
244
+ "scoring": {
245
+ "5": "Each sign is specific, actionable, and resonates with startup CTOs; uses concrete examples or scenarios; builds from obvious to non-obvious signs; professional but engaging tone",
246
+ "3": "Content is relevant but generic; signs could apply to any company, not startup-specific",
247
+ "1": "Vague or irrelevant points; doesn't demonstrate DevOps expertise",
248
+ "0": "Content is off-topic or inaccurate"
249
+ }
250
+ },
251
+ {
252
+ "criterion": "Visual Direction",
253
+ "weight": 0.15,
254
+ "scoring": {
255
+ "5": "Includes text formatting suggestions (font size, emphasis), slide layout notes, and brand consistency guidance; content is designed for visual consumption",
256
+ "3": "Some visual notes but minimal; content relies heavily on text",
257
+ "1": "No visual direction; pure text content",
258
+ "0": "Visual suggestions are inappropriate for Instagram"
259
+ }
260
+ },
261
+ {
262
+ "criterion": "Hashtag & Timing",
263
+ "weight": 0.25,
264
+ "scoring": {
265
+ "5": "3-5 hashtags following relevance pyramid (mix of broad #StartupLife and niche #DevOpsCulture); posting time with timezone and day-of-week recommendation; rationale provided",
266
+ "3": "Hashtags and timing present but generic or not optimized",
267
+ "1": "Missing hashtags or timing recommendation",
268
+ "0": "No hashtags and no timing"
269
+ }
270
+ }
271
+ ],
272
+ "expectedScoreWithout": 25,
273
+ "expectedScoreWith": 70
274
+ },
275
+ {
276
+ "id": "bench-med-04",
277
+ "difficulty": "medium",
278
+ "description": "Create content with engagement prediction and A/B variant",
279
+ "input": "Create a Twitter/X tweet promoting a free webinar on 'How to Land Your First Developer Advocate Role'. Target audience: developers interested in DevRel. Provide the main tweet, an A/B test variant with a different hook, engagement prediction scores for both, and timing recommendation. Include hashtags.",
280
+ "rubric": [
281
+ {
282
+ "criterion": "Tweet Quality",
283
+ "weight": 0.3,
284
+ "scoring": {
285
+ "5": "Both tweet variants are under 280 chars; different hooks (e.g., one question-based, one data-driven); both feel natural and compelling; proper Twitter formatting",
286
+ "3": "Two variants provided but hooks are too similar or one feels forced",
287
+ "1": "Only one tweet or variants are nearly identical",
288
+ "0": "Tweets exceed character limit or are poorly formatted"
289
+ }
290
+ },
291
+ {
292
+ "criterion": "Engagement Prediction",
293
+ "weight": 0.3,
294
+ "scoring": {
295
+ "5": "Scores both variants on hook strength, value delivery, format alignment, CTA clarity, and algorithmic fit (1-5 each); explains scoring rationale; predicts which variant will perform better and why",
296
+ "3": "Some scoring provided but incomplete dimensions or missing rationale",
297
+ "1": "Vague prediction without structured scoring",
298
+ "0": "No engagement prediction"
299
+ }
300
+ },
301
+ {
302
+ "criterion": "Audience Targeting",
303
+ "weight": 0.2,
304
+ "scoring": {
305
+ "5": "Content speaks directly to developers curious about DevRel; uses language and pain points familiar to this audience (coding + communication, community building, career transition)",
306
+ "3": "Generally relevant but could target any career webinar",
307
+ "1": "Doesn't speak to the developer-to-DevRel audience specifically",
308
+ "0": "Wrong audience entirely"
309
+ }
310
+ },
311
+ {
312
+ "criterion": "Hashtags & Timing",
313
+ "weight": 0.2,
314
+ "scoring": {
315
+ "5": "1-2 relevant hashtags per variant (DevRel, developer community); specific timing recommendation with timezone and rationale",
316
+ "3": "Hashtags and timing present but not optimized for the developer audience",
317
+ "1": "Generic or missing",
318
+ "0": "No hashtags or timing"
319
+ }
320
+ }
321
+ ],
322
+ "expectedScoreWithout": 30,
323
+ "expectedScoreWith": 70
324
+ },
325
+ {
326
+ "id": "bench-hard-01",
327
+ "difficulty": "hard",
328
+ "description": "Full multi-platform content strategy for a product launch",
329
+ "input": "We're launching a new AI code review tool called 'ReviewBot' next Tuesday. Create a coordinated launch day content plan across all four platforms (Twitter/X, LinkedIn, Instagram, TikTok). For each platform, provide: the full post/script content, hashtags, exact posting time with timezone, and media suggestions. The target audience is software engineering teams at mid-size companies (50-500 employees). Our key differentiators: 1) Reviews PRs in under 60 seconds, 2) Learns team-specific coding standards, 3) Reduces code review bottlenecks by 70%. The tone should be confident but not hype-driven.",
330
+ "rubric": [
331
+ {
332
+ "criterion": "Cross-Platform Strategy",
333
+ "weight": 0.25,
334
+ "scoring": {
335
+ "5": "All 4 platforms covered with clearly differentiated content; posting times are staggered strategically throughout launch day; each platform leverages its unique strengths; coherent narrative across platforms without redundancy",
336
+ "3": "All 4 platforms covered but content feels repetitive; timing is not strategically staggered",
337
+ "1": "Only 2-3 platforms covered or content is essentially the same across platforms",
338
+ "0": "Only 1 platform or cross-posted identical content"
339
+ }
340
+ },
341
+ {
342
+ "criterion": "Content Quality Per Platform",
343
+ "weight": 0.3,
344
+ "scoring": {
345
+ "5": "Each platform's content is native: Twitter thread with quotable stats, LinkedIn thought-leadership post, Instagram visual-first carousel concept, TikTok demo-style script; all within platform limits; strong hooks on every platform",
346
+ "3": "Content is adequate but not optimized for each platform's native format",
347
+ "1": "Content feels generic across platforms; not leveraging platform-specific formats",
348
+ "0": "Content violates platform norms or exceeds limits"
349
+ }
350
+ },
351
+ {
352
+ "criterion": "Launch Day Coordination",
353
+ "weight": 0.2,
354
+ "scoring": {
355
+ "5": "Clear posting schedule with specific times per platform; considers timezone coverage for global audience; accounts for algorithm peak times; sequence creates momentum throughout the day",
356
+ "3": "Timing provided but not strategically sequenced",
357
+ "1": "Vague timing or all posts at the same time",
358
+ "0": "No timing coordination"
359
+ }
360
+ },
361
+ {
362
+ "criterion": "Value Proposition Communication",
363
+ "weight": 0.25,
364
+ "scoring": {
365
+ "5": "All 3 differentiators are communicated across the campaign; each platform highlights different angles; data points (60 sec, 70% reduction) are used effectively without feeling repetitive; tone is confident but grounded",
366
+ "3": "Key differentiators mentioned but not strategically distributed; some repetition",
367
+ "1": "Only 1-2 differentiators covered; feels like a generic product launch",
368
+ "0": "Value proposition unclear or missing"
369
+ }
370
+ }
371
+ ],
372
+ "expectedScoreWithout": 20,
373
+ "expectedScoreWith": 65
374
+ },
375
+ {
376
+ "id": "bench-hard-02",
377
+ "difficulty": "hard",
378
+ "description": "Create a content series plan with audience growth strategy",
379
+ "input": "Design a 5-part LinkedIn content series called 'The Uncomfortable Truths About Engineering Management' for an engineering leader building their personal brand. The series should be posted over 5 consecutive weekdays (Monday-Friday). For each installment, provide: the full post text (1,200-1,500 chars), hashtags, posting time, and explain how each post builds on the previous one. Each post should end with a teaser for the next day's post. Also provide an engagement prediction for the overall series and explain why this series format drives follower growth.",
380
+ "rubric": [
381
+ {
382
+ "criterion": "Series Coherence",
383
+ "weight": 0.25,
384
+ "scoring": {
385
+ "5": "5 posts form a clear narrative arc; each post builds on the previous; teasers create anticipation; topics progress from accessible to deep; series title and numbering are consistent",
386
+ "3": "5 posts on related topics but weak connective tissue between them; teasers feel forced",
387
+ "1": "Posts are standalone with no series feel; could be published in any order",
388
+ "0": "Posts are unrelated or series structure is absent"
389
+ }
390
+ },
391
+ {
392
+ "criterion": "Individual Post Quality",
393
+ "weight": 0.3,
394
+ "scoring": {
395
+ "5": "Each post is 1,200-1,500 chars; strong hook; single-sentence paragraphs; personal/vulnerable tone matching 'uncomfortable truths' theme; specific examples not generic advice; CTAs that drive comments",
396
+ "3": "Posts are adequate LinkedIn content but don't fully deliver on the 'uncomfortable truths' promise",
397
+ "1": "Posts are generic management advice without the edge the series title promises",
398
+ "0": "Posts are poorly formatted or violate LinkedIn norms"
399
+ }
400
+ },
401
+ {
402
+ "criterion": "Growth Strategy",
403
+ "weight": 0.2,
404
+ "scoring": {
405
+ "5": "Explains why the series format drives follower growth (anticipation, returning viewers, algorithm rewards consistency); engagement prediction with scoring breakdown for the series; identifies which post will likely perform best and why",
406
+ "3": "Some growth strategy explanation but lacks depth or specificity",
407
+ "1": "Minimal strategy explanation; no engagement prediction",
408
+ "0": "No growth strategy provided"
409
+ }
410
+ },
411
+ {
412
+ "criterion": "Scheduling & Hashtags",
413
+ "weight": 0.25,
414
+ "scoring": {
415
+ "5": "Specific posting times for each day (Mon-Fri) with timezone; times vary slightly based on content type; 3-5 consistent but topic-adapted hashtags per post; mix of series-branded and topic tags",
416
+ "3": "Timing and hashtags provided but identical across all posts or not optimized",
417
+ "1": "Vague timing; inconsistent or missing hashtags",
418
+ "0": "No timing or hashtag plan"
419
+ }
420
+ }
421
+ ],
422
+ "expectedScoreWithout": 15,
423
+ "expectedScoreWith": 60
424
+ },
425
+ {
426
+ "id": "bench-hard-03",
427
+ "difficulty": "hard",
428
+ "description": "Adapt sensitive/complex topic for social media with tone management",
429
+ "input": "A cybersecurity company needs to post about a major data breach affecting 50 million users of a competitor's platform. Create content for Twitter/X (a thread explaining the breach and lessons learned) and LinkedIn (a thought-leadership post on what this means for the industry). The tone must be: informative and authoritative, NOT opportunistic or fear-mongering; empathetic toward affected users; educational about prevention without being preachy; subtly positioning the company as knowledgeable without exploiting the situation. Include hashtags, timing, and engagement predictions. Note any content that should be avoided.",
430
+ "rubric": [
431
+ {
432
+ "criterion": "Tone Management",
433
+ "weight": 0.35,
434
+ "scoring": {
435
+ "5": "Tone is precisely calibrated: authoritative but empathetic; educational without being preachy; positions expertise without exploiting the breach; acknowledges affected users; avoids schadenfreude or competitive jabs",
436
+ "3": "Generally appropriate tone but slips into mild opportunism or fear-mongering in places",
437
+ "1": "Tone is off — either too promotional, too alarmist, or insensitive",
438
+ "0": "Tone is exploitative, fear-mongering, or clearly self-serving"
439
+ }
440
+ },
441
+ {
442
+ "criterion": "Content Quality",
443
+ "weight": 0.25,
444
+ "scoring": {
445
+ "5": "Thread and post provide genuine educational value; explain the breach clearly; offer actionable prevention lessons; include what-to-avoid guidance; both pieces stand alone as valuable content",
446
+ "3": "Content is informative but surface-level; prevention advice is generic",
447
+ "1": "Content is primarily about the company, not education",
448
+ "0": "Content is misleading, inaccurate, or purely promotional"
449
+ }
450
+ },
451
+ {
452
+ "criterion": "Platform Differentiation",
453
+ "weight": 0.2,
454
+ "scoring": {
455
+ "5": "Twitter thread is concise, factual, and structured for quick consumption; LinkedIn post is deeper, more reflective, with industry-level analysis; each leverages platform strengths for the sensitive topic",
456
+ "3": "Some differentiation but both platforms cover the same ground in similar ways",
457
+ "1": "Minimal differentiation; content is interchangeable",
458
+ "0": "Same content on both platforms"
459
+ }
460
+ },
461
+ {
462
+ "criterion": "Risk Awareness",
463
+ "weight": 0.2,
464
+ "scoring": {
465
+ "5": "Explicitly notes content to avoid (naming specific victims, speculating on attack vectors without evidence, using breach images, competitive attacks); timing recommendation accounts for news cycle sensitivity; hashtags avoid trending exploitation tags",
466
+ "3": "Some risk awareness but incomplete; misses some potential pitfalls",
467
+ "1": "Minimal risk awareness; content could backfire",
468
+ "0": "No risk awareness; content is reckless"
469
+ }
470
+ }
471
+ ],
472
+ "expectedScoreWithout": 20,
473
+ "expectedScoreWith": 60
474
+ }
475
+ ]
476
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "version": "0.0.1",
3
+ "timeout": 60,
4
+ "tasks": [
5
+ {
6
+ "id": "smoke-01",
7
+ "description": "Create a LinkedIn post about a product launch with hashtags and timing recommendation",
8
+ "input": "Create a LinkedIn post announcing the launch of our new AI-powered project management tool called 'FlowState'. The target audience is tech startup founders and engineering managers. Highlight that it reduces meeting time by 40% through automated standups and async decision-making. Include appropriate hashtags and recommend the best time to post for a US audience.",
9
+ "rubric": [
10
+ {
11
+ "criterion": "Platform Adaptation",
12
+ "weight": 0.25,
13
+ "scoring": {
14
+ "5": "Content is unmistakably LinkedIn-native: professional tone, paragraph breaks, 1,200-1,500 characters, 'see more' hook, no Twitter/Instagram-style formatting",
15
+ "3": "Reasonable LinkedIn post but could work on other platforms without much change; generic professional tone",
16
+ "1": "Content reads like a press release or generic announcement, not platform-adapted",
17
+ "0": "Content violates LinkedIn norms (too casual, too short, or formatted for another platform)"
18
+ }
19
+ },
20
+ {
21
+ "criterion": "Hook Quality",
22
+ "weight": 0.25,
23
+ "scoring": {
24
+ "5": "Opening line is a scroll-stopping hook (data-driven, contrarian, or curiosity-driven) that compels readers to click 'see more'; specific to the product's value proposition",
25
+ "3": "Decent opening but generic ('Excited to announce...'); doesn't maximize curiosity",
26
+ "1": "Weak or missing hook; post starts with company name or bland statement",
27
+ "0": "No discernible hook; wall of text from the start"
28
+ }
29
+ },
30
+ {
31
+ "criterion": "Hashtag Strategy",
32
+ "weight": 0.2,
33
+ "scoring": {
34
+ "5": "3-5 relevant hashtags following the relevance pyramid (1 broad + 2-3 niche + optional branded); placed at end of post; CamelCase formatting",
35
+ "3": "Hashtags present but count is off, or some are irrelevant to the content",
36
+ "1": "Too many or too few hashtags; all broad or all niche; no strategic mix",
37
+ "0": "No hashtags or completely irrelevant hashtag spam"
38
+ }
39
+ },
40
+ {
41
+ "criterion": "Timing & Engagement",
42
+ "weight": 0.15,
43
+ "scoring": {
44
+ "5": "Specific posting time recommendation with timezone context for US audience; includes day-of-week recommendation; rationale based on LinkedIn engagement patterns",
45
+ "3": "General timing recommendation ('post in the morning') without specifics",
46
+ "1": "Vague or missing timing recommendation",
47
+ "0": "No timing recommendation provided"
48
+ }
49
+ },
50
+ {
51
+ "criterion": "CTA & Value Delivery",
52
+ "weight": 0.15,
53
+ "scoring": {
54
+ "5": "Clear, low-friction CTA appropriate to LinkedIn (comment-driving question, 'share with your team', link in comments note); value proposition (40% meeting reduction) is prominent and compelling",
55
+ "3": "CTA present but generic ('check it out'); value proposition mentioned but not highlighted",
56
+ "1": "Weak or missing CTA; value proposition buried",
57
+ "0": "No CTA; reads as pure self-promotion without audience value"
58
+ }
59
+ }
60
+ ],
61
+ "passThreshold": 60
62
+ }
63
+ ]
64
+ }