skills/rightnow-ai/openfang/twitter-hand-skill

twitter-hand-skill

SKILL.md

Twitter/X Management Expert Knowledge

Twitter API v2 Reference

Authentication

Twitter API v2 uses OAuth 2.0 Bearer Token for app-level access and OAuth 1.0a for user-level actions.

Bearer Token (read-only access + tweet creation):

Authorization: Bearer $TWITTER_BEARER_TOKEN

Environment variable: TWITTER_BEARER_TOKEN

Core Endpoints

Get authenticated user info:

curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  "https://api.twitter.com/2/users/me"

Response: {"data": {"id": "123", "name": "User", "username": "user"}}

Post a tweet:

curl -s -X POST "https://api.twitter.com/2/tweets" \
  -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello world!"}'

Response: {"data": {"id": "tweet_id", "text": "Hello world!"}}

Post a reply:

curl -s -X POST "https://api.twitter.com/2/tweets" \
  -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Great point!", "reply": {"in_reply_to_tweet_id": "PARENT_TWEET_ID"}}'

Post a thread (chain of replies to yourself):

  1. Post first tweet → get tweet_id
  2. Post second tweet with reply.in_reply_to_tweet_id = first tweet_id
  3. Repeat for each tweet in thread

Delete a tweet:

curl -s -X DELETE "https://api.twitter.com/2/tweets/TWEET_ID" \
  -H "Authorization: Bearer $TWITTER_BEARER_TOKEN"

Like a tweet:

curl -s -X POST "https://api.twitter.com/2/users/USER_ID/likes" \
  -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"tweet_id": "TARGET_TWEET_ID"}'

Get mentions:

curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  "https://api.twitter.com/2/users/USER_ID/mentions?max_results=10&tweet.fields=public_metrics,created_at,author_id"

Search recent tweets:

curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  "https://api.twitter.com/2/tweets/search/recent?query=QUERY&max_results=10&tweet.fields=public_metrics"

Get tweet metrics:

curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
  "https://api.twitter.com/2/tweets?ids=ID1,ID2,ID3&tweet.fields=public_metrics"

Response includes: retweet_count, reply_count, like_count, quote_count, bookmark_count, impression_count

Rate Limits

Endpoint Limit Window
POST /tweets 300 tweets 3 hours
DELETE /tweets 50 deletes 15 minutes
POST /likes 50 likes 15 minutes
GET /mentions 180 requests 15 minutes
GET /search/recent 180 requests 15 minutes

Always check response headers:

  • x-rate-limit-limit: Total requests allowed
  • x-rate-limit-remaining: Requests remaining
  • x-rate-limit-reset: Unix timestamp when limit resets

Content Strategy Framework

Content Pillars

Define 3-5 core topics ("pillars") that all content revolves around:

Example for a tech founder:
  Pillar 1: AI & Machine Learning (40% of content)
  Pillar 2: Startup Building (30% of content)
  Pillar 3: Engineering Culture (20% of content)
  Pillar 4: Personal Growth (10% of content)

Content Mix (7 types)

Type Frequency Purpose Template
Hot take 2-3/week Engagement "Unpopular opinion: [contrarian view]"
Thread 1-2/week Authority "I spent X hours researching Y. Here's what I found:"
Tip/How-to 2-3/week Value "How to [solve problem] in [N] steps:"
Question 1-2/week Engagement "[Interesting question]? I'll go first:"
Curated share 1-2/week Curation "This [article/tool/repo] is a game changer for [audience]:"
Story 1/week Connection "3 years ago I [relatable experience]. Here's what happened:"
Data/Stat 1/week Authority "[Surprising statistic]. Here's why it matters:"

Optimal Posting Times (UTC-based, adjust to audience timezone)

Day Best Times Why
Monday 8-10 AM Start of work week, checking feeds
Tuesday 10 AM, 1 PM Peak engagement day
Wednesday 9 AM, 12 PM Mid-week focus
Thursday 10 AM, 2 PM Second-highest engagement day
Friday 9-11 AM Morning only, engagement drops PM
Saturday 10 AM Casual browsing
Sunday 4-6 PM Pre-work-week planning

Tweet Writing Best Practices

The Hook (first line is everything)

Hooks that work:

  • Contrarian: "Most people think X. They're wrong."
  • Number: "I analyzed 500 [things]. Here's what I found:"
  • Question: "Why do 90% of [things] fail?"
  • Story: "In 2019, I almost [dramatic thing]."
  • How-to: "How to [desirable outcome] without [common pain]:"
  • List: "5 [things] I wish I knew before [milestone]:"
  • Confession: "I used to believe [common thing]. Then I learned..."

Writing Rules

  1. One idea per tweet — don't try to cover everything
  2. Front-load value — the hook must deliver or promise value
  3. Use line breaks — no wall of text, 1-2 sentences per line
  4. 280 character limit — every word must earn its place
  5. Active voice — "We shipped X" not "X was shipped by us"
  6. Specific > vague — "3x faster" not "much faster"
  7. End with a call to action — "Agree? RT" or "What would you add?"

Thread Structure

Tweet 1 (HOOK): Compelling opening that makes people click "Show this thread"
  - Must stand alone as a great tweet
  - End with "A thread:" or "Here's what I found:"

Tweet 2-N (BODY): One key point per tweet
  - Number them: "1/" or use emoji bullets
  - Each tweet should add value independently
  - Include specific examples, data, or stories

Tweet N+1 (CLOSING): Summary + call to action
  - Restate the key takeaway
  - Ask for engagement: "Which resonated most?"
  - Self-reference: "If this was useful, follow @handle for more"

Hashtag Strategy

  • 0-2 hashtags per tweet (more looks spammy)
  • Use hashtags for discovery, not decoration
  • Mix broad (#AI) and specific (#LangChain)
  • Never use hashtags in threads (except maybe tweet 1)
  • Research trending hashtags in your niche before using them

Engagement Playbook

Replying to Mentions

Rules:

  1. Respond within 2 hours during engagement_hours
  2. Add value — don't just say "thanks!" — expand on their point
  3. Ask a follow-up question — drives conversation
  4. Be genuine — match their energy and tone
  5. Never argue — if someone is hostile, ignore or block

Reply templates:

  • Agreement: "Great point! I'd also add [related insight]"
  • Question: "Interesting question. The short answer is [X], but [nuance]"
  • Disagreement: "I see it differently — [respectful counterpoint]. What's your experience?"
  • Gratitude: "Appreciate you sharing this! [Specific thing you liked about their tweet]"

When NOT to Engage

  • Trolls or obviously bad-faith arguments
  • Political flame wars (unless that's your content pillar)
  • Personal attacks (block immediately)
  • Spam or bot accounts
  • Tweets that could create legal liability

Auto-Like Strategy

Like tweets from:

  1. People who regularly engage with your content (reciprocity)
  2. Influencers in your niche (visibility)
  3. Thoughtful content related to your pillars (curation signal)
  4. Replies to your tweets (encourages more replies)

Do NOT auto-like:

  • Controversial or political content
  • Content you haven't actually read
  • Spam or low-quality threads
  • Competitor criticism (looks petty)

Content Calendar Template

WEEK OF [DATE]

Monday:
  - 8 AM: [Tip/How-to] about [Pillar 1]
  - 12 PM: [Curated share] related to [Pillar 2]

Tuesday:
  - 10 AM: [Thread] deep dive on [Pillar 1]
  - 2 PM: [Hot take] about [trending topic]

Wednesday:
  - 9 AM: [Question] to audience about [Pillar 3]
  - 1 PM: [Data/Stat] about [Pillar 2]

Thursday:
  - 10 AM: [Story] about [personal experience in Pillar 3]
  - 3 PM: [Tip/How-to] about [Pillar 1]

Friday:
  - 9 AM: [Hot take] about [week's trending topic]
  - 11 AM: [Curated share] — best thing I read this week

Performance Metrics

Key Metrics

Metric What It Measures Good Benchmark
Impressions How many people saw the tweet Varies by follower count
Engagement rate (likes+RTs+replies)/impressions >2% is good, >5% is great
Reply rate replies/impressions >0.5% is good
Retweet rate RTs/impressions >1% is good
Profile visits People checking your profile after tweet Track trend
Follower growth Net new followers per period Track trend

Engagement Rate Formula

engagement_rate = (likes + retweets + replies + quotes) / impressions * 100

Example:
  50 likes + 10 RTs + 5 replies + 2 quotes = 67 engagements
  67 / 2000 impressions = 3.35% engagement rate

Content Performance Analysis

Track which content types and topics perform best:

| Content Type | Avg Impressions | Avg Engagement Rate | Best Performing |
|-------------|-----------------|--------------------|--------------------|
| Hot take | 2500 | 4.2% | "Unpopular opinion: ..." |
| Thread | 5000 | 3.1% | "I analyzed 500 ..." |
| Tip | 1800 | 5.5% | "How to ... in 3 steps" |

Use this data to optimize future content mix.


Brand Voice Guide

Voice Dimensions

Dimension Range Description
Formal ↔ Casual 1-5 1=corporate, 5=texting a friend
Serious ↔ Humorous 1-5 1=all business, 5=comedy account
Reserved ↔ Bold 1-5 1=diplomatic, 5=no-filter
General ↔ Technical 1-5 1=anyone can understand, 5=deep expert

Consistency Rules

  • Use the same voice across ALL tweets (hot takes and how-tos)
  • Develop 3-5 "signature phrases" you reuse naturally
  • If the brand voice says "casual," don't suddenly write a formal thread
  • Read tweets aloud — does it sound like the same person?

Safety & Compliance

Content Guidelines

NEVER post:

  • Discriminatory content (race, gender, religion, sexuality, disability)
  • Defamatory claims about real people or companies
  • Private or confidential information
  • Threats, harassment, or incitement to violence
  • Impersonation of other accounts
  • Misleading claims presented as fact
  • Content that violates Twitter Terms of Service

Approval Mode Queue Format

[
  {
    "id": "q_001",
    "content": "Tweet text here",
    "type": "hot_take",
    "pillar": "AI",
    "scheduled_for": "2025-01-15T10:00:00Z",
    "created": "2025-01-14T20:00:00Z",
    "status": "pending",
    "notes": "Based on trending discussion about LLM pricing"
  }
]

Preview file for human review:

# Tweet Queue Preview
Generated: YYYY-MM-DD

## Pending Tweets (N total)

### 1. [Hot Take] — Scheduled: Mon 10 AM
> Tweet text here

**Notes**: Based on trending discussion about LLM pricing
**Pillar**: AI | **Status**: Pending approval

---

### 2. [Thread] — Scheduled: Tue 10 AM
> Tweet 1/5: Hook text here
> Tweet 2/5: Point one
> ...

**Notes**: Deep dive on new benchmark results
**Pillar**: AI | **Status**: Pending approval

Risk Assessment

Before posting, evaluate each tweet:

  • Could this be misinterpreted? → Rephrase for clarity
  • Does this punch down? → Don't post
  • Would you be comfortable seeing this attributed to the user in a news article? → If no, don't post
  • Is this verifiably true? → If not sure, add hedging language or don't post
Weekly Installs
8
GitHub Stars
14.5K
First Seen
11 days ago
Installed on
opencode8
github-copilot8
codex8
kimi-cli8
amp8
cline8