airflow-dag-patterns — скилл для Claude Code: установка
Скилл помогает проектировать DAG в Apache Airflow, связывать задачи и проверять пайплайны. Подойдёт для ETL, пакетных заданий и отладки запусков.
/plugin marketplace add wshobson/agents
/plugin install data-engineering@claude-code-workflowsЧто делает airflow-dag-patterns
airflow-dag-patterns описывает структуру DAG, зависимости задач, операторов и сенсоров в Apache Airflow. Он помогает строить линейные цепочки, fan-out и fan-in, а также проектировать идемпотентные, атомарные, инкрементальные и наблюдаемые задачи.
Внутри есть пример dags/example_dag.py с PythonOperator, EmptyOperator, расписанием, повторами и ограничением активных запусков. Скилл также охватывает TaskFlow API, таймауты, режим mode='reschedule' для сенсоров, модульные и интеграционные тесты, деплой и разбор сбоев. Подробные шаблоны вынесены в references/details.md.
Ставьте его, если агент пишет или проверяет DAG для Apache Airflow. Для проекта без Airflow он лишний.
Какие задачи решает
- спроектировать зависимости задач в DAG
- собрать ETL-пайплайн с расписанием
- добавить операторы и сенсоры Apache Airflow
- подготовить тесты для DAG
- разобрать неудачный запуск DAG
Примеры запросов агенту
- Создай DAG для ETL-пайплайна в `dags/example_dag.py` с зависимостями между задачами и повторами.
- Проверь этот DAG на идемпотентность, таймауты и корректное использование сенсоров.
- Разбери сбой запуска DAG и предложи исправление по шаблонам из `references/details.md`.
Как установить airflow-dag-patterns
1Через маркетплейс плагинов
/plugin marketplace add wshobson/agents/plugin install data-engineering@claude-code-workflowsКоманда ставит плагин data-engineering целиком, со всеми его скиллами
2Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill airflow-dag-patterns -a claude-code3Вручную: положить файлы
~/.claude/skills/airflow-dag-patterns/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/airflow-dag-patterns/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill airflow-dag-patterns -a codex2Вручную: положить файлы
.agents/skills/airflow-dag-patterns/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add wshobson/agents --skill airflow-dag-patterns -a cursor2Вручную: положить файлы
.cursor/skills/airflow-dag-patterns/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install wshobson/agents airflow-dag-patterns2Вручную: положить файлы
.github/skills/airflow-dag-patterns/SKILL.mdКомандой платформы
gemini skills install https://github.com/wshobson/agents --path plugins/data-engineering/skills/airflow-dag-patternsВручную: положить файлы
.devin/skills/airflow-dag-patterns/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора213
Весь набор →Похожие
Вопросы о airflow-dag-patterns
Как установить airflow-dag-patterns в Claude Code?
Выполните npx skills add wshobson/agents --skill airflow-dag-patterns -a claude-code. Файл скилла появится по пути ~/.claude/skills/airflow-dag-patterns/SKILL.md.
Что делает airflow-dag-patterns?
Скилл помогает создавать DAG для Apache Airflow, задавать зависимости, выбирать операторы и сенсоры, тестировать пайплайны и готовить их к деплою.
С какими платформами работает airflow-dag-patterns?
Скилл рассчитан на Claude Code, Codex и Cursor. Для Codex используется команда npx skills add wshobson/agents --skill airflow-dag-patterns -a codex, для Cursor — npx skills add wshobson/agents --skill airflow-dag-patterns -a cursor.
Исходный текст
SKILL.md · MIT
---
name: airflow-dag-patterns
description: 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.
---
# Apache Airflow DAG Patterns
Production-ready patterns for Apache Airflow including DAG design, operators, sensors, testing, and deployment strategies.
## When to Use This Skill
- Creating data pipeline orchestration with Airflow
- Designing DAG structures and dependencies
- Implementing custom operators and sensors
- Testing Airflow DAGs locally
- Setting up Airflow in production
- Debugging failed DAG runs
## Core Concepts
### 1. DAG Design Principles
| Principle | Description |
| --------------- | ----------------------------------- |
| **Idempotent** | Running twice produces same result |
| **Atomic** | Tasks succeed or fail completely |
| **Incremental** | Process only new/changed data |
| **Observable** | Logs, metrics, alerts at every step |
### 2. Task Dependencies
```python
# Linear
task1 >> task2 >> task3
# Fan-out
task1 >> [task2, task3, task4]
# Fan-in
[task1, task2, task3] >> task4
# Complex
task1 >> task2 >> task4
task1 >> task3 >> task4
```
## Quick Start
```python
# dags/example_dag.py
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.python import PythonOperator
from airflow.operators.empty import EmptyOperator
default_args = {
'owner': 'data-team',
'depends_on_past': False,
'email_on_failure': True,
'email_on_retry': False,
'retries': 3,
'retry_delay': timedelta(minutes=5),
'retry_exponential_backoff': True,
'max_retry_delay': timedelta(hours=1),
}
with DAG(
dag_id='example_etl',
default_args=default_args,
description='Example ETL pipeline',
schedule='0 6 * * *', # Daily at 6 AM
start_date=datetime(2024, 1, 1),
catchup=False,
tags=['etl', 'example'],
max_active_runs=1,
) as dag:
start = EmptyOperator(task_id='start')
def extract_data(**context):
execution_date = context['ds']
# Extract logic here
return {'records': 1000}
extract = PythonOperator(
task_id='extract',
python_callable=extract_data,
)
end = EmptyOperator(task_id='end')
start >> extract >> end
```
## Detailed patterns and worked examples
Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.
## Best Practices
### Do's
- **Use TaskFlow API** - Cleaner code, automatic XCom
- **Set timeouts** - Prevent zombie tasks
- **Use `mode='reschedule'`** - For sensors, free up workers
- **Test DAGs** - Unit tests and integration tests
- **Idempotent tasks** - Safe to retry
### Don'ts
- **Don't use `depends_on_past=True`** - Creates bottlenecks
- **Don't hardcode dates** - Use `{{ ds }}` macros
- **Don't use global state** - Tasks should be stateless
- **Don't skip catchup blindly** - Understand implications
- **Don't put heavy logic in DAG file** - Import from modules
© Seth Hobson · MIT · wshobson/agents