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]

Reply via email to