CtrlK
BlogDocsLog inGet started
Tessl Logo

upgrade-fab-provider

Upgrade the pinned Flask-AppBuilder (FAB) dependency in the Apache Airflow FAB provider (`providers/fab/`). Bumps the exact `flask-appbuilder==` pin and its mirror constant, regenerates `uv.lock`, drives the `test_fab_alignment.py` drift tripwire, reviews the vendored security-manager `override.py` against the new upstream FAB, and conditionally re-vendors static assets / DB migrations. Use when asked to "upgrade FAB", "bump flask-appbuilder", or move the FAB provider to a newer Flask-AppBuilder release.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A high-quality, deeply actionable skill body: every step carries exact paths, commands, and failure-mode-specific fixes, with strong validation loops. The main improvements are trimming redundancy between the Gotchas/Worked Example and the procedure, and offloading the worked example to a reference file.

Suggestions

Move the 'Worked example — 5.2.1 to 5.2.2' section into a separate reference file (e.g. references/worked-example.md) and keep a one-line pointer plus its core lesson in SKILL.md, reducing body length and redundancy with Step 5.

Write out the full test path in the fallback pytest command (replace `providers/fab/tests/.../test_fab_alignment.py` with the complete path given earlier) so every command block is copy-paste ready.

Consolidate the Gotchas with the steps they restate (e.g. the README/uv.lock gotchas largely repeat Steps 4 and 8) to remove repeated guidance and tighten token usage.

DimensionReasoningScore

Conciseness

The body is dense with repo-specific facts Claude cannot know (pinned-uv regeneration, `AUDITED_EXCLUSIONS`, per-commit README sync) with no basic-concept padding — efficient, matching the 4 anchor. It falls short of 5 because the Worked Example and several Gotchas restate guidance already in Steps 4–5, and version-specific details (PR #66841, 5.2.1/5.2.2) are not quarantined in a clearly separated examples section.

4 / 5

Actionability

Guidance is overwhelmingly executable — exact file paths with line numbers, copy-paste `uv`/`pytest`/`prek` commands, and per-test failure→fix mappings. Scored 4 rather than 5 because one fallback command block abbreviates the path as `providers/fab/tests/.../test_fab_alignment.py`, so not every block is literally copy-paste ready.

4 / 5

Workflow Clarity

Nine explicitly sequenced steps with validation checkpoints and feedback loops throughout: a drift tripwire test with named failure modes and fixes per test, 'Re-run the alignment test until all four tests pass', the pre-commit stage, and a `git diff main...HEAD` self-review before commit. This matches the 5 anchor (explicit validation, error-recovery loops) and satisfies the batch-operation requirement for validation.

5 / 5

Progressive Disclosure

The single-file skill is well-sectioned (coupling, files, procedure, gotchas, worked example) with clear headers and one-level navigation — good structure per the 4 anchor. Not 3, because organization is genuinely clear; not 5, because at ~270 lines the worked example and detailed test-fix guidance are candidates for a separate reference file, keeping SKILL.md as a leaner overview.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete and comprehensive on capabilities, with explicit, naturally-phrased trigger guidance and zero conflict risk. Written in third person imperative style consistent with the good examples.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions — "Bumps the exact `flask-appbuilder==` pin and its mirror constant, regenerates `uv.lock`, drives the `test_fab_alignment.py` drift tripwire, reviews the vendored security-manager `override.py`, and conditionally re-vendors static assets / DB migrations" — giving comprehensive, non-generic coverage of the whole workflow. It matches the 5 anchor (multiple specific concrete actions, comprehensive) and not 4, since no meaningful action in the workflow is left unnamed.

5 / 5

Completeness

It explicitly answers both questions: a concrete 'what' (the full bump/reconcile workflow) and an explicit 'Use when...' clause with concrete trigger phrases. This matches the 5 anchor exactly; the 4 anchor ('when' could be more explicit) does not apply since the trigger phrases are quoted and specific.

5 / 5

Trigger Term Quality

Triggers read as natural user phrasings with synonyms: "Use when asked to 'upgrade FAB', 'bump flask-appbuilder', or move the FAB provider to a newer Flask-AppBuilder release" — covering upgrade/bump/move and FAB/Flask-AppBuilder variants. This is comprehensive synonym coverage per the 5 anchor, not merely 'good coverage with a few missing' as at 4.

5 / 5

Distinctiveness Conflict Risk

The description is scoped to a single repo artifact (the Apache Airflow FAB provider's pinned `flask-appbuilder==` dependency) with triggers that could not plausibly fire for any other skill — a clear niche with minimal conflict risk, matching the 5 anchor.

5 / 5

Total

20

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

referenced_paths_exist

Referenced path issues: 1 missing, 1 deeper-than-1-level

Warning

Total

15

/

16

Passed

Repository
apache/airflow
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.