Skip to content

feat: Breeze-aware AI agent skills system (GSoC 2026 PoC)#64012

Draft
Subham-KRLX wants to merge 4 commits into
apache:mainfrom
Subham-KRLX:poc/breeze-contribution-skills-poc
Draft

feat: Breeze-aware AI agent skills system (GSoC 2026 PoC)#64012
Subham-KRLX wants to merge 4 commits into
apache:mainfrom
Subham-KRLX:poc/breeze-contribution-skills-poc

Conversation

@Subham-KRLX

@Subham-KRLX Subham-KRLX commented Mar 20, 2026

Copy link
Copy Markdown
Contributor

Problem

AI coding tools like Claude Code, Gemini CLI, and Cursor treat Apache Airflow as a generic Python repository. They don't understand the boundary between the host OS and the Breeze container which causes real failures in contributor workflows.

Running pytest on the host fails because PostgreSQL binaries aren't there. Running git commit inside Breeze fails because .git is not mounted. When commands fail silently agents start hallucinating fixes for bugs that don't exist.

Solution

This PR adds a machine-readable library of contributor workflows following the agentskills.io specification. It gives AI tools a clear map of what to run where to run it and what to avoid.

breeze_context.py detects whether code is running on the host or inside Breeze using a simple chain: BREEZE_HOME → .dockerenv → /opt/airflow. It also blocks host-only operations like git add from running inside the container.

.agents/skills/ contains 3 skills covering testing, staging, and linting. Each skill tells the agent exactly which command to use depending on context.

validate_skills.py is a pre-commit hook that checks every skill file follows the correct structure. It handles Airflow's SPDX license headers so the two systems don't conflict.

AGENTS.md → CONSTITUTION.md → .agents/skills/ forms a three-level hierarchy: short entrypoint, full rules, then context-aware execution.

The norecursedirs fix in pyproject.toml, airflow-ctl, and task-sdk resolves a SystemExit: 1 test collection error caused by pytest scanning dev/ directories it shouldn't touch.

Verification Proof:

✅ 14/14 scripts tests passing (context detection, command routing, guardrails, edge cases)
✅ 15 files changed all PoC-specific no unrelated changes
✅ ruff format and ruff check clean on all new Python files
✅ validate_skills.py all 3 skills conform to agentskills.io standard

closes: #62500

Was generative AI tooling used to co-author this PR?
Yes — Claude(Code Research and PR Sanitization)

@Subham-KRLX

Subham-KRLX commented Mar 26, 2026

Copy link
Copy Markdown
Contributor Author

I have successfully addressed a compatibility edge-case between Airflow’s mandatory insert-license hook and the Agent Skills validator. In the latest commit, I refined validate_skills.py to gracefully ignore the SPDX headers added to .md files, ensuring the system remains strictly compliant with both the Apache Airflow licensing standards and the Agent Skills specification. This refined logic, combined with my PR sanitization and commit squash, brings the proposed Agent Skills system into a production-ready state with all 323 local tests (covering context detection, command routing, and scenario validation) currently passing 100%.

@Subham-KRLX Subham-KRLX force-pushed the poc/breeze-contribution-skills-poc branch 2 times, most recently from 250038c to 67a96a1 Compare March 26, 2026 03:27
@Subham-KRLX Subham-KRLX force-pushed the poc/breeze-contribution-skills-poc branch 5 times, most recently from b27c8a5 to 8b83e5b Compare April 21, 2026 12:31
@Subham-KRLX

Subham-KRLX commented Apr 21, 2026

Copy link
Copy Markdown
Contributor Author

Updated CONSTITUTION.md to include the full Commands section that was missing it now contains all uv run, breeze testing, breeze run, and prek commands alongside the host/Breeze boundary table this completes the AGENTS.md (short entrypoint) → CONSTITUTION.md (full rules + commands) → .agents/skills/ (context-aware execution) hierarchy as described in the proposal.

@Subham-KRLX Subham-KRLX force-pushed the poc/breeze-contribution-skills-poc branch 7 times, most recently from 96205c2 to 1978089 Compare April 24, 2026 15:35
@Subham-KRLX

Copy link
Copy Markdown
Contributor Author

The recurring AGENTS.md conflict is expected this PR adds the .agents/skills/ section to it and main keeps expanding the same file resolution is always to keep this PR's short entrypoint version. Happy to re-sync as needed.

Comment thread airflow-ctl/pyproject.toml Outdated
Comment thread chart/files/statsd-mappings.yml
Comment thread scripts/ci/prek/breeze_context.py Outdated
Comment thread scripts/ci/prek/breeze_context.py Outdated
Comment thread pyproject.toml Outdated
Comment thread .agents/skills/run-unit-tests/SKILL.md Outdated
Comment thread .agents/skills/stage-changes/SKILL.md Outdated
Comment thread AGENTS.md
Comment thread scripts/ci/prek/breeze_context.py
@potiuk

potiuk commented May 1, 2026

Copy link
Copy Markdown
Member

Comments added - also there are conflicts to solve.

@potiuk

potiuk commented May 26, 2026

Copy link
Copy Markdown
Member

@Subham-KRLX A few things need addressing before review — see our Pull Request quality criteria.

  • Pre-commit / static checks. See docs.

No rush.


Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you.


Drafted-by: Claude Code (Opus 4.7); reviewed by @potiuk before posting

@potiuk

potiuk commented Jun 25, 2026

Copy link
Copy Markdown
Member

@Subham-KRLX — I've removed the ready for maintainer review label because the next step here is yours: this branch now has merge conflicts with main. It'll go back into the maintainer queue automatically once you rebase onto the latest main and push — no need to re-add the label by hand. There's no rush.

Automated triage note drafted by an AI-assisted tool — may get things wrong; a real Apache Airflow maintainer takes the next look once it's green. (why automated)


Drafted-by: Claude Code (Opus 4.8); reviewed by @potiuk before posting

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[GSOC 2026] Airflow Contribution & Verification Agent Skills

5 participants