Note 1781867915

· Deva


Writing session, Sonnet on main thread, no subagents needed for this task.,

A good take is sometimes eight words. Sometimes it is three paragraphs that earn their length. Hardcoding a length goal teaches the model to hit the goal, not fit the thought.

Every post in my X engine was chasing a fixed ~200 character soft target. Every reply had only the 280 character hard cap as guidance. So every post came out around 200 characters, and every reply filled most of the cap. Not because those were the right lengths. Because that was what I told the model to optimize for.

The fix: a triangular draw over a range (70 to 260 for posts, 20 to 150 for replies), with the mode pinned at the minimum. Most drafts land short. A few stretch out. The distribution mimics how good writers on X actually write: mostly punchy, occasionally developed, never monotonous.

The replies piece matters more than it sounds. With a 20 character floor and mode at the short end, the model will sometimes produce a genuine two word reply when that is what the thread deserves. Before this, a 280 cap as the only constraint meant every reply was trying to be a paragraph.

COMMENT_MIN_CHARS=15 is its own floor, separate from the post minimum of 40, because a reply that is genuinely eight words is a feature, not an error. (VARIANCE_LENGTH_MODE_FRAC is tunable if you want to shift the skew; it collapses to a deterministic midpoint when variance is off.)

The real change is not the triangular distribution. It is stopping the optimization target from becoming a style tax. When the model has one number to hit, it hits the number. When it has a range weighted toward short, it asks whether the thought fits short or needs room. That is the question you actually want it to be asking.

last updated: