Agent skill
post-to-twitter
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/post-to-twitter
SKILL.md
post-to-twitter Skill
name: post-to-twitter description: Manage Twitter/X presence with tweets and threads. Create concise, engaging content optimized for Twitter's format. Support single tweets (280 chars) and multi-tweet threads. Track engagement and build thought leadership. Use when user mentions "post to twitter", "tweet", "create thread", "share on x", "twitter post". user-invocable: true allowed-tools: [Read, Write, Edit, Bash, Glob, Grep] context: fork
Purpose
Automate Twitter/X content creation for professional thought leadership and engagement. This skill generates platform-optimized tweets and threads that maintain brand voice, follow Twitter best practices, and require human approval before publishing.
When to Use This Skill
This skill activates when:
- User asks to "post to Twitter" or "tweet this"
- Creating thread content for deeper insights
- Sharing quick updates or industry commentary
- Building thought leadership on Twitter
- Engaging with tech/business Twitter community
- User mentions "twitter", "tweet", "x post", "thread"
Workflow Overview
Business_Goals.md → Content Type Selection → Tweet vs Thread
↓ ↓ ↓
Twitter Guidelines → Drafting → Optimization (280 char)
↓ ↓ ↓
Hashtag Strategy → Final Tweet(s) → Approval Request
↓ ↓ ↓
Human Approval → Twitter Publishing → Engagement Tracking
Twitter Platform Characteristics
Key Differences from Other Platforms
- Character Limit: 280 characters (brevity is critical)
- Optimal Length: 71-100 characters (highest engagement)
- Hashtags: 1-2 maximum (unlike Instagram's 5-10)
- Threading: Multi-tweet threads for longer content
- Speed: Real-time, fast-paced, conversational
- Audience: Tech-savvy, professional, fast scrollers
Content Performance Insights
- Tweets: Short, punchy tweets (< 100 chars) perform best
- Threads: Deep-dive content gets more engagement than links
- Visual Tweets: Images/GIFs increase engagement 35%
- Questions: Direct questions get 3x more replies
- Timing: Weekday mornings and early afternoons peak
Step-by-Step Process
Phase 1: Content Discovery & Format Selection
Objective: Identify content and determine if single tweet or thread.
-
Read Business_Goals.md
bash# Location: Vault/Business_Goals.md # Look for: Twitter strategy, content themes, target audience- Identify current business priorities
- Check Twitter-specific goals (follower growth, engagement targets)
- Note voice/tone preferences
-
Scan Recent Completed Tasks
bash# Location: Vault/Done/ # Pattern: Quick wins, insights, interesting learnings- Look for tweetable moments (quick insights)
- Find thread-worthy topics (complex ideas)
- Identify controversial or hot takes
-
Check Explicit Content Requests
bash# Location: Vault/Needs_Action/ # Pattern: Twitter post requests- Extract specific topic or angle
- Note if user requested tweet or thread
- Identify any linked resources
-
Format Decision Logic
Use twitter-guidelines.md:
Choose Single Tweet when:
- Content is simple, one clear idea
- Quick insight, tip, or observation
- Sharing a link with commentary
- Engaging with trending topic
- Maximum 280 characters sufficient
Choose Thread when:
- Complex idea requiring multiple points
- Step-by-step tutorial or guide
- Storytelling with narrative arc
- In-depth analysis or commentary
- Content exceeds 280 characters meaningfully
Output: Format selected (tweet or thread), content theme identified
Phase 2: Content Generation (Twitter-Optimized)
Objective: Create engaging, concise content within Twitter constraints.
For Single Tweets
-
Select Tweet Template
Refer to twitter-guidelines.md:
- Insight/Tip: Share valuable knowledge in < 100 chars
- Hot Take: Controversial but defensible opinion
- Question: Spark conversation with direct question
- Announcement: Brief update or news
- Quote + Commentary: Share quote with your take
-
Draft Tweet Content
Optimal Structure (71-100 characters):
[Hook or statement] [Optional: Link or CTA] [Optional: 1-2 hashtags]Extended Structure (100-280 characters):
[Hook or opening statement] [Elaboration or context] [Call-to-action or link] [Optional: 1-2 hashtags]Twitter Voice Guidelines:
- Direct and conversational
- No fluff or filler words
- Active voice preferred
- Sentence fragments acceptable
- Personality over polish
-
Character Count Optimization
Priority:
- Core message: 50-100 chars
- Link (if needed): 23 chars (auto-shortened)
- Hashtags (1-2): 10-20 chars
- Total Target: 71-100 chars (sweet spot)
If over 280 chars: Convert to thread (Phase 2B)
For Tweet Threads
-
Select Thread Template
Refer to thread-templates.md:
- Tutorial/How-To: Step-by-step guide (3-7 tweets)
- Storytelling: Narrative with beginning, middle, end (4-10 tweets)
- Listicle: Numbered list of insights (5-10 tweets)
- Deep Dive: In-depth analysis (5-12 tweets)
- Hot Take + Justification: Opinion + supporting points (3-5 tweets)
-
Draft Thread Structure
Tweet 1 (Hook Thread):
[Attention-grabbing hook] [Brief preview of what's coming] [Optional: "A thread 🧵" or "Let me explain 👇"]Tweets 2-N (Content Tweets):
[Point/step with clear value] [Brief elaboration if needed] [Natural transition to next tweet]Final Tweet (CTA/Conclusion):
[Summary or key takeaway] [Call-to-action: Follow, Retweet, Comment] [Optional: Link to related resource] -
Thread Best Practices
- Length: 3-10 tweets optimal (over 15 loses readers)
- Numbering: Use "1/" "2/" etc. for clarity
- Flow: Each tweet must make sense standalone
- Pacing: Vary tweet length (some short, some longer)
- Hook Strong: First tweet determines if thread gets read
-
Hashtag Strategy
Use hashtag-strategy.md:
Twitter-Specific Rules:
- Maximum: 1-2 hashtags per tweet
- Placement: End of tweet only
- Selection: Broad, trending, or branded only
- Thread Placement: Only on first or last tweet, not all
Examples:
- #AI #ProductivityTips
- #Startups #EntrepreneursLife
- #TechTwitter #BuildInPublic
Note: Twitter hashtags are less critical than Instagram. Focus on content quality over hashtag quantity.
Output: Tweet or thread drafted, character counts verified
Phase 3: Quality Review & Validation
Objective: Ensure content meets Twitter and brand standards.
-
Twitter-Specific Checklist
Single Tweet:
- Character count: 71-280 (optimal: 71-100)
- Clear message without jargon
- No typos or errors
- Links shortened (if applicable)
- Hashtags: 0-2 maximum
- Engaging (question, insight, or call-to-action)
Thread:
- First tweet hooks attention
- 3-10 tweets total (not too long)
- Each tweet standalone makes sense
- Numbered clearly (1/7, 2/7, etc.)
- Natural flow between tweets
- Strong conclusion with CTA
- Hashtags only on first/last tweet
-
Brand Compliance Check
Reference
Vault/Company_Handbook.md:- Aligns with brand voice
- No prohibited topics
- Professional but conversational
- No offensive language
- Respectful of others
-
Engagement Optimization
Reference engagement-tactics.md:
- Includes question or conversation starter (if applicable)
- Personality or opinion evident
- Value-driven (insight, tip, story)
- Optimal posting time considered
- No excessive self-promotion
Output: Validated tweet/thread ready for approval
Phase 4: Approval Request Creation
Objective: Create formal approval request for human review.
-
Integrate with handle-approval Skill
This skill MUST use the
handle-approvalskill for approval requests.Reference: ../../handle-approval/reference/approval-thresholds.md
-
Create Approval File
markdown--- type: approval_request action: social_media_post platform: twitter content_type: [tweet|thread] created: [timestamp ISO 8601] expires: [72 hours from creation] priority: normal status: pending --- ## Action Summary Publish Twitter [tweet/thread]: [One-line description] ## Twitter Content ### [Single Tweet] OR [Thread] **Tweet 1:** [Tweet content] Character count: [X/280] [If thread, continue:] **Tweet 2:** [Tweet content] Character count: [X/280] **Tweet 3:** [Tweet content] Character count: [X/280] [... additional tweets ...] **Tweet N (Final):** [Tweet content] Character count: [X/280] --- ## Metadata - **Platform:** Twitter/X - **Type:** [Single Tweet / Thread] - **Thread Length:** [If thread: X tweets] - **Total Character Count:** [Sum of all tweets] - **Hashtags:** [List hashtags used] - **Mentions:** [Any @mentions] - **Links:** [Any URLs included] ## Context & Rationale - **Content Source:** [Insight / Project / Industry commentary] - **Business Goal:** [Thought leadership / Engagement / Brand awareness] - **Target Audience:** [Tech community / Entrepreneurs / Industry peers] - **Inspiration:** [What prompted this tweet/thread] ## Posting Schedule - **Optimal Times:** Weekdays 8-10 AM, 12-1 PM, 5-6 PM - **Suggested Time:** [Specific time if scheduled] ## Risks & Considerations - Risk: Low (standard business content) - Compliance: Follows Twitter guidelines and brand voice - Controversy: [None / Low / Intentional hot take - explain] ## To Approve Move this file to `/Approved` folder. ## To Reject Move this file to `/Rejected` folder and add reason at bottom. --- ## Human Edits (Optional) [Space for human to edit tweet content before approval] -
File Naming Convention
APPROVAL_TWITTER_[TWEET|THREAD]_[description]_[YYYY-MM-DD].md Examples: - APPROVAL_TWITTER_TWEET_AIProductivityTip_2026-01-11.md - APPROVAL_TWITTER_THREAD_AutomationTutorial_2026-01-11.md - APPROVAL_TWITTER_TWEET_WeeklyInsight_2026-01-11.md -
Save to Pending Approval Folder
bash# Location: Vault/Pending_Approval/
Output: Approval request file created in /Pending_Approval
Phase 5: Dashboard Logging
Objective: Maintain audit trail and activity log.
Update Vault/Dashboard.md:
## Recent Activity
- [YYYY-MM-DD HH:MM:SS] **Twitter [Tweet/Thread] Created**
- Type: [Single Tweet / Thread (X tweets)]
- Topic: [Brief description]
- Character Count: [Total characters]
- Status: Pending Approval
- Approval File: APPROVAL_TWITTER_[...]_[date].md
- Action: Human review required in /Pending_Approval
Output: Dashboard updated with pending post status
Phase 6: Post-Approval Execution
Note: Executes ONLY after human moves approval file to /Approved folder.
-
Detect Approved Post
bash# Monitor: Vault/Approved/ # Pattern: APPROVAL_TWITTER_*.md -
Execute Twitter Publishing
bashpython scripts/twitter_api_helper.py --approval-file "Vault/Approved/APPROVAL_TWITTER_xxx.md"The script will:
- Extract tweet/thread content
- Authenticate with Twitter API v2
- Publish tweet(s) in sequence (for threads)
- Return tweet URL(s) and status
-
Handle Execution Results
If Success:
- Move approval file from
/Approvedto/Done - Update Dashboard with success log and tweet URL(s)
- Initialize engagement tracking file
If Failure:
- Keep file in
/Approved - Log error to Dashboard with details
- Create troubleshooting task in /Needs_Action
- Move approval file from
-
Engagement Tracking Setup
Create tracking file:
markdown# /Vault/Social_Media/Twitter/Analytics/TWEET_[date]_[topic].md --- platform: twitter type: [tweet|thread] tweet_url: [Primary tweet URL] published: [timestamp] --- ## Initial Metrics (24h) - Impressions: [TBD] - Engagements: [TBD] - Retweets: [TBD] - Likes: [TBD] - Replies: [TBD] - Profile Clicks: [TBD] ## Week Performance (7d) [To be updated after 7 days] -
Final Dashboard Update
markdown- [YYYY-MM-DD HH:MM:SS] **Twitter [Tweet/Thread] Published** ✓ - Type: [Single Tweet / Thread (X tweets)] - Topic: [Brief description] - Tweet URL: [URL] - Status: Complete - Tracking: /Social_Media/Twitter/Analytics/TWEET_[date]_[topic].md
Output: Tweet/thread published and engagement tracking initiated
Integration with Other Skills
Required Dependencies
- handle-approval Skill (Gold Branch 1)
- MUST be used for all approval request creation
- Enforces security thresholds
- Manages expiration policies
Optional Integrations
-
create-plan Skill (Silver Tier)
- Use for thread planning and structuring
- Break down complex topics into thread format
-
process-tasks Skill (Bronze Tier)
- Process explicit Twitter post requests from /Needs_Action
Security & Safety Protocols
Never Auto-Approve
- ALL Twitter posts REQUIRE human approval (zero exceptions)
- Twitter is public, permanent, and highly visible
- Brand reputation risk is HIGH
- Threads especially need review (longer content = more risk)
- Approval expiration: 72 hours (3 days)
Content Validation Required
Before creating approval request:
- No confidential business information
- No client names without permission
- No controversial content unless intentional (and approved strategy)
- No negative comments about competitors
- Professional and respectful language
- No excessive self-promotion (80/20 rule: 80% value, 20% promo)
- Twitter community guidelines compliant
Rate Limiting
From Business_Goals.md (adjust as needed):
- Single Tweets: 3-5 per week maximum
- Threads: 1-2 per week maximum (more effort to read)
- Minimum Spacing: 4-6 hours between tweets
- Optimal Frequency: Daily or every other day
Error Handling
Common Issues
-
Character Count Exceeds 280
- Action: Either shorten or convert to thread
- Template: Use thread template
- Ask: User preference on shortening vs threading
-
Business_Goals.md Missing Twitter Strategy
- Action: Alert user to define Twitter goals
- Fallback: Use general tech/business audience assumptions
- Default: Conservative posting frequency (2-3x/week)
-
Twitter API Authentication Failure
- Action: Log error with details
- Alert: Create task in /Needs_Action for token refresh
- Guidance: Link to Twitter Developer Console
-
Thread Too Long (> 15 tweets)
- Action: Suggest shortening or splitting into multiple threads
- Reason: Long threads lose readers
- Optimal: 5-7 tweets per thread
Testing & Validation
Dry-Run Mode
The Twitter API helper script supports dry-run:
python scripts/twitter_api_helper.py --dry-run --approval-file "path/to/file.md"
This will:
- Parse approval file
- Validate character counts
- Show what would be posted
- NOT publish to Twitter
Success Criteria
- Tweet(s) drafted correctly
- Character counts within limits (280 per tweet)
- Hashtag strategy appropriate (1-2 max)
- Thread flow logical (if thread)
- Approval request in correct format
- Dashboard logging complete
- Content passes quality checklist
Trigger Phrases for Auto-Activation
This skill activates when user says:
- "post to twitter"
- "tweet this"
- "share on twitter"
- "create a tweet"
- "create a thread"
- "twitter thread about [topic]"
- "post on x"
- "tweet about [topic]"
Reference Files
- Twitter Guidelines - Platform best practices, tweet templates
- Thread Templates - Multi-tweet thread structures
- Hashtag Strategy - Twitter-specific hashtag usage
- Engagement Tactics - Optimization for replies and engagement
Examples
Example 1: Single Tweet (Quick Tip)
User: "Tweet about the productivity hack I discovered today"
Skill Actions:
1. Reviews recent Done/ tasks for productivity-related content
2. Selects "Insight/Tip" tweet template
3. Drafts concise tweet (85 characters):
"Automation isn't lazy. It's choosing to solve a problem once instead of daily."
4. Adds 1 hashtag: #ProductivityTips
5. Creates APPROVAL_TWITTER_TWEET_AutomationInsight_2026-01-11.md
6. Logs to Dashboard
7. Waits for human approval
8. Posts to Twitter after approval
Example 2: Thread (Tutorial)
User: "Create a Twitter thread explaining how to set up Claude Code automation"
Skill Actions:
1. Selects "Tutorial/How-To" thread template
2. Structures 7-tweet thread:
- Tweet 1: Hook + promise
- Tweets 2-6: Step-by-step instructions
- Tweet 7: Conclusion + CTA
3. Numbers tweets (1/7, 2/7, etc.)
4. Keeps each tweet 150-250 characters
5. Adds #ClaudeCode #Automation to first tweet only
6. Creates APPROVAL_TWITTER_THREAD_ClaudeCodeSetup_2026-01-11.md
7. Human reviews, makes minor edits, approves
8. Posts thread to Twitter (with 5-second delay between tweets)
9. Tracks engagement
Example 3: Hot Take (Controversial Opinion)
User: "Tweet my opinion that most SaaS tools are over-engineered"
Skill Actions:
1. Recognizes controversial/opinion content
2. Selects "Hot Take" template
3. Drafts tweet (142 characters):
"Unpopular opinion: 90% of SaaS tools are over-engineered. Most businesses need 10% of the features they pay for.
Simplicity > feature bloat."
4. No hashtags (hot takes work better without)
5. Creates approval request with "Risk: Medium - Intentional hot take" note
6. Human reviews, confirms stance, approves
7. Posts and monitors replies for engagement
Notes
Twitter Character Limits
- Single Tweet: 280 characters
- Username Mentions: Count toward 280
- Links: Auto-shortened to 23 characters (t.co)
- Images/GIFs: Don't count toward character limit
- Polls: Separate format, not covered in this skill yet
Thread Best Practices
- Hook within first 5 words
- Use line breaks for readability (double return)
- Vary tweet length (some short, some longer)
- Number clearly (1/7, 2/7, etc.)
- Strong CTA in final tweet
- Engage with replies quickly
Engagement Tips
- Ask questions (gets 3x more replies)
- Reply to all comments within first hour
- Retweet relevant replies
- Quote tweet for commentary
- Use Twitter Lists to monitor industry conversations
Skill Version: 1.0 Created: 2026-01-11 Branch: feat/gold-social-expansion Dependencies: handle-approval (Gold Branch 1)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?