CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

airflow-plugins

Builds Airflow 3.1+ plugins that embed FastAPI apps, custom UI pages, React components, middleware, macros, and operator links directly into the Airflow UI. Use when building anything custom inside Airflow 3.1+ that involves Python and a browser-facing interface - creating an Airflow plugin, adding a custom UI page or nav entry, building FastAPI-backed endpoints inside Airflow, serving static assets from a plugin, embedding a React app, adding middleware to the API server, creating custom operator extra links, or calling the Airflow REST API from inside a plugin; also when AirflowPlugin, fastapi_apps, external_views, react_apps, or plugin registration come up.

74

Quality

93%

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

85%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 highly actionable, well-sequenced skill with executable code and strong validation/error-recovery guidance, weakened only by its monolithic single-file layout. Splitting the Step 5 API-pattern catalog and secondary component details into reference files would fix the progressive-disclosure gap without losing anything.

Suggestions

Move the Step 5 endpoint-pattern catalog (trigger/pause/delete, DAG runs, task instances, logs, streaming proxy) into a references/api-patterns.md file and keep only the core pattern (one SDK call wrapped in asyncio.to_thread) inline, keeping SKILL.md as a lean overview.

Extract the detailed component registrations for macros, middleware, operator extra links, and React apps into a references/components.md, linked as 'See components.md for <component type>' entries under a short summary table.

Remove the duplicated MYPLUGIN_HOST/USERNAME/PASSWORD environment-variable code block in Step 7 (it repeats the identical block from Step 4) and keep only the .env example and deployment commands.

DimensionReasoningScore

Conciseness

Almost every section delivers skill-specific, non-obvious guidance (no-leading-slash rule, asyncio.to_thread wrapping, pre-expiry JWT refresh, unauthenticated-endpoint warning) rather than background Claude already knows. Minor trims exist: the MYPLUGIN_HOST/USERNAME/PASSWORD env block is duplicated verbatim in Step 4 and Step 7, and the streaming-proxy example is tangential to the core plugin-building task.

4 / 5

Actionability

Fully executable, copy-paste-ready content throughout: a complete registration skeleton, a working JWT token manager with double-checked locking, five concrete API endpoint patterns, middleware/macro/operator-link/react snippets, deployment commands, and a problem-cause-fix pitfalls table. The common cases are covered with real code.

5 / 5

Workflow Clarity

Steps 1-7 are clearly sequenced from component selection through deployment, preceded by a 'Before writing any code, verify' checklist, with explicit validation checkpoints (astro dev logs per component, airflow plugins CLI, Admin > Plugins) and a pitfalls table that provides error-recovery feedback loops. Not a destructive or batch operation skill, so no validation cap applies.

5 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent) and all ~590 lines are inline in SKILL.md. Internal structure is good (numbered steps, tables, headers), but roughly 100 lines of API endpoint patterns (Step 5) plus the React-app and DB-access details clearly belong in one-level-deep reference files, matching the 'content that should be separate is inline' anchor.

3 / 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 capability list, explicit 'Use when...' triggers covering both natural language and code identifiers, third-person voice, and tight scoping to Airflow 3.1+. Dense with triggers rather than padded fluff despite its length.

DimensionReasoningScore

Specificity

Enumerates six concrete capabilities ("embed FastAPI apps, custom UI pages, React components, middleware, macros, and operator links") covering the browser-facing plugin surface comprehensively. Omitted component types (timetables, listeners) fall outside the declared 'Python and a browser-facing interface' scope, so they are not true coverage gaps.

5 / 5

Completeness

Explicitly answers 'what' ("Builds Airflow 3.1+ plugins that embed...") and 'when' with a concrete "Use when..." clause listing specific trigger scenarios. Written in third person ('Builds', 'Use when'), so no voice penalty applies.

5 / 5

Trigger Term Quality

Covers natural user phrasings ("creating an Airflow plugin", "adding a custom UI page or nav entry", "embedding a React app", "serving static assets from a plugin") plus exact API identifiers users paste in (AirflowPlugin, fastapi_apps, external_views, react_apps). This is comprehensive natural-term coverage with synonyms.

5 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (in-UI Airflow 3.1+ plugin development) with distinct triggers like fastapi_apps, external_views, and react_apps that are unlikely to fire for unrelated skills. Minimal overlap risk with generic Airflow or FastAPI skills since the version and registration terms anchor it tightly.

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

skill_md_line_count

SKILL.md is long (592 lines); consider splitting into references/ and linking

Warning

Total

15

/

16

Passed

Repository

astronomer/agents

Path

skills/airflow-plugins/SKILL.md

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.