OpenClaw ยท Skill
Tweet Composer
Score and optimize tweets using rules derived from X's open-source ranking algorithm.
Install
Start with the primary install command. Alternate entrypoints are included below for ClawHub and OpenClaw CLI users.
Primary command
clawhub install minilozio/tweet-composerClawHub installer
npx clawhub@latest install minilozio/tweet-composerOpenClaw CLI
openclaw skills install minilozio/tweet-composerDirect OpenClaw install
openclaw install minilozio/tweet-composerWhat this skill does
Score and optimize tweets using rules derived from X's open-source ranking algorithm.
Why it matters
Scores against X's actual open-source ranking weights rather than generic social media tips.
Typical use cases
- Scoring a draft before posting to estimate For You reach
- Rewriting a tweet that got less engagement than expected
- Structuring a thread for maximum first-tweet hook performance
- Diagnosing why a specific past tweet underperformed
- Deciding how many tweets to post in a day without triggering author diversity penalties
Source instructions
Tweet Composer
Score and optimize tweets using rules derived from X's open-source ranking algorithm.
How It Works
X's "For You" feed is ranked by a Grok-based transformer (Phoenix) that predicts 19 engagement actions for every candidate tweet. The final score is a weighted sum of these predictions. This skill encodes the structural rules from that pipeline into a scoring system.
For the full algorithm breakdown, read references/algorithm-rules.md.
Scoring a Draft Tweet
When a user asks to score or optimize a tweet draft:
- Read
references/algorithm-rules.mdfor the complete rules engine - Analyze the draft against all rules
- Output the score card in this format:
๐ฆ Tweet Composer โ Score: XX/100
[Category scores with โ
โ ๏ธ โ indicators]
๐ Predicted Action Boost:
โโ P(reply): [assessment]
โโ P(favorite): [assessment]
โโ P(share): [assessment]
โโ P(dwell): [assessment]
โโ P(not_interested): [assessment]
๐ก Suggestions:
โ [actionable improvements]
โ๏ธ Optimized version:
"[rewritten tweet]"
Scoring Rubric (Quick Reference)
Score 0-100 based on weighted categories:
| Category | Weight | What to check |
|---|---|---|
| Reply potential | 25 | Questions, opinions, CTAs that drive replies |
| Media | 20 | Native image/video attached (not link previews) |
| Shareability | 15 | Would someone DM this or copy the link? |
| Dwell time | 15 | Length that makes people stop scrolling |
| Content quality | 10 | Clear, original, not generic |
| Format | 10 | No links in body, no hashtags, good length |
| Negative signals | 5 | Risk of not_interested/mute/block |
Thread Optimization
When composing threads:
- First tweet = strongest hook (DedupConversationFilter keeps only the best per conversation)
- 3-6 tweets max (short threads > mega-threads)
- Each tweet self-contained (many see only the first)
- Media on tweet 1 or 2 for photo_expand boost
- CTA in last tweet
Quick Rules (No Reference File Needed)
- Links: Always in reply, never in body (learned penalty from lower engagement)
- Hashtags: Zero. The model learns they reduce engagement
- Length: 100-200 chars sweet spot for single tweets
- Media: Native image/video = separate P(photo_expand) and P(video_quality_view) predictions
- Video: Must exceed minimum duration threshold for VQV weight to apply
- Timing: Post when your audience is active โ engagement velocity in first 30 min is critical
- Frequency: AuthorDiversityScorer penalizes exponentially: 2nd post ~55% score, 3rd ~33%. Max 3-4 strong tweets/day
- Quote tweets: P(quote) has dedicated weight โ QTs with added value outperform plain retweets
- Engagement bait: Questions/polls drive P(reply). "What would you add?" > "Like if you agree"