CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

migrating-dagster-to-airflow

Guide for migrating Dagster projects to Apache Airflow 3 on Astro. Use when the user mentions migrating, converting, or porting Dagster (or Dagster+) code to Airflow or Astro, wants to plan or assess such a migration, or asks what a Dagster construct maps to in Airflow. Covers assets, partitions, schedules, sensors, declarative automation, resources, IO managers, ops/jobs, dbt, Pipes, Components, and Dagster+ platform config. Always load this skill as the first step for any Dagster-to-Airflow request.

68

Quality

86%

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

73%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 a strongly written operations runbook: lean, opinionated, with an unambiguous phased workflow, hard rules, and validation gates at every step. Its critical defect is bundle-level: the routing table and phases lean on eleven reference/*.md files that do not exist in this bundle, so progressive disclosure — and the actionability of everything deferred to those files — breaks at every link.

Suggestions

Ship the reference/ files the routing table promises (mapping.md, validation.md, quickstart.md, and the other eight), or inline the essential content (e.g., the MECH/JUDG/REDESIGN/NONE criteria and gate definitions) — currently every 'Read <file>' instruction in the workflow is unresolvable in this bundle.

Spell out the elided CLI arguments in the body (e.g., 'status.py advance <unit-id> --evidence <gate-proof>' instead of 'status.py advance <unit-id> ...'), since the scripts' argparse already defines them.

Trim the repeated honesty rhetoric (intro, 'the honest gate', 'the honest deliverable', the closing aphorism) to a single statement of the rule — the deltas-documentation policy is already enforced by hard rules 1-3.

DimensionReasoningScore

Conciseness

Dense and operational throughout: no explaining what Dagster, Airflow, dbt, or assets are; every section adds judgment policy Claude cannot infer (never stub, fix classes not instances, manifest conventions, go/no-go table). Not a 5 because the honesty theme is stated and restated ('honestly', 'the honest gate', 'the honest deliverable', the closing aphorism 'A migration guide that cannot say "don't" cannot be trusted when it says "do"') — rhetorical repetition that could be tightened without losing the rule.

4 / 5

Actionability

Concrete and verified: 'python3 scripts/inventory.py <dagster_repo> --out manifest.json', 'python3 scripts/validate_dag.py <astro_project> --manifest manifest.json', the state machine with exact status.py subcommands (advance/defer/reopen/summary), manifest field names, and version probes like 'python3 -c "from airflow.sdk import X"' — the bundled scripts' actual argparse matches these invocations. Not a 5: 'status.py advance <unit-id> ...' elides its arguments, and most executable how-to detail (mapping rows, gate definitions, troubleshooting classes) is deferred to reference files that are not present in this bundle, so the guidance chain cannot actually be followed end-to-end.

4 / 5

Workflow Clarity

Phases 0-7 are clearly sequenced with validation woven through: baseline tests before migrating, trial units through every gate before fanning out, the six-gate ladder with a per-unit state machine, an explicit retry cap ('cap ~10 attempts, then defer with the failure class'), a completeness gate ('status.py summary exits nonzero otherwise; run it before claiming done'), per-unit atomic commits, one-domain-per-window cutover with rollback one step away, and a spot-check of ten complete claims before the final report. Matches the anchor-5 example: explicit validation steps, feedback loops, and checklists for a complex batch process.

5 / 5

Progressive Disclosure

The in-body structure is excellent — overview, at-a-glance steps, hard rules, phase workflow, and a routing table that clearly signals one-level-deep references — but the actual bundle contains no 'reference/' (or 'references/') directory: all 11 routed files (quickstart.md, mapping.md, assets.md, io-and-data-passing.md, partitions.md, automation.md, dbt.md, components.md, astro-deployment.md, validation.md, troubleshooting.md) are absent, while the scripts they are scored against do exist. Per the guideline to score against the actual bundle structure, every navigation link to the core knowledge is a dead end, which is a more severe delivery failure than the anchor-3 defect (weakly signaled references). If the reference files exist in the full skill bundle and were simply not shipped for review, this dimension would rate 4-5 on structure alone.

2 / 5

Total

15

/

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.

An exemplary description: third-person voice, explicit 'Use when' triggers with synonyms (migrating/converting/porting, Dagster/Dagster+, Airflow/Astro), a concrete what-and-when pair, and a coverage list that also serves scoping. The only softness is that 'Guide for migrating' frames one task from several angles rather than naming multiple distinct actions.

DimensionReasoningScore

Specificity

Names the domain and several concrete capabilities — 'Guide for migrating Dagster projects to Apache Airflow 3 on Astro', 'plan or assess such a migration', 'asks what a Dagster construct maps to in Airflow' — plus a comprehensive construct coverage list ('assets, partitions, schedules, sensors, declarative automation, resources, IO managers, ops/jobs, dbt, Pipes, Components'). Not a 5 because the actions are facets of one migration task rather than multiple distinct concrete actions (contrast 'extract text, fill forms, merge documents, convert pages'). Not a 3 because coverage goes well beyond 1-2 actions and is explicitly enumerated.

4 / 5

Completeness

Explicitly answers both questions: the 'what' is 'Guide for migrating Dagster projects to Apache Airflow 3 on Astro' with a full coverage list, and the 'when' is an explicit 'Use when the user mentions migrating, converting, or porting...' clause with concrete trigger phrases. Matches the anchor-5 example pattern exactly.

5 / 5

Trigger Term Quality

Comprehensive natural-term coverage with synonyms: 'migrating, converting, or porting Dagster (or Dagster+) code to Airflow or Astro' plus the secondary trigger 'what a Dagster construct maps to in Airflow'. These are exactly the phrases a user with this need would say; no obvious synonym or variation is missing.

5 / 5

Distinctiveness Conflict Risk

A clear niche — Dagster-to-Airflow/Astro migration — with distinct trigger terms (Dagster, Dagster+). Minimal conflict risk: nothing else plausibly triggers on these phrases, and a generic Airflow skill would only fire here because Dagster is mentioned, which is the intent.

5 / 5

Total

19

/

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

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository

astronomer/agents

Path

skills/migrating-dagster-to-airflow/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.