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

   ## Summary
   
   - Restructure PR triage from per-page interactive loop to fetch-all → 
classify-once → present-groups. Step 1 walks every page until 
`hasNextPage=false` without prompting; Step 2 classifies the full set; Step 3 
forms groups that span the entire queue.
   - A `mark-ready` group can carry 30+ PRs across what was previously six 
pages — one screen, one decision.
   - Add `Bash(gh api graphql *)` to `permissions.allow` (in 
`.claude/settings.json`, `tools/sandbox-lint/expected.json` baseline, and the 
isolation-setup template at `docs/setup/secure-agent-setup.md`) so the 
read-only fetch loop bypasses the `-F`/`-f` ask rules. Mutations still hit ask.
   
   ## Why
   
   The per-page loop forced context-switching between action classes 
(mark-ready on page 1, draft on page 2, back to mark-ready on page 3, …) and 
required maintainer attention throughout the long fetch phase. Running the 
skill against the Apache Airflow queue (200+ open PRs) made the cost visible — 
maintainer attention was the bottleneck, not GraphQL budget.
   
   Fetching everything up front lets the maintainer walk away during the long 
fetch, then come back to one batched decision per action class.
   
   ## Out of scope
   
   `issue-triage` and `security-issue-triage` would benefit from the same 
refactor; left untouched here to keep this PR's scope tight.
   
   ## Test plan
   
   - [ ] `skill-and-tool-validate` exits 0 (verified locally on the touched 
files; pre-existing soft warnings in unrelated skills are not introduced here).
   - [ ] `pytest (sandbox-lint)` passes — `expected.json` baseline updated in 
lockstep with `.claude/settings.json`.
   - [ ] Run a triage pass on a small queue (e.g. `triage 
label:area:scheduler`) to confirm the fetch loop ends cleanly and groups 
present across the result set.
   - [ ] Confirm `gh api graphql *` calls during the fetch loop no longer 
prompt under the new allow rule.


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