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
/ba:review's own-work path gets the orchestrator's judgment on every finding. The others'-work path gets a severity/confidence threshold and nothing else. Close that asymmetry.
The asymmetry
Own-MR / local scope offers two bulk modes:
Mode
Basis
Accept all recommendations
judgment — a per-finding Apply / Skip / Modify with a one-line reason
Apply Critical + High + Med-conf-100
threshold
Others'-MR (and undetermined authorship) offers only the threshold one:
Post inline comments (all post-gate findings)
Post Critical + High + Med-conf-100
Review one by one (discussion, no recommendation)
Done
The recommendation mechanism is explicitly withheld. From review.md's posting-walk section:
"This posting walk shows no disposition recommendation (the Apply/Skip/Modify recommendation is fix-local only) — it is still for discussion, not applying."
Why the threshold is the weaker instrument here
The spec already argues this, for the local path — the recommended disposition is defined as:
"a fix-quality judgment, not a severity threshold — a clean Medium may be Apply; a High taste-call may be Skip. Severity does not gate eligibility."
That reasoning does not stop being true when the author is someone else. Critical + High + Med-conf-100 cannot tell a clean, mechanical Medium from a High-severity taste call that will read as bikeshedding on a colleague's MR. It sorts by rung and certainty, which are not the axes that decide whether a comment is worth posting.
Concretely, the orchestrator has context the filter cannot see: which findings overlap, which are corroborated vs. single-reviewer, which are speculative-by-self-description, which rest on a repo convention the author may not know, and which are phrased as facts but are really questions.
Two judgment surfaces, both currently mechanical
Worth deciding together, since they are the same defect twice:
1. Which findings to post. The gap above.
2. Which Conventional Comment label each gets.review.md maps severity → label mechanically (Critical → issue (blocking):, High → issue:, Medium → suggestion (non-blocking):, Low → nitpick (non-blocking):). It then lists question:, thought:, and todo: to "use when they fit naturally" — an invitation to judgment that the mechanical table pre-empts. A Medium on someone else's code is frequently better as question: Is this intentional? than as a suggestion:, and that reframing is exactly what makes review on others' work land well.
The design question is not "copy the fix-local mechanism"
Reviewing someone else's work has different stakes, so the judgment is a different judgment and probably needs different dispositions:
Fix-local asks "is this a clean mechanical fix, or a taste call I should leave alone?" — the cost of a wrong Apply is a revert.
Posting asks "is this worth another person's attention, and in what register?" — the cost of a wrong Post is their time and goodwill, and it is not revertible.
So Apply / Skip / Modify likely does not transfer verbatim. Candidate disposition sets to weigh (do not pre-decide):
Post / Hold — the minimal version; a reason line per finding.
Post / Hold / Reframe — where Reframe carries a proposed CC label change (usually to question:), merging surface 2 into surface 1.
Per-finding CC label recommendation only, leaving the post/hold set to the existing filter — the cheapest slice, and it may capture most of the value.
Never-hide. Whatever is recommended-Hold must stay reachable, the same way no reviewer is silently dropped from the selection ledger. A recommendation is a default, not a filter.
The undetermined-authorship path shares this menu. Any change applies to it too — and that path exists precisely because authorship could not be confirmed, so the recommendation must not assume the author is a stranger or the user.
The recommendation is computed at presentation time, no stored field on the finding schema (per the local path's existing design). Keep that.
#44 asks where to set the Medium bar in this same filter, and all four of its options are threshold placements ("Med ≥ 75", reviewer-aware thresholds, a separate clearly-applicable tier, or leave it and lean on escape hatches). This item is a fifth shape: stop leading with a threshold on the remote path.
They interact rather than duplicate. If the posting path gains a judgment mode, the threshold filter becomes a fallback rather than the primary route, which lowers #44's urgency on the remote side without resolving it — #44's constraint that the local Apply filter and the remote Post filter stay in lockstep would also need revisiting, since the local path already has a judgment alternative and the remote path would then too. Resolve the sequencing between the two before either brainstorm.
Origin
Maintainer observation, 2026-07-31: going with C+H+M100 on others' work "doesn't take advantage of the orchestrator's judgment, which might be beneficial."
State: needs-brainstorm · Cluster: review-quality · Hub: #29
/ba:review's own-work path gets the orchestrator's judgment on every finding. The others'-work path gets a severity/confidence threshold and nothing else. Close that asymmetry.The asymmetry
Own-MR / local scope offers two bulk modes:
Others'-MR (and
undeterminedauthorship) offers only the threshold one:The recommendation mechanism is explicitly withheld. From
review.md's posting-walk section:Why the threshold is the weaker instrument here
The spec already argues this, for the local path — the recommended disposition is defined as:
That reasoning does not stop being true when the author is someone else.
Critical + High + Med-conf-100cannot tell a clean, mechanical Medium from a High-severity taste call that will read as bikeshedding on a colleague's MR. It sorts by rung and certainty, which are not the axes that decide whether a comment is worth posting.Concretely, the orchestrator has context the filter cannot see: which findings overlap, which are corroborated vs. single-reviewer, which are speculative-by-self-description, which rest on a repo convention the author may not know, and which are phrased as facts but are really questions.
Two judgment surfaces, both currently mechanical
Worth deciding together, since they are the same defect twice:
1. Which findings to post. The gap above.
2. Which Conventional Comment label each gets.
review.mdmaps severity → label mechanically (Critical →issue (blocking):, High →issue:, Medium →suggestion (non-blocking):, Low →nitpick (non-blocking):). It then listsquestion:,thought:, andtodo:to "use when they fit naturally" — an invitation to judgment that the mechanical table pre-empts. A Medium on someone else's code is frequently better asquestion: Is this intentional?than as asuggestion:, and that reframing is exactly what makes review on others' work land well.The design question is not "copy the fix-local mechanism"
Reviewing someone else's work has different stakes, so the judgment is a different judgment and probably needs different dispositions:
So Apply / Skip / Modify likely does not transfer verbatim. Candidate disposition sets to weigh (do not pre-decide):
question:), merging surface 2 into surface 1.Constraints the brainstorm must respect
review.mdnotes this is "a harness limit, not a style choice." A judgment-based mode has to displace something. The most likely candidate is the threshold filter, which loops directly into [roadmap] /ba:review — recalibrate the "Med-conf-100" posting/apply filter for taste-domain reviewers #44 (see below).undetermined-authorship path shares this menu. Any change applies to it too — and that path exists precisely because authorship could not be confirmed, so the recommendation must not assume the author is a stranger or the user.Relationship to #44
#44 asks where to set the Medium bar in this same filter, and all four of its options are threshold placements ("Med ≥ 75", reviewer-aware thresholds, a separate clearly-applicable tier, or leave it and lean on escape hatches). This item is a fifth shape: stop leading with a threshold on the remote path.
They interact rather than duplicate. If the posting path gains a judgment mode, the threshold filter becomes a fallback rather than the primary route, which lowers #44's urgency on the remote side without resolving it — #44's constraint that the local Apply filter and the remote Post filter stay in lockstep would also need revisiting, since the local path already has a judgment alternative and the remote path would then too. Resolve the sequencing between the two before either brainstorm.
Origin
Maintainer observation, 2026-07-31: going with
C+H+M100on others' work "doesn't take advantage of the orchestrator's judgment, which might be beneficial."