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

   ## Summary
   
   - `pr-management-triage` Sweep 4 (stale `ready for maintainer review`) is now
     **court-based**: it strips the label only when the next move to make the PR
     mergeable is the **author's**, and keeps it when the next move is a
     maintainer's (review, merge, workflow approval, CI rerun, branch update).
   - "Maintainer", for the author-silence / active-conversation signals, now 
means
     **committer-team membership or `write`+ permission** — not
     `authorAssociation ∈ {COLLABORATOR, MEMBER, OWNER}` alone.
   - Strips are no longer **silent**: each posts a `stale-ready-label-strip` 
audit
     marker (with the author-facing action folded in), and rotted branches are
     **handed back** to the author rather than auto-closed.
   
   ## Motivation
   
   The old Sweep 4 was inverted from what `ready for maintainer review` means: 
it
   stripped *healthy* stale PRs (4a) and closed *rotted* ones (4b). But a 
healthy,
   author-silent ready PR — especially an approved, mergeable one — is waiting 
on a
   **maintainer**, not the author; de-queuing it is wrong. A rotted branch is 
the
   author's to rebase; jumping to `close` throws away recoverable work.
   
   This surfaced from a real misfire in an adopter (apache/airflow): an 
**approved,
   mergeable** PR had its label silently stripped because the only post-label
   "maintainer" comment was from a **read-only** `COLLABORATOR` (a routing
   `@`-mention) that the old "author silent after a maintainer comment" trigger
   counted as maintainer activity. The silent strip read as a human mistake and
   drew a public "why was this removed?" from the contributor.
   
   Originating adopter override: 
`.apache-magpie-overrides/pr-management-triage.md`
   in apache/airflow.
   
   ## What changed
   
   - **stale-sweeps.md** — Sweep 4 rewritten: entry = stale + quiet; Step A
     re-classifies live; Step B reads the court off the decision-table action;
     strip + author action in one pass + audit marker; rotted → hand back 
(Sweep 2
     retires the truly abandoned).
   - **classify-and-act.md** — new `Maintainer activity` definition;
     `strip-ready-on-downgrade` cross-references the court test.
   - **actions.md** — `strip-ready-label` no longer silent (audit marker + 
coupled
     author action).
   - **comment-templates.md** — new `stale-ready-label-strip` template;
     `stale-ready-label-close` reframed as manual-only.
   - **SKILL.md / rationale.md / session-history.md** — summary, rationale, and
     action-log rows updated.
   
   ## Migration path for existing adopters
   
   No config change and no new knob — the behaviour is universal and better by
   default; the existing `committers_team` config is reused for maintainer
   detection. Adopters pick it up on their next `/magpie-setup upgrade`.
   
   ## Test plan
   
   - `prek run --files <changed>` — all hooks green (markdownlint, lychee,
     skill-and-tool-validate, placeholders).
   - Verified the originating misfire (approved + mergeable + 
read-only-collaborator
     comment) now classifies as maintainer-court → keep label.
   
   Generated-by: Claude Code (Claude Opus 4.8)
   


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