New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Draft a reply or a value-add quote tweet for a specific X

X reply drafter

by sergebulaev · MIT license · ★ 95 on GitHub · updated Sep 17

X reply drafter cover

Draft a reply or a value-add quote tweet for a specific X (Twitter) tweet from its URL. Use to reply in a thread, answer a creator, or quote-tweet with added value.

---
name: x-reply-drafter
description: "Draft a reply or a value-add quote tweet for a specific X (Twitter) tweet from its URL. Use to reply in a thread, answer a creator, or quote-tweet with added value. Parses the tweet URL, reads pasted context, decides reply vs quote tweet, and drafts 1-3 variants in your voice. X has no LinkedIn-style 2-level thread flattening, so a reply is just a tweet. Publora has no reply endpoint, so the draft is returned as a copy-paste block to post yourself. Not for top-level posts (use x-post-writer)."
---

# X Reply Drafter

Drafts a reply in a thread, or a quote tweet, for a specific tweet. On X a reply
is just a tweet posted in-reply-to another, and replies nest naturally: there is
**no LinkedIn-style 2-level flattening** and no parent-comment URN to resolve.

## When to use

- User pastes a tweet URL and says "reply to this"
- A creator replied to the user and they want to continue the thread
- User wants to quote-tweet a take and add value (not a cheap dunk)

## Input

Overview

Drafts a reply in a thread, or a quote tweet, for a specific tweet. On X a reply is just a tweet posted in-reply-to another, and replies nest naturally: there is no LinkedIn-style 2-level flattening and no parent-comment URN to resolve.

What you get

  • 1-3 reply or quote-tweet drafts, each under 280 chars
  • A reply vs quote tweet recommendation with the reason
  • A short context summary (who said what)
  • An approval card. On approval the draft is returned as a copy-paste block.
Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/x-skills --skill x-reply-drafter -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/sergebulaev/x-skills/tar.gz/061109fdcb0b \ | tar -xz -C ~/.claude/skills --strip-components=4 x-skills-061109fdcb0b/.codex-marketplace/x-skills/skills/x-reply-drafter
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/c3939325bb1bd5a359a0/x-reply-drafter.zip" -OutFile "$env:TEMP\x-reply-drafter.zip"; Expand-Archive "$env:TEMP\x-reply-drafter.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.8 KB
  • references/1 file · 2.4 KB
Read the files here
sergebulaev/061109f2 files
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text122 lines

X Reply Drafter

Drafts a reply in a thread, or a quote tweet, for a specific tweet. On X a reply is just a tweet posted in-reply-to another, and replies nest naturally: there is no LinkedIn-style 2-level flattening and no parent-comment URN to resolve.

When to use

  • User pastes a tweet URL and says "reply to this"
  • A creator replied to the user and they want to continue the thread
  • User wants to quote-tweet a take and add value (not a cheap dunk)

Input

An X tweet URL (x.com/HANDLE/status/ID or the twitter.com equivalent), plus the tweet text (and any thread context) pasted by the user, since this bundle has no built-in tweet reader.

Output

  • 1-3 reply or quote-tweet drafts, each under 280 chars
  • A reply vs quote tweet recommendation with the reason
  • A short context summary (who said what)
  • An approval card. On approval the draft is returned as a copy-paste block.

Reply vs quote tweet

Use a reply when Use a quote tweet when
You are adding to the conversation in place Your addition deserves its own reach
You are answering a question or engaging a creator Your followers should see the original for context
You want intimacy over reach You want reach and a take on your own timeline

Default to a reply for direct engagement and a quote tweet when the user's point is strong enough to stand as its own post. Never quote-dunk on a small account; add value or skip it.

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.

  1. Parse the URL. lib.url_parser.parse_x_url(url) returns handle, tweet_id, canonical_url.
  2. Read the context. Ask the user to paste the target tweet and the relevant thread above it. If the user is already in the thread, include their prior tweet.
  3. Decide reply vs quote tweet using the table above. Recommend one, but let the user override.
  4. Draft 1-3 variants using references/reply-templates.md. If the counterpart asked a question, answer it plainly with one real detail. If they pushed back, concede then sharpen.
  5. Humanizer pass. Scrub 2026 AI vocab by density, cap em dashes (at most one per reply, never swap one for a period), strip reveal bridges and sincerity openers ("not gonna lie", "let me be honest"). Leave the rhythm alone; never insert a fragment for punch. Keep each variant under 280 chars (emoji = 2). One idea per reply. Canonical rules: x-humanizer V3.
  6. Approval card. Show the thread context, the variants, the reply-vs-quote recommendation, and the target URL.
  7. On approval. Call lib.publish(kind="reply", draft_text=<approved>, target_url=<canonical_url>) for a reply, or kind="quote" for a quote tweet. Publora has no reply endpoint, so kind="reply" always returns a copy-paste block. A kind="quote" could in principle post a new tweet containing the original URL via Publora, but the default is still copy-paste so the user controls the embed. Paste it on X yourself.

The no-flattening note

Unlike LinkedIn (which flattens reply threads to 2 levels and needs the top-level comment URN as the parent), X nests replies naturally. There is no parent-comment URN to compute. A reply is simply a tweet you post while replying to the target tweet. This skill therefore does not walk any comment tree; it just drafts the text and hands it back for you to post in-reply.

Templates (references/reply-templates.md)

  • R1 Answer-Their-Question - they asked, you answer plainly plus one real detail
  • R2 Concede-Then-Sharpen - "fair, and the part I would push on is Y"
  • R3 Extend-Their-Point - take their point one layer deeper with a new framing
  • R4 Share-Lived-Experience - "we hit this last quarter, here is what broke"
  • R5 Value-Add Quote - quote tweet that adds the missing nuance (X4 shape)

Hard rules

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

  • Under 280 chars (emoji = 2). Replies are tighter than posts.
  • Never paste a canned "great point!". Respond with content or do not reply.
  • Do not hard-sell the user's product in a reply on someone else's tweet. Describe what they do instead.
  • Never quote-dunk on a small account. Add value or skip it.

Example

User: "Reply to this: https://x.com/somebuilder/status/1790000000000000000"

Skill: parses -> handle somebuilder, tweet 1790000000000000000. Asks the user to paste the tweet. User pastes a take about pricing. Skill recommends a reply (direct engagement), drafts an R2 Concede-Then-Sharpen variant and an R3 Extend-Their-Point variant, each under 280 chars. Shows the approval card.

User: "post the first one"

Skill: returns the copy-paste block with the target URL for the user to post as a reply on X.

Files

  • SKILL.md - this file
  • references/reply-templates.md - 5 reply/quote templates with examples
  • x-post-writer - for a standalone tweet rather than a reply
  • x-thread-builder - for a multi-tweet response
  • x-humanizer - scrub the reply before posting
1---
2name: x-reply-drafter
3description: "Draft a reply or a value-add quote tweet for a specific X (Twitter) tweet from its URL. Use to reply in a thread, answer a creator, or quote-tweet with added value. Parses the tweet URL, reads pasted context, decides reply vs quote tweet, and drafts 1-3 variants in your voice. X has no LinkedIn-style 2-level thread flattening, so a reply is just a tweet. Publora has no reply endpoint, so the draft is returned as a copy-paste block to post yourself. Not for top-level posts (use x-post-writer)."
4---
5 
6# X Reply Drafter
7 
8Drafts a reply in a thread, or a quote tweet, for a specific tweet. On X a reply
9is just a tweet posted in-reply-to another, and replies nest naturally: there is
10**no LinkedIn-style 2-level flattening** and no parent-comment URN to resolve.
11 
12## When to use
13 
14- User pastes a tweet URL and says "reply to this"
15- A creator replied to the user and they want to continue the thread
16- User wants to quote-tweet a take and add value (not a cheap dunk)
17 
18## Input
19 
20An X tweet URL (`x.com/HANDLE/status/ID` or the twitter.com equivalent), plus
21the tweet text (and any thread context) pasted by the user, since this bundle
22has no built-in tweet reader.
23 
24## Output
25 
26- 1-3 reply or quote-tweet drafts, each under 280 chars
27- A **reply vs quote tweet** recommendation with the reason
28- A short context summary (who said what)
29- An approval card. On approval the draft is returned as a copy-paste block.
30 
31## Reply vs quote tweet
32 
33| Use a reply when | Use a quote tweet when |
34|---|---|
35| You are adding to the conversation in place | Your addition deserves its own reach |
36| You are answering a question or engaging a creator | Your followers should see the original for context |
37| You want intimacy over reach | You want reach and a take on your own timeline |
38 
39Default to a **reply** for direct engagement and a **quote tweet** when the
40user's point is strong enough to stand as its own post. Never quote-dunk on a
41small account; add value or skip it.
42 
43## Steps
44 
45**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.
46 
471. **Parse the URL.** `lib.url_parser.parse_x_url(url)` returns `handle`,
48 `tweet_id`, `canonical_url`.
492. **Read the context.** Ask the user to paste the target tweet and the relevant
50 thread above it. If the user is already in the thread, include their prior
51 tweet.
523. **Decide reply vs quote tweet** using the table above. Recommend one, but let
53 the user override.
544. **Draft 1-3 variants** using `references/reply-templates.md`. If the
55 counterpart asked a question, answer it plainly with one real detail. If they
56 pushed back, concede then sharpen.
575. **Humanizer pass.** Scrub 2026 AI vocab by density, cap em dashes (at
58 most one per reply, never swap one for a period), strip reveal bridges and
59 sincerity openers ("not gonna lie", "let me be honest"). Leave the rhythm
60 alone; never insert a fragment for punch. Keep each variant under 280
61 chars (emoji = 2). One idea per reply. Canonical rules: `x-humanizer` V3.
626. **Approval card.** Show the thread context, the variants, the reply-vs-quote
63 recommendation, and the target URL.
647. **On approval.** Call `lib.publish(kind="reply", draft_text=<approved>,
65 target_url=<canonical_url>)` for a reply, or `kind="quote"` for a quote
66 tweet. Publora has no reply endpoint, so `kind="reply"` always returns a
67 copy-paste block. A `kind="quote"` could in principle post a new tweet
68 containing the original URL via Publora, but the default is still copy-paste
69 so the user controls the embed. Paste it on X yourself.
70 
71## The no-flattening note
72 
73Unlike LinkedIn (which flattens reply threads to 2 levels and needs the
74top-level comment URN as the parent), X nests replies naturally. There is no
75parent-comment URN to compute. A reply is simply a tweet you post while replying
76to the target tweet. This skill therefore does not walk any comment tree; it
77just drafts the text and hands it back for you to post in-reply.
78 
79## Templates (`references/reply-templates.md`)
80 
81- **R1 Answer-Their-Question** - they asked, you answer plainly plus one real detail
82- **R2 Concede-Then-Sharpen** - "fair, and the part I would push on is Y"
83- **R3 Extend-Their-Point** - take their point one layer deeper with a new framing
84- **R4 Share-Lived-Experience** - "we hit this last quarter, here is what broke"
85- **R5 Value-Add Quote** - quote tweet that adds the missing nuance (X4 shape)
86 
87## Hard rules
88 
89Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific
90rules:
91 
92- Under 280 chars (emoji = 2). Replies are tighter than posts.
93- Never paste a canned "great point!". Respond with content or do not reply.
94- Do not hard-sell the user's product in a reply on someone else's tweet.
95 Describe what they do instead.
96- Never quote-dunk on a small account. Add value or skip it.
97 
98## Example
99 
100> User: "Reply to this: https://x.com/somebuilder/status/1790000000000000000"
101>
102> Skill: parses -> handle somebuilder, tweet 1790000000000000000. Asks the user
103> to paste the tweet. User pastes a take about pricing. Skill recommends a reply
104> (direct engagement), drafts an R2 Concede-Then-Sharpen variant and an R3
105> Extend-Their-Point variant, each under 280 chars. Shows the approval card.
106>
107> User: "post the first one"
108>
109> Skill: returns the copy-paste block with the target URL for the user to post
110> as a reply on X.
111 
112## Files
113 
114- `SKILL.md` - this file
115- `references/reply-templates.md` - 5 reply/quote templates with examples
116 
117## Related skills
118 
119- `x-post-writer` - for a standalone tweet rather than a reply
120- `x-thread-builder` - for a multi-tweet response
121- `x-humanizer` - scrub the reply before posting
122 
View all files on GitHub →

Details

Updated
Sep 17, 2026
License
MIT
Stars on the repo
★ 95
Checked
Source
sergebulaev/x-skills ↗
Creator
sergebulaev · 77 listings
View creator

Similar skills

See all →
SkillCurated aphorism collection with CRUDAphorismsdanielmiessler/LifeOS · by danielmiesslerCurated aphorism collection with CRUD — content-based matching, themed search, thinker research, DB maintenance. Quotes organized by author/theme/context/usage to prevent repetition. Four workflows: FindAphorism, AddAphorism, ResearchThinker, SearchAphorisms. Themes: Stoicism, Wisdom, Truth-seeking, Excellence, Resilience, Curiosity. USE WHEN aphorism, quote, find a quote, research thinker, add aphorism, quote for newsletter, what did X say about, quote bank. NOT FOR creative writing or social posts.★ 19.3k GitHub starsSkillNegotiates a commercial deal without giving away the termsDeal negotiationcbrock84/headcount · by cbrock84Negotiates a commercial deal without giving away the terms that matter — preparing your walk-away and theirs, trading concessions rather than conceding them, recognizing the tactics that create false urgency, protecting price by moving other variables, and closing on terms someone can actually deliver. Use this to prepare for a negotiation, respond to a demand mid-deal, work out why discounts keep landing at quarter end, or review terms before they are signed.★ 2k GitHub starsSkillInfluence and negotiation toolkit for any interactionsamber/cc-skills · by samberInfluence and negotiation toolkit for any interaction needing another person's agreement, even when the user never says 'negotiation'. Covers B2B sales, salary reviews and raise asks, collective bargaining and unions, hard 1:1s, recruitment closes, cross-cultural deals, mediation, and diplomatic messages — declining, pushing back on scope, justifying a delay, raising a concern, getting alignment. Use when the user says 'they just said X, what do I say' or 'draft a reply', or mentions a buyer, champion, procurement, RFP, sponsor, HR, union, or candidate, or a pushback, refusal, ghosting, no-decision, escalation, fixed budget, counter-offer, comp band, strike, BATNA, anchor, or concession.★ 222 GitHub starsSkillCreates professional case studies, engagement summariesCase Study Builder Assistantrealjaymes/marketingagentskills · by realjaymesCreates professional case studies, engagement summaries, and project summaries. Use when the user wants to create a 'case study,' 'client success story,' 'engagement summary,' 'project summary,' or 'portfolio piece.'★ 65 GitHub starsSkillReview and redesign an app or website UI to strip outUnslop designmarcosnovo/unslop-design · by marcosnovoReview and redesign an app or website UI to strip out the "slop" (decorative accent color, gradients, glows, noisy badges, emoji as icons, eyeballed spacing, greetings as titles, Title Case, flat hierarchy, repeated numbers) with a system (spacing, type, color roles, elevation) and two modes: a quick five-fix pass for one screen, or an orchestrated process for a whole app (parallel reviewers, a published winning proposal, devs per area, audits, PR). Covers SwiftUI, Compose and web (dashboards, landing pages, Tailwind), with scripts that scan the code, measure the rendered page and score it from 0 to 100. Use it when asked to "review the design", "make it look less AI", "unslop", "polish this screen", "design review", "winning proposal", "audit this dashboard", or when given videos or screenshots of an app or site asking for feedback or a redesign. Also use it to start a design system (spacing, type, palette, shadow scales) or to audit tokens, contrast or consistency across screens.★ 14 GitHub starsSkillTurn any YouTube video into a beautiful case-study📊 YouTube to Case Studytstfully/youtube-to-case-study · by tstfullyTurn any YouTube video (founder interview, product teardown, conference talk, marketing breakdown, UX walkthrough, podcast) into a beautiful case-study slideshow: one HTML file that opens in any browser, built on reveal.js, with speaker notes and every fact linked to the exact second in the video. Use this skill whenever someone wants a case study, business case study, marketing case study, UX case study, product teardown, growth teardown, competitor breakdown, swipe file, lesson deck, or presentation / slides / deck from a YouTube video or link. Also trigger on 'turn this video into a case study', 'make slides from this YouTube video', 'case study from this talk', 'teardown of this video', 'youtube to slides', 'youtube to presentation', or 'summarize this video as a deck'. Works for marketers, educators, product managers, students, and consultants; no coding needed.★ 3 GitHub stars

More from sergebulaev

SkillBy density per paragraph, not per wordAI Tells — Complete Blacklist (V3, 2026-09)sergebulaev/linkedin-skills · by sergebulaevScored the way readers read: by density per paragraph, not per word. One marker in a paragraph is English. Three is a signature. The…★ 3.1k GitHub starsSkillFifteen rules from the linkedin-humanizer packageAI-Tell Rules: Tier-Classified Referencesergebulaev/linkedin-skills · by sergebulaevFifteen rules from the linkedin-humanizer package, sorted by what kind of evidence each one actually represents.★ 3.1k GitHub starsSkillPattern data from MagicPost LinkedIn analysisEmoji Patterns — AI vs. Humansergebulaev/linkedin-skills · by sergebulaevPattern data from MagicPost LinkedIn analysis (Feb 2026, viral post with 220 engagement).★ 3.1k GitHub starsSkillRead your Instagram niche and profile from real dataInstagram Audience Insightssergebulaev/instagram-skills · by sergebulaevRead your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes, comments, owner) to see the format and hook that works. Pull profile stats for any handle, yours or a competitor's: followers, posts, bio, category. Instagram hides who liked or commented on other accounts, so this is discovery plus profiles, not engagers. Triggers on "what works in my niche", "scan the hashtag", "competitor stats". Not for writing captions (use ig-caption-writer).★ 138 GitHub starsSkillDraft an Instagram caption with the hook in the first 125Instagram Caption Writersergebulaev/instagram-skills · by sergebulaevDraft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).★ 138 GitHub starsSkillPlan an Instagram carousel slide by slide, up to 10 slidesInstagram Carousel Plannersergebulaev/instagram-skills · by sergebulaevPlan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).★ 138 GitHub stars