potiuk opened a new pull request, #414: URL: https://github.com/apache/airflow-steward/pull/414
## Summary - Bulk sync (`sync all`, `sync announced`, etc.) currently dispatches a full subagent per resolved tracker — ~50 KB of transcript apiece — even when the tracker is in steady state and the subagent's whole report is empty. - This change inserts a **Step 1b pre-flight classifier** between selector-resolution and subagent dispatch. One batched `gh api graphql` round-trip fetches `state` / `closedAt` / `updatedAt` / `labels` / last-comment for every resolved issue at once (aliased multi-field query: ~3 KB request, ~6 KB response for 30 issues). A conservative rule table classifies each as `dispatch` / `dispatch-urgent` / `skip-noop`; only the non-skipped ones get subagents. - Expected savings on a 20-tracker bulk sweep where ~30-50% are idle: 6-10 fewer subagents × ~50 KB = ~300-500 KB of context per sweep. ## Safety - **Conservative rules** — `skip-noop` fires only when multiple signals align (closed AND age AND label set AND inactive comment AND bot last commenter). - **7-day `updatedAt` override** — never skip a tracker with recent activity, regardless of other signals. - **Set-resolving selectors only** — `sync #232, #233` (explicit numbers) never skips. Pre-flight applies to `sync all` / `sync announced` / label / title selectors. - **Never silent** — every skip appears in the proposal's *"Pre-flight skipped"* group with the rule that fired. The user can `force-sync <N>` any of them at confirmation. - **`--no-preflight`** opts out entirely. ## What this PR does NOT do - It does **not** decide *what action* a tracker needs — still the subagent's job. Pre-flight only decides whether spawning the subagent is worth it. - No Python tool added; the orchestrator builds the GraphQL query inline per the documented recipe. Rules can be tuned by editing the table. ## Test plan - [x] `lychee` on the edited file — clean - [x] `skill-and-tool-validate` — no new violations - [x] `prek` (markdownlint, typos, format, trailing whitespace) — green - [ ] CI lychee + tests-ok on this PR - [ ] Try a real `sync all` after merge to see the classifier in practice; tune rules if needed 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- 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]
