diff --git a/packages/cli/src/commands/review/compose-review.test.ts b/packages/cli/src/commands/review/compose-review.test.ts index 475399226ca..0bdd895549d 100644 --- a/packages/cli/src/commands/review/compose-review.test.ts +++ b/packages/cli/src/commands/review/compose-review.test.ts @@ -7557,7 +7557,8 @@ describe("composeReview — the composed body fits GitHub's limit", () => { // `contextUnavailableClause` is `keep: 1` so the rung-3 cut spends // blockers before the diff-only trust warning; no truncation fixture // carried the clause, so deleting the tag shipped green — the untagged - // clause sorted to rank 3 and the cut spent the warning first. + // clause sorted to `keep` 3 (the cut's axis, not a `trim` rank) and the + // cut spent the warning first. const r = composeReview( base({ criticalsInline: 1, @@ -9384,9 +9385,9 @@ describe('convergence diagnosis reaches the POSTED body', () => { // against a 56,830-character budget. Shed early it could pay for at // most 4% of an overflow, so any overflow bigger than itself spent it // AND went on to spend the disclosures — and the rounds this fires on - // are the high-volume ones where that is the normal case. It is rank 3 - // now: the last rank to go, because it is the cheapest to keep and the - // only one whose reader is the PR author alone. + // are the high-volume ones where that is the normal case. It is trim + // rank 3 now: the last rank to go, because it is the cheapest to keep + // and the only one whose reader is the PR author alone. // // The blocker is sized to land in the window where the ladder sheds // rank 2 and stops. To retune after a body-copy change: raise it until @@ -9424,9 +9425,9 @@ describe('convergence diagnosis reaches the POSTED body', () => { // notice say so instead of the paragraph vanishing silently. // // Sized one rung past the test above: the ladder sheds rank 2, still - // does not fit, sheds rank 3, and stops before the hard cut. To retune: - // raise it until `Convergence:` disappears, and stop before `TRUNCATED` - // appears. + // does not fit, sheds trim rank 3, and stops before the hard cut. To + // retune: raise it until `Convergence:` disappears, and stop before + // `TRUNCATED` appears. sideFile({ round: 4, posted: 9, diff --git a/packages/cli/src/commands/review/compose-review.ts b/packages/cli/src/commands/review/compose-review.ts index f38505ecaa8..ebf3db0ffc9 100644 --- a/packages/cli/src/commands/review/compose-review.ts +++ b/packages/cli/src/commands/review/compose-review.ts @@ -858,7 +858,7 @@ export interface ComposeReviewResult { * not-reviewed disclosures (the model's own inputs), a diagnosis derived * from the side file has no other copy anywhere. Ranking it last does not * retire this copy — it makes it the one that matters, because the rounds - * that reach rank 3 are the rounds that shed everything. + * that reach trim rank 3 are the rounds that shed everything. */ convergence?: { en: string; zh: string }; /** @@ -3367,7 +3367,7 @@ function composeReviewBody( * last-resort path drops ranks AND cuts, and a stderr record naming only * the cut leaves the kinds it dropped disclosed nowhere but the body. * Rank 1 has a second durable copy (each deferral is a `D-` - * entry in the findings artifact) and rank 3 has one too (the composed + * entry in the findings artifact) and trim rank 3 has one too (the composed * result carries the paragraph, and the command prints it as * `CONVERGENCE:`); a trimmed disclosure section survives nowhere but the * terminal summary, so ask for it there rather than pointing at an @@ -3823,8 +3823,12 @@ function composeReviewBody( cannotTell.length === 0 ? [] : [ - // Deliberately untagged (rank 3, spent first by the last-resort - // cut). These entries are open blockers the review could not + // Deliberately untagged, so `keep` defaults to 3 and the + // last-resort cut spends it first. That 3 is the CUT's axis, not a + // `trim` rank — the two share the number and mean opposite things: + // `trim: 3` is the LAST rank the ladder sheds, while `keep: 3` is + // the FIRST thing the cut below the ladder spends. + // These entries are open blockers the review could not // clear — and every one of them was DELIVERED to the author in // the round that raised it, where this round's body Criticals are // the only copy that exists. So when the cut has to choose, it @@ -5263,8 +5267,9 @@ export const composeReviewCommand: CommandModule = { // (findings artifact) or the not-reviewed disclosures (the model's own // inputs) it has no other copy anywhere — so the notice's "read them in // the terminal report" was a false record until this line existed. Last - // does not mean safe: a body that reaches rank 3 has already shed every - // other rank, which is exactly when this line is the only copy left. + // does not mean safe: a body that reaches trim rank 3 has already shed + // every other rank, which is exactly when this line is the only copy + // left. if (result.convergence) { writeStderrLine(`CONVERGENCE: ${result.convergence.en}`); }