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

X Algorithm

skill-carson2222-skills-x-algorithm · by carson2222

Write X (Twitter) posts that the For You algorithm actually rewards. Grounded in the open-sourced X recommendation system — the Grok-based transformer ranker, Phoenix retrieval, Thunder in-network store, and Grox content-understanding pipeline. Use when the user wants to write a post, thread, reply, or quote; plan a content strategy; review or rewrite an existing draft; debug why a post flopped;…

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

Install

$ agentstack add skill-carson2222-skills-x-algorithm

✓ 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-carson2222-skills-x-algorithm)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo 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 X Algorithm? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

X Algorithm: Writing Posts That Get Ranked

A single source of truth for writing on X, derived directly from the open-sourced For You algorithm. No folklore, no growth-hack myths — only what the actual ranker, retrieval system, and content classifiers reward or punish.

How the Feed Actually Works

Every For You impression is the output of this pipeline:

Sources                Filters               Scoring                 Selection
─────────              ───────               ───────                 ─────────
Thunder (in-network)   age, vf, muted        Phoenix transformer     top-K by score
Phoenix (OON ANN)      blocks, dedupe        → P(19 actions)         author diversity
ads / wtf / prompts    seen/served           weighted sum            ads blender
                       subscription gate     OON multiplier

Two ways into a user's feed:

  1. Thunder (in-network) — they follow you. Sub-millisecond lookup. Always preferred.
  2. Phoenix retrieval (out-of-network) — a two-tower model embeds your post and the user's engagement history into the same space, then ANN-searches. You land here when your content lives in the topical neighborhood of posts the user recently engaged with.

Then Phoenix ranking (a Grok-based transformer) predicts probabilities for ~19 engagement actions per candidate, the Weighted Scorer combines them, Author Diversity decays repeated authors, OON Scorer down-weights out-of-network, and the top-K wins.

There are no hand-engineered relevance features anymore. The transformer learns from the user's UserActionSequence (their recent aggregated actions). That is the entire feature set.

The 19 Actions That Define Your Score

The ranker predicts a probability for each. Final score = Σ(weight × P(action)).

Positive signals (you want these)

| Action | What it is | Why it matters | |---|---|---| | favorite | like | Baseline engagement. | | reply | someone replies | Strong — replies have their own weight. | | retweet | repost | Strong distribution signal. | | quote | quote post | Amplification + a separate quoted_click and quoted_vqv reward chain. | | photo_expand | tap to expand image | Image must be intriguing at thumbnail size. | | click | tap a link/post | Headline/curiosity gap matters. | | profile_click | tap your name/avatar | Your identity made them curious. | | vqv | "video quality view" | Only counted if video_duration_ms > MIN_VIDEO_DURATION_MS. No 2-second loops. | | share | native share menu | | | share_via_dm | shared in DM | Independent signal — "I want my friend to see this". | | share_via_copy_link | copied link | Save-worthy content. | | dwell | dwelled at all | Binary. The hook has to land. | | cont_dwell_time | continuous dwell duration | Longer linger = more weight. | | cont_click_dwell_time | dwell after clicking into post | Reward for delivering on the click. | | follow_author | viewer follows you | One of the strongest positive signals. |

Negative signals (these subtract from your score)

| Action | Effect | |---|---| | not_interested | Manual "not interested" tap. | | block_author | Block. | | mute_author | Mute. | | report | Report. | | not_dwelled | Scroll-past with no dwell. Heavy penalty. Most posts die here. |

The negative weights are real and subtractive — a post that gets scrolled past by many users actively pushes its own score down. "No engagement" is not neutral; not_dwelled is negative.

What This Means For How You Write

1. Optimize for diverse engagement, not just likes

The model weights 19 actions. A post that earns one reply and one share and one quote outperforms a post with three likes. Write things people want to reply to, quote, save, or DM.

2. The hook has to stop the scroll

Every scroll-past is a not_dwelled negative. The first visible line (and the thumbnail of any media) is the entire battle. If the user doesn't dwell, you don't just get zero — you go negative.

3. Longer is fine if it earns the dwell

cont_dwell_time is a continuous weight. A post people read for 12 seconds beats one read for 2. But that only works if the hook earns the read — pad-for-length kills you on not_dwelled.

4. Make it quotable, not just likeable

Quotes trigger quote_score + downstream quoted_click_score + quoted_vqv_score. A take that begs for "this, but also…" outperforms a self-contained one.

5. Convert viewers to followers

follow_author is heavily weighted. Every post should make the case for following you — clear identity, distinct voice, on-niche signal. Profile + pinned post matter because profile_click also scores.

6. Avoid anything that risks block / mute / report / not_interested

Rage-bait, slop, misleading hooks, engagement farming — these maximize short-term click but blow up not_interested/mute, which are weighted negatively. Net is often negative.

7. Video must be substantive

vqv only counts when video duration exceeds the minimum threshold. Sub-threshold loops literally cannot earn the video reward. There's also a quoted_vqv reward when your video is quoted — make videos that beg to be quoted.

8. Images: thumbnail-test everything

photo_expand is its own positive signal. The thumbnail has to make someone tap. Crops, faces, contrast, clear focal point.

9. Make content shareable, not just consumable

share, share_via_dm, share_via_copy_link are three independent rewards. Frameworks, lists, screenshots of useful info, before/after, "saved this for later" content — these all score.

What Will Quietly Kill Your Post

These run before scoring — if any fires for a viewer, your post is dropped from their candidate set entirely.

| Filter | Triggers when | Implication | |---|---|---| | AgeFilter | Post older than threshold | Timeliness matters. Posts decay out of consideration. | | MutedKeywordFilter | Your text contains a user's muted keyword | Common words (e.g. "crypto", "AI", politics terms) lock you out of muted audiences. | | AuthorSocialgraphFilter | Viewer blocked/muted you | Permanent for that viewer. | | VFFilter (visibility) | Safety classifier marks Drop | Spam, violence, gore, PTOS violations → invisible everywhere. | | IneligibleSubscriptionFilter | Paywalled post, viewer not subscribed | Locks paid content to subscribers only. | | PreviouslySeenPostsFilter | Viewer already saw it | One impression per viewer. | | PreviouslyServedPostsFilter | Already served this session | Same. | | RepostDeduplicationFilter | Multiple reposts of same content | Mass-repost manipulation collapses. | | DedupConversationFilter | Multiple branches of one thread | Only one branch shown. | | SelfpostFilter | You're the viewer | Never see your own. |

Practical implications:

  • A "controversial topic hook" is also a "muted keyword" landmine. Calibrate.
  • One conversation, one branch — replying 10 times to your own thread doesn't multiply reach.
  • Mass-rebloging your own old content gets collapsed.

Content Understanding (Grox)

Beyond the ranker, a separate grox/ pipeline runs VLM-based classifiers on posts:

  • Banger initial screen — a vision-language model scores quality_score (0–1), threshold 0.4 for positive. Also emits slop_score and has_minor_score, plus taxonomy categories.
  • Post safety screen deluxe — VLM safety pass for PTOS policy.
  • Spam detection — aggressive on accounts ten "great post 🔥".
  • A separate reply-ranking model decides reply order on conversations. Same content rules apply at higher selectivity.
  • Quote posts are doubly valuable to you: they trigger the quote-side rewards (quote, quoted_click, quoted_vqv) for the quoted author. Quote good posts in your niche — it's a positive signal for them AND puts you in front of their audience.
  • Threads: only one branch of a conversation is shown per viewer (DedupConversationFilter). Posting a 10-reply self-thread doesn't multiply impressions of the same conversation. Lead post must stand alone.

When the User Asks "Why Did This Flop?"

Walk through, in order:

  1. Filter dropouts — too old? muted keyword? safety flag? subscription-gated?
  2. Hook / dwell — would a stranger stop on the first line? If not, every scroll-past pushed score down.
  3. OON viability — was it topical and embedable, or generic and floating?
  4. Author diversity — did you post 4 other times in the same window?
  5. Negative signals — did the framing invite mutes / not-interested?
  6. Visual quality — would the banger initial screen score this >0.4? Any AI-slop tells?
  7. In-network base — do you have followers in the audience that should care? OON is hard. The followers route is the moat.
  8. Timing — first 30 min set the curve. Was anyone online?

Anti-Patterns The Algorithm Punishes

  • Engagement-bait questions ("agree?", "RT if you agree") — they trigger not_interested from sophisticated users; net negative.
  • Reply-guy spam from small accounts — flagged by spam classifier.
  • Posting the same idea 5x in a day — author diversity decay + repost dedup.
  • 2-second meme loops as primary video format — sub-threshold for vqv.
  • Threaded mega-posts where the first tweet is just "🧵" — viewer never dwells past it.
  • AI-generated slop with no edit — banger screen's slop_score flags it.
  • Hostile / dunking content — short-term click, long-term mute/block/report.

What's NOT In The Algorithm (Despite Folklore)

  • No link penalty as a hard rule. Links are scored via click_score and cont_click_dwell_time — if people click and dwell, you're rewarded.
  • No follower-count multiplier. The transformer doesn't see your follower count as a feature. Reach is driven by predicted engagement, mutual-follow Jaccard, in-network membership, and topic match.
  • No "post X times per day" rule. Author diversity decays within a single feed render, not across days.
  • No "best time to post" hardcoded. The 30-min engagement-cache window is real, but "when" depends entirely on when your specific audience is online.

How To Use This Skill

When the user asks you to write or improve a post:

  1. Ask (or infer) the goal: reach, replies, follows, shares, clicks.
  2. Ask (or infer) the audience: who follows them, what topic neighborhood?
  3. Draft against the pre-post checklist, optimizing for the goal's primary action.
  4. Call out specific algorithmic risks in the draft (muted keywords, hook strength, length-for-dwell trade-off, OON viability).
  5. If reviewing existing copy, run the "why did this flop" sequence.
  6. Never recommend tactics that look like engagement farming — net-negative on not_interested / mute.

Be direct. Cite the mechanism (e.g., "not_dwelled is weighted negative — your first line has to stop the scroll") so the user learns the why, not just the what.

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.