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.
- Parse the URL.
lib.url_parser.parse_x_url(url) returns handle,
tweet_id, canonical_url.
- 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.
- Decide reply vs quote tweet using the table above. Recommend one, but let
the user override.
- 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.
- 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.
- Approval card. Show the thread context, the variants, the reply-vs-quote
recommendation, and the target URL.
- 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
Related skills
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-drafter3description: 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---56# X Reply Drafter78Drafts a reply in a thread, or a quote tweet, for a specific tweet. On X a reply9is just a tweet posted in-reply-to another, and replies nest naturally: there is10**no LinkedIn-style 2-level flattening** and no parent-comment URN to resolve.1112## When to use1314- User pastes a tweet URL and says "reply to this"15- A creator replied to the user and they want to continue the thread16- User wants to quote-tweet a take and add value (not a cheap dunk)1718## Input1920An X tweet URL (`x.com/HANDLE/status/ID` or the twitter.com equivalent), plus21the tweet text (and any thread context) pasted by the user, since this bundle22has no built-in tweet reader.2324## Output2526- 1-3 reply or quote-tweet drafts, each under 280 chars27- A **reply vs quote tweet** recommendation with the reason28- A short context summary (who said what)29- An approval card. On approval the draft is returned as a copy-paste block.3031## Reply vs quote tweet3233| 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 |3839Default to a **reply** for direct engagement and a **quote tweet** when the40user's point is strong enough to stand as its own post. Never quote-dunk on a41small account; add value or skip it.4243## Steps4445**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.46471. **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 relevant50 thread above it. If the user is already in the thread, include their prior51 tweet.523. **Decide reply vs quote tweet** using the table above. Recommend one, but let53 the user override.544. **Draft 1-3 variants** using `references/reply-templates.md`. If the55 counterpart asked a question, answer it plainly with one real detail. If they56 pushed back, concede then sharpen.575. **Humanizer pass.** Scrub 2026 AI vocab by density, cap em dashes (at58 most one per reply, never swap one for a period), strip reveal bridges and59 sincerity openers ("not gonna lie", "let me be honest"). Leave the rhythm60 alone; never insert a fragment for punch. Keep each variant under 28061 chars (emoji = 2). One idea per reply. Canonical rules: `x-humanizer` V3.626. **Approval card.** Show the thread context, the variants, the reply-vs-quote63 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 quote66 tweet. Publora has no reply endpoint, so `kind="reply"` always returns a67 copy-paste block. A `kind="quote"` could in principle post a new tweet68 containing the original URL via Publora, but the default is still copy-paste69 so the user controls the embed. Paste it on X yourself.7071## The no-flattening note7273Unlike LinkedIn (which flattens reply threads to 2 levels and needs the74top-level comment URN as the parent), X nests replies naturally. There is no75parent-comment URN to compute. A reply is simply a tweet you post while replying76to the target tweet. This skill therefore does not walk any comment tree; it77just drafts the text and hands it back for you to post in-reply.7879## Templates (`references/reply-templates.md`)8081- **R1 Answer-Their-Question** - they asked, you answer plainly plus one real detail82- **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 framing84- **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)8687## Hard rules8889Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific90rules:9192- 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.9798## Example99100> User: "Reply to this: https://x.com/somebuilder/status/1790000000000000000"101>102> Skill: parses -> handle somebuilder, tweet 1790000000000000000. Asks the user103> to paste the tweet. User pastes a take about pricing. Skill recommends a reply104> (direct engagement), drafts an R2 Concede-Then-Sharpen variant and an R3105> 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 post110> as a reply on X.111112## Files113114- `SKILL.md` - this file115- `references/reply-templates.md` - 5 reply/quote templates with examples116117## Related skills118119- `x-post-writer` - for a standalone tweet rather than a reply120- `x-thread-builder` - for a multi-tweet response121- `x-humanizer` - scrub the reply before posting