CtrlK
BlogDocsLog inGet started
Tessl Logo

airflow-dag-patterns

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

1.07x
Quality

71%

Does it follow best practices?

Impact

88%

1.07x

Average score across 6 eval scenarios

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./plugins/data-engineering/skills/airflow-dag-patterns/SKILL.md
SKILL.md
Quality
Evals
Security

Evaluation results

76%

-10%

Daily Sales Report Pipeline

Production DAG default_args and retry configuration

Criteria
Without context
With context

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%

100%

Inventory Reconciliation Pipeline with Conditional Processing

Sensor patterns, branching, and trigger rules

Criteria
Without context
With context

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%

95%

-1%

Multi-Tenant Report Pipeline with Tests

DAG testing, project structure, and dynamic generation

Criteria
Without context
With context

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%

80%

5%

Daily Content Platform Event Aggregation

Incremental processing with lazy imports and no global state

Criteria
Without context
With context

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%

100%

16%

Financial Transaction Reconciliation Pipeline

S3KeySensor and ExternalTaskSensor configuration

Criteria
Without context
With context

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%

80%

24%

Nightly Database Backup Pipeline with Monitoring

ALL_SUCCESS trigger rule and task dependency testing

Criteria
Without context
With context

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%

Repository
wshobson/agents
Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

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.