Subham-KRLX opened a new pull request, #64012: URL: https://github.com/apache/airflow/pull/64012
PoC for #62500 — Airflow Contribution and Verification Agent Skills GSoC 2026. ## Approach This PoC prioritises a **clean, reviewable pipeline** over breadth of skills. It treats the skill format itself as an open question — finalising two well-tested skills and a production-quality sync mechanism before scaling to more. ## What's included **[scripts/ci/prek/breeze_context.py](cci:7://file:///Users/subhamsangwan/airflow/scripts/ci/prek/breeze_context.py:0:0-0:0)** — [BreezieContext](cci:2://file:///Users/subhamsangwan/airflow/scripts/ci/prek/breeze_context.py:60:0-212:22) API Detects host vs Breeze vs Podman via 4-step priority chain: `BREEZE_HOME` → `/.dockerenv` → `/.containerenv` → `/opt/airflow` → host [get_command(skill_id, **kwargs)](cci:1://file:///Users/subhamsangwan/airflow/scripts/ci/prek/breeze_context.py:146:4-212:22) returns the correct command for the current context. `--force-context` flag overrides auto-detection for testing. **[.github/skills/breeze-contribution/SKILL.md](cci:7://file:///Users/subhamsangwan/airflow/.github/skills/breeze-contribution/SKILL.md:0:0-0:0)** — structured skill source Two core contributor workflows: - `run-static-checks` → `prek run` (same in both contexts; prek is installed in Breeze) - `run-unit-tests` → `uv run pytest` on host / `breeze exec pytest` inside Breeze **[scripts/ci/prek/extract_breeze_contribution_skills.py](cci:7://file:///Users/subhamsangwan/airflow/scripts/ci/prek/extract_breeze_contribution_skills.py:0:0-0:0)** — extraction pipeline Scans fenced [json](cci:7://file:///Users/subhamsangwan/airflow/scripts/ci/prek/draft7_schema.json:0:0-0:0) blocks, validates required fields and parameter schemas, writes normalised [skills.json](cci:7://file:///Users/subhamsangwan/airflow/.github/skills/breeze-contribution/skills.json:0:0-0:0). Fails fast with actionable error messages. **[scripts/ci/prek/validate_skills.py](cci:7://file:///Users/subhamsangwan/airflow/scripts/ci/prek/validate_skills.py:0:0-0:0)** — drift detection prek hook `--check` exits 1 if [SKILL.md](cci:7://file:///Users/subhamsangwan/airflow/.github/skills/breeze-contribution/SKILL.md:0:0-0:0) and [skills.json](cci:7://file:///Users/subhamsangwan/airflow/.github/skills/breeze-contribution/skills.json:0:0-0:0) diverge. `--fix` regenerates. Wired into pre-commit so CI catches drift automatically. **`scripts/tests/`** — 27 tests Unit, integration, and edge-case coverage: context detection (all 5 markers), extraction (valid/malformed/empty/duplicate), drift detection, parameter validation, 50+ skills stress test. ## Design decisions **Why SKILL.md and not contributing-docs as source of truth (yet)?** The format of agent-skill blocks is still being established. A standalone `SKILL.md` lets the format be reviewed and iterated without coupling it to existing contributor docs that are read by humans. Once the block format stabilises, embedding skills directly into `contributing-docs/*.rst` is the natural next step — and the extraction pipeline supports that without any changes to the drift-check contract. **Why 2 skills, not more?** Two well-specified, well-tested skills are more useful as a baseline than nine under-specified ones. Each skill has a full parameter schema, `success_criteria`, `prerequisites`, and tests covering both contexts. ## Pre-PR checklist - [x] 27/27 tests passing - [x] Zero lint errors (`ruff check`) - [x] Zero format issues (`ruff format --check`) - [x] Drift detection (`✓ Skills in sync`) - [x] Clean working tree closes: #62500 --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Gemini (Code Research and pr Description) -- 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]
