---
name: x-voice-match
description: Analyze a Twitter/X account's posting style and generate authentic posts that match their voice. Use when the user wants to create X posts that sound like them, analyze their posting patterns, or maintain consistent voice across posts. Works with Bird CLI integration.
---
# X Voice Match
Analyze Twitter/X accounts to extract posting patterns and generate authentic content that matches the account owner's unique voice.
## Quick Start
**Step 1: Analyze the account**
```bash
cd /data/workspace/skills/x-voice-match
python3 scripts/analyze_voice.py @username [--tweets 50] [--output profile.json]
```
**Step 2: Generate posts**
```bash
python3 scripts/generate_post.py --profile profile.json --topic "your topic" [--count 3]
```
Or use the all-in-one approach:
```bash
python3 scripts/generate_post.py --account @username --topic "AI agents taking over" --count 5
```
## What It Analyzes
The skill extracts:
- **Length patterns**: Tweet character counts, thread usage, one-liner vs paragraph style
- **Tone markers**: Humor style, sarcasm, self-deprecation, edginess level
- **Topics**: Crypto, AI, tech, memes, personal life, current events
- **Engagement patterns**: QT vs original, reaction tweets, conversation starters
- **Language patterns**: Specific phrases, slang, emoji usage, punctuation style
- **Content types**: Observations, hot takes, memes, threads, questions, personal stories
## Output Format
### Voice Profile (JSON)
```json
{
"account": "@gravyxbt_",
"analyzed_tweets": 50,
"patterns": {
"avg_length": 85,
"length_distribution": {"short": 0.6, "medium": 0.3, "long": 0.1},
"uses_threads": false,
"humor_style": "self-deprecating, ironic",
"topics": ["crypto", "AI agents", "memes", "current events"],
"engagement_type": "reactive QT heavy",
"signature_phrases": ["lmao", "fr", "based"],
"emoji_usage": "minimal, strategic",
"punctuation": "lowercase, casual"
}
}
```
### Generated Posts
Returns 1-N posts with confidence scores and reasoning.
## Integration with Existing Tools
Works with Bird CLI (`/data/workspace/bird.sh`):
```bash
# Fetch fresh tweets for analysis
./bird.sh user-tweets @gravyxbt_ -n 50 > recent_tweets.txt
python3 scripts/analyze_voice.py --input recent_tweets.txt
```
## Post Type Templates
See [references/post-types.md](references/post-types.md) for common X post frameworks:
- Observations
- Hot takes
- Self-deprecating humor
- Crypto commentary
- Reaction posts
- Questions
## Advanced Usage
### Update Voice Profile
Re-analyze periodically to capture style evolution:
```bash
python3 scripts/analyze_voice.py @username --update profile.json
```
### Generate by Post Type
```bash
python3 scripts/generate_post.py --profile profile.json --type "hot-take" --topic "crypto"
```
### Batch Generation
```bash
python3 scripts/generate_post.py --profile profile.json --batch topics.txt --output posts.json
```
## Workflow
1. **First time**: Run full analysis on 30-50 tweets
2. **Generate posts**: Provide topic, get 3-5 style-matched options
3. **User picks**: Select best option or iterate with feedback
4. **Periodic updates**: Re-analyze monthly or after major voice shifts
## Tips
- **Minimum tweets**: 30 tweets for basic analysis, 50+ for accuracy
- **Recency matters**: Recent tweets reflect current style better than old ones
- **Topic relevance**: Generated posts work best on topics the account normally covers
- **Confidence scores**: <70% = may not sound authentic, revise or regenerateHelp answer questions about Catholicism accurately
Analyze budget vs actual
Push decisions to Arbiter Zebu for async human review.
Create, validate, and publish Agent Skills following