CtrlK
BlogDocsLog inGet started
Tessl Logo

airflow-dynamic-task-mapping-to-orchestra

Use this skill when an Airflow DAG uses dynamic task mapping — task.expand(param=[...]), task.expand(param=XComArg(...)), task.partial(...).expand(...), or expand_kwargs() (Airflow 2.3+) — to create a variable number of task instances at runtime from a list, dict, or an upstream task's output. Triggers: any DAG using .expand(, .partial(, expand_kwargs(, map_index, or task mapping over a list of files/pages/config entries/API results. Orchestra's equivalent is a matrix task group (TaskGroupModel.matrix), not a plain loop — read this before converting any mapped Airflow task to Orchestra YAML.

67

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.

The body is highly actionable with complete executable examples for every mapping pattern and a clear conversion workflow with review checkpoints. Conciseness is the main drag, owing to repeated dated confirmation caveats and the one-input-key limitation restated across several sections.

Suggestions

Consolidate the 'only one matrix input key' limitation into a single Gotcha and reference it once from the Overview rather than restating it in the Overview, MatrixBlockModel, and Gotchas sections.

Move the dated schema-confirmation caveats ('confirmed ... on 2026-07-13') into a single short 'Schema verification' note in References to stop the inline repetition from competing with the instructional content.

Add an explicit validate→fix→retry step in Conversion Steps (e.g. lint/validate the generated matrix YAML and re-run if the schema rejects it) to lift workflow clarity toward a full feedback loop for this batch generation task.

DimensionReasoningScore

Conciseness

Mostly efficient and does not over-explain Airflow/DAG basics, but inline time-sensitive caveats ('confirmed directly against this on 2026-07-13', repeated 'confirmed in the schema') and mild repetition of the one-input-key limitation across three sections add tokens that could be tightened.

3 / 5

Actionability

Fully executable, copy-paste-ready Airflow Python and Orchestra YAML for all four patterns plus a runnable list_files.py script using OrchestraSDK.set_output, covering the common cases concretely.

5 / 5

Workflow Clarity

A clear six-step 'Conversion Steps' sequence with confirmation checkpoints (confirm set_outputs: true and a JSON list) and explicit manual-review flags in Gotchas, but no formal validate→fix→retry feedback loop for the batch YAML generation.

4 / 5

Progressive Disclosure

Well-organized into Overview, schema block, Pattern Mapping, Cross-references, Conversion Steps, Gotchas, and References with clearly signaled one-level-deep external and sibling-skill references and no nested pointers; no bundle files exist to split further.

4 / 5

Total

16

/

20

Passed

Description

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

The description is strong: it opens with an explicit 'Use this skill when...' trigger, lists concrete Airflow mapping constructs and Orchestra target equivalents, and carves out a distinctive niche. Minor room remains to enumerate the skill's own actions more comprehensively beyond the trigger framing.

DimensionReasoningScore

Specificity

Names the domain and concrete actions ('create a variable number of task instances at runtime from a list, dict, or an upstream task's output', 'converting any mapped Airflow task to Orchestra YAML') with specific API forms (.expand, .partial().expand, expand_kwargs), but the action framing leans more on triggers than a comprehensive enumeration of what the skill does.

4 / 5

Completeness

Clearly answers both 'what' (convert Airflow dynamic task mapping to Orchestra matrix task groups / create variable task instances at runtime) and 'when' with an explicit 'Use this skill when...' lead plus a 'Triggers:' clause of concrete phrases.

5 / 5

Trigger Term Quality

An explicit 'Triggers:' clause lists natural terms a converter would say or see — '.expand(', '.partial(', 'expand_kwargs(', 'map_index', and 'task mapping over a list of files/pages/config entries/API results' — with good synonym coverage, though a few natural variations are absent.

4 / 5

Distinctiveness Conflict Risk

A narrow, well-defined niche (Airflow dynamic task mapping → Orchestra matrix task groups) with distinct triggers that are unlikely to fire for any other skill.

5 / 5

Total

18

/

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

Warning

Total

15

/

16

Passed

Repository
orchestra-hq/orchestra-skills
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.