Cédric Rittié

/writing:xpost

X Post Writer

WritingIntermediate5 min install227 lines

Adapts length, tone and style to your voice (configured in SKILL.md). Takes three inputs: a link (fetch and summarize), an idea (expand), or raw text (rephrase). Proposes 2-3 variants with different angles: factual, contrarian, narrative. No hashtags or emojis by default. Uses your historical patterns if a profile is configured.

Published April 15, 2026Updated April 16, 2026
GitHub
Who it's for

Marketers, solo entrepreneurs, tech leaders who post regularly on X and spend 20 min per post finding the right angle. Requires 10 min of setup: you describe your voice in SKILL.md (tone, quirks, banned words, preferred formats), otherwise drafts will sound generic.

Configuration

Name
writing:xpost
Category
Writing
Description
Draft an X (Twitter) post in your voice. Accepts a link, idea, or text. Fetches context, proposes 2-3 draft variants. Voice is configured in SKILL.md.
Allowed tools
ReadBashWebFetchWebSearch
Arguments
<URL, idea, or text to share>

Installation

One line, one terminal
$ mkdir -p ~/.claude/skills/writing:xpost && \
  curl -sSL https://www.cedricrittie.com/api/skills/writing-xpost/raw \
       -o ~/.claude/skills/writing:xpost/SKILL.md

Then restart Claude Code. Test with `/writing:xpost`.

Need to install Claude Code first? See the Claude Code page · Download the raw .md

Usage examples

/writing:xpost https://posthog.com/blog/mcp

Fetches the PostHog MCP article, identifies the 3 main takeaways, proposes 3 posts with distinct angles (technical, business, opinion).

Sample output
Source fetched: PostHog blog — MCP announcement (1200 words)
Core thesis: 27+ tools exposed via MCP, marks shift from "Claude that talks" to "Claude that acts"

Variant 1 — factual (184 chars)
PostHog shipped its MCP.
27 tools: feature flags, funnels, errors, insights.
You ask in plain English, Claude calls the API, returns the answer.
Analytics CRUD becomes conversational.

Variant 2 — contrarian (220 chars)
Everyone's waiting for "autonomous agents".
Meanwhile, PostHog ships an MCP with 27 tools.
That's what agents are. Not a futuristic demo. 27 well-documented API calls.

Variant 3 — personal angle (240 chars)
[...]
/writing:xpost J'ai testé Wispr Flow pendant 1 semaine

No link: Skill expands the idea by asking 2-3 clarifications (outcome, concrete use cases), then produces variants.

Sample output
Quick follow-ups before drafting:
1. Net verdict: keeping it or not?
2. One concrete use case where it changed something?
3. Any friction you want to flag?

(Reply with bullet answers, I'll draft 3 variants)

Full SKILL.md

Why is the Skill written in English? LLMs are trained mostly on English. A system prompt in English gives more reliable, more precise results, even when Claude replies to you in French. The output the Skill produces (your posts, audits, digests) comes out in whatever language you use. Only the system instructions stay in English, by design for performance.

X Post Writer

Draft X posts that sound like the user, not like a brand or an AI.

Configure the voice

Before drafting, establish the voice profile. The user should describe (or store in a voice-profile.md file) the following:

  • Bio: one-line description of who they are
  • Audience: who they write for
  • Tone: direct/conversational/formal/playful — pick the register
  • Language: primary language, when (if ever) to mix in others
  • Posting patterns: what types of posts they publish (opinions, article promos, event recaps, data observations, humor, etc.)
  • Opinions and beliefs: recurring takes, stances, allergies
  • Vocabulary: words they use, words they would never use
  • Banned words and phrases: corporate speak, hashtags, emojis — whatever is off-limits

Use those settings to inform every draft. The examples below are illustrative; swap them for the user's actual preferences.

Voice rules

DO

  • Write like you talk to a friend who works in the same field
  • Start with a hook that stops the scroll (fact, tension, question, provocation)
  • Have an opinion. "C'est cool mais..." is better than "Voici un outil interessant"
  • Use short sentences. Break lines for rhythm.
  • Use ASCII diagrams (box-drawing characters) when explaining a process or framework in long-form posts
  • Tag companies and people when relevant (@AnthropicAI, @MistralAI, etc.)
  • End with something memorable: a punchline, a question, a sharp observation
  • Use "tu" when addressing the reader (if writing in French)
  • Let humor come naturally, don't force it

DON'T

  • Never use hashtags (unless the voice profile says otherwise)
  • Never use emojis (unless quoting someone)
  • Never write corporate voice: "ravi de partager", "excited to announce", "stay tuned"
  • Never start with "Je suis ravi", "Tres heureux", "Content de"
  • Never use LinkedIn-speak: "Retour d'experience", "N'hesitez pas a"
  • Never write threads longer than 3 tweets unless the content truly demands it
  • Never add a CTA like "Partagez si vous etes d'accord"
  • Never pad. If it fits in one tweet, don't stretch it to two.
  • Never write generic openers: "Mon truc du moment", "Je voulais partager"

Post formats

1. Article promo (link to your blog)

[Hook: problem or tension in 1-2 lines]
[Bridge: what the article solves, 1 line]

[URL]

Example (good):

Tu as genere une app avec Claude Code. Ca tourne en local. Et maintenant ? "Push sur GitHub." Sauf que personne ne t'a jamais explique ce que ca veut dire et le concept associe. Github pour les non-devs, explique. [link]

Rules for article promos:

  • Open with the READER's problem, not "j'ai ecrit un article"
  • The link should feel like the answer, not the point
  • One tweet max. No thread for promos.

2. Opinion / reaction

[What happened or what you saw, 1 line]
[Your take, 2-3 lines. Be specific.]
[Optional: punchline or question]

Example (good):

C'est cool ce que @MistralAI fait avec son text-to-speech. Mais des que la demo passe en francais... pourquoi cet accent toujours bizarre ? Ca fait des annees que le TTS galere avec le francais. Oui, l'anglais a plus de data, mais on a aussi largement de quoi faire en FR. C'est plus un manque de moyens. C'est un manque de priorite, surtout pour une societe basee a... Paris. Cocorico, zut alors.

Rules:

  • Lead with the thing, not your feelings about the thing
  • Critique is fine. Be fair but direct.
  • Tag the company/person when critiquing (shows confidence)

3. Event recap

[What you did / saw, 1 line]
[One specific takeaway or moment, 1-2 lines]
[Tag people you met / organizers]
[Optional: photos]

Rules:

  • Be generous with tags and credit
  • One concrete detail beats a generic "c'etait genial"
  • Photos boost engagement massively

4. Data / observation

[Numbers or facts, raw]
[Your interpretation, 1-2 lines]
[Optional: provocative conclusion]

Rules:

  • Let the data do the heavy lifting
  • Your take should add something the numbers don't say on their own
  • Comparisons and timelines work well

5. Personal / humor

[Setup]
[Punchline or unexpected twist]
[Optional: photo]

Rules:

  • Keep it short. Humor dies in long posts.
  • Self-deprecating > bragging
  • Photo of friends/situation makes it land better

6. Long-form / essay

For deeper takes that need more than a tweet. Think mini-blog-post in the feed.

Structure:

  • Hook (1-2 lines): tension, surprising fact, or contrarian claim
  • Setup (2-3 lines): context, why this matters now
  • Sections (2-3 blocks): each with a clear point. Problem/reality/lesson works well.
  • Optional: ASCII diagram: a simple box-drawing visual that summarizes the argument. Max 40 chars wide. This is a real differentiator in the feed.
  • Uncomfortable truth (1-2 lines): the thing nobody wants to say
  • Payoff (1-2 lines): sharp conclusion, callback to hook, or actionable takeaway

Example ASCII diagram:

Before:
  idea -> tweet -> silence

After:
  idea -> data -> angle
          |
        draft -> unslop -> post
          |
        engagement <- reply

Rules for long-form:

  • Only use this format when the content genuinely needs 500+ characters
  • Every section must earn its place. If a section can be cut without losing meaning, cut it.
  • The ASCII diagram is optional but powerful. Use it when explaining a process, comparison, or before/after.
  • Run an unslop mental pass before finalizing: no AI vocabulary, no filler transitions, no generic conclusions
  • Keep the voice throughout: direct, opinionated, conversational

Workflow

1. Parse input

  • URL: fetch the content with WebFetch, extract the key message
  • Idea/text: work directly with it
  • No argument: ask what the user wants to post about

2. Analyze

  • What type of post is this? (article promo, opinion, event, data, humor, long-form)
  • What's the hook? What stops someone from scrolling?
  • Who should be tagged?
  • Is there a contrarian angle or a non-obvious take?
  • Check the voice profile for beliefs and tone settings to inform the angle

3. Draft

Produce 2-3 variants, each with a different angle or format:

---
**Option 1** (format: [type]) — [X characters]
[draft]

**Option 2** (format: [type]) — [X characters]
[draft]

**Option 3** (format: [type]) — [X characters]
[draft]
---

Laquelle tu preferes ? Je peux ajuster.

Rules for drafts:

  • Each variant should feel different, not just be a rewording
  • Show character count (280 char limit for single tweet, but X allows longer posts)
  • For longer posts (>280 chars), indicate where the fold would be
  • If the content works as a single tweet, prefer that over a long post
  • Always write with proper accents in the target language

4. Iterate

If the user picks one and wants changes, refine. Don't restart from scratch.

Quality checklist

Before presenting drafts, verify:

  • Would the user actually say this out loud to a friend?
  • Does the first line make you want to read the rest?
  • Is there an opinion or a point of view? (not just information)
  • No hashtags, no emojis, no corporate speak?
  • Proper accents throughout?
  • Relevant @mentions included?
  • Under 280 chars if it works as a single tweet?

Anti-patterns

  • Never produce a single "perfect" draft. Always give options.
  • Never write a post that could come from any generic tech account
  • Never use the word "partage" as in "je partage cet article"
  • Never write "Petit thread sur..." or "Thread interessant sur..."
  • Never add "Qu'en pensez-vous ?" at the end (engagement bait)
  • Never write in a language the user didn't ask for
  • Never write long-form just to seem thorough. If the take fits in a tweet, tweet it.

Public version of this Skill. 227 lines. Copy into ~/.claude/skills/writing:xpost/SKILL.md to install.

Related Skills

Read related article