Every claim, with its receipt

This is the whole registry — every factual claim in the library, each labeled by how strong its source is and linked to the exact line of code it came from. Filter by tier, search the text, and click any citation through to the source at its pinned commit. Nothing here is asserted without one.
62 claims
ads_spacing_rules
CODE-CURRENT0bfc279verified 2026-06-12
Ad insertion is constrained by a minimum number of posts before ads appear (MIN_POSTS_FOR_ADS), a computed minimum spacing between ads, and safe-gap selection that searches for the best eligible gap at or after each ideal position rather than forcing fixed intervals.
xai-org/x-algorithm — home-mixer/ads/safe_gap_blender.rs, MIN_POSTS_FOR_ADS + compute_spacing + find_best_gap (L10, L26, L72-L77)mechanism present; exact constants in withheld params as of the May 15, 2026 release
home-mixer/ads/safe_gap_blender.rs
author_diversity_decay
CODE-CURRENT0bfc279verified 2026-06-12
Within a single feed response, candidates from the same author are sorted best-first and each subsequent one is multiplied by (1 \− floor) \× decay^position + floor \— a geometric decay toward a floor, so only an author's top-scored post receives full value per feed load. The decay and floor constants are in the withheld params module.
xai-org/x-algorithm — home-mixer/scorers/author_diversity_scorer.rs, multiplier (L29\–L31) and per-author application (L52\–L65)as of the May 15, 2026 release
home-mixer/scorers/author_diversity_scorer.rs
cn_bridging_factor
CODE-CURRENTefa16caverified 2026-06-12
The model places notes and raters on a shared viewpoint 'factor' axis; a note's intercept only rises when raters across different factor positions agree, and the not-helpful threshold applies a negative note-factor multiplier (default -0.8) so more polarized notes must clear a harder bar. This is the bridging mechanism that resists single-viewpoint agreement.
twitter/communitynotes — scoring/src/scoring/mf_base_scorer.py, crnhThresholdNoteFactorMultiplier=-0.8 + factor docstring (L168-L169, L224-L226)twitter/communitynotes main as of 2026-06-12
scoring/src/scoring/mf_base_scorer.py
cn_matrix_factorization
CODE-CURRENTefa16caverified 2026-06-12
Community Notes scores notes with a matrix factorization model: it learns a note intercept (helpfulness), a note factor (viewpoint), a rater intercept and rater factor, and a global intercept, fitting all parameters to the full rating history.
twitter/communitynotes — scoring/src/scoring/matrix_factorization/matrix_factorization.py, note_intercepts/note_factors/user_intercepts/user_factors/global_intercept (L226, L241-L250)twitter/communitynotes main as of 2026-06-12; distinct repo from the ranking algorithm
scoring/src/scoring/matrix_factorization/matrix_factorization.py
cn_rater_helpfulness
CODE-CURRENTefa16caverified 2026-06-12
Community Notes computes rater and author helpfulness from rating outcomes: author helpfulness is the mean intercept of notes a user wrote, and rater helpfulness aggregates a rater's ratings against the intercepts those notes ultimately earned.
twitter/communitynotes — scoring/src/scoring/helpfulness_scores.py, author_helpfulness meanNoteScore (L50) + _rater_helpfulness (L55-L66)twitter/communitynotes main as of 2026-06-12
scoring/src/scoring/helpfulness_scores.py
cn_separate_repo
CODE-CURRENTefa16caverified 2026-06-12
The Community Notes scoring algorithm is open-sourced in twitter/communitynotes — a distinct repository from the xai-org/x-algorithm ranking code — and operates on public note and rating data; individual rater data is pseudonymized in the public release.
twitter/communitynotes — repository root; scoring/src/scoring/distinct repo, distinct SHA from the ranking algorithm
scoring/src/scoring/scorer.py
grox_classifiers
CODE-CURRENT0bfc279verified 2026-06-12
The May 2026 release includes Grox, a content-understanding service with classifiers for spam detection, post-category classification, and PTOS policy enforcement — including spam.py, safety_ptos.py, banger_initial_screen.py, post_safety_screen_deluxe.py, and reply_ranking.py.
xai-org/x-algorithm — README.md line 34 + grox/classifiers/content/ (file presence verified at pinned SHA)as of the May 15, 2026 release
README.md, grox/classifiers/content/spam.py, grox/classifiers/content/safety_ptos.py, grox/classifiers/content/banger_initial_screen.py, grox/classifiers/content/post_safety_screen_deluxe.py, grox/classifiers/content/reply_ranking.py
grox_spam_vision_deterministic
CODE-CURRENT0bfc279verified 2026-06-12
The spam classifier runs a Grok vision-language model (VisionSampler, ModelName.VLM_PRIMARY) at temperature 0.000001, scoring the SPAM_COMMENT content category — images are in scope, the verdict is deterministic, and replies are the screened surface.
xai-org/x-algorithm — grox/classifiers/content/spam.py, constructor (L26–L30)as of the May 15, 2026 release
grox/classifiers/content/spam.py
grox_user_context_in_judging
CODE-CURRENT0bfc279verified 2026-06-12
Grox content classifiers render the post's AUTHOR into the judging prompt: UserRenderer.render(post.user) places the user's profile in the model's context alongside the post, in the PTOS, banger, and post-safety-screen classifiers alike.
xai-org/x-algorithm — safety_ptos.py L84, banger_initial_screen.py L68, post_safety_screen_deluxe.py L54as of the May 15, 2026 release
grox/classifiers/content/safety_ptos.py, grox/classifiers/content/banger_initial_screen.py, grox/classifiers/content/post_safety_screen_deluxe.py
home_mixer_pipeline
CODE-CURRENT0bfc279verified 2026-06-12
The For You feed is assembled by a Home Mixer candidate pipeline: the server calls pipeline.execute(query) and serializes the selected_candidates into the timeline. The pipeline composes sources, hydrators, filters, scorers, and selectors.
xai-org/x-algorithm — home-mixer/for_you_server.rs, pipeline execution (L36-L40); candidate_pipeline/for_you_candidate_pipeline.rsas of the May 15, 2026 release
home-mixer/for_you_server.rs, home-mixer/candidate_pipeline/for_you_candidate_pipeline.rs
inferred_gender_gated
CODE-CURRENT0bfc279verified 2026-06-12
The inferred-gender hydrator is gated: its enable() returns true only when the EnableInferredGenderHydration param is set or the request is shadow traffic. The released code does not show this hydrator running unconditionally on production timeline requests, nor a scorer consuming the attached label.
xai-org/x-algorithm — home-mixer/query_hydrators/user_inferred_gender_query_hydrator.rs, enable gate (L30–L32)gating verified at the pinned SHA; production flag state and downstream use not in the release
home-mixer/query_hydrators/user_inferred_gender_query_hydrator.rs
may_2026_release_scope
CODE-CURRENT0bfc279verified 2026-06-12
The May 15, 2026 release changed 187 files (+18,263/−926 lines), adding: a runnable end-to-end inference pipeline (phoenix/run_pipeline.py), pre-trained mini Phoenix model artifacts, the Grox content-understanding service, an ads blending module (home-mixer/ads/), and new query hydrators, candidate hydrators, and candidate sources.
xai-org/x-algorithm — README.md, Updates section (lines 26–42); diff figures verified against repository history (aaa167b…e414c17)as of the May 15, 2026 release
README.md
multimodal_embedding_text_image_transcript
CODE-CURRENT0bfc279verified 2026-06-12
The multimodal post embedder appends a video's transcript directly to the post text, then assembles that text together with the post's images into a single document embedded by one model — text, images, and spoken-word transcript share one representation.
xai-org/x-algorithm — grox/embedder/multimodal_post_embedder_v5.py, transcript append (L76–L77) and document assembly (L79–L81)as of the May 15, 2026 release
grox/embedder/multimodal_post_embedder_v5.py
no_link_deboost
CODE-CURRENT0bfc279verified 2026-06-12
The released ranking pipeline contains no link-penalty, URL-deboost, or external-link downranking mechanism. The only link-related signal is click_score in the weighted scorer, which is a positive term. Claim is scoped to the open release at the pinned commit.
xai-org/x-algorithm — absence across home-mixer/filters/* and home-mixer/scorers/*; only link reference is click_score in weighted_scorer.rs L53no link-deboost present in the open release; cannot prove absence in withheld layers
home-mixer/filters/, home-mixer/scorers/weighted_scorer.rs
phoenix_candidate_isolation
CODE-CURRENT0bfc279verified 2026-06-12
In the ranking transformer, candidates cannot attend to each other during inference — a deliberate design choice ensuring a candidate's score does not depend on which other candidates are in the batch. Candidates still attend to the user and the user's history.
xai-org/x-algorithm — phoenix/README.md, Ranking: Candidate Isolation (L70–L73) and attention-mask description (L121–L161)as of the May 15, 2026 release
phoenix/README.md, phoenix/recsys_model.py
phoenix_multi_action
CODE-CURRENT0bfc279verified 2026-06-12
The ranking model predicts multiple engagement types simultaneously per candidate (output shape [B, num_candidates, num_actions]); the mini config declares 19 action types, and the README decodes part of the proto ActionName enum: 1=favorite, 4=reply, 5=quote, 6=repost, 11=dwell, 13=video quality view.
xai-org/x-algorithm — phoenix/README.md, Multi-Action Prediction (L175–L186), action enum (L250), Action types=19 (L267)as of the May 15, 2026 release
phoenix/README.md
phoenix_two_stage
CODE-CURRENT0bfc279verified 2026-06-12
Phoenix operates in two stages: retrieval narrows millions of candidates to hundreds via approximate-nearest-neighbor similarity search (a two-tower model), then a more expressive transformer ranks the retrieved set.
xai-org/x-algorithm — phoenix/README.md, Overview (L22–L26) and Architecture (L58–L73)as of the May 15, 2026 release
phoenix/README.md, phoenix/recsys_retrieval_model.py, phoenix/recsys_model.py
post_safety_deluxe_annotator
CODE-CURRENT0bfc279verified 2026-06-12
The post safety screen is an annotator, not a judge: it runs a critical-tier vision model (VLM_PRIMARY_CRITICAL) and returns only boolean metadata, with the verdict hardcoded to positive=False and score=0.0 — it attaches safety facts for downstream systems rather than flagging posts itself.
xai-org/x-algorithm — grox/classifiers/content/post_safety_screen_deluxe.py, constructor (L36–L44) and verdict (L83–L90)as of the May 15, 2026 release
grox/classifiers/content/post_safety_screen_deluxe.py
prescore_filters
CODE-CURRENT0bfc279verified 2026-06-12
Before scoring, Home Mixer removes: duplicates, posts that failed metadata hydration, posts older than a threshold, your own posts, repost duplicates, paywalled content you can't access, posts you've already seen or been served, posts containing your muted keywords, and posts from authors you've blocked or muted.
xai-org/x-algorithm — README.md, Filtering section (Pre-Scoring Filters table, lines 296–314)as of the May 15, 2026 release
README.md
ptos_redaction_seams
CODE-CURRENT0bfc279verified 2026-06-12
The released safety_ptos.py carries visible redaction seams: the _THINKING_RESTRICTION_LINES set contains only empty strings (L40–L43), and a boolean condition is missing its first operand (L241–L244: "if ( / and self.deluxe / and …") — clauses were removed from the file before publication.
xai-org/x-algorithm — grox/classifiers/content/safety_ptos.py, L40–L43 and L241–L244 (observable in the published file)as of the May 15, 2026 release
grox/classifiers/content/safety_ptos.py
ptos_two_stage
CODE-CURRENT0bfc279verified 2026-06-12
PTOS enforcement is a two-stage pipeline on two model tiers: SafetyPtosCategoryClassifier (VLM_SAFETY) detects whether a post violates anything, then SafetyPtosPolicyClassifier (VLM_PRIMARY_CRITICAL) re-judges it against the specific detected policy — both vision models at temperature 0.000001.
xai-org/x-algorithm — grox/classifiers/content/safety_ptos.py, class constructors (L57–L70 and L140–L152)as of the May 15, 2026 release
grox/classifiers/content/safety_ptos.py
query_hydrator_family
CODE-CURRENT0bfc279verified 2026-06-12
The home mixer includes a family of query hydrators that load viewer context before ranking: followed/blocked/muted/subscribed user IDs, muted keywords, impressed and served history, mutual-follow overlap, IP/country, and (gated) demographics and inferred gender.
xai-org/x-algorithm — home-mixer/query_hydrators/ (followed_user_ids, blocked_user_ids, muted_user_ids, subscribed_user_ids, impressed_posts, served_history, mutual_follow, ip, user_demographics, user_inferred_gender)as of the May 15, 2026 release
home-mixer/query_hydrators/mod.rs, home-mixer/models/user_features.rs
thunder_phoenix_split
CODE-CURRENT0bfc279verified 2026-06-12
For You candidates come from two sources: Thunder (in-network — posts from accounts you follow) and Phoenix Retrieval (out-of-network — ML-based similarity search across a global corpus). Both are ranked together by Phoenix.
xai-org/x-algorithm — README.md, lines 48–53 (Overview)as of the May 15, 2026 release
README.md
two_source_paths
CODE-CURRENT0bfc279verified 2026-06-12
Candidates are gathered by multiple sources, including Thunder (in-network posts from accounts the viewer follows) and Phoenix (out-of-network retrieval), plus a Who-To-Follow source for account recommendations.
xai-org/x-algorithm — home-mixer/sources/ (thunder_source.rs, phoenix_source.rs, who_to_follow_source.rs)as of the May 15, 2026 release
home-mixer/sources/thunder_source.rs, home-mixer/sources/phoenix_source.rs, home-mixer/sources/who_to_follow_source.rs
user_demographics_hydrator
CODE-CURRENT0bfc279verified 2026-06-12
A query hydrator exists that fetches a viewer's demographics and attaches them to the ranking query. It is gated: its enable() returns true only when the EnableContextFeatures param is set or the request is shadow traffic — it does not run unconditionally on production requests in the released code.
xai-org/x-algorithm — home-mixer/query_hydrators/user_demographics_query_hydrator.rs, enable gate (L14–L16) and hydrate (L18–L24)capability present and gated as of the May 15, 2026 release; production flag state not in the release
home-mixer/query_hydrators/user_demographics_query_hydrator.rs
user_inferred_gender_hydrator
CODE-CURRENT0bfc279verified 2026-06-12
A query hydrator can attach a discrete InferredGenderLabel plus a prediction_score to the ranking query. The label is read from a store; for same-day-created accounts with no stored value, a gRPC gender-prediction service is called to predict one live.
xai-org/x-algorithm — home-mixer/query_hydrators/user_inferred_gender_query_hydrator.rs, hydrate with store/predict fallback (L34–L45) and is_new_user (L56–L58)capability present and gated as of the May 15, 2026 release
home-mixer/query_hydrators/user_inferred_gender_query_hydrator.rs
viewer_features_struct
CODE-CURRENT0bfc279verified 2026-06-12
The per-viewer feature struct consumed by ranking contains six fields: muted_keywords, blocked_user_ids, muted_user_ids, followed_user_ids, subscribed_user_ids, and follower_count \— the viewer's muted keywords and block/mute lists are first-class ranking inputs.
xai-org/x-algorithm — home-mixer/models/user_features.rs, UserFeatures struct (L7\–L14)as of the May 15, 2026 release
home-mixer/models/user_features.rs
weighted_scorer_actions
CODE-CURRENT0bfc279verified 2026-06-12
The current WeightedScorer combines predicted probabilities for: favorite, reply, retweet, photo expand, click, profile click, video quality view, share, share via DM, share via copied link, dwell, quote, quoted click, continuous dwell time, follow author, not interested, block author, mute author, and report.
xai-org/x-algorithm — home-mixer/scorers/weighted_scorer.rs, lines 44–68 (compute_weighted_score)as of the May 15, 2026 release
home-mixer/scorers/weighted_scorer.rs
phoenix_grok_architecture
OFFICIAL-STATED0bfc279verified 2026-06-12
Phoenix's transformer is ported from the Grok-1 open-source release, adapted for recommendation with custom input embeddings and attention masking; the release states it is representative of the model used internally except for specific scaling optimizations.
xai-org/x-algorithm — phoenix/README.md, Note on Grok-1 lineage (L5)as of the May 15, 2026 release; describes a representative model
phoenix/README.md
xalgo_live_release
OFFICIAL-STATEDverified 2026-06-12
In January 2026, X Engineering open-sourced its production For You feed algorithm at xai-org/x-algorithm, built on the same transformer architecture as xAI's Grok model.
X Engineering (@Engineering) — announcement post, January 2026X's own characterization of the release as the production system
jan_2026_initial_release
CODE-HISTORICALaaa167bverified 2026-06-12
The initial January 20, 2026 release (commit aaa167b) contained Home Mixer, Thunder, Phoenix, and the candidate-pipeline framework; the Grox content-understanding service and the home-mixer/ads module were not yet included, and the weighted scorer's numeric parameters were absent from the very first commit.
xai-org/x-algorithm — initial release tree at commit aaa167b (component presence/absence verified by direct inspection)the January 20, 2026 initial release; superseded by the May 15, 2026 release
weighted_sum_2023
CODE-HISTORICALb852108verified 2026-06-12
The 2023 heavy ranker also combined predicted engagement probabilities into a weighted sum — the same structural idea the 2026 system retains, with different models producing the probabilities and different (unpublished) weights.
twitter/the-algorithm-ml — projects/home/recap/README.md, lines 26–28as of the 2023 release
weights_2023_values
CODE-HISTORICALb852108verified 2026-06-12
In the 2023 open-source release, the heavy ranker's published weights (dated April 5, 2023 in the source) were: favorite 0.5, retweet 1.0, reply 13.5, good profile click 12.0, video playback (50%) 0.005, reply engaged by author 75.0, good click 11.0, good click v2 10.0, negative feedback v2 −74.0, report −369.0.
twitter/the-algorithm-ml — projects/home/recap/README.md, lines 30–41as of the March–April 2023 open-source release; superseded by the 2026 system
current_weights_unpublished
UNKNOWN0bfc279verified 2026-06-12
The numeric values of the current weights are not included in the open-source release: weighted_scorer.rs references a params module (e.g. p::FAVORITE_WEIGHT, p::REPLY_WEIGHT) whose values are not present anywhere in the published repository.
xai-org/x-algorithm (verified by direct inspection of the full repository tree at the pinned SHA) — home-mixer/scorers/weighted_scorer.rs references crate::params; no params definitions with weight values exist in the releaseabsence verified at the pinned SHA; values may be published in a future release
home-mixer/scorers/weighted_scorer.rs