pub(crate) fn successor_counts(
messages: &[Message],
predecessor_reads: &[String],
) -> HandoffSuccessorExpand description
How the successor’s first turns went, from its own transcript.
The first user row is the brief forge gave it, not a turn of its own, so it is skipped - and it must be, because the judgment half can carry a “do not” rule that would otherwise read as a correction. A reply the user typed later is measured for correction cues; the count is a proxy, and the anchor is that it only ever counts words a person wrote.