vibe-coder/skills/data/airflow-workflows/SKILL.md
Apache Airflow DAG design, operators, and scheduling best practices.
npx skillsauth add timequity/plugins airflow-workflowsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
from airflow import DAG
from airflow.operators.python import PythonOperator
from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'data-team',
'depends_on_past': False,
'email_on_failure': True,
'retries': 3,
'retry_delay': timedelta(minutes=5),
}
with DAG(
'daily_etl',
default_args=default_args,
description='Daily ETL pipeline',
schedule_interval='0 6 * * *', # 6 AM daily
start_date=datetime(2024, 1, 1),
catchup=False,
tags=['etl', 'daily'],
) as dag:
extract = PythonOperator(
task_id='extract_data',
python_callable=extract_function,
)
transform = SQLExecuteQueryOperator(
task_id='transform_data',
conn_id='warehouse',
sql='sql/transform.sql',
)
load = PythonOperator(
task_id='load_data',
python_callable=load_function,
)
extract >> transform >> load
| Operator | Use Case |
|----------|----------|
| PythonOperator | Custom Python code |
| BashOperator | Shell commands |
| SQLExecuteQueryOperator | Database queries |
| S3ToSnowflakeOperator | Cloud data transfers |
| DbtCloudRunJobOperator | dbt Cloud jobs |
{{ ds }} for dates# Linear
task1 >> task2 >> task3
# Parallel
[task1, task2] >> task3
# Complex
task1 >> [task2, task3]
[task2, task3] >> task4
for table in ['users', 'orders', 'products']:
task = PythonOperator(
task_id=f'process_{table}',
python_callable=process_table,
op_kwargs={'table': table},
)
tools
Backup strategies, disaster recovery planning, and business continuity.
devops
Cloud cost management, rightsizing, and FinOps practices.
testing
CI/CD pipeline design with GitHub Actions, GitLab CI, and best practices.
development
Validate idea and create detailed PRD. Saves docs/PRD.md to project. Use when: user describes an app idea, wants to create something new. Triggers: "I want to build", "create app", "make website", "build MVP", "хочу создать", "сделать приложение".