CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

python-airflow-to-orchestra

Use this skill when the user wants to convert an Airflow task that uses PythonOperator or PythonVirtualenvOperator into an equivalent Orchestra Python pipeline task. Triggers: any mention of migrating or rewriting PythonOperator tasks to Orchestra; Airflow DAG code using PythonOperator, PythonVirtualenvOperator, ExternalPythonOperator, or @task decorator tasks.

Quality

81%

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

75%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-structured conversion guide whose tables, YAML skeletons, and before/after example make the transformation copy-paste executable. The main weakness is redundancy: the INLINE-over-GIT default is repeated across five separate sections where one authoritative statement plus a gotcha reminder would do. Progressive disclosure is good but keeps some peripheral material (alerts, linked-connection naming rules) inline.

Suggestions

State the INLINE-vs-GIT default once in the Overview and once as a Gotcha; delete the repetitions in the YAML comments, Conversion Steps, and the final GIT bullet, replacing them with a single pointer back to that decision rule.

Add a final verification step to Conversion Steps (e.g., sanity-check that every non-stdlib import in code appears in build_command, and that environment_variables is a valid JSON string) to close the workflow's validation gap.

Move the full alerts YAML schema and the linked-connection env-var naming rules into short pointers to their dedicated skills/docs (as already done for source: GIT), keeping the body focused on the conversion itself.

DimensionReasoningScore

Conciseness

Mostly efficient, but the INLINE-vs-GIT default is restated at least five times (Overview, YAML comments, Conversion Steps intro, Gotcha #1, and the final GIT gotcha), which is noticeable repetition that could be consolidated. Explanations otherwise assume Claude's competence and avoid teaching Airflow basics.

3 / 5

Actionability

Fully executable throughout: a complete parameter-mapping table, a full YAML skeleton, a copy-paste before/after example with real code, a runnable OrchestraSDK credentials snippet, and concrete gotchas like environment_variables being a JSON string ('{"KEY": "value"}'). The common conversion cases are covered end to end.

5 / 5

Workflow Clarity

The five Conversion Steps are clearly sequenced with concrete actions (copy body verbatim → pip install build_command → op_kwargs handling → connection → dependencies). Minor validation gap: there is no checkpoint to verify or test the produced Orchestra YAML before finishing, which keeps it just below the 5 anchor.

4 / 5

Progressive Disclosure

Well-organized single-file structure with clear section headers and one-level-deep, clearly signaled references (sibling skills and docs URLs); no nested reference chains. Not 5: the alerts schema section and the linked-connections env-var naming rules are inlined in full where a pointer to a reference file or the named sibling skill would keep the core conversion flow leaner.

4 / 5

Total

16

/

20

Passed

Description

78%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 with an explicit 'Use when' clause and concrete trigger enumeration covering all relevant Airflow operator variants. It is highly distinct within the Airflow-to-Orchestra conversion niche. The only gaps are mild: the single-action 'what' could enumerate more capabilities, and a few natural synonyms (porting, TaskFlow) are absent.

DimensionReasoningScore

Specificity

The description names the domain and one concrete action ('convert an Airflow task that uses PythonOperator or PythonVirtualenvOperator into an equivalent Orchestra Python pipeline task') but does not enumerate the sub-actions involved (parameter mapping, YAML generation, alerts), so coverage is not comprehensive.

3 / 5

Completeness

Explicitly answers both what ('convert an Airflow task ... into an equivalent Orchestra Python pipeline task') and when ('Use this skill when the user wants to ...; Triggers: any mention of migrating or rewriting ...') with concrete trigger phrases — a direct match for the 5 anchor.

5 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say — 'migrating or rewriting PythonOperator tasks to Orchestra', 'Airflow DAG code', '@task decorator', plus all operator variants (PythonOperator, PythonVirtualenvOperator, ExternalPythonOperator). Not 5: misses common synonyms such as 'porting' and the 'TaskFlow API' name.

4 / 5

Distinctiveness Conflict Risk

A clear niche (Airflow Python-operator tasks → Orchestra Python) with operator-specific triggers that are unlikely to fire for unrelated skills. Not 5: the '@task decorator' and ExternalPythonOperator triggers overlap slightly with sibling conversion skills (e.g., a @task that only posts to Slack, an ambiguity the skill body itself acknowledges).

4 / 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

orchestra-hq/orchestra-skills

Path

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