choo121600 opened a new pull request, #175:
URL: https://github.com/apache/airflow-steward/pull/175

   ## Summary
   
   Row 14 of `pr-management-triage`'s decision table (action 
`mark-ready-with-ping`) promotes a PR to
   `ready for maintainer review` and posts a comment that `@`-mentions the 
original reviewer(s), based on
   the `unresolved_threads_only_likely_addressed` heuristic. Although the 
triaging maintainer confirms
   every action, the resulting reviewer mention pushes a notification to 
*other* maintainers whose review
   threads are guessed — not verified — to be addressed. I think this is doing 
more push-notification
   work than the natural label-driven queue requires, and shifts the cost of 
heuristic false-positives
   onto the wrong people.
   
   I'd like to propose splitting Row 14 into a two-step, 
author-confirmation-gated flow.
   
   ## Current behaviour (for reference)
   
   <img width="1021" height="657" alt="image" 
src="https://github.com/user-attachments/assets/70f8642c-441f-483e-ba00-05287f7eb626";
 />
   
   
   - File: `.claude/skills/pr-management-triage/classify-and-act.md`, Row 14
   - Action: `mark-ready-with-ping`
   ([`actions.md`](../blob/main/.claude/skills/pr-management-triage/actions.md))
   - Template: `comment-templates.md § Mark ready with ping`
   - Trigger: `unresolved_threads_only` AND 
`unresolved_threads_only_likely_addressed` (every unresolved
   thread has an in-thread author reply or a post-review commit, and the latest 
commit post-dates the
   most recent thread).
   - Effect on confirm:
     1. Post a comment that `@`-mentions the author and every reviewer with an 
unresolved thread,
   asserting the threads "appear to have been addressed".
     2. Add the `ready for maintainer review` label.
   
   `SKILL.md` Golden rule 1 means the triaging maintainer confirms before 
either mutation runs.
   
   ## Problem
   
   1. **Heuristic is an engagement signal, not a resolution signal.** A 
post-review commit does not
   guarantee the commit addresses the specific thread; an in-thread reply does 
not guarantee the reply
   resolves it (it could be a question or pushback). The triaging maintainer 
confirming the proposal is
   endorsing "the heuristic looks plausible", not "the threads are definitively 
resolved". The comment
   template, however, states "appear to have been addressed" with the original 
reviewer `@`-mentioned —
   the reviewer receives a push notification framed as a stronger claim than 
the underlying evidence
   supports.
   
   2. **The reviewer mention duplicates the label.** Maintainers pull 
review-ready PRs from the `ready
   for maintainer review` queue regardless. Whichever maintainer picks the PR 
up (often the original
   reviewer, sometimes another) can then re-engage with the reviewer in a more 
informed way than the
   bot's heuristic ping. The explicit `@`-mention is an early push notification 
on top of a pull-mode
   queue signal that already exists — useful in the true-positive case (saves a 
day), wasted in the
   false-positive case (pings a reviewer who would have noticed the unresolved 
state themselves once the
   PR came up in queue).
   
   3. **False-positive cost lands on other maintainers.** The triaging 
maintainer pays one quick "is the
   heuristic plausible?" decision; every reviewer mentioned pays a push 
notification and a context-switch
   into a PR that may not actually be ready. The asymmetry is the part I'd like 
to fix.
   
   `rationale.md` already names false-positive promotion as the worse failure 
mode and relies on the
   reviewer pushing back to self-correct on the next sweep. The proposal below 
shifts that correction
   step from the reviewer to the author, where the information lives.
   
   ## Proposed flow
   
   Replace Row 14's single-shot `mark-ready-with-ping` with a two-sweep gated 
path. The triaging
   maintainer still confirms every action; only the *content* of each step 
changes.
   
   **Sweep N (heuristic match):**
   - Action: `request-author-confirmation` (new).
   - Post a comment that `@`-mentions the author only, asking whether they 
believe all review feedback
   has been addressed and the PR is ready for maintainer review.
   - No label, no reviewer mention.
   
   **Sweep N+M (author replied):**
   - New decision-table row matches when the author has commented after our 
confirm-request.
   - Bot surfaces the author's reply to the triaging maintainer alongside the 
proposal.
   - If the maintainer reads the reply as affirmative → action 
`mark-ready-no-ping` (new): add `ready for
   maintainer review` label, no comment, no reviewer mention.
   - If the maintainer reads it as "still working on X" or asks for 
clarification → re-route to plain
   `ping` (Row 15) or skip; heuristic is re-evaluated normally on the next 
sweep.
   
   **Sweep N+K (author silent):**
   - A new stale rule mirrors `stale_ready_label`: if the confirm-request is 
older than the project's
   grace window with no author reply, surface to the maintainer as a 
stale-confirm-request group (typical
   resolution: plain `ping` or close).
   
   ## Cost / benefit
   
   | | Current Row 14 | Proposed |
   |---|---|---|
   | Reviewer push notification (true-positive) | 1 | 0 |
   | Reviewer push notification (false-positive) | 1 (wasted) | 0 |
   | Author push notification | 1 | 1 |
   | Latency from heuristic match → label | immediate | author reply + 1 sweep |
   | Risk of label on a not-actually-ready PR | heuristic-gated | 
author-confirmation-gated |
   | Triaging-maintainer cognitive load per PR | "heuristic plausible?" | 
"author reply affirmative?" |
   
   Trade is one sweep of latency in exchange for removing the reviewer mention 
path entirely and routing
   label application through an explicit author confirmation. The "reviewer 
mention saves a day in
   true-positive cases" benefit is real but small — the PR still reaches the 
same reviewer through the
   label queue, just one sweep later.
   
   I may be overweighting the notification-cost side of this trade-off, so I'd 
be interested in how other
   maintainers think about the current reviewer-ping behaviour.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to