Install
$ agentstack add skill-sergebulaev-x-skills-x-reply-drafter ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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
- Parse the URL.
lib.url_parser.parse_x_url(url)returnshandle,
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. Strip em dashes, AI vocab. Keep each variant under 280
chars (emoji = 2). One idea per reply.
- 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=,
target_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 filereferences/reply-templates.md- 5 reply/quote templates with examples
Related skills
x-post-writer- for a standalone tweet rather than a replyx-thread-builder- for a multi-tweet responsex-humanizer- scrub the reply before posting
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: sergebulaev
- Source: sergebulaev/x-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.