CtrlK
BlogDocsLog inGet started
Tessl Logo

airflow-adapter

Airflow adapter pattern for v2/v3 API compatibility. Use when working with adapters, version detection, or adding new API methods that need to work across Airflow 2.x and 3.x.

60

Quality

69%

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

Fix and improve this skill with Tessl

tessl review fix ./astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

61%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 lean, well-sectioned overview whose inline content (file map, architecture, quick-reference snippet) is efficient and largely actionable. However, both of its referenced deep-dive files are missing from the bundle, which breaks progressive disclosure and leaves the skill's core use case — implementing a new cross-version API method — without actionable steps.

Suggestions

Create the missing referenced files (e.g. references/api-differences.md and references/patterns.md) or remove the references from the body so navigation isn't broken.

Add a short numbered workflow for the primary task: which adapter to extend, how to map a v2 endpoint to its v3 equivalent (via api-differences), and how to register/expose the new method.

Make the Quick Reference snippet executable by showing the import or context that provides _get_adapter(), so it is copy-paste ready.

DimensionReasoningScore

Conciseness

The ~30-line body is lean: an architecture flow, a file map, and a short code snippet, with zero explanation of concepts Claude already knows. Every token earns its place.

5 / 5

Actionability

The Quick Reference ("adapter = _get_adapter()", "adapter.list_dags(limit=100)", "adapter.trigger_dag_run(...)") and the Key Files list are concrete, but the code is not standalone-executable ("_get_adapter()" is undefined here) and the primary use case from the description — adding a new API method — has no implementation guidance because @patterns.md does not exist in the bundle. Below anchor 4 because key details for the main task are missing; above anchor 2 because real, specific guidance exists.

3 / 5

Workflow Clarity

The architecture arrow-flow ("MCP Tool → _get_adapter() → AirflowV2Adapter or AirflowV3Adapter → Airflow API") plus "Version is auto-detected at startup" conveys the call sequence, but there are no steps or checkpoints for the skill's stated purpose of adding a new cross-version method, and validation guidance is absent. Not 4 because the explicit sequence for the actual task is missing; not 2 because the architecture shown is coherent.

3 / 5

Progressive Disclosure

The body is cleanly sectioned and points to two one-level-deep references (@api-differences.md, @patterns.md), but neither file — nor any references/ directory — exists in the bundle, so the references are broken; the '@' prefix is also not a clearly signaled link format. Below anchor 3 because navigation fails outright, not merely under-signaled; above anchor 1 because the in-body structure itself is well organized.

2 / 5

Total

13

/

20

Passed

Description

77%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.

A well-formed description with an explicit and specific 'Use when…' trigger clause and a clearly distinct Airflow-version niche. The main weakness is the 'what' half: it names an abstract pattern rather than listing the concrete actions the skill performs, which keeps specificity low despite strong triggers.

Suggestions

State concrete capabilities as actions, e.g. "Detects the Airflow version at startup and routes API calls through the matching adapter so new methods work across both /api/v1 and /api/v2."

Add one or two capability verbs (detect, route, wrap) so the 'what' is as explicit as the 'when' already is.

DimensionReasoningScore

Specificity

"Airflow adapter pattern for v2/v3 API compatibility" names the domain and versions but states no concrete actions; the only action-adjacent phrases ("version detection", "adding new API methods") appear in the trigger clause rather than as stated capabilities. It is above anchor 1 because the domain is specific rather than vague, but below anchor 3 because no explicit capabilities are listed.

2 / 5

Completeness

It explicitly answers both: the what ("Airflow adapter pattern for v2/v3 API compatibility") and an explicit, concrete when ("Use when working with adapters, version detection, or adding new API methods that need to work across Airflow 2.x and 3.x"). Not 4 because the 'when' is already explicit and specific with concrete trigger phrases.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "adapters", "version detection", "adding new API methods", "Airflow 2.x and 3.x" are phrases a user working in this codebase would plausibly say. Not 5 because common variations like "Airflow 3 migration" or "API compatibility" are missing.

4 / 5

Distinctiveness Conflict Risk

The Airflow v2/v3 adapter-compat niche is clearly distinct, and triggers ("adapters", "version detection", "Airflow 2.x and 3.x") are unlikely to fire for unrelated skills. Minimal conflict risk.

5 / 5

Total

16

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
astronomer/agents
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.