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

   ## Summary
   
   Three related improvements to the "respect active conversations" logic in 
`classify-and-act.md`, all prompted by misclassifications hit during a triage 
sweep on `apache/airflow`:
   
   1. **F5a (author cooldown) should consider review-thread comments**, not 
just general issue comments. A maintainer asking a clarifying question in a 
review thread is just as much an active conversation as a top-level comment, 
but the existing definition only looked at `comments(last:10)`. PRs where a 
maintainer was actively replying in-thread (within the 72h cooldown, after the 
author's last commit) were classified as `ping` / `mark-ready-with-ping` and 
would have produced auto-comments that talked over the live conversation.
   
   2. **F5b (maintainer-to-maintainer ping)** has the same gap and the same fix.
   
   3. **Row 18 `follow_up_ping` should also be true when the author pushed 
within the last 24h.** The push itself is the follow-up — the author is still 
actively working through the reviewer's feedback. Pinging immediately reads as 
the bot rushing them. 24h is the shortest gap that lets the author finish a 
fixup-and-push cycle without an interruption.
   
   ## Empirical evidence
   
   During a triage sweep on `apache/airflow` today, four PRs needed manual 
override skips because the classifier didn't see the in-thread maintainer 
activity:
   
   - **#65943** (@diogosilva30): @jscheffl (MEMBER) had posted a follow-up 
review-thread comment (~64h ago) — classifier picked `mark-ready-with-ping`. 
Manual skip required.
   - **#66469** (@Suraj-kumar00): the maintainer running the skill (@potiuk) 
had reviewed with 8 threads ~17h ago. Classifier picked `ping`. Manual skip 
required (auto-pinging from your own account on your own freshly-left review is 
awkward).
   - **#66658** (@SameerMesiah97): same shape — @potiuk's threads ~14h ago. 
Manual skip required.
   - **#64943** (@Prab-27): @bugraoz93 + author had a back-and-forth ~21h ago, 
author pushed 9h ago. Classifier picked `ping` because `follow_up_ping` only 
checked for *comments* after the push, not the push itself. Manual skip 
required.
   
   One PR also needed override on the row-18 fresh-push side:
   
   - **#65469** (@Pyasma): author pushed 0d ago, no follow-up comment yet. 
Classifier suggested `ping`. The author was clearly mid-cycle — pushing the 
fix, follow-up comment likely incoming. (We posted the ping anyway in this case 
but it was borderline.)
   
   ## Changes
   
   `classify-and-act.md`:
   
   - **F5a / F5b**: spell out that the "most recent comment" union includes 
both `comments(last:10)` and `reviewThreads.nodes.comments`. F5b's "have they 
replied?" check also extends to review-thread comments.
   - **`follow_up_ping`**: add a third resolving signal — author's most recent 
commit < 24h old. The push is the follow-up.
   - **Required GraphQL fields** table: bump F5a/F5b/F6 row and Row 18 row to 
mention `reviewThreads.nodes.comments(first:5).nodes.{...}`. Already populated 
by the existing batch query (used for unresolved-thread classification), so no 
new query needed — only the documentation contract needs updating.
   
   ## Test plan
   
   - [x] Re-walked the 4+1 misclassified PRs above with the updated logic. All 
5 now classify correctly (4 → skip via F5a, 1 → skip via follow_up_ping 
fresh-push branch).
   - [x] No other classifications change (verified across the 12-page session 
sample).
   - [x] `prek run --files` passes (markdownlint, skill-validate, typos, etc.).
   - [x] No new GraphQL fields required — `reviewThreads.nodes.comments` is 
already fetched by the per-page batch query for unresolved-thread 
classification.
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes — Claude Code (Opus 4.7)
   
   Generated-by: Claude Code (Opus 4.7) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)


-- 
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