Show HN: XViral – Post virality predictor based on X's For You Ranking pipeline XViral, a new open-source tool, predicts a post's virality on X by rebuilding the platform's For You ranking pipeline from its official source code. The tool audits X's released code, emulates its Grok-based judges, and applies the exact scoring formula, treating accuracy as a measurable target rather than a claim. Let AI grade your post before the algorithm does. Based on X's open source For You ranking pipeline, rebuilt from the official source release. Star us, and you will receive all release notifications from GitHub without any delay In May 2026, X published the production code of its For You feed — Home Mixer orchestration , Thunder in-network store , Phoenix the Grok-based ranking transformer , and Grox the content-understanding service — together with a 2.9 GB pre-trained mini Phoenix checkpoint, frozen from the same continuous training process as the production model. The release contains the complete scoring formula and its nineteen engagement heads, the output schemas and thresholds of the Grok content judges, and the pipeline's filters and penalties. It withholds the numbers: the head weights, the judge prompts, and the operational thresholds. XViral vendors that release unmodified, audits it file by file FINDINGS.md /ninjahawk/XViral/blob/main/FINDINGS.md , and rebuilds the pipeline locally as a draft-post scorer: the Grok judge layer is emulated by an LLM against the exact published schemas, the weighted scorer applies the exact published formula, and every withheld number is a provenance-tagged free parameter simulator/weights.json /ninjahawk/XViral/blob/main/simulator/weights.json to be fitted against the outcomes of real posts. This differs from the algorithm-guide genre in that nothing here is folklore: each mechanic traces to a file in X's own code, each assumed value is labeled as assumed, and the simulator's accuracy is treated as a measurable quantity with a target pairwise ranking accuracy against published posts , not a claim. 1. The platform scores slop. Every post passes a Grok vision-language judge whose output schema includes quality score a "banger" screen with a hard threshold at 0.4 and an integer slop score — template filler is measured, not merely disliked grox/classifiers/content/banger initial screen.py . 2. Small accounts face a dedicated spam judge. A classifier named SpamSystemLowFollower renders binary spam verdicts specifically for low-follower authors — the exact cohort, and the exact phrasing patterns, of template giveaway posts grox/classifiers/content/spam.py . 3. Negative predictions are first-class. The final score is a weighted sum over heads that include not interested , block author , mute author , and report — a post that provokes mutes does not merely underperform, it is actively suppressed, and legacy-published weights put report at −369 against 0.5 for a like home-mixer/scorers/weighted scorer.rs . 4. Video earns nothing below a duration floor. The video-quality-view head is weight-gated on video duration ms MIN VIDEO DURATION MS ; the widely recycled "video gets 10× engagement" figure appears nowhere in the code and traces to a 2019 Twitter Ads marketing post. Grox judges — the emulated banger screen quality score against the source threshold 0.4 , slop score 0–10, and the low-follower spam verdict with its reason. Weighted score — the source formula applied to per-impression action probabilities: an in-network score and an out-of-network score the OON multiplier from oon scorer.rs applied . The head table — each action's probability, weight, and signed contribution, sorted by magnitude; the negative-head net is printed separately because it usually decides the total. Top fixes — the three highest-impact edits, from the judge. draft text + media flags → Grok-judge emulation claude -p | local ollama, temp 0 banger {quality score, slop score, tags} schema: source spam {decision, reason} schema: source P action per impression × 19 heads head list: source → weighted scorer: Σ weight i × P action i formula: source vqv head gated by video duration mechanism: source → OON view: score × OON WEIGHT FACTOR mechanism: source Provenance. Everything marked source is verbatim from the vendored release. Weight values carry tags in weights.json : legacy 2023 the published weights of the previous open-sourcing, used as priors or assumed our priors, first to move under calibration . The judge prompts are reconstructions against the published output schemas; X's actual prompt text is withheld from the release. Real outcomes, no API. --tweet