CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

airflow-xcoms-to-orchestra

Use this skill when an Airflow DAG uses xcom_push, xcom_pull, or the TaskFlow API @task return values to pass data between tasks. Triggers: any DAG with ti.xcom_push(), context['ti'].xcom_pull(), @task decorated functions that return values, or BranchPythonOperator decisions driven by upstream XCom values.

Quality

79%

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 ./skills/migrate-to-orchestra/skills/airflow-xcoms-to-orchestra/SKILL.md
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 strong, dense migration reference: every pattern is mapped to executable Orchestra code, non-obvious pitfalls (silent set_output ignoring, triple-quote JSON escaping, SQL result capture) are called out precisely, and structure is easy to navigate. Only minor tightening is needed — the Overview's XCom re-explanation and the off-topic alerts section cost a little token efficiency.

DimensionReasoningScore

Conciseness

Mostly lean tables, executable code, and dense Orchestra-specific gotchas; minor trims possible — the Overview re-explains what XComs are, and the 'Adding Alerts' section is tangential to XCom-to-outputs migration.

4 / 5

Actionability

Fully executable, copy-paste-ready guidance: exact imports and client instantiation, complete YAML task/stage snippets, exact ${{ }} expression syntax, an integration support table, and a full before/after example covering the common cases.

5 / 5

Workflow Clarity

The migration flow (set_outputs: true -> client.set_output() -> reference via ${{ }}) is unambiguous and reinforced by a complete before/after example; no validation checkpoints exist, but nothing here is destructive or batch, so the cap at 3 does not apply.

4 / 5

Progressive Disclosure

No bundle files exist, and the single SKILL.md is well organized into clearly headed sections with a one-level-deep external References list; the integration support table and before/after example could live in separate reference files, and the alerts snippet is misplaced.

4 / 5

Total

17

/

20

Passed

Description

68%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 excellent trigger-focused description with comprehensive, natural trigger terms and a distinct niche, but it omits any statement of what the skill actually does — the target system (Orchestra outputs) is never mentioned. Adding a one-clause capability statement would make it a top-tier description.

Suggestions

Open with an explicit capability statement, e.g. 'Converts Airflow XCom data-passing patterns (xcom_push/xcom_pull, TaskFlow @task returns, BranchPythonOperator) to Orchestra's typed outputs system' — the description currently never mentions Orchestra or conversion.

State the outcome (typed named outputs referenced via ${{ }} expressions) so the 'what' is explicit alongside the already-strong 'when' triggers.

Consider trimming the second 'Triggers:' sentence, which largely repeats the first, to keep the description concise once a 'what' clause is added.

DimensionReasoningScore

Specificity

Names several concrete Airflow API patterns (ti.xcom_push(), context['ti'].xcom_pull(), @task return values, BranchPythonOperator) but never states the actions the skill itself performs, so coverage is incomplete rather than comprehensive.

4 / 5

Completeness

The 'when' is explicit and thorough, but the 'what' is entirely absent — the description never mentions Orchestra, converting, or migrating, so only 'when' is present without 'what'. This matches the anchor for score 2, not score 3, which requires a clear 'what'.

2 / 5

Trigger Term Quality

Comprehensive natural trigger terms with variations users would actually say or have in their DAG code: xcom_push, xcom_pull, TaskFlow API, @task, BranchPythonOperator, and 'pass data between tasks'.

5 / 5

Distinctiveness Conflict Risk

Triggers are tied to highly specific Airflow XCom APIs and operators, creating a clear niche with minimal risk of firing for unrelated skills.

5 / 5

Total

16

/

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: 3 missing

Warning

Total

15

/

16

Passed

Repository

orchestra-hq/orchestra-skills

Path

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