Skip to content

/x-thread-builder

Build a long-form X (Twitter) thread (tweetstorm) using a 2026 thread formula (listicle-thread, story thread, curiosity-gap opener, how-I teardown), picked by goal (bookmarks, likes, reposts, replies). Structures tweet 1 as a promise plus open loop, paces one beat per tweet, and

From plugin
x-skills
1639 skills

Claude Code

$ npx -y skills add sergebulaev/x-skills --skill x-thread-builder --agent claude-code

SKILL.md

x-thread-builder.SKILL.md
name: x-thread-builder
description: "Build a long-form X (Twitter) thread (tweetstorm) using a 2026 thread formula (listicle-thread, story thread, curiosity-gap opener, how-I teardown), picked by goal (bookmarks, likes, reposts, replies). Structures tweet 1 as a promise plus open loop, paces one beat per tweet, and closes for the repost. Publishes via Publora, which auto-splits long content into a numbered (1/N) thread. Not for single tweets (use x-post-writer) or auditing a draft (use x-humanizer --mode audit)."

X Thread Builder

Build tweetstorms that get read all the way down. On X, tweet 1 is the entire funnel: it has to promise a payoff and open a loop, or no one taps "Show this thread." Everything after only matters if tweet 1 earns the tap.

When to use

  • User says "turn this into a thread" or "write me a thread about X"
  • The idea is a list where each item needs teaching, a story with a build, a

surprising result with a mechanism, or a repeatable process

  • User has a single tweet that is trying to do too much and should be a thread

Formulas this skill uses (thread shapes)

| Code | Formula | Primary goal | Best for | |---|---|---|---| | X7 | Listicle-Thread Promise | bookmarks | numbered teaching thread, one item per tweet | | X8 | Story Thread | likes, reposts | a real narrative with a build and a turn | | X9 | Curiosity-Gap Opener | replies, bookmarks | a surprising result, mechanism withheld | | X10 | How-I Teardown | bookmarks | a repeatable process you ran yourself |

Full skeletons in `../../references/hook-formulas.md`. For single tweets (X1-X6), use `x-post-writer`.

Pick by goal first

| Goal | Reach for | |---|---| | Bookmarks | X7, X10, X9 | | Likes | X8 | | Reposts | X8 | | Replies | X9 |

How Publora splits a thread

Pass the full thread as one `content` string. Publora auto-splits it:

  • at paragraph breaks (`\n\n`) first,
  • then at sentence endings,
  • then at word boundaries as a fallback,
  • and adds `(1/N)` markers, reserving ~8 chars per tweet for the marker.

For full control of where each tweet breaks, hand-split with a `---` separator on its own line between tweets. The skill defaults to hand-splitting with `---` so the user sees exactly how the thread will land before approving.

Steps

**Voice profile first (all drafts).** If `../../references/voice-profile.md` has `filled: yes`, load it and match the user's voice fingerprint, hard rules, and CTA/link style throughout. If it is not filled, mention once that `x-humanizer --mode profile` can learn their voice from a few posts, then proceed with the generic voice rules.

**Story bank next.** If `../../references/story-bank.md` has `filled: yes`, load it and take every concrete detail (numbers, dates, named projects, positions) from there instead of asking mid-draft. **Never invent a figure, a date or a client name that is not in the bank or supplied by the user in this conversation.** If the bank has nothing that fits, ask the user, or say once that `x-humanizer --mode interview` fills it in 20 to 40 minutes. A draft with a plausible invented number is worse than a draft with none: one is vague, the other is a retraction.

1. **Gather inputs.** Topic, the raw material (notes, a transcript, a result), target audience, and the goal (bookmarks / likes / reposts / replies). 2. **Pick the formula** from the goal table, confirm it fits the material. 3. **Write tweet 1.** This is 80% of the work:

  • Promise a specific payoff (a number, a named result, a clear list count).
  • Open a loop the reader has to resolve ("most people get 3 of them wrong",

"I did not expect why").

  • Keep it under 280 chars on a standard account. It must stop the scroll

alone. 4. **Pace the body.** One beat or one item per tweet. Front-load the strongest item or beat at position 1-2; tap-through decays with depth. Target 5-9 tweets for teaching/list threads; longer only for a strong story. 5. **Make each tweet stand alone.** A reader landing mid-thread from a quote tweet should still get something. 6. **Write the closer.** The last tweet earns the repost and the follow. End on the most quotable line, then one clear ask (bookmark, follow, or "reply with yours"), not both. 7. **Humanizer pass** on every tweet. Scrub 2026 AI vocab by density, cap em dashes (at most one per tweet, never swap one for a period), break stacked triads and reveal bridges. Let tweet length vary only as the material varies: never insert a 3-word punch tweet for rhythm, never alternate long/short, and touch rhythm only if the whole thread reads machine-flat. Canonical rules: `x-humanizer` V3. 8. **Optional audit.** Run `x-humanizer --mode audit` on the assembled thread. 9. **Approval card.** Show the thread tweet-by-tweet with per-tweet char counts, total tweet count, the formula, and the goal. Confirm any `---` breaks. 10. **On approval.** Call `lib.publish(kind="thread", draft_text=<full thread with --- breaks>, target_url="https://x.com/compose/tweet", platforms=[<X_PLATFORM_ID>], scheduled_time=<iso_or_None>)`. Publora posts the chain in one call and returns a `postGroupId`.

Hard rules

Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific rules:

  • Tweet 1 must contain a real promise and an open loop. A bare "A thread:" label

is not a hook.

  • Keep each tweet under 280 chars on a standard account (emoji = 2 chars).
  • Front-load value. Never bury the best item at the end of a teaching thread.
  • No external link in tweet 1. Put links in a later tweet or a reply.
  • Natural rhythm, not manufactured variance. A long thread where every tweet

is the same length and none carries a real clause reads machine-flat; fix that one thing. Never pad or chop tweets to create variance, and never insert a punch tweet: the inserted punch is the humanizer fingerprint.

  • Only ship a Story Thread (X8) built on a true story. Readers punish

manufactured stakes.

Read more
@sergebulaev
Ships withx-skills

Part of the linkedin-skills family (400+ stars). Same voice engine and approve-before-publish flow, now for X. Also available for Instagram · YouTube · TikTok · Threads · Facebook. 9 skills that turn Claude Code and Codex into your X (Twitter) content team.

Stars on GitHub

Momentum

stars in total
163
Star history of sergebulaev/x-skills on GitHub, a chart by star-history.com

Other skills on x-skills.

x-audience-insights
Auto-invoked

x-audience-insights

Read your X (Twitter) audience and niche from real data. Pull a handle's recent tweets (yours or a competitor's) with likes,…

x-content-planner
Auto-invoked

x-content-planner

Generate a weekly X (Twitter) content plan from a theme, audience, and content pillars. Produces per-day recommendations (single…

x-hook-extractor
Auto-invoked

x-hook-extractor

Reverse-engineer the hook from a viral X (Twitter) tweet or thread URL. Identifies which of the 10 canonical 2026 X formulas it…

x-humanizer
Auto-invoked

x-humanizer

Remove the AI tells human readers react to in a tweet or thread: 2026 vocabulary by density, reveal bridges, staccato stacks,…

x-post-writer
Auto-invoked

x-post-writer

Draft a single tweet or short auto-thread for X (Twitter) using a 2026 X hook formula (one-liner contrarian, data-point,…

x-profile-optimizer
Auto-invoked

x-profile-optimizer

Audit and rewrite an X (Twitter) profile end-to-end for 2026: bio (160 chars), display name with a searchable keyword, @handle,…

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli13d33k
@iofficeai@iofficeaiInstall Skill

Questions about x-thread-builder.

Which coding agents can use x-thread-builder?
x-thread-builder installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.