Official agent skill

Managed Airflow Migrations

by google in google/skills

Provides guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer).

OfficialApache-2.0Auto-check passedData & Analytics

Install Managed Airflow Migrations

skills CLI
$ npx skills add google/skills --skill managed-airflow-migrations -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install google/skills managed-airflow-migrations --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cloud/managed-airflow-migrations .claude/skills/managed-airflow-migrations && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
managed-airflow-migrations
GitHub stars
21k
Token cost
~3k tokens
SKILL.md length
1,186 words
Files
4 (incl. references)
Skills in repo
147
Repo updated
First seen
Licence
Apache-2.0

At a glance

Provides guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer).

  • Works in 4 steps: Discovery & Download → Target Version & Dependency Mapping → Analysis & Remediation (Scanning… → …
  • Migrating the DAG code to newer Airflow version
  • SKILL.md covers Phase 1: Discovery & Download, Phase 2: Target Version &…, Phase 3: Analysis &… and Phase 4: Deployment &…, plus 1 more section
  • Calls ruff and gcloud

What it does

Managed Airflow Migrations is an agent skill from google/skills, published by the product's own GitHub organization. Provides guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer). Covers migration to Airflow 2.11.1 (MSAA Gen 2 and 3) and Airflow 3 (MSAA Gen 3), including environment inspection, GCS download/upload and scanning patterns for breaking changes. Use when migrating the DAG code to newer Airflow version. Don't use when checking DAG run failures unrelated to code migration.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/airflow-3.md`, `references/environment-inspection.md` and `references/local-development-environment.md`).

It sits in Data & Analytics, covering Data pipelines and ETL and Code migrations. It works with Apache Airflow. The repository describes itself as: Agent Skills for Google products and technologies. The licence is Apache-2.0.

When your agent uses it

  • Migrating the DAG code to newer Airflow version
  • Checking DAG run failures unrelated to code migration

Example prompts

  • “Use the managed-airflow-migrations skill to provide guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly…”
  • “/managed-airflow-migrations”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Discovery & Download
  2. Target Version & Dependency Mapping
  3. Analysis & Remediation (Scanning Downloaded Files)
  4. Deployment & Verification

What it can do on your machine

Read from SKILL.md and the folder at commit 7d97937. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • ruff
    • gcloud

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gcloud, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Managed Airflow Migrations loads about 3k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 114 tokens; SKILL.md has 1,186 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~114
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from google/skills at commit 7d97937, republished under its Apache-2.0 licence (© google). 1,186 words, ~2,982 tokens.

Download SKILL.mdSave it as .claude/skills/managed-airflow-migrations/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
managed-airflow-migrations
description
Provides guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer). Covers migration to Airflow 2.11.1 (MSAA Gen 2 and 3) and Airflow 3 (MSAA Gen 3), including environment inspection, GCS download/upload and scanning patterns for breaking changes. Use when migrating the DAG code to newer Airflow version. Don't use when checking DAG run failures unrelated to code migration.
metadata.version
1.0.0
metadata.category
BigDataAndAnalytics

Managed Service for Apache Airflow (formerly Cloud Composer) Migration Guide

This skill guides you through the process of adjusting Airflow DAGs from an existing Managed Service for Apache Airflow (formerly Cloud Composer) environment (or available locally) to make them compatible with Airflow 2.11.1 (MSAA Gen 2 or 3) or Airflow 3 (MSAA Gen 3).


Phase 1: Discovery & Download

Before making any changes, download the existing DAG files if explicitly requested. Inspect the source environment to confirm source version only if explicitly requested. For detailed instructions about environment inspection and downloading files check references/environment-inspection.md.


Phase 2: Target Version & Dependency Mapping

2.1 Airflow 2.11.1+ Dependency Mapping

If migrating to Airflow 2.11.1 (MSAA Gen 2) or Airflow 3, use the list below to trace the version progression of key dependencies. The list covers changes needed to get to Airflow 2.11.1. Take them into account when migrating from Airflow 2 (earlier than 2.11.1) to Airflow 3.

Composer 2.10.0 (Airflow 2.10.2)
  • Google Provider: 10.26.0
  • SSH Provider: 3.14.0
  • HTTP Provider: 4.13.3
  • Breaking Changes: Baseline for oldest fully documented source.
Composer 2.15.3 (Airflow 2.10.5)
  • Google Provider: 18.0.0
  • SSH Provider: 4.1.4
  • HTTP Provider: 5.3.4
  • Breaking Changes:
    • SSH Provider 4.0.0: Hook timeout removed; get_conn() context manager.
    • HTTP Provider 5.0.0: SimpleHttpOperator -> HttpOperator.
    • Google Provider 11.0.0: BigQueryExecuteQueryOperator removed.
    • Google Provider 12.0.0: Legacy Data Pipeline operators removed.
    • Google Provider 13.0.0: AutoMLBatchPredictOperator removed.
    • Google Provider 17.0.0: BigQueryCreateEmptyTableOperator and BigQueryCreateExternalTableOperator removed; Life Sciences operators removed.
    • Google Provider 18.0.0: Legacy DV360 operators removed.
Composer 2.16.1 (Airflow 2.10.5)
  • Google Provider: 19.0.0
  • SSH Provider: 4.1.6
  • HTTP Provider: 5.5.0
  • Breaking Changes: Google Provider 19.0.0: AutoML operators removed (use Vertex AI).
Composer 2.17.0 (Target Airflow 2.11.1)
  • Google Provider: 20.0.0
  • SSH Provider: 5.0.0
  • HTTP Provider: 6.0.2
  • Breaking Changes:
    • SSH Provider 5.0.0: sshtunnel removed (native tunneling).
    • HTTP Provider 6.0.0: JSON serialization.
    • Google Provider 20.0.0: ADLS Gen2 migration.
2.2 Airflow 3 Migration

If migrating to Airflow 3 (MSAA Gen 3), note that this is a major version upgrade with significant changes, including:

  • Decoupled Task SDK (imports change from airflow to airflow.sdk).
  • Removal of direct metadata DB access.
  • Renaming of Dataset to Asset.
  • Removal of SubDAGs and SLAs.
  • Changes to context variables availability.

Take into account all applicable changes within Airflow 2 (e.g. when migrating from Airflow 2.10.2, apply changes needed to move to Airflow 2.11.1 and Airflow 3 migration changes on top of that).


Phase 3: Analysis & Remediation (Scanning Downloaded Files)

Run the scan commands from the root of your local workspace (./migration_workspace unless indicated otherwise).


3.1 Airflow 2.11.1 Core & Dependency checks

Use these scans if migrating to Airflow 2.11.1+ (intermediate step when migrating to Airflow 3).

3.1.1 Dataset Scheduling (Airflow 2.11.0)
  • Change: DAGs scheduled on datasets only trigger if events occur while the DAG is unpaused.
  • Scan Command: grep -rn "Dataset(" ./dags
  • Remediation: You MUST document that these DAGs must remain unpaused to catch events, or plan manual triggers for catch-up.
3.1.2 HTML in Descriptions (Airflow 2.11.0)
  • Change: Raw HTML in DAG docs / params is escaped by default.

  • Scan Command:

    bash
    grep -rn -E "doc_md.*<|doc_md.*>|description.*<|description.*>" ./dags
  • Remediation: Convert HTML to Markdown, or set AIRFLOW__WEBSERVER__ALLOW_RAW_HTML_DESCRIPTIONS=True in target.

3.1.3 Teardown Tasks (Airflow 2.10.5)
  • Change: Teardowns always run when a DAG is marked failed.
  • Scan Command: grep -rn "as_teardown" ./dags
  • Remediation: Ensure teardown tasks are idempotent.
3.1.4 Pendulum 3 Upgrade (Airflow 2.11.0)
  • Change: Period renamed to Interval, testing helpers removed.

  • Scan Command (Code):

    bash
    grep -rn -E "pendulum\.Period|pendulum\.period" ./dags
  • Scan Command (Tests):

    bash
    grep -rn -E "\.test\(|set_test_now\(" ./tests 2>/dev/null || true
  • Remediation: Replace Period with Interval, and period(...) with interval(...).


3.2 Path A: Airflow 2.11.1 Provider Package Scan
3.2.1 SSH Provider (SSH 4.0.0 & 5.0.0)
  • Scan Command (Timeout): grep -rn "SSHHook" ./dags | grep "timeout"
  • Scan Command (Context Manager): grep -rn "with SSHHook" ./dags
  • Scan Command (Tunnel Attributes): grep -rn "\.get_tunnel" ./dags
  • Remediation:
    • Replace timeout with conn_timeout in SSHHook.
    • Replace with hook as conn: with with hook.get_conn() as conn:.
    • Use get_tunnel() as context manager: with hook.get_tunnel(...) as tunnel:.
3.2.2 HTTP Provider (HTTP 5.0.0 & 6.0.0)
  • Scan Command: grep -rn "SimpleHttpOperator" ./dags
  • Remediation: Replace SimpleHttpOperator with HttpOperator.
3.2.3 Google Provider (v11 to v20)
  • Scan Command (BigQuery query):

    bash
    grep -rn "BigQueryExecuteQueryOperator" ./dags
    • Remediation: Replace with BigQueryInsertJobOperator (use configuration dict).
  • Scan Command (BigQuery table):

    bash
    grep -rn -E "BigQueryCreateEmptyTableOperator|BigQueryCreateExternalTableOperator" ./dags
    • Remediation: Replace with BigQueryCreateTableOperator (use table_resource dict).
  • Scan Command (AutoML):

    bash
    grep -rn -E "AutoMLTrainModelOperator|AutoMLPredictOperator|AutoMLCreateDatasetOperator|AutoMLBatchPredictOperator" ./dags
    • Remediation: Migrate to Vertex AI operators.
  • Scan Command (Dataflow):

    bash
    grep -rn -E "CreateDataPipelineOperator|RunDataPipelineOperator" ./dags
    • Remediation: Replace with DataflowCreatePipelineOperator/DataflowRunPipelineOperator.
  • Scan Command (Life Sciences):

    bash
    grep -rn "LifeSciencesRunPipelineOperator" ./dags`
    • Remediation: Migrate to Google Cloud Batch operators (BatchCreateJobOperator).
  • Scan Command (ADLS to GCS): grep -rn "ADLSToGCSOperator" ./dags

    • Remediation: Ensure file_system_name is provided.

Show full SKILL.md (430 more words)Show less
3.3 Airflow 3 Migration checks

Use instructions from references/airflow-3.md when migrating to Airflow 3.


Phase 4: Deployment & Verification

Perform deployment and verification steps only if explicitly requested to do so.

4.1 Static Verification (when migrating to Airflow 3)

After applying code changes for Airflow 3, verify syntax correctness. If available in the development environment, run static lint checks:

bash
ruff check {target_dag_file} --select AIR30

Resolve any reported deprecation warnings before finalization. If ruff is not available, recommend installing one.

4.2 Deployment to MSAA
4.2.1 Get Target GCS Bucket Path (only when requested)
bash
gcloud composer environments describe <TARGET_ENV> \
    --location <TARGET_REGION> \
    --format="value(config.dagGcsPrefix)"

Expected Output: gs://<target-bucket-name>/dags

4.2 Upload Modified DAGs and Bucket Dependencies (Only when requested)

Perform this step only if explicitly requested to do so. Copy the modified DAGs and any backed-up bucket dependencies from your local workspace to the target GCS bucket. If you skipped the inspection step, ensure you have the correct <target-bucket-name>.

  1. Upload DAGs:

    bash
    gcloud storage cp -r ./dags/* gs://<target-bucket-name>/dags/
  2. Upload Other Bucket Dependencies (If applicable):

    bash
    gcloud storage cp -r ./migration_workspace/<dependency-folder> gs://<target-bucket-name>/<dependency-folder>
4.3 Verify DAGs via Airflow CLI

Perform this step only if explicitly requested to upload modified DAGS to a target environment (and after uploading).

You can verify that your DAGs have been successfully uploaded, parsed, and registered by the Airflow scheduler in the target environment using the Airflow CLI.

  1. List Registered DAGs: Run the following command to list all DAGs registered in the target environment. Verify that your migrated DAGs appear in this list.

    bash
    gcloud composer environments run <TARGET_ENV> \
        --location <TARGET_REGION> \
        dags list
  2. Check for Import Errors: If some DAGs are missing from the list, or to ensure there are no parsing issues, check for import errors:

    bash
    gcloud composer environments run <TARGET_ENV> \
        --location <TARGET_REGION> \
        dags list-import-errors

    Expected Output:

    • If there are no errors, the command will output No data found.
    • If there are errors, it will list the file path and the traceback of the error.

Note: It may take a couple of minutes for the Airflow scheduler to parse the new files and for changes to reflect in these commands.

4.4 Verify in Cloud Logging

Perform this step only if explicitly requested to upload modified DAGS to a target environment (and after uploading). Monitor Cloud Logging for the target environment to detect any runtime errors or import errors.

Run the following query in the GCP Cloud Logging Console (or via gcloud logging read):

query
resource.type="cloud_composer_environment"
resource.labels.environment_name="<TARGET_ENV>"
log_id("airflow-scheduler")
severity>=ERROR

Appendix: Local Environment Verification

If you want to verify your changes locally before deploying to the target environment, you can use the Composer Local Development CLI tool (composer-dev). Use references/local-development-environment.md as a reference for interactions with local development environments.

© google, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/cloud/managed-airflow-migrations of google/skills.

  • SKILL.md
  • references/airflow-3.md
  • references/environment-inspection.md
  • references/local-development-environment.md

Open the folder on GitHubat commit 7d97937

Compare with similar skills

Managed Airflow Migrations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Managed Airflow Migrations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Managed Airflow Migrations this skillgoogle/skills21k—~3kAutomated safety check: PassApache-2.0
Glue 09 10 Migrationaws-samples/aws-glue-samples1.5k—~2.4kAutomated safety check: PassMIT-0
Chart Testsastronomer/airflow-chart297—~2.8kAutomated safety check: PassCustom licence
Airflowastronomer/agents4511 repos~3.8kAutomated safety check: PassApache-2.0
Migrating Dagster To Airflowastronomer/agents451—~3.8kAutomated safety check: PassApache-2.0
Authoring Dagsastronomer/agents4511 repos~1.8kAutomated safety check: PassApache-2.0

Similar skills

  • Glue 09 10 Migration

    aws-samples/aws-glue-samples

    Official

    Upgrade an AWS Glue ETL job from Glue version 0.9 or 1.0 to Glue 4.0.

    1.5k GitHub stars~2.4k tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed
  • Chart Tests

    astronomer/airflow-chart

    A skill your agent uses when writing, editing, reviewing, or running Helm chart tests for the Astronomer airflow-chart repository.

    297 GitHub stars~2.8k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Airflow

    astronomer/agents

    Queries, manages, and troubleshoots Apache Airflow using the af CLI.

    451 GitHub starsUsed in 1 repo~3.8k tokens
    Data & AnalyticsAuto-check passed
  • Guide for migrating Dagster projects to Apache Airflow 3 on Astro.

    451 GitHub stars~3.8k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Authoring Dags

    astronomer/agents

    Workflow and best practices for writing Apache Airflow DAGs.

    451 GitHub starsUsed in 1 repo~1.8k tokens
    Data & AnalyticsAuto-check passed
  • Functional Tests

    astronomer/airflow-chart

    A skill your agent uses when writing, editing, reviewing, or running functional (end-to-end) tests for the Astronomer airflow-chart repository.

    297 GitHub stars~2.2k tokensUpdated today
    Data & AnalyticsAuto-check passed

More from google/skills

All 147 skills in this repo
  • Official

    Query Cloud Trace spans, filter by latency thresholds or error status, correlate distributed traces with Cloud Logging, and diagnose latency bottlenecks across Google Cloud services.

    21k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Official

    Manages Google Cloud Privileged Access Manager entitlements and grants: create and edit entitlements, request temporary access, and approve or deny pending grants.

    21k GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Official

    Writes Terraform alerting policies for AI agents that emit OpenTelemetry metrics, covering reliability, cost, safety, security and quality signals on Google Cloud.

    21k GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Official

    Deploys open models or custom weights from Model Garden to Agent Platform endpoints, checks deployment status and cleans up endpoints, confirming before any change.

    21k GitHub stars~5k tokensUpdated today
    Auto-check passed
  • Official

    Searches, manages and scaffolds skills in the Gemini Enterprise Agent Platform Skill Registry using bundled Python scripts and Google Cloud credentials.

    21k GitHub stars~584 tokensUpdated today
    Auto-check passed
  • Designs GCP infrastructure as local Terraform, validates and scans it against best practices, then imports it to Application Design Center for deployment and troubleshooting.

    21k GitHub stars~4.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Managed Airflow Migrations

What does Managed Airflow Migrations do?

Provides guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer). Managed Airflow Migrations is an agent skill from google/skills, published by the product's own GitHub organization. Provides guidance for migrating Apache Airflow DAGs in Managed Service for Apache Airflow (MSAA; formerly Cloud Composer).

When should I use Managed Airflow Migrations?

Managed Airflow Migrations fits situations like: migrating the DAG code to newer Airflow version; checking DAG run failures unrelated to code migration.

How do I install Managed Airflow Migrations in Claude Code?

Run `npx skills add google/skills --skill managed-airflow-migrations -a claude-code`. Or copy the skill folder (skills/cloud/managed-airflow-migrations in google/skills) into .claude/skills/managed-airflow-migrations in your project. Claude Code loads it when a task matches its description.

How do I install Managed Airflow Migrations in Codex?

Run `npx skills add google/skills --skill managed-airflow-migrations -a codex`. Or copy the skill folder (skills/cloud/managed-airflow-migrations in google/skills) into .agents/skills/managed-airflow-migrations in your project. Codex loads it when a task matches its description.

Can I use Managed Airflow Migrations in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add google/skills --skill managed-airflow-migrations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/managed-airflow-migrations, .gemini/skills/managed-airflow-migrations, .github/skills/managed-airflow-migrations and .opencode/skills/managed-airflow-migrations in your project.

What does Managed Airflow Migrations need to run?

Going by SKILL.md and its folder, Managed Airflow Migrations needs the command-line tools its instructions call (ruff and gcloud).

Does Managed Airflow Migrations access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Managed Airflow Migrations safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Managed Airflow Migrations use?

Managed Airflow Migrations is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Managed Airflow Migrations use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.

What are the alternatives to Managed Airflow Migrations?

Skills that share tags, products or a category with Managed Airflow Migrations: Glue 09 10 Migration (aws-samples/aws-glue-samples, 1.5k stars), Chart Tests (astronomer/airflow-chart, 297 stars), Airflow (astronomer/agents, 451 stars) and Migrating Dagster To Airflow (astronomer/agents, 451 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Managed Airflow Migrations?

google (a GitHub organization, an official publisher) maintains it in google/skills, which has 21,032 GitHub stars. The repository holds 147 skills in this directory. The repository was last updated on October 8, 2026.

Source: google/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.