Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.
82
71%
Does it follow best practices?
Impact
88%
1.07xAverage score across 6 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/data-engineering/skills/airflow-dag-patterns/SKILL.mdProduction DAG default_args and retry configuration
retries=3
100%
100%
retry_delay 5 min
100%
0%
Exponential backoff
100%
100%
max_retry_delay 1h
100%
0%
email_on_failure True
0%
0%
email_on_retry False
100%
100%
catchup=False
100%
100%
max_active_runs=1
100%
100%
No depends_on_past
100%
100%
Task failure callback
100%
100%
DAG failure callback
100%
100%
No hardcoded date
100%
100%
schedule= syntax
0%
100%
Sensor patterns, branching, and trigger rules
TaskFlow @dag decorator
100%
100%
TaskFlow @task decorator
100%
100%
@task.sensor used
100%
100%
Sensor mode=reschedule
100%
100%
Sensor timeout set
100%
100%
Sensor poke_interval set
100%
100%
BranchPythonOperator used
100%
100%
Join trigger rule
100%
100%
Cleanup trigger rule
100%
100%
PokeReturnValue returned
100%
100%
DAG testing, project structure, and dynamic generation
Factory function
100%
100%
globals() registration
100%
100%
Config-driven clients
100%
100%
Logic in common module
100%
100%
DAG file stays thin
100%
100%
DagBag fixture
100%
100%
include_examples=False
100%
100%
Import error test
100%
100%
Cycle detection test
71%
64%
Structural assertion
100%
100%
Incremental processing with lazy imports and no global state
context['ds'] usage
77%
77%
{{ ds }} in templated field
0%
0%
Lazy imports inside tasks
100%
100%
No top-level heavy imports
100%
100%
TaskFlow @task decorator
100%
100%
Date-partitioned output path
100%
100%
catchup=False
100%
100%
owner set
0%
100%
S3KeySensor and ExternalTaskSensor configuration
S3KeySensor used
100%
100%
S3 bucket_key uses {{ ds }}
100%
100%
ExternalTaskSensor used
100%
100%
execution_date_fn specified
0%
100%
Sensor mode=reschedule
100%
100%
Sensor timeout set
100%
100%
Sensor poke_interval set
100%
100%
Fan-in to processing task
100%
100%
aws_conn_id specified
100%
100%
ALL_SUCCESS trigger rule and task dependency testing
TriggerRule.ALL_SUCCESS used
100%
90%
TriggerRule.ALL_DONE used
100%
100%
upstream_list dependency check
0%
100%
downstream_list dependency check
0%
22%
DagBag include_examples=False
100%
100%
Import errors assertion
100%
100%
Cycle detection test
0%
50%
Structural task count assertion
100%
100%
70444e5
Table of Contents
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.