AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Draft X Post

skill-zaidmukaddam-skills-draft-x-post · by zaidmukaddam

>-

No reviews yet
0 installs
11 views
0.0% view→install

Install

$ agentstack add skill-zaidmukaddam-skills-draft-x-post

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-zaidmukaddam-skills-draft-x-post)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
16d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Draft X Post? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Draft an X post

The For You feed scores a post by predicting how likely you, the viewer, are to take each action on it, then adding those predictions up with fixed weights. The weights are public. They are not close to equal, and the ordering is the whole game:

| Signal | Weight | What it takes to earn | | --- | --- | --- | | Share via copy link | 20.0 | Someone sends this to one specific person | | Reply, from a mutual, on an original post | 20.0 | Someone you follow back has something to say | | Quote, share via DM | 5.0 | Worth passing on with a comment, or privately | | Follow author | 4.0 | The post implies more worth reading | | Repost | 1.0 | Worth being seen endorsing | | Like | 0.5 | Approval, costing nothing | | Link click | 0.2 | Curiosity | | Not interested / block / mute / report | -43.2 / -31.2 / -58.8 / -234.0 | Irritation |

Read those honestly. The weights multiply a predicted probability, not a raw count, and rare actions carry bigger weights partly to stay visible against common ones. So this is not an exchange rate, and "one copy-link share equals forty likes" is the wrong reading. What it does tell you is the direction the system is pointed: a post that makes one person want to send it to one other person outranks a post that makes many people tap like.

Most advice about posting optimizes the 0.5 signal. The full numbers, the filters, and the mechanics behind them are in [references/ranking-model.md](references/ranking-model.md); read it when a draft needs a decision this file does not settle, or when someone asks why a post did not travel.

The two questions every draft has to answer

Before writing anything, answer these, because every mode below is a variation on them:

  1. Who sends this to someone, and who is that someone? If you cannot name the pair, the post is heading for likes.
  2. What does a reply to this say? If the only honest reply is agreement, the post is heading for likes.

A draft that answers both is already most of the way there. A draft that answers neither cannot be fixed by rewording.

What the code rules out

These are structural, not stylistic. They cost reach no matter how good the writing is.

  • A reply is not a distribution channel. Replies and reposts from accounts the viewer does not follow are removed from the candidate set outright, before ranking. Replying under a large account reaches that account's followers who already follow you, and nobody else.
  • Posting repeatedly in one window dilutes every post in it. Each additional post from the same author in a single feed build is multiplied by a decaying factor: the second is worth 0.625, the third 0.4375, trending down to a floor of 0.25. Three posts do not get three times the reach.
  • Nothing older than 48 hours enters the feed. There is no slow burn. A post that has not moved in two days is finished.
  • Reaching strangers starts at a handicap. Out-of-network posts are multiplied by 0.75 before anything else.
  • Irritation is the most expensive thing you can produce. The negative weights dwarf the positive ones. Bait that makes people tap "not interested" is not a neutral trade against the likes it wins.

Mode: launch

Announcing something new. The reader has no context and does not follow you, so the draft is fighting the 0.75 out-of-network multiplier and has one line to land.

Build it around the follow (4.0) and the copy-link share (20.0). Someone sends a launch to a person who has the problem it solves. That means the post has to make the problem legible to someone who is not you.

  • Open with what it is and who it is for, in one line, no preamble and no throat-clearing about the journey.
  • Name the specific thing it replaces or the specific pain it removes. Vague category claims give nobody a reason to forward it.
  • Show the artifact. A demo, a screenshot, a real output. The reader deciding whether to send this to a colleague needs something to point at.
  • Put the link at the end, not the top. A link click is worth 0.2, and the post has to do its work before the reader leaves.

Mode: update

Progress on something an audience already has context on. This lands mostly in front of existing followers, which means it skips the out-of-network discount and, critically, is eligible for the biggest lever in the system: an original post from a mutual carries a reply weight of 20.0.

That lever is the whole design of an update. Optimize for a reply from someone who follows you back.

  • Lead with the concrete change: the number that moved, the thing that now works, the thing that broke.
  • Include the specific detail that invites a correction or a war story. People reply to "we cut it to 40ms by dropping the cache" far more than to "big performance wins this week."
  • Leave one genuine open question. Not a poll, not "thoughts?", but the actual unresolved decision.
  • Do not make it a reply in a thread of your own if reach matters. The mutual reply boost applies to original posts, and skips replies and reposts.

Mode: banger

Maximum reach. This is the mode where the temptation is to reach for bait, and where bait is most expensive.

The formula that falls out of the weights: maximize the probability of a private share and a reply from a mutual at the same time, while keeping the probability of irritation near zero. Concretely, that is a post that is specific enough to be useful to one person and open enough to be argued with, and it is a narrow target.

  • The sendable half. One concrete, transferable thing: a number that reframes something, a mechanism nobody had spelled out, a result with the receipt attached. The test is whether someone can send it with no added explanation.
  • The repliable half. A real position, stated plainly enough to disagree with. Hedged claims are unreplyable, and unreplyable posts forfeit the largest positive weight in the system.
  • Keep it self-contained. Every action worth real weight happens in the feed. A post whose payoff is behind a link trades a 20.0 action for a 0.2 one.
  • Check the negative side before posting. Read the draft as the person it annoys most. If a plausible reaction is "not interested," that weight is -43.2 against a like's 0.5, and the trade is not close.

Something reliably true and worth saying beats something engineered to travel. The formula above describes what travels; it does not manufacture the thing worth sending.

Output

Give two or three drafts, not one, and make them differ in approach rather than in wording. Under each, name the lever it pulls in one line, for example "sendable: the 40ms number is the forwardable part" or "repliable: the claim about caches is the argument."

Then say plainly which one you would post and why. A menu with no recommendation puts the work back on the person who asked.

Using this well

The weights describe distribution, not worth. They are a model of what spreads on one platform, and a post can be worth writing while scoring badly. Say so when it applies rather than bending a genuine thing into the shape of a viral one.

The ratios are not exchange rates. They scale predicted probabilities, and rare actions carry heavier weights to stay visible at all. Anyone quoting them as "one X equals N likes" is misreading them, and X's own published comments say so directly.

This is drafting help, not an audience. No weighting makes a post travel without something behind it. Reach is downstream of having something to say, and the algorithm is the last constraint to apply, not the first.

Optimizing every post for reach is its own failure. The modes above are for posts where distribution matters. Most posts are not that, and running this on all of them produces an account that reads like it is being run by a growth team.

Published defaults drift. These weights are the production defaults as published in August 2026, and X changes them. Treat the ordering as durable and the exact numbers as a snapshot.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.