This is amazing, Kaxil! Thank you! Thanks & Regards, Amogh Desai
On Wed, Feb 25, 2026 at 9:38 PM Vincent Beck <[email protected]> wrote: > Very much needed! Thank you Kaxil! > > On 2026/02/25 08:16:47 Jarek Potiuk wrote: > > Very cool :). > > > > On Wed, Feb 25, 2026 at 4:14 AM Kaxil Naik <[email protected]> wrote: > > > > > Hey all, > > > > > > tl;dr: AI coding tools now get proper Airflow guardrails via > AGENTS.md, and > > > Copilot code review will automatically flag common mistakes in PRs -- > > > including AI-slop patterns as long as we add Copilot as reviewer. > > > > > > We've been getting more AI-generated PRs lately, and reviewers keep > > > catching the same things: N+1 queries, architecture boundary > violations, > > > assert in production code, fabricated diffs, etc. I wanted to automate > > > that. > > > > > > I've been using AGENTS.md (CLAUDE.md , Cursor rules, skills and such) > with > > > Cursor, Claude Code, and Copilot and various other AI harnesses since > last > > > year and have iterated on it many times. Three PRs landed today: > > > > > > - https://github.com/apache/airflow/pull/62440 -- AGENTS.md > overhaul. > > > Replaced the sparse doc-index with concrete guidance: environment > setup, > > > architecture boundaries, coding/testing standards, commit > conventions. > > > Added nested AGENTS.md for Execution API (Cadwyn versioning) and > > > providers. > > > - https://github.com/apache/airflow/pull/62442 -- Copilot code > review > > > instructions. Added .github/instructions/ > code-review.instructions.md > > > scoped to review only. Covers architecture violations, N+1 queries, > > > run_id > > > scoping, unbounded caches, and AI-slop signals (fabricated diffs, > > > narrating > > > comments, over-engineered solutions, etc.). > > > - https://github.com/apache/airflow/pull/62443 -- Symlink > CLAUDE.md to > > > AGENTS.md so Claude Code reads the same file. > > > > > > To validate the Copilot instructions, I opened a test PR ( > > > https://github.com/apache/airflow/pull/62447) with 8 deliberately > planted > > > violations. Copilot caught all 8: > > > > > > 1. N+1 query (loop calling get_task_instances() per dag run) > > > 2. time.time() instead of time.monotonic() > > > 3. assert in production code > > > 4. Unbounded @lru_cache (no maxsize) > > > 5. run_id query without dag_id > > > 6. Narrating comments > > > 7. Import inside function body > > > 8. No tests for new behavior > > > > > > This won't replace human review, but should save time on mechanical > > > catches. If you have patterns you'd like Copilot to flag, PRs to > > > .github/instructions/code-review.instructions.md are welcome. > > > > > > Regards, > > > Kaxil > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
