The GitHub Actions job "tests" on 
airflow-steward.git/feat-labels-and-capabilities-taxonomy has failed.
Run started by GitHub user potiuk (triggered by potiuk).

Head commit for run:
08272f0520af15cabf97df016a2edcb3756a0775 / 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/26506047316

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to