🎯

x-writing

🎯Skill

from richtabor/agent-skills

VibeIndex|
What it does

Transforms notes and ideas into engaging X (Twitter) posts by analyzing content, applying strategic writing principles, and crafting authentic social media content.

πŸ“¦

Part of

richtabor/agent-skills(14 items)

x-writing

Installation

Quick InstallInstall with npx
npx skills add richtabor/agent-skills
Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add https://github.com/richtabor/agent-skills
Install PluginInstall plugin from marketplace
/plugin install rt
πŸ“– Extracted from docs: richtabor/agent-skills
6Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Transforms notes into X (Twitter) posts. Triggers when user asks to create social content, draft tweets, or turn notes/ideas into posts.

Overview

# X Writing Skill

Overview

Transform your notes, work updates, and observations into engaging X (Twitter) content. This skill analyzes your notes to identify the most shareable insights, then crafts authentic posts that match your voice and drive engagement.

Supports two idea sources β€” a markdown file (X_SOURCE_FILE) and/or macOS Notes (X_NOTES_APP_SOURCE). If both are configured, asks which to use.

Process

Phase 1: Preparation and Analysis

1.1 Load Writing Guides (REQUIRED - Load First)

Before any other work, load the following:

  1. Growth Principles (references/x-strategy.md) - Content selection criteria, what makes posts shareable, engagement patterns, and what to prioritize from notes. This guides WHAT to share.
  1. Writing Style Guide (from WRITING_STYLE_GUIDE_PATH env var) - Voice, tone, structure, banned phrases, and signature patterns. This guides HOW to share it. Skip if the env var is not set.
  1. Anti-Patterns - Run echo "$WRITING_ANTI_PATTERNS_PATH" to check the env var. If set, load that file. If not set, fall back to references/anti-patterns.md. AI writing patterns to avoid. Critical for ensuring posts sound human and authentic, not AI-generated. Avoid patterns like "It's not X, it's Y", formal transitions, hedging language, and AI-specific vocabulary.

PRIORITY RULE: When guides conflict, references/x-strategy.md wins. Content value and shareability take precedence over stylistic preferences. When the style guide and anti-patterns conflict, anti-patterns win.

1.2 Understand the Source Material

Get clarity on what notes to work with:

  • Ask which notes, ideas, or updates they want to transform into posts
  • Check for idea sources:

- Run echo "$X_SOURCE_FILE" β€” if set, a markdown ideas file is available

- Run echo "$X_NOTES_APP_SOURCE" β€” if set, a macOS Notes note is available (use scripts/fetch-notes.sh get to fetch)

- If both are configured and the user says "check my ideas" or similar without specifying, ask which source to use

- If one is configured, use it directly

- If neither is configured, work from whatever the user provides (pasted content, markdown files, etc.)

  • Read the source material and identify the core insights, learnings, or updates
  • Note any specific tools, projects, numbers, or details mentioned

Multiple ideas/notes workflow:

  • When the user provides multiple distinct ideas or notes, work through them ONE AT A TIME
  • Create post options for the first idea
  • Wait for user approval/feedback before moving to the next idea
  • This prevents overwhelming the user and allows for refinement as you go

1.3 Apply Selection Criteria

Evaluate notes using the Content Selection Framework in references/x-strategy.md. Prioritize shipped work with learnings, non-obvious insights, and specific tool recommendations. Skip engagement bait, vague hype, and complaints without solutions.

Phase 2: Content Creation

2.1 Select the Best Angle

Identify one clear idea, the specific details that prove it, and the hook (first line).

2.2 Choose the Format

Default to single tweets. Only thread (2-5 tweets) when the story requires steps, multiple related insights, or before/after context. See Thread Strategy in references/x-strategy.md.

2.3 Draft the Content

Apply all three guides loaded in Phase 1 during drafting, not just as a post-check:

  • x-strategy.md β€” formatting rules, content strategy, High-Engagement Patterns, and Signature Patterns. Formatting is critical: one sentence per line, white space between lines, hook in first line, 180-250 chars, no italics.
  • Writing style guide (WRITING_STYLE_GUIDE_PATH) β€” voice, tone, banned phrases, language simplification. Apply casing preference from X_CASE_STYLE env var (standard by default). When set to "lowercase", use all lowercase including "i" as a pronoun β€” only capitalize personal names, WordPress, and product names.
  • Anti-patterns β€” actively avoid during drafting. If a draft uses any anti-pattern, rewrite before presenting. HARD RULE: NEVER use the "It's not X, it's Y" reframing pattern in any form. This includes: "isn't X, it's Y", "not because X, because Y", "isn't about X, it's about Y", "less about X, more about Y". Say the positive claim directly instead. Also avoid: em dashes, generic observations without specifics, and intensifiers.

2.4 Engagement Optimization

End ~70% of posts with engagement (specific question, teaser, or invitation). Let the rest land with a hard stop. See "What Makes Content Shareable" in references/x-strategy.md.

2.5 Quality Check

After drafting, re-read every post against the anti-patterns guide and fix any violations before presenting. Then verify:

  • [ ] Did I get to the point in line 1?
  • [ ] Is this specific? (names, numbers, examples)
  • [ ] Would I actually say this out loud?
  • [ ] Does it sound like ME, not ChatGPT?
  • [ ] Did I use any banned phrases from the writing style guide?
  • [ ] Did I avoid ALL anti-patterns? (reframing, em dashes, intensifiers, generic observations)
  • [ ] If it's a reaction, did I add MY angle?

Phase 3: Output

3.1 Present the Content

For each post created:

  1. The Post(s) - Show the actual tweet(s) ready to copy/paste
  2. Format - Indicate if it's a single tweet or thread
  3. Character Count - Show length (target: 180-250 chars)
  4. Pattern Used - Which pattern from x-strategy.md was applied
  5. Key Elements - What specifics, tools, or projects were highlighted

3.2 Offer Options

When appropriate, provide 2-3 variations:

  • Different angles on the same insight
  • Single tweet vs thread format
  • Different engagement endings

3.3 Explain Selections

Briefly note what was prioritized and why:

  • Which insights from notes were selected
  • Why certain details were emphasized
  • What was intentionally left out

3.4 Save Approved Posts

When the user approves a post, save it to the drafts file (create if missing).

File location (resolve before saving):

  1. Run echo "$X_DRAFTS_FILE" to check the env var
  2. If set, append to that file path
  3. If not set, default to .x/posts.md (top-level, create if missing)

Markdown format:

```markdown

---

Category: Learning

Date: 2026-01-01

WordPress.com AI adds conversation alongside block editing.

People who couldn't navigate the UI before are shipping sites now. Others still use blocks for fine-tuning.

Both work. The conversation path just removes the skill barrier.

---

```

For threads, use [Tweet N] markers:

```markdown

---

Category: Learning

Date: 2026-01-01

[Tweet 1]

WordPress.com AI changes how people build sites.

[Tweet 2]

People who couldn't navigate block editing are shipping now.

[Tweet 3]

The UI is still there for fine-tuning. But conversation removes the skill barrier.

[Tweet 4]

Ask or click. Both paths work.

---

```

Categories:

  • Learning - Insights, shipped updates with learnings
  • Update - Project progress
  • Tool - Recommendations
  • Observation - Industry takes

Workflow:

  1. Present the post(s) to the user
  2. When approved, append to X_DRAFTS_FILE or .x/posts.md
  3. User can copy-paste directly into X (text is ready with proper line breaks)
  4. User removes the section after posting, or asks you to remove it

Output Format

After creating social content, provide:

```

πŸ“± Post 1 (Single Tweet, 210 chars)

─────────────────────────────────

[Actual tweet text ready to copy/paste]

Pattern: "Shipped X, learned Y"

Specifics: agents.foo, conversational context matching

Engagement: Specific question

─────────────────────────────────

From your notes, I prioritized:

βœ“ The discovery insight (most shareable)

βœ“ Why traditional search failed (specific learning)

βœ— Timeline details (not core value)

Alternative angles:

β€’ Focus on the technical implementation

β€’ Thread breaking down the 3 attempts

```

Example Interaction

User: "Help me create a post from these notes about building the curation feature"

Response:

```

Let me analyze your notes and create X content.

[Phase 1: Loads references/x-strategy.md and writing style guide]

[Reads the notes, identifies key insights and specific details]

─────────────────────────────────

πŸ“± Post (Single Tweet, 218 chars)

─────────────────────────────────

Shipped curation v1 for agents.foo today.

Discovery is way harder than app stores. Agents are conversations, not static features.

Had to rebuild around context matching instead of keyword search.

Pattern: "Shipped X, learned Y"

Key specifics: agents.foo, context matching vs keyword search

Engagement: Implicit (landing the insight)

─────────────────────────────────

From your notes, I selected:

βœ“ Core insight: agent discovery is different

βœ“ Specific solution: context matching

βœ“ Concrete detail: agents.foo

βœ— Number of rebuild attempts (not essential to the insight)

Would you like me to:

β€’ Save this approved post for tracking

β€’ Create a thread version breaking down why search patterns failed

β€’ Add a question ending for more engagement

β€’ Draft additional posts from other insights in your notes

```

Tips for Best Results

  1. Provide context: "Notes from building curation feature" vs just pasting notes
  2. Mention specific parts: "Focus on the learning about context matching" helps prioritize
  3. Indicate quantity: "Create 3 posts from these notes" vs "create posts"
  4. Specify format preference: "Single tweets only" or "open to threads"
  5. Request variations: "Show me a few angles" gives options to choose from
  6. Iterate: After the draft, request adjustments: "Make it more specific" or "Add a question ending"

Environment Variables

| Variable | Required | Description |

|----------|----------|-------------|

| WRITING_STYLE_GUIDE_PATH | No | Path to shared writing style guide. Loaded in Phase 1.1 |

| WRITING_ANTI_PATTERNS_PATH | No | Path to shared anti-patterns. Overrides references/anti-patterns.md |

| X_DRAFTS_FILE | No | File path for saving approved posts. Default: .x/posts.md |

| X_SOURCE_FILE | No | Path to a markdown file containing post ideas. Read when the user asks to check ideas. |

| X_NOTES_APP_SOURCE | No | macOS Notes note name to fetch ideas from (e.g. "Tweets"). Uses scripts/fetch-notes.sh. |

| X_CASE_STYLE | No | "standard" (default) or "lowercase" |

More from this repository10

πŸͺ
richtabor-agent-skillsπŸͺMarketplace

Provides Claude with specialized plugins for technical writing, accessibility reviews, motion design, and social media content creation across different platforms.

🎯
technical-writing🎯Skill

Generates technical blog posts by analyzing code implementations, crafting clear and engaging content that avoids AI-sounding language.

🎯
create-prd🎯Skill

Interactively plan and generate a comprehensive Product Requirements Document (PRD) by asking clarifying questions and structuring detailed feature specifications.

🎯
fresh-eyes🎯Skill

Performs a detailed, critical re-read of recently modified code to catch bugs, errors, and potential issues from a fresh perspective.

🎯
review-pr🎯Skill

Reviews GitHub PR comments, evaluates against current code, and automatically addresses reviewer feedback with precise reasoning.

🎯
humanize🎯Skill

Humanizes AI-generated text by removing robotic patterns, preserving meaning, and making writing sound more natural and authentic.

🎯
ralph-json-create-issues🎯Skill

Converts markdown PRD or plan files into structured JSON stories, ensuring right-sized, dependency-aware tasks for autonomous Ralph execution.

🎯
ralph-github-create-issues🎯Skill

Here's a concise, practical description for the "ralph-github-create-issues" skill: Converts PRD markdown files into structured GitHub Issues, enabling seamless product requirement tracking and im...

🎯
ralph-github-start-loop🎯Skill

Autonomously fetches, implements, and closes GitHub issues across multiple iterations, guiding development through PRD-labeled issues.

🎯
og-images🎯Skill

Generates dynamic, customizable OpenGraph and Twitter share images for Next.js using ImageResponse with flexible layout and styling options.