The GitHub Actions job "prek" on airflow-steward.git/feat-labels-and-capabilities-taxonomy has succeeded. Run started by GitHub user potiuk (triggered by potiuk).
Head commit for run: b8bb856231fa574ee6357c731dd36212f8d13edb / Jarek Potiuk <[email protected]> feat(labels): capability taxonomy + validator enforcement + sync check Introduce a canonical capability taxonomy for the framework, enforce it in the validator, and add a sync-check that keeps the docs and the live source aligned. == Taxonomy == Nine `capability:*` buckets orthogonal to the existing `area:*` labels: triage, review, fix, intake, reconciliation (new — covers #337's ASF-dashboard step), resolve, reassess, stats, setup. Skills and tools may carry more than one capability when they genuinely span lifecycle phases — `security-issue-fix` is fix+resolve, `setup-isolated-setup-doctor` is setup+reassess, `cve-org` is resolve+intake, etc. docs/labels-and-capabilities.md is the canonical reference: label- dimension definitions, capability bucket definitions, per-skill map for all 30 skills, per-tool map for all 18 tools. == Rule == AGENTS.md states the rule: every issue, PR, new tool, new skill, and (where applicable) new doc declares its capabilities. - Issues / PRs: `area:*` + every applicable `capability:*` label. - New tools: `**Capability:** capability:NAME` (or `capability:NAME + capability:NAME` for multi-value) in the README first paragraph. - New skills: `capability:` in SKILL.md frontmatter — single string or YAML list form. `setup-override-upstream` now picks both labels before opening a framework PR. `write-skill` requires the new frontmatter field on every new-skill scaffold. == Backfill == - All 30 existing skills got `capability:` added to their frontmatter via a one-shot script aligned with the per-skill map. - 10 existing tool READMEs got a `**Capability:**` line. - 8 tools without a README got a minimal stub README declaring capability + pointing at existing internal docs. == Validator (renamed skill-validator -> skill-and-tool-validator) == The validator outgrew its name. Renamed the directory, the Python module, the CLI entry point (`skill-validate` -> `skill-and-tool-validate`), and updated every cross-reference (.asf.yaml, .pre-commit-config.yaml, dependabot.yml, tests.yml, CONTRIBUTING.md, write-skill, init_skill.py). New checks: - `capability` is now in REQUIRED_FRONTMATTER_KEYS. Validates both single-string and YAML-list forms; rejects values outside the 9-bucket taxonomy. - `validate_tools()` — every `tools/<name>/` must have a README declaring its capabilities. Both "missing README" and "missing capability line" are HARD violations. - `validate_capability_sync()` — compares the two tables in docs/labels-and-capabilities.md against the live frontmatter + tool README declarations, bidirectionally. Drift in either direction is a HARD violation. Italic-parenthetical future-state notes (`*(+ capability:X once #N lands)*`) are stripped before comparison so the doc can flag planned capabilities without tripping the check. Prek hook trigger expanded so the sync check fires on `tools/*/README.md` and `docs/labels-and-capabilities.md` changes, not just skill files. == Tests == 12 new tests across 3 classes — single + list + missing + invalid + list-with-invalid for the frontmatter check; valid + missing- readme + missing-cap + invalid + multi-value + regex regression guard for the tool check; aligned + skill-doc-no-live + live-skill- no-doc + skill-mismatch + tool-doc-no-live + live-tool-no-doc + italic-parens for the sync check. All 218 tests green. Generated-by: Claude Code (Opus 4.7) Report URL: https://github.com/apache/airflow-steward/actions/runs/26507071554 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
