X search is the most broken surface on the platform: exact phrases miss, operators fail, Latest is unusable, and users route around it by asking Grok instead. The fix is not a prettier results page. Search is an intent router, not a feed of mixed results. Below: the working prototype. It reads your intent, shows what it understood as chips you can edit, scores its own confidence, answers in three separate lanes, and puts a receipt on every result.
Problem diagnosis · 2025 to 2026
These are the documented failure modes, sourced from power-user threads, researchers, and journalists, with X's own engineering statements confirming the index rewrite underneath them. The root cause is shared: a legacy index choking under AI-agent load while the product bolted tabs onto a ranking layer nobody could see into. The backend is being rewritten. The product should be too.
The reframe
Every failed search product mixes its lanes. The Fable 5 rule: classify the intent first, then answer in the lane that matches, and never interleave. A prettier results page cannot fix a routing problem. This design adds the routing, the reasoning, and the receipts.
What the system understood, as an editable sentence with a confidence score. High confidence answers directly (a quote, a score, a summary). Low confidence asks before assuming. Wrong? Edit the chips, not your query syntax.
The ranked social results, with a receipt on every card: exact match, engagement quality, follow graph, recency. Precision queries run on a deterministic lane that either hits or says exactly why not.
Quotes, sparklines, live scores, headlines. Rendered as data modules in their own rail, updating in place, never injected into the post list. The trader and the scroller both get served.
The prototype · type in it, click everything
Five scripted intents plus free typing. Press / to focus. Watch the intent hint appear as you type, the interpretation strip explain itself, the tabs re-order by intent, and the live rail update in place. Click Why on any result for its receipt. Try the follow-up chips: refinement in plain language, no operator syntax required.
The six flows · a demo script
| Flow | Run it in the prototype |
|---|---|
| Casual discovery | Tap TSLA stocks live. The answer leads, the rail carries the quote, the posts are ranked by quality. |
| Precision research | Tap "fully autonomous" from:elonmusk. One exact match with a badge, the related post below a labeled fold, Verbatim to tighten. |
| Entity lookup | Tap elon musk. People leads, the profile card and Grok summary sit in the rail. |
| Real-time monitoring | Tap world cup. Watch the France match clock tick to FT in the rail. |
| Power query, no syntax | Focus the empty bar, tap a person chip. The palette writes from: for you. |
| Follow-up refinement | Tap AI agents, then Only media from verified. Tab and filter apply, nothing typed. |
Information architecture
The tab row is not a fixed menu, it is a ranked answer. The intent classifier promotes the right modes to the front and demotes the rest, so a finance query leads with Stocks and a name query leads with People. Same modes, different order, nothing new to learn.
| Query class | Promoted order | Live rail | Filter pills |
|---|---|---|---|
| Finance ($TSLA, "nvda price") | Stocks, Posts, News, People, Media | Quote + sparklines, movers, market news | Cashtag posts, Verified, News only, Charts |
| Precision ("exact phrase", from:, since:) | Posts (verbatim lane), Media, People | Author card, related saved searches | Verbatim, Date range, From user, Links |
| Event (world cup, game 5) | Live, Posts, News, Media | Scores with clock, schedule, standings | Live now, Highlights, My teams, Verified |
| Topic (ai agents, design) | Posts, People, Topics, News, Media | Who to follow, related communities | Top, Latest, People I follow, Media, Min engagement |
| Name (a person) | People, Posts, Media | Profile summary (Grok), mutuals | Verified, From them, Mentions of them |
On mobile
Ranking logic
The precision lane is deterministic. Quotes, operators, and dates compile to exact index lookups on the new full-history index. Verbatim means verbatim: no synonym expansion, no engagement re-sort, recency order. If the answer is zero results, the system says what it checked and why it found nothing, then offers relaxations (drop the date, drop the author, allow semantic match). A silent miss is the one unforgivable failure.
The discovery lane is hybrid. Lexical and semantic retrieval fan out, then a quality scorer ranks on engagement quality (replies and saves over raw likes), author trust, spam prior, and recency, with a diversity re-rank so one viral thread cannot monopolize the page. Every card carries a one-line rationale: because it is the exact phrase, because you follow the author, because it is moving right now. Legibility is the anti-conspiracy feature.
Engineering architecture
| Stage | What it does | Surface in the UI |
|---|---|---|
| Query parser | Tokenizes operators, quotes, cashtags, dates into a typed query object | interpretation chips |
| Intent classifier | Finance, precision, event, topic, name; sets lane and tab order | intent hint + promoted tabs |
| Entity extractor | Resolves tickers, teams, people to canonical entities | entity chips, hover cards |
| Relevance ranker | Deterministic lane or hybrid lexical+semantic with quality scoring | result order + Why receipts |
| Trend detector | Velocity signals, promotes "moving now" clusters | "moving right now" rationale |
| Live data adapters | Quotes, scores, schedules over streaming connections | rail modules, in-place ticks |
| Social graph signals | Follow graph and mutuals as ranking features, never as the only story | "because you follow" receipts |
| News ingestion | Clustered headlines with source counts | news cards |
| Personalization | Interests re-weight discovery lane only, never the precision lane | "for you in results" block |
| Result renderer | Typed cards per entity, lanes kept separate | the whole page |
| Feedback loop | Every Why open, filter toggle, and follow-up is a labeled relevance event | silent, then better ranking |
Component inventory · the Figma outline
| Component | Variants and states |
|---|---|
| SmartBar | idle · focused (palette open) · typing (intent hint) · submitted · slash-focus ring |
| Palette | recents · people chips · live modes with mini data · operator tips · keyboard selection |
| InterpretationStrip | high confidence · low confidence (asks) · editing (removable chips) · verbatim on |
| TabRow | adaptive order · promoted dot · counts · overflow scroll |
| FilterPill | off · on · with count · disabled (no matches) |
| PostCard | default · exact-match badge · why-open · media · highlighted terms |
| ProfileCard | default · with Grok summary · follow states |
| NewsCard | default · clustered (n sources) |
| StockModule | quote header · mover rows with sparklines · live tick animation |
| MatchModule | live (clock ticking) · scheduled · final |
| FollowupRow | suggestions per intent · applied state |
| ZeroState | honest miss (what was checked) · relaxation actions · degraded index notice |
Tokens: bg #000, text #e7e9ea, muted #71767b, line #2f3336, surface #16181c, accent #1d9bf0, up #00ba7c, down #f4212e, radius 16, TwitterChirp. Keyboard: / focus, arrows in the palette, Enter submit, Esc dismiss. Controls carry ARIA roles with pressed and selected states. Two states are specified here but not wired in this demo: the low-confidence disambiguation ask and the degraded-index banner. Every other named state is clickable above.
Honest comparison
Versus current X search
Versus a prettier results page
How we would know: the zero-result rate on operator queries falls to the true-miss floor, the abandon-search-and-ask-Grok rate falls, and Why-receipt opens become the standing trust proxy. The feedback loop in the pipeline already collects all three.
What I would ship first
The precision lane plus the interpretation strip. Exact search that provably works, and a system that shows what it understood, are the two moves that rebuild trust. Everything else (modes, modules, personalization) compounds on top of a search box people believe again.
What I would not build