@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 +21 -0
- package/README.md +35 -0
- package/knowledge/anti-patterns.md +74 -0
- package/knowledge/best-practices.md +124 -0
- package/knowledge/domain.md +175 -0
- package/manifest.json +28 -0
- package/package.json +38 -0
- package/skill.md +47 -0
- package/strategies/main.md +111 -0
- package/tests/benchmark.json +476 -0
- package/tests/smoke.json +64 -0
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
|
+
}
|
package/tests/smoke.json
ADDED
|
@@ -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
|
+
}
|