CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

airflow-connections-to-orchestra

Use this skill when converting Airflow code that references credentials via Airflow's connection system: any operator/hook kwarg ending in `_conn_id` (conn_id=, aws_conn_id=, snowflake_conn_id=, ssh_conn_id=, slack_conn_id=, gcp_conn_id=, http_conn_id=), any `BaseHook.get_connection(...)` or `Connection` class usage, any `AIRFLOW_CONN_<NAME>` environment variable, or a Secrets Backend (AWS Secrets Manager / Hashicorp Vault) configured for connections. Also covers distinguishing these from `Variable.get()` / `AIRFLOW_VAR_*`, which are non-secret config, not connections. Must be read before finalising any Orchestra YAML with a connection: field converted from an Airflow source.

Quality

90%

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

82%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 well-executed conversion skill: it leads with concrete, executable guidance — exact Orchestra YAML forms, complete kwarg-to-connection-type tables, a precise linked-connection env-var formula, and a sequenced checklist — and nearly all of its content is non-obvious domain knowledge rather than padding. The main costs are repetition of the Secrets Backend and linked-connection points across three sections, and the absence of an explicit validate-the-output step in the workflow.

Suggestions

Consolidate the Secrets Backend guidance: it currently appears as a dedicated section, a checklist item, and a Gotcha — state it once fully and reference it from the other two places, cutting roughly a dozen lines.

Add a final validation step to the Conversion Checklist (e.g. verify every distinct conn_id found by the initial grep maps to exactly one connection: reference in the emitted YAML, and that no credential value leaked into any written file) to close the workflow's feedback loop.

Consider moving the Linked Connections deep detail (env-var naming rules, SDK/profiles.yml snippets, silent-skip behavior) into a references/ file, keeping a short decision rule inline so SKILL.md stays a lean overview.

DimensionReasoningScore

Conciseness

The body is dense with non-obvious domain knowledge (the "descriptive-name_XXXXX" format, the credential-store constraints, the "<INTEGRATION>__<CONNECTION_ID>__<FIELD>" formula) and mostly assumes Airflow knowledge rather than re-teaching it, so it clears 'efficient'. But there is noticeable redundancy — the Secrets Backend 'nothing to extract' point appears in its own section, again as a checklist item, and again as a Gotcha; the linked-connection don't-copy-secrets advice is likewise stated twice — and the Overview's comparison to "the way dagster-connections-to-orchestra and prefect-connections-to-orchestra do" is meta-commentary that earns no tokens. These keep it below 'every token earns its place'.

4 / 5

Actionability

Guidance is copy-paste ready throughout: exact YAML for every case ("connection: my_snowflake_12345", "connection: null", "connection: ${{ ENV.SNOWFLAKE_CONNECTION_NAME }}"), complete kwarg→connection-type lookup tables, a worked env-var derivation ("a Snowflake connection prod_12345 exports SNOWFLAKE__PROD_12345__SNOWFLAKE_PASSWORD") with the SDK call ("orchestra.get_linked_connection(\"snowflake\", connection_id=\"prod_12345\")") and profiles.yml usage, plus concrete greps in the checklist. Specific examples cover the common cases, matching the anchor-5 example.

5 / 5

Workflow Clarity

The Conversion Checklist gives a clear, roughly ordered sequence (grep sources → identify types → check secrets backend → link or create connections → replace references → route Variables) and includes verification checkpoints like "read back its name_XXXXX id from the response rather than transcribing it" and "Orchestra... rejects it if it can't be read... at save time". It falls short of 5 because there is no explicit validate-the-final-YAML / error-recovery feedback loop for the conversion output, and the sequence lives in one checklist rather than being interleaved where each decision is made.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are all absent), and the body is organized into well-labeled sections with a clearly signaled References section of external docs, one level deep. The inline content is the core conversion payload (mapping tables and decision rules) whose placement in SKILL.md is appropriate; however, the Linked Connections section's deep detail (env-var naming rules, SDK/profiles.yml usage, silent-skip behavior) and the four connection-type tables are borderline candidates for a reference file, leaving minor organization gaps rather than a clean overview-plus-references split.

4 / 5

Total

17

/

20

Passed

Description

95%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 strong description: it states a concrete capability, opens with an explicit 'Use this skill when' trigger clause enumerating essentially every Airflow connection idiom, adds a hard 'must be read before finalising' condition, and explicitly fences off the confusable Variable/AIRFLOW_VAR case. Its only limitation is that the breadth sits in trigger enumeration while the action vocabulary itself is narrow (convert, distinguish).

DimensionReasoningScore

Specificity

Concrete actions are named ("converting Airflow code that references credentials via Airflow's connection system", "distinguishing these from Variable.get() / AIRFLOW_VAR_*") with comprehensive enumeration of the specific patterns covered ("any operator/hook kwarg ending in _conn_id", "BaseHook.get_connection(...)", "AIRFLOW_CONN_<NAME> environment variable", "a Secrets Backend (AWS Secrets Manager / Hashicorp Vault)"). Not a 5 because the action set itself is narrow — essentially convert and distinguish — with the breadth lying in trigger enumeration rather than in multiple distinct capabilities.

4 / 5

Completeness

Both 'what' ("converting Airflow code that references credentials via Airflow's connection system" to Orchestra connections) and 'when' are explicit, with a literal "Use this skill when..." clause listing concrete trigger phrases, reinforced by a second explicit condition ("Must be read before finalising any Orchestra YAML with a connection: field converted from an Airflow source"). Matches the anchor-5 example's structure of concrete what + explicit when with trigger phrases.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage of exactly what a user converting Airflow code would say or paste: "conn_id=, aws_conn_id=, snowflake_conn_id=, ssh_conn_id=, slack_conn_id=, gcp_conn_id=, http_conn_id=", "BaseHook.get_connection(...)", "AIRFLOW_CONN_<NAME>", "Variable.get() / AIRFLOW_VAR_*", "Secrets Backend", plus synonyms like "credentials" and "connection system". The kwarg variants act the way file extensions do for the PDF exemplar — near-exhaustive synonyms for the domain. Not below 5: no commonly used variant of the trigger surface is missing.

5 / 5

Distinctiveness Conflict Risk

Clear niche (Airflow connection idioms → Orchestra connections) with highly distinct triggers (conn_id kwargs, AIRFLOW_CONN_ prefixes, BaseHook.get_connection) unlikely to fire for unrelated skills; it even disambiguates the near-miss case by stating "Variable.get() / AIRFLOW_VAR_*" are "non-secret config, not connections". Minor overlap with sibling Airflow→Orchestra skills (e.g. dbt-over-SSH) is handled in the body, keeping conflict risk minimal.

5 / 5

Total

19

/

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

orchestra-hq/orchestra-skills

Path

skills/migrate-to-orchestra/skills/airflow-connections-to-orchestra/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.