You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v1.6.7 stripped the false algorithm claims but left a wall of "historical
2023 estimate; live weight runtime-param" labels, apologetic comment blocks,
and self-explaining `does NOT contain` text. That's the worst of both
worlds — we ship fake data with footnotes explaining why it's fake.
v1.6.8 cuts the prose. The data is what it is.
- agent_info.algorithm.weights (22 entries × "ratio_to_like" strings)
→ agent_info.algorithm.signals (22 entries × polarity tag only).
Drop SignalWeight, time_decay_halflife_minutes, out_of_network_reply_penalty.
Output size: 25.2KB → 16.9KB (-33%).
- preflight.rs comment block (1-25) → 3 lines. Drop ALGORITHM_SOURCE
constant (unused).
- preflight.rs author-diversity comment (344-351) → 1 line. Drop
"(empirical heuristics, not coded rules)" framing — the gates speak
for themselves.
- preflight.rs long-form comment block (475-485) → 1 line. Drop
contest-winner roll-call from the source comment.
- Issue messages: cut "NOT a coded rule in the May 15 2026 source",
"empirically powerful reciprocity loop", "Phoenix scorer term
(`reply_score` in ranking_scorer.rs)" suffixes. Replace with terse
actionable phrasing.
- engage_inbox EngagementHeuristic: 5 fields → 2 (name, rationale).
Drop source / source_url / caveat. Drop the self-referential
"this is not a published weight" caveat.
- usage_hints: trim multi-sentence apologies on QUOTE TWEETS, PREMIUM,
SMALL-ACCOUNT GROWTH, REPLY QUALITY, FIRST 30-60 MINUTES,
LONG-FORM EXEMPLARS, ARTICLE PREVIEW, LONG-FORM TIMING. One-liners
where possible.
- Regression tests: 5 individual tests → 3 + 2 shared constant arrays
(BANNED_PHRASES, REQUIRED_SIGNALS). Cleaner contract, same coverage.
Schema break (intentional, breaking change in v1.6.8):
- agent_info.algorithm.weights[].{weight, ratio_to_like} REMOVED
- agent_info.algorithm.weights → agent_info.algorithm.signals[].{signal, polarity}
- agent_info.algorithm.time_decay_halflife_minutes REMOVED
- agent_info.algorithm.out_of_network_reply_penalty REMOVED
- engage_inbox.heuristic.{source, source_url, caveat} REMOVED
Downstream agents reading these fields will see undefined / null. Since
v1.6.7's `historical 2023 estimate` strings were never actionable, this
should not regress any real workflow.
Build: 87 unit + 29 integration tests pass; clippy -D warnings clean.
source:"Empirical reciprocity heuristic. The May 15 2026 xai-org/x-algorithm release (home-mixer/scorers/ranking_scorer.rs) does NOT contain a separate `reply_engaged_by_author` signal — the 2023 Twitter open-source heavy-ranker term is absent. Author reply-back remains a powerful relationship loop in practice, but it is not a published algorithm weight in 2026.".into(),
rationale:"Authors who reply back create reciprocal engagement loops, build relationships with high-signal accounts, and accumulate the dwell + follow_author signals that Phoenix DOES weight positively. xmaster prioritises replies where this loop is most likely to fire.".into(),
402
-
caveat:"This is a relationship heuristic, not a published algorithm weight. Use the priority ordering to prioritise which replies to answer first; do not assume a fixed numeric multiplier vs likes.".into(),
393
+
name:"author_reply_back",
394
+
rationale:"Replying back to people who replied to you builds a reciprocal engagement loop and accumulates dwell + follow_author signals. Priority ordering, not a fixed weight.",
message:"External link in tweet body — empirical pattern: links in the body track with materially lower reach (no specific multiplier is coded in the May 15 2026 open-source release; the practical convention is to put the link in a reply)".into(),
188
+
message:"External link in tweet body — links in the body track with lower reach. Put the link in a reply".into(),
209
189
fix:Some("Move the link to a reply instead".into()),
"{} standalone posts in last 24h — xmaster's editorial heuristic flags >4/day as likely diminishing returns (NOT a coded rule in the May 15 2026 source)",
334
+
"{} standalone posts in last 24h — diminishing returns past ~4/day",
362
335
velocity.standalone_24h
363
336
),
364
-
fix:Some("Reply to others instead — replies don't count toward this heuristic and reply-engagement is a top positive Phoenix scorer term".into()),
337
+
fix:Some("Reply to others instead — replies don't count toward the cap".into()),
365
338
});
366
339
score -= 30;
367
340
}elseif velocity.posts_6h >= 3{
368
341
issues.push(Issue{
369
342
severity:Severity::Warning,
370
343
code:"author_diversity_penalty".into(),
371
344
message:format!(
372
-
"{} posts in the last 6h — author_diversity_scorer.rs applies exponential decay for repeated-author candidates per feed pass; extra posts compete with your own earlier ones for diminishing reach",
345
+
"{} posts in the last 6h — author_diversity_scorer.rs decays repeated authors per feed pass",
373
346
velocity.posts_6h
374
347
),
375
-
fix:Some("Wait at least 2 hours between posts — fewer, better posts outperform high volume".into()),
348
+
fix:Some("Wait at least 2 hours between posts".into()),
376
349
});
377
350
score -= 15;
378
351
}elseif velocity.posts_1h >= 1{
379
352
issues.push(Issue{
380
353
severity:Severity::Info,
381
354
code:"recent_post".into(),
382
355
message:format!(
383
-
"You posted {} time(s) in the last hour — empirical pattern: your previous post may still be in its initial traction window. No coded distribution-gate exists in the open-source release",
356
+
"You posted {} time(s) in the last hour — previous post may still be gaining traction",
384
357
velocity.posts_1h
385
358
),
386
-
fix:Some("Consider waiting — posting now may split attention from your previous post's traction window".into()),
359
+
fix:Some("Consider waiting — posting now may split attention".into()),
"Reply is {} chars — short replies score poorly on Grok's reply-quality classifier (grox/classifiers/content/reply_ranking.py) and rarely earn a reply-back, which is an empirically powerful reciprocity loop",
412
+
"Reply is {} chars — short replies rarely earn a reply-back and score poorly on Grok's reply-quality classifier",
440
413
features.char_count
441
414
),
442
415
fix:Some("Expand to 1-2 sentences with a specific detail the author can respond to".into()),
"{} chars — past the 500-2000 empirical dwell sweet spot. Still works as a note tweet, but Article format (cover preview card) typically gets better click-through on long-form content",
461
+
"{} chars — past the 500-2000 dwell sweet spot. Article format typically gets better click-through with a cover card",
498
462
features.char_count
499
463
),
500
-
fix:Some("Trim to <=2000 chars, or publish via the Articles feature for the cover-image preview card. Note: no coded Article boost exists in the May 15 2026 source — this is editorial pattern advice".into()),
464
+
fix:Some("Trim to <=2000 chars, or publish via the Articles feature".into()),
"{} chars — beyond optimal dwell band; readers drop off and the note-tweet preview truncates",
509
473
features.char_count
510
474
),
511
-
fix:Some("Split into 2 long-form posts 2h apart, or publish as a native Article (Premium feature). Note: no coded Article boost exists in the May 15 2026 source — this is editorial pattern advice".into()),
475
+
fix:Some("Split into 2 long-form posts 2h apart, or publish as a native Article".into()),
512
476
});
513
477
score -= 10;
514
478
}
@@ -1108,7 +1072,7 @@ fn suggest_improvements(
1108
1072
Some("replies") => {
1109
1073
if !features.has_question{
1110
1074
suggestions.push(
1111
-
"Add a question — questions are the #1 driver of replies, which is one of the top positive Phoenix scorer terms".into(),
1075
+
"Add a question — questions drive replies, a top positive scorer term".into(),
1112
1076
);
1113
1077
}
1114
1078
if proxies.reply < 0.30{
@@ -1136,7 +1100,7 @@ fn suggest_improvements(
1136
1100
}
1137
1101
Some("shares")if proxies.share_via_dm < 0.15 => {
1138
1102
suggestions.push(
1139
-
"Add practical value (how-to, data, framework) — DM shares are one of the strongest positive Phoenix scorer terms".into(),
1103
+
"Add practical value (how-to, data, framework) — DM shares are a top positive signal".into(),
"agent-info must not claim a 360-minute time-decay halflife — no such function exists in the May 15 2026 source (only AgeFilter binary cutoff + Phoenix learned post-age buckets)"
0 commit comments