Not in the top 1,000 by GitHub stars

astronomer/agents

AI agent tooling for data engineering workflows.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/airflow/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/airflow-hitl/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/airflow-plugins/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/airflow-state-store/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/analyzing-data/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/annotating-task-lineage/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/authoring-dags/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/authoring-go-sdk-tasks/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/authoring-java-sdk-tasks/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/authoring-language-sdk-tasks/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/blueprint/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/checking-freshness/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/configuring-airflow-language-sdks/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/cosmos-dbt-core/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/cosmos-dbt-fusion/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/creating-openlineage-extractors/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/dag-factory/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/debugging-dags/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/delegating-to-otto/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/deploying-airflow/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/deploying-go-sdk-bundles/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/deploying-java-sdk-bundles/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/managing-astro-deployments/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/managing-astro-local-env/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/migrating-ai-sdk-to-common-ai/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/migrating-airflow-2-to-3/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/migrating-dagster-to-airflow/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/profiling-tables/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/setting-up-astro-project/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/testing-dags/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/tracing-downstream-lineage/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/tracing-upstream-lineage/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/troubleshooting-astro-deployments/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

skills/warehouse-init/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Not checked yet → After Network or broad shell

486ee63d01f8 → 35b9610bb271

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Not checked yet

First observation → 486ee63d01f8

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 35b9610bb2710c37ca11326c4cbf7818b6725fec

git clone --filter=blob:none --no-checkout https://github.com/astronomer/agents.git .hotskills/astronomer-agents && git -C .hotskills/astronomer-agents checkout --detach 35b9610bb2710c37ca11326c4cbf7818b6725fec # Copy each selected skill directory from .hotskills/astronomer-agents into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/astronomer/agents.git .hotskills/astronomer-agents && git -C .hotskills/astronomer-agents checkout --detach 35b9610bb2710c37ca11326c4cbf7818b6725fec # Copy each selected skill directory from .hotskills/astronomer-agents into .agents/skills/<skill-name>/
458GitHub stars
-1star in 7 days
35skills in this repository
5commits in 30 days

Heat

1.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 2, 2026459

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

airflow-adapter

When your agent uses it

Airflow adapter pattern for v2/v3 API compatibility. Use when working with adapters, version detection, or adding new API methods that need to work across Airflow 2.x and 3.x.

What it loads into context

Frontmatter

49 tokens

Always available to the agent

SKILL.md

261 tokens

When the skill is activated

Reference documents

1,003 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Architecture
  2. Key Files
  3. Related Files
  4. Quick Reference

Scripts executed separately

  • ../../../../skills/airflow/hooks/warm-uvx-cache.sh
  • ../../../../skills/analyzing-data/scripts/cli.py

Files

  • ../../../../.claude-plugin/marketplace.jsonasset647 bytes
  • ../../../../.claude-plugin/plugin.jsonasset639 bytes
  • SKILL.mdcore915 bytes
  • SKILL.mdcore915 bytes
  • api-differences.mddoc1,437 bytes
  • patterns.mddoc2,323 bytes
  • ../../../../skills/airflow/hooks/warm-uvx-cache.shruns408 bytes
  • ../../../../skills/analyzing-data/scripts/cli.pyruns14,449 bytes
Read SKILL.md

# Airflow Adapter Pattern

Enables compatibility with both Airflow 2.x (`/api/v1`) and 3.x (`/api/v2`).

## Architecture

```
MCP Tool → _get_adapter() → AirflowV2Adapter or AirflowV3Adapter → Airflow API
```

Version is auto-detected at startup.

## Key Files
View the complete source on GitHub

Skills included

  • airflow-adapter
  • airflow
  • airflow-hitl
  • airflow-plugins
  • airflow-state-store
  • analyzing-data
  • annotating-task-lineage
  • authoring-dags
  • authoring-go-sdk-tasks
  • authoring-java-sdk-tasks
  • authoring-language-sdk-tasks
  • blueprint
  • checking-freshness
  • configuring-airflow-language-sdks
  • cosmos-dbt-core
  • cosmos-dbt-fusion
  • creating-openlineage-extractors
  • dag-factory
  • debugging-dags
  • delegating-to-otto
  • deploying-airflow
  • deploying-go-sdk-bundles
  • deploying-java-sdk-bundles
  • managing-astro-deployments
  • managing-astro-local-env
  • migrating-ai-sdk-to-common-ai
  • migrating-airflow-2-to-3
  • migrating-dagster-to-airflow
  • profiling-tables
  • setting-up-astro-project
  • testing-dags
  • tracing-downstream-lineage
  • tracing-upstream-lineage
  • troubleshooting-astro-deployments
  • warehouse-init

Repository facts

License
Apache-2.0
Created
Jan 13, 2026
Last pushed
Nov 2, 2026
Forks
74
Open issues
9
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 296 notes
  • astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow-hitl/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/airflow-hitl/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 388 signals by file

.claude-plugin/marketplace.json

  • Network accessline 15
    "email": "support@astronomer.io"       },       "homepage": "https://github.com/astronomer/agents",
  • Network accessline 16
    },       "homepage": "https://github.com/astronomer/agents",       "repository": "https://github.com/astronomer/agents",
  • Network accessline 17
    "homepage": "https://github.com/astronomer/agents",
  • Network accessline 18
    "repository": "https://github.com/astronomer/agents",

astro-airflow-mcp/.claude/skills/airflow-adapter/patterns.md

  • Network accessline 70
    def test_new_method(self, mocker):     adapter = AirflowV2Adapter("http://localhost:8080", "2.9.0")
  • Network accessline 71
    adapter = AirflowV2Adapter("http://localhost:8080", "2.9.0")

skills/airflow-hitl/SKILL.md

  • Access to secretsline 142
    [Credential-related source omitted]
  • Access to secretsline 143
    [Credential-related source omitted]
  • Network accessline 146
    # List pending — use the path from `af api ls --filter hitl` requests.get(f"{HOST}/<path>", headers=HEADERS, params={"state": "pending"})
  • Network accessline 147
    requests.get(f"{HOST}/<path>", headers=HEADERS, params={"state": "pending"})
  • Network accessline 149
    # Respond — same discovered path family, PATCH requests.patch(
  • Network accessline 150
    requests.patch(

skills/airflow-plugins/SKILL.md

  • Network accessline 14
    > **Restart required**: Changes to Python plugin files require restarting the API server. Static file changes (HTML, JS, CSS) are picked up immediately. Set `AIRFLOW__CORE__LAZY_LOAD_PLUGINS=False` during development to load plugins at star
  • Network accessline 16
    > **Relative paths always**: In `external_views`, `href` must have no leading slash. In HTML and JavaScript, use relative paths for all assets and `fetch()` calls. Absolute paths break behind reverse proxies.
  • Network accessline 20
    1. Am I using `fastapi_apps` / FastAPI — not `appbuilder_views` / Flask? 2. Are all HTML/JS asset paths and `fetch()` calls relative (no leading slash)?
  • Network accessline 21
    2. Are all HTML/JS asset paths and `fetch()` calls relative (no leading slash)?
  • Network accessline 128
    {             "name": "Learn Airflow 3",             "href": "https://www.astronomer.io/docs/learn",
  • Network accessline 129
    "name": "Learn Airflow 3",             "href": "https://www.astronomer.io/docs/learn",             "destination": "dag",   # adds a tab to every Dag page
  • Network accessline 130
    "href": "https://www.astronomer.io/docs/learn",
  • Network accessline 137
    The no-leading-slash rule applies to internal paths only — full `https://` URLs are fine.
  • Network accessline 163
    fetch('api/dags')           // correct — relative to current page
  • Network accessline 164
    fetch('/my-plugin/api/dags') // breaks on Astro and sub-path deploys
  • Network accessline 199
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]
  • Access to secretsline 200
    [Credential-related source omitted]
  • Access to secretsline 201
    [Credential-related source omitted]
  • Access to secretsline 202
    [Credential-related source omitted]
  • Network accessline 209
    def _fetch_fresh_token() -> str:     """Exchange username/password for a JWT via Airflow's auth endpoint."""     response = requests.post(
  • Network accessline 210
    """Exchange username/password for a JWT via Airflow's auth endpoint."""     response = requests.post(         f"{AIRFLOW_HOST}/auth/token",
  • Network accessline 211
    response = requests.post(
  • Access to secretsline 217
    [Credential-related source omitted]
  • Access to secretsline 240
    [Credential-related source omitted]
  • Network accessline 272
    > **API field names**: Never guess response field names — verify against the [REST API reference](https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html). Key `DAGResponse` fields: `dag_id`, `dag_display_name`, `desc
  • Network accessline 306
    > **If you need an SDK method or field not shown in the examples below**, verify it before generating code — do not guess. Either run `python3 -c "from airflow_client.client.api import <Class>; print([m for m in dir(<Class>) if not m.starts
  • Network accessline 349
    These are the most common calls beyond basic DAG CRUD. For anything not shown here, consult the [REST API reference](https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html) for available endpoints and the matching Py
  • Network accessline 398
    async def proxy_file(filename: str):     def _stream():         r = requests.get(f"https://files.example.com/{filename}", stream=True)
  • Network accessline 399
    def _stream():         r = requests.get(f"https://files.example.com/{filename}", stream=True)         r.raise_for_status()
  • Network accessline 400
    r = requests.get(f"https://files.example.com/{filename}", stream=True)
  • Network accessline 411
    Note that `requests.get()` is blocking — fetch in `asyncio.to_thread` so the event loop isn't stalled while waiting for the remote server.
  • Network accessline 471
    def get_link(self, operator, *, ti_key, **context) -> str:         return f"https://my-dashboard.example.com/tasks/{ti_key.task_id}"
  • Network accessline 472
    return f"https://my-dashboard.example.com/tasks/{ti_key.task_id}"
  • Network accessline 523
    [Credential-related source omitted]
  • Access to secretsline 523
    [Credential-related source omitted]
  • Access to secretsline 524
    [Credential-related source omitted]
  • Access to secretsline 525
    [Credential-related source omitted]
  • Network accessline 530
    [Credential-related source omitted]
  • Access to secretsline 530
    [Credential-related source omitted]
  • Network accessline 531
    MYPLUGIN_HOST=http://localhost:8080
  • Network accessline 550
    astro deployment variable create --deployment-id <id> MYPLUGIN_HOST=https://airflow.example.com
  • Network accessline 581
    | Endpoints accessible without login | FastAPI apps are not auto-authenticated | Add FastAPI security (e.g. OAuth2, API key) if endpoints must be private | | Middleware affecting wrong routes | Middleware applies to all API traffic | Filter
  • Network accessline 583
    | JS `fetch()` breaks on Astro | Absolute path in `fetch()` | Always use relative paths: `fetch('api/dags')` |
  • Network accessline 589
    - [Airflow plugins documentation](https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/plugins.html)
  • Network accessline 590
    - [Airflow REST API reference](https://airflow.apache.org/docs/apache-airflow/stable/stable-rest-api-ref.html) — full endpoint list with SDK class/method names
  • Network accessline 591
    - [Astronomer: Using Airflow plugins](https://www.astronomer.io/docs/learn/using-airflow-plugins)

skills/airflow/SKILL.md

  • Network accessline 12
    The [Astro CLI](https://www.astronomer.io/docs/astro/cli/overview) is the recommended way to run Airflow locally and deploy to production. It provides a containerized Airflow environment that works out of the box:
  • Network accessline 18
    # Start local Airflow (webserver at http://localhost:8080)
  • Network accessline 48
    # Add a new instance af instance add prod --url https://airflow.example.com --token "$API_TOKEN"
  • Network accessline 49
    [Credential-related source omitted]
  • Access to secretsline 49
    [Credential-related source omitted]
  • Network accessline 50
    af instance add staging --url https://staging.example.com --username admin --password admin
  • Network accessline 73
    [Credential-related source omitted]
  • Network accessline 74
    [Credential-related source omitted]
  • Access to secretsline 74
    [Credential-related source omitted]
  • Network accessline 94
    instances: - name: prod   url: https://airflow.example.com
  • Network accessline 95
    - name: prod   url: https://airflow.example.com   auth:
  • Network accessline 96
    url: https://airflow.example.com
  • Access to secretsline 98
    [Credential-related source omitted]
  • Network accessline 104
    export AIRFLOW_API_URL=http://localhost:8080
  • Access to secretsline 105
    [Credential-related source omitted]
  • Network accessline 111
    Or CLI flags: `af --airflow-url http://localhost:8080 --token "$TOKEN" <command>`

skills/airflow/hooks/warm-uvx-cache.sh

  • Executable scriptline 1
    #!/bin/bash
  • Executable scriptline 1
    #!/bin/bash

skills/analyzing-data/scripts/.gitignore

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/cache.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/cli.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 48
    click.echo("Error: uv is not installed.", err=True)         click.echo(             "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True
  • Network accessline 48
    click.echo("Error: uv is not installed.", err=True)         click.echo(             "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True
  • Network accessline 49
    click.echo(             "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True         )
  • Network accessline 49
    click.echo(             "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True         )
  • Dangerous shell operationline 50
    "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True
  • Dangerous shell operationline 50
    "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True
  • Network accessline 50
    "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True
  • Network accessline 50
    "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh", err=True

skills/analyzing-data/scripts/config.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/connectors.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 56
    [Credential-related source omitted]
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 197
    [Credential-related source omitted]
  • Access to secretsline 212
    [Credential-related source omitted]
  • Access to secretsline 229
    [Credential-related source omitted]
  • Access to secretsline 338
    [Credential-related source omitted]
  • Access to secretsline 721
    [Credential-related source omitted]

skills/analyzing-data/scripts/kernel.py

  • Executable scriptline 1
    Executable file
  • Network accessline 110
    raise RuntimeError(                 "uv is not installed.\n"                 "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh"
  • Network accessline 111
    "uv is not installed.\n"                 "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh"             )
  • Dangerous shell operationline 112
    "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh"
  • Network accessline 112
    "Install with: curl -LsSf https://astral.sh/uv/install.sh | sh"
  • Access to secretsline 198
    [Credential-related source omitted]
  • Access to secretsline 268
    [Credential-related source omitted]

skills/analyzing-data/scripts/templates.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/__init__.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/conftest.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/integration/__init__.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/integration/conftest.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 12
    [Credential-related source omitted]
  • Access to secretsline 13
    [Credential-related source omitted]
  • Access to secretsline 14
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 16
    [Credential-related source omitted]

skills/analyzing-data/scripts/tests/integration/test_duckdb_e2e.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 27
    exec(prelude, local_vars)
  • Dangerous shell operationline 101
    exec(prelude, local_vars)

skills/analyzing-data/scripts/tests/integration/test_kernel_interrupt.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/integration/test_postgres_e2e.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 26
    exec(prelude, local_vars)
  • Access to secretsline 92
    [Credential-related source omitted]
  • Dangerous shell operationline 101
    exec(prelude, local_vars)

skills/analyzing-data/scripts/tests/integration/test_sqlite_e2e.py

  • Executable scriptline 1
    Executable file
  • Dangerous shell operationline 24
    exec(prelude, local_vars)
  • Dangerous shell operationline 86
    exec(prelude, local_vars)
  • Dangerous shell operationline 111
    exec(prelude, local_vars)

skills/analyzing-data/scripts/tests/test_cache.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/test_config.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/test_connectors.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 632
    [Credential-related source omitted]
  • Access to secretsline 636
    [Credential-related source omitted]
  • Access to secretsline 646
    [Credential-related source omitted]
  • Access to secretsline 753
    [Credential-related source omitted]
  • Access to secretsline 758
    [Credential-related source omitted]
  • Dangerous shell operationline 1047
    exec(prelude, local_vars)
  • Dangerous shell operationline 1116
    exec(conn.to_python_prelude(), local_vars)
  • Dangerous shell operationline 1139
    exec(conn.to_python_prelude(), local_vars)
  • Dangerous shell operationline 1148
    exec(conn.to_python_prelude(), local_vars)
  • Dangerous shell operationline 1198
    exec(HELPERS_CODE, namespace)

skills/analyzing-data/scripts/tests/test_kernel.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/test_utils.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/tests/test_warehouse.py

  • Executable scriptline 1
    Executable file

skills/analyzing-data/scripts/ty.toml

  • Network accessline 1
    # ty type checker configuration # https://docs.astral.sh/ty/
  • Network accessline 2
    # https://docs.astral.sh/ty/

skills/analyzing-data/scripts/warehouse.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 18
    [Credential-related source omitted]
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]

skills/annotating-task-lineage/SKILL.md

  • Network accessline 10
    > **Reference:** See the [OpenLineage provider developer guide](https://airflow.apache.org/docs/apache-airflow-providers-openlineage/stable/guides/developer.html) for the latest supported operators and patterns.
  • Network accessline 215
    Use the [OpenLineage dataset naming helpers](https://openlineage.io/docs/client/python/best-practices#dataset-naming-helpers) to ensure consistent naming across platforms:
  • Network accessline 264
    > **Note:** Always use the naming helpers instead of constructing namespaces manually. If a helper is missing for your platform, check the [OpenLineage repo](https://github.com/OpenLineage/OpenLineage) or request it.

skills/authoring-dags/reference/best-practices.md

  • Access to secretsline 120
    [Credential-related source omitted]

skills/blueprint/SKILL.md

  • Network accessline 10
    > **Package**: `airflow-blueprint` on PyPI — this skill documents **0.5.0** > **Repo**: https://github.com/astronomer/blueprint
  • Network accessline 11
    > **Repo**: https://github.com/astronomer/blueprint
  • Network accessline 721
    - GitHub: https://github.com/astronomer/blueprint
  • Network accessline 722
    - PyPI: https://pypi.org/project/airflow-blueprint/
  • Network accessline 726
    - Astro IDE Blueprint docs: https://docs.astronomer.io/astro/ide-blueprint

skills/cosmos-dbt-core/SKILL.md

  • Network accessline 10
    > **Version note**: This skill targets Cosmos 1.11+ and Airflow 3.x. If the user is on Airflow 2.x, adjust imports accordingly (see Appendix A). > > **Reference**: Latest stable: https://pypi.org/project/astronomer-cosmos/
  • Network accessline 12
    > **Reference**: Latest stable: https://pypi.org/project/astronomer-cosmos/
  • Network accessline 384
    Reference: https://astronomer.github.io/astronomer-cosmos/configuration/caching.html
  • Network accessline 448
    Reference: https://astronomer.github.io/astronomer-cosmos/configuration/hosting-docs.html

skills/cosmos-dbt-core/reference/cosmos-config.md

  • Network accessline 83
    Reference: https://astronomer.github.io/astronomer-cosmos/getting_started/watcher-execution-mode.html
  • Network accessline 145
    Reference: https://astronomer.github.io/astronomer-cosmos/getting_started/async-execution-mode.html
  • Network accessline 185
    Full list: https://astronomer.github.io/astronomer-cosmos/profiles/index.html

skills/cosmos-dbt-fusion/SKILL.md

  • Network accessline 20
    | No async | `AIRFLOW_ASYNC` not supported | | No virtualenv | Fusion is a binary, not a Python package | | Warehouse support | Snowflake, Databricks, Bigquery and Redshift support [while in preview](https://github.com/dbt-labs/dbt-fusion) 
  • Network accessline 22
    | Warehouse support | Snowflake, Databricks, Bigquery and Redshift support [while in preview](https://github.com/dbt-labs/dbt-fusion) |
  • Network accessline 51
    USER root RUN apt-get update && apt-get install -y curl ENV SHELL=/bin/bash
  • Network accessline 52
    RUN apt-get update && apt-get install -y curl ENV SHELL=/bin/bash RUN curl -fsSL https://public.cdn.getdbt.com/fs/install/install.sh | sh -s -- --update
  • Network accessline 53
    ENV SHELL=/bin/bash RUN curl -fsSL https://public.cdn.getdbt.com/fs/install/install.sh | sh -s -- --update USER astro
  • Dangerous shell operationline 54
    RUN curl -fsSL https://public.cdn.getdbt.com/fs/install/install.sh | sh -s -- --update
  • Network accessline 54
    RUN curl -fsSL https://public.cdn.getdbt.com/fs/install/install.sh | sh -s -- --update
  • Network accessline 241
    - Cosmos dbt Fusion docs: https://astronomer.github.io/astronomer-cosmos/configuration/dbt-fusion.html
  • Network accessline 242
    - dbt Fusion install: https://docs.getdbt.com/docs/core/pip-install#dbt-fusion

skills/creating-openlineage-extractors/SKILL.md

  • Network accessline 10
    > **Reference:** See the [OpenLineage provider developer guide](https://airflow.apache.org/docs/apache-airflow-providers-openlineage/stable/guides/developer.html) for the latest patterns and list of supported operators/hooks.

skills/dag-factory/SKILL.md

  • Network accessline 9
    > **Package**: `dag-factory` on PyPI > **Repo**: https://github.com/astronomer/dag-factory
  • Network accessline 10
    > **Repo**: https://github.com/astronomer/dag-factory
  • Network accessline 11
    > **Docs**: https://astronomer.github.io/dag-factory/latest/
  • Network accessline 494
    - GitHub: https://github.com/astronomer/dag-factory
  • Network accessline 495
    - Docs: https://astronomer.github.io/dag-factory/latest/
  • Network accessline 496
    - PyPI: https://pypi.org/project/dag-factory/
  • Network accessline 497
    - Migration Guide: https://astronomer.github.io/dag-factory/latest/migration_guide/

skills/dag-factory/reference/migration.md

  • Network accessline 50
    - Official migration guide: https://astronomer.github.io/dag-factory/latest/migration_guide/

skills/debugging-dags/SKILL.md

  • Network accessline 80
    curl -s https://pypi.org/pypi/<pkg>/json | jq '.releases | to_entries | map({version: .key, uploaded: .value[0].upload_time}) | sort_by(.uploaded) | reverse | .[:5]'
  • Network accessline 90
    - **Deployment activity log**: Check the Astro UI for recent deploys — a failed deploy or recent code change is often the cause of sudden failures - **Astro alerts**: Configure alerts in the Astro UI for proactive failure monitoring (DAG fa
  • Network accessline 92
    - **Observability**: Use the Astro [observability dashboard](https://www.astronomer.io/docs/astro/airflow-alerts) to track DAG health trends and spot recurring issues

skills/delegating-to-otto/SKILL.md

  • Network accessline 8
    [Otto](https://www.astronomer.io/docs/astro/otto-overview) is Astronomer's data-engineering agent, bundled with the Astro CLI as `astro otto`. This skill is for driving Otto **as a sub-agent** from the CLI — not for using Otto interactively
  • Access to secretsline 125
    [Credential-related source omitted]
  • Network accessline 251
    For full reference see [Otto settings](https://www.astronomer.io/docs/astro/otto-settings).
  • Network accessline 267
    - `astro otto --help` — flag reference (source of truth) - [Otto overview](https://www.astronomer.io/docs/astro/otto-overview)
  • Network accessline 268
    - [Otto overview](https://www.astronomer.io/docs/astro/otto-overview)
  • Network accessline 269
    - [`astro otto` CLI reference](https://www.astronomer.io/docs/astro/cli/astro-otto)
  • Network accessline 270
    - [Otto permissions](https://www.astronomer.io/docs/astro/otto-permissions)
  • Network accessline 271
    - [Otto extensions](https://www.astronomer.io/docs/astro/otto-extensions)
  • Network accessline 272
    - [Otto settings](https://www.astronomer.io/docs/astro/otto-settings)
  • Network accessline 273
    - [Otto memory](https://www.astronomer.io/docs/astro/otto-memory)

skills/deploying-airflow/SKILL.md

  • Network accessline 89
    - [Astro Deploy Documentation](https://www.astronomer.io/docs/astro/deploy-code)
  • Network accessline 107
    curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml'
  • Network accessline 179
    - "8080:8080"     healthcheck:       test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
  • Network accessline 180
    healthcheck:       test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]       interval: 30s
  • Network accessline 181
    test: ["CMD", "curl", "--fail", "http://localhost:8080/health"]
  • Network accessline 286
    # Add the Airflow Helm repo helm repo add apache-airflow https://airflow.apache.org
  • Network accessline 287
    helm repo add apache-airflow https://airflow.apache.org
  • Network accessline 314
    gitSync:     enabled: true     repo: https://github.com/your-org/your-dags.git
  • Network accessline 315
    enabled: true     repo: https://github.com/your-org/your-dags.git     branch: main
  • Network accessline 316
    repo: https://github.com/your-org/your-dags.git

skills/deploying-java-sdk-bundles/SKILL.md

  • Network accessline 152
    maven {     name = "apacheSnapshots"     url = "https://repository.apache.org/content/repositories/snapshots/"
  • Network accessline 153
    name = "apacheSnapshots"     url = "https://repository.apache.org/content/repositories/snapshots/"     mavenContent { snapshotsOnly() }
  • Network accessline 154
    url = "https://repository.apache.org/content/repositories/snapshots/"
  • Dangerous shell operationline 186
    RUN apt-get update      && apt-get install -y --no-install-recommends default-jre-headless      && apt-get clean && rm -rf /var/lib/apt/lists/*
  • Dangerous shell operationline 188
    && apt-get clean && rm -rf /var/lib/apt/lists/*
  • Dangerous shell operationline 206
    RUN apt-get update         && apt-get install -y --no-install-recommends default-jre-headless         && apt-get clean && rm -rf /var/lib/apt/lists/*
  • Dangerous shell operationline 208
    && apt-get clean && rm -rf /var/lib/apt/lists/*

skills/managing-astro-local-env/SKILL.md

  • Network accessline 20
    # Start local Airflow (webserver at http://localhost:8080)
  • Network accessline 92
    Each project gets a hostname like `<project-name>.localhost:6563`. Visit `http://localhost:6563` to see all active projects.
  • Network accessline 179
    | `--paginate` | Fetch all pages | | `-X` / `--method` | Override HTTP method | | `--generate` | Output curl command instead of executing |
  • Network accessline 181
    | `--generate` | Output curl command instead of executing |

skills/migrating-ai-sdk-to-common-ai/SKILL.md

  • Network accessline 87
    [Credential-related source omitted]
  • Network accessline 88
    [Credential-related source omitted]
  • Network accessline 89
    "host": "https://my-endpoint.com/v1",
  • Network accessline 327
    [Credential-related source omitted]
  • Network accessline 328
    [Credential-related source omitted]
  • Network accessline 329
    host: https://my-endpoint.com/v1
  • Access to secretsline 341
    [Credential-related source omitted]
  • Access to secretsline 345
    [Credential-related source omitted]

skills/migrating-airflow-2-to-3/SKILL.md

  • Network accessline 16
    **Important**: Before migrating to Airflow 3, strongly recommend upgrading to Airflow 2.11 first, then to at least Airflow 3.0.11 (ideally directly to 3.1). Other upgrade paths would make rollbacks impossible. See: https://www.astronomer.io
  • Access to secretsline 79
    [Credential-related source omitted]
  • Access to secretsline 83
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Network accessline 102
    @task def list_dags_via_api() -> None:     response = requests.get(
  • Network accessline 103
    def list_dags_via_api() -> None:     response = requests.get(         f"{_HOST}/api/v2/dags",
  • Network accessline 104
    response = requests.get(
  • Network accessline 190
    - [Astronomer Airflow 3 Upgrade Guide](https://www.astronomer.io/docs/astro/airflow3/upgrade-af3)
  • Network accessline 191
    - [Airflow 3 Release Notes](https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html)
  • Network accessline 192
    - [Ruff Airflow Rules](https://docs.astral.sh/ruff/rules/#airflow-air)

skills/migrating-airflow-2-to-3/reference/config-changes.md

  • Access to secretsline 3
    [Credential-related source omitted]

skills/migrating-airflow-2-to-3/reference/migration-patterns.md

  • Network accessline 129
    **Astro users**: Consider [Astro Alerts](https://www.astronomer.io/docs/astro/alerts) for critical notifications (works independently of Airflow components).
  • Network accessline 241
    - **SequentialExecutor** removed — use `LocalExecutor` instead (can use SQLite for local dev). - **CeleryKubernetesExecutor** removed — use [Multiple Executor Configuration](https://airflow.apache.org/docs/apache-airflow/stable/core-concept
  • Network accessline 242
    - **CeleryKubernetesExecutor** removed — use [Multiple Executor Configuration](https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/executor/index.html) instead.
  • Network accessline 324
    Reference: https://www.astronomer.io/docs/learn/custom-xcom-backend-strategies

skills/migrating-dagster-to-airflow/reference/dbt.md

  • Network accessline 15
    Target: Airflow 3.x on Astro Runtime, `astronomer-cosmos` >= 1.15. Verify every Cosmos symbol against [the Cosmos docs](https://astronomer.github.io/astronomer-cosmos)
  • Network accessline 16
    Cosmos symbol against [the Cosmos docs](https://astronomer.github.io/astronomer-cosmos)
  • Access to secretsline 116
    [Credential-related source omitted]
  • Access to secretsline 219
    [Credential-related source omitted]
  • Network accessline 492
    Sources: [Cosmos configuration](https://astronomer.github.io/astronomer-cosmos/configuration/index.html), [RenderConfig select/exclude](https://astronomer.github.io/astronomer-cosmos/configuration/selecting-excluding.html), [ProfileConfig /

skills/migrating-dagster-to-airflow/reference/io-and-data-passing.md

  • Access to secretsline 94
    [Credential-related source omitted]

skills/migrating-dagster-to-airflow/scripts/inventory.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/migrating-dagster-to-airflow/scripts/status.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/migrating-dagster-to-airflow/scripts/tests/conftest.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 83
    [Credential-related source omitted]

skills/migrating-dagster-to-airflow/scripts/tests/test_inventory.py

  • Executable scriptline 1
    Executable file

skills/migrating-dagster-to-airflow/scripts/tests/test_merge.py

  • Executable scriptline 1
    Executable file

skills/migrating-dagster-to-airflow/scripts/tests/test_status.py

  • Executable scriptline 1
    Executable file

skills/migrating-dagster-to-airflow/scripts/tests/test_validate_dag.py

  • Executable scriptline 1
    Executable file

skills/migrating-dagster-to-airflow/scripts/uv.lock

  • Network accessline 10
    name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" }
  • Network accessline 11
    version = "0.4.6" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb
  • Network accessline 12
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 13
    sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 276
  • Network accessline 14
    wheels = [     { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57a
  • Network accessline 15
    { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size
  • Network accessline 19
    name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 20
    version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [
  • Network accessline 21
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 23
    { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha
  • Network accessline 24
    ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", si
  • Network accessline 25
    sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size
  • Network accessline 26
    wheels = [     { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577
  • Network accessline 27
    { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", si
  • Network accessline 31
    name = "iniconfig" version = "2.1.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 32
    version = "2.1.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [
  • Network accessline 33
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 35
    "python_full_version < '3.10'", ] sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f00
  • Network accessline 36
    ] sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 
  • Network accessline 37
    sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 47
  • Network accessline 38
    wheels = [     { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168
  • Network accessline 39
    { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 
  • Network accessline 43
    name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 44
    version = "2.3.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [
  • Network accessline 45
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 47
    "python_full_version >= '3.10'", ] sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16f
  • Network accessline 48
    ] sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 
  • Network accessline 49
    sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20
  • Network accessline 50
    wheels = [     { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53
  • Network accessline 51
    { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 
  • Network accessline 59
    [package.optional-dependencies] test = [     { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
  • Network accessline 60
    test = [     { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },     { name = "pytest", version = "9.1.1", source = { registry = "https://pypi.org/simple" }, ma
  • Network accessline 61
    { name = "pytest", version = "8.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
  • Network accessline 62
    { name = "pytest", version = "9.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
  • Network accessline 70
    name = "packaging" version = "26.2" source = { registry = "https://pypi.org/simple" }
  • Network accessline 71
    version = "26.2" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3
  • Network accessline 72
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 73
    sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228
  • Network accessline 74
    wheels = [     { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0
  • Network accessline 75
    { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 1
  • Network accessline 79
    name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 80
    version = "1.6.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b762
  • Network accessline 81
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 82
    sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412
  • Network accessline 83
    wheels = [     { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd47
  • Network accessline 84
    { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 205
  • Network accessline 88
    name = "pygments" version = "2.20.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 89
    version = "2.20.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd0
  • Network accessline 90
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 91
    sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 49
  • Network accessline 92
    wheels = [     { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946
  • Network accessline 93
    { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 
  • Network accessline 97
    name = "pytest" version = "8.4.2" source = { registry = "https://pypi.org/simple" }
  • Network accessline 98
    version = "8.4.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [
  • Network accessline 99
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 104
    { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" },     { name = "exceptiongroup", marker = "python_full_version < '3.10'" },     { name = "iniconfig", version = "2.1.0", source = { registry = "https:
  • Network accessline 105
    { name = "exceptiongroup", marker = "python_full_version < '3.10'" },     { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },     { name = "packaging", marke
  • Network accessline 106
    { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
  • Network accessline 110
    { name = "tomli", marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961
  • Network accessline 111
    ] sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 151
  • Network accessline 112
    sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 15196
  • Network accessline 113
    wheels = [     { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e
  • Network accessline 114
    { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365
  • Network accessline 118
    name = "pytest" version = "9.1.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 119
    version = "9.1.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [
  • Network accessline 120
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 125
    { name = "colorama", marker = "python_full_version >= '3.10' and sys_platform == 'win32'" },     { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" },     { name = "iniconfig", version = "2.3.0", source = { registry = "ht
  • Network accessline 126
    { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" },     { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },     { name = "packaging", m
  • Network accessline 127
    { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
  • Network accessline 131
    { name = "tomli", marker = "python_full_version == '3.10.*'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b4
  • Network accessline 132
    ] sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 163
  • Network accessline 133
    sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 16363
  • Network accessline 134
    wheels = [     { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f
  • Network accessline 135
    { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386
  • Network accessline 139
    name = "tomli" version = "2.4.1" source = { registry = "https://pypi.org/simple" }
  • Network accessline 140
    version = "2.4.1" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b
  • Network accessline 141
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 142
    sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543,
  • Network accessline 143
    wheels = [     { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b9
  • Network accessline 144
    { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d65228
  • Network accessline 145
    { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a
  • Network accessline 146
    { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a57867
  • Network accessline 147
    { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0ba
  • Network accessline 148
    { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56
  • Network accessline 149
    { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e519370
  • Network accessline 150
    { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size =
  • Network accessline 151
    { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", si
  • Network accessline 152
    { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", si
  • Network accessline 153
    { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba
  • Network accessline 154
    { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487
  • Network accessline 155
    { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727e
  • Network accessline 156
    { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1de
  • Network accessline 157
    { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14
  • Network accessline 158
    { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94a
  • Network accessline 159
    { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size =
  • Network accessline 160
    { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", si
  • Network accessline 161
    { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", si
  • Network accessline 162
    { url = "https://files.pythonhosted.org/packages/07/06/b823a7e818c756d9a7123ba2cda7d07bc2dd32835648d1a7b7b7a05d848d/tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43b
  • Network accessline 163
    { url = "https://files.pythonhosted.org/packages/14/6f/12645cf7f08e1a20c7eb8c297c6f11d31c1b50f316a7e7e1e1de6e2e7b7e/tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e769
  • Network accessline 164
    { url = "https://files.pythonhosted.org/packages/5c/e0/90637574e5e7212c09099c67ad349b04ec4d6020324539297b634a0192b0/tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9c
  • Network accessline 165
    { url = "https://files.pythonhosted.org/packages/10/8f/d3ddb16c5a4befdf31a23307f72828686ab2096f068eaf56631e136c1fdd/tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd
  • Network accessline 166
    { url = "https://files.pythonhosted.org/packages/e3/f1/dbeeb9116715abee2485bf0a12d07a8f31af94d71608c171c45f64c0469d/tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae1
  • Network accessline 167
    { url = "https://files.pythonhosted.org/packages/d3/74/16336ffd19ed4da28a70959f92f506233bd7cfc2332b20bdb01591e8b1d1/tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28
  • Network accessline 168
    { url = "https://files.pythonhosted.org/packages/16/f9/229fa3434c590ddf6c0aa9af64d3af4b752540686cace29e6281e3458469/tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd", size =
  • Network accessline 169
    { url = "https://files.pythonhosted.org/packages/6a/1e/71dfd96bcc1c775420cb8befe7a9d35f2e5b1309798f009dca17b7708c1e/tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36", si
  • Network accessline 170
    { url = "https://files.pythonhosted.org/packages/83/7a/d34f422a021d62420b78f5c538e5b102f62bea616d1d75a13f0a88acb04a/tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd", si
  • Network accessline 171
    { url = "https://files.pythonhosted.org/packages/3c/fb/9a5c8d27dbab540869f7c1f8eb0abb3244189ce780ba9cd73f3770662072/tomli-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc
  • Network accessline 172
    { url = "https://files.pythonhosted.org/packages/62/05/d2f816630cc771ad836af54f5001f47a6f611d2d39535364f148b6a92d6b/tomli-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a982
  • Network accessline 173
    { url = "https://files.pythonhosted.org/packages/ce/48/66341bdb858ad9bd0ceab5a86f90eddab127cf8b046418009f2125630ecb/tomli-2.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:559db847dc4
  • Network accessline 174
    { url = "https://files.pythonhosted.org/packages/df/6d/c5fad00d82b3c7a3ab6189bd4b10e60466f22cfe8a08a9394185c8a8111c/tomli-2.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f520d4f53ef9
  • Network accessline 175
    { url = "https://files.pythonhosted.org/packages/00/71/3a69e86f3eafe8c7a59d008d245888051005bd657760e96d5fbfb0b740c2/tomli-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef26122
  • Network accessline 176
    { url = "https://files.pythonhosted.org/packages/67/50/361e986652847fec4bd5e4a0208752fbe64689c603c7ae5ea7cb16b1c0ca/tomli-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189f
  • Network accessline 177
    { url = "https://files.pythonhosted.org/packages/8c/9a/b4173689a9203472e5467217e0154b00e260621caa227b6fa01feab16998/tomli-2.4.1-cp314-cp314-win32.whl", hash = "sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6", size =
  • Network accessline 178
    { url = "https://files.pythonhosted.org/packages/14/58/640ac93bf230cd27d002462c9af0d837779f8773bc03dee06b5835208214/tomli-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7", si
  • Network accessline 179
    { url = "https://files.pythonhosted.org/packages/d5/2f/702d5e05b227401c1068f0d386d79a589bb12bf64c3d2c72ce0631e3bc49/tomli-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232", si
  • Network accessline 180
    { url = "https://files.pythonhosted.org/packages/45/4b/b877b05c8ba62927d9865dd980e34a755de541eb65fffba52b4cc495d4d2/tomli-2.4.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc1
  • Network accessline 181
    { url = "https://files.pythonhosted.org/packages/24/79/6ab420d37a270b89f7195dec5448f79400d9e9c1826df982f3f8e97b24fd/tomli-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4
  • Network accessline 182
    { url = "https://files.pythonhosted.org/packages/02/e0/3630057d8eb170310785723ed5adcdfb7d50cb7e6455f85ba8a3deed642b/tomli-2.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d8591993e
  • Network accessline 183
    { url = "https://files.pythonhosted.org/packages/7a/b4/1613716072e544d1a7891f548d8f9ec6ce2faf42ca65acae01d76ea06bb0/tomli-2.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:734e20b57ba95
  • Network accessline 184
    { url = "https://files.pythonhosted.org/packages/05/38/30f541baf6a3f6df77b3df16b01ba319221389e2da59427e221ef417ac0c/tomli-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb
  • Network accessline 185
    { url = "https://files.pythonhosted.org/packages/77/a3/ec9dd4fd2c38e98de34223b995a3b34813e6bdadf86c75314c928350ed14/tomli-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572
  • Network accessline 186
    { url = "https://files.pythonhosted.org/packages/ef/be/605a6261cac79fba2ec0c9827e986e00323a1945700969b8ee0b30d85453/tomli-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8", size 
  • Network accessline 187
    { url = "https://files.pythonhosted.org/packages/12/64/da524626d3b9cc40c168a13da8335fe1c51be12c0a63685cc6db7308daae/tomli-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26", s
  • Network accessline 188
    { url = "https://files.pythonhosted.org/packages/5a/cd/e80b62269fc78fc36c9af5a6b89c835baa8af28ff5ad28c7028d60860320/tomli-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396", s
  • Network accessline 189
    { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 1458
  • Network accessline 193
    name = "typing-extensions" version = "4.16.0" source = { registry = "https://pypi.org/simple" }
  • Network accessline 194
    version = "4.16.0" source = { registry = "https://pypi.org/simple" } sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha25
  • Network accessline 195
    source = { registry = "https://pypi.org/simple" }
  • Network accessline 196
    sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", 
  • Network accessline 197
    wheels = [     { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f3
  • Network accessline 198
    { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8"

skills/migrating-dagster-to-airflow/scripts/validate_dag.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/setting-up-astro-project/SKILL.md

  • Network accessline 63
    RUN pip install --extra-index-url https://pypi.example.com/simple my-package

skills/troubleshooting-astro-deployments/SKILL.md

  • Network accessline 237
    astro deployment variable create --deployment-id <DEPLOYMENT_ID> \   --key API_ENDPOINT \   --value https://api.example.com
  • Network accessline 239
    --value https://api.example.com
  • Access to secretsline 242
    [Credential-related source omitted]
  • Access to secretsline 243
    [Credential-related source omitted]
  • Access to secretsline 252
    [Credential-related source omitted]
  • Access to secretsline 253
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 251 facts

and 201 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md astro-airflow-mcp/.claude/skills/airflow-adapter/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.