AI Data Engineering
ancoleman/ai-design-components
Data pipelines, feature stores, and embedding generation for AI/ML systems.
Guide for migrating Dagster projects to Apache Airflow 3 on Astro.
$ npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install astronomer/agents migrating-dagster-to-airflow --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/migrating-dagster-to-airflow .claude/skills/migrating-dagster-to-airflow && rm -rf skills-srcUse ~/.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/
Install the "migrating-dagster-to-airflow" agent skill from https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflow into .claude/skills/migrating-dagster-to-airflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrating-dagster-to-airflow", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflowType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install astronomer/agents migrating-dagster-to-airflow --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/migrating-dagster-to-airflow .agents/skills/migrating-dagster-to-airflow && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "migrating-dagster-to-airflow" agent skill from https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflow into .agents/skills/migrating-dagster-to-airflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrating-dagster-to-airflow", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install astronomer/agents migrating-dagster-to-airflow --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/migrating-dagster-to-airflow .cursor/skills/migrating-dagster-to-airflow && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "migrating-dagster-to-airflow" agent skill from https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflow into .cursor/skills/migrating-dagster-to-airflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrating-dagster-to-airflow", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/astronomer/agents.git --path skills/migrating-dagster-to-airflow--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install astronomer/agents migrating-dagster-to-airflow --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/migrating-dagster-to-airflow .gemini/skills/migrating-dagster-to-airflow && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "migrating-dagster-to-airflow" agent skill from https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflow into .gemini/skills/migrating-dagster-to-airflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrating-dagster-to-airflow", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install astronomer/agents migrating-dagster-to-airflowInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/migrating-dagster-to-airflow .github/skills/migrating-dagster-to-airflow && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "migrating-dagster-to-airflow" agent skill from https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflow into .github/skills/migrating-dagster-to-airflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrating-dagster-to-airflow", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install astronomer/agents migrating-dagster-to-airflow --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/migrating-dagster-to-airflow .opencode/skills/migrating-dagster-to-airflow && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "migrating-dagster-to-airflow" agent skill from https://github.com/astronomer/agents/tree/main/skills/migrating-dagster-to-airflow into .opencode/skills/migrating-dagster-to-airflow/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "migrating-dagster-to-airflow", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
migrating-dagster-to-airflowGuide for migrating Dagster projects to Apache Airflow 3 on Astro.
Migrating Dagster To Airflow is an agent skill from astronomer/agents. Guide for migrating Dagster projects to Apache Airflow 3 on Astro. Use when the user mentions migrating, converting, or porting Dagster (or Dagster+) code to Airflow or Astro, wants to plan or assess such a migration, or asks what a Dagster construct maps to in Airflow. Covers assets, partitions, schedules, sensors, declarative automation, resources, IO managers, ops/jobs, dbt, Pipes, Components, and Dagster+ platform config. Always load this skill as the first step for any Dagster-to-Airflow request.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 25 other files, including scripts (for example `README.md`, `reference/assets.md` and `reference/astro-deployment.md`).
It sits in Data & Analytics, covering Data pipelines and ETL and Static sites and blogs. It works with Apache Airflow, Dagster, Astro and dbt. The repository describes itself as: AI agent tooling for data engineering workflows. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 486ee63. It shows what the files ask for, not the result of running them.
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.
Ships 5 files in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
python3airflowdbtFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Migrating Dagster To Airflow loads about 3.8k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 1,788 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from astronomer/agents at commit 486ee63, republished under its Apache-2.0 licence (© astronomer). 1,788 words, ~3,779 tokens.
.claude/skills/migrating-dagster-to-airflow/SKILL.md (or your agent's skills folder). This skill also uses 22 other files; get the full folder from GitHub.Migrate a Dagster project to Airflow 3 on Astro Runtime, honestly. The migration is asset-first (Dagster asset graphs translate to Airflow assets and asset-aware schedules, not flattened DAGs), incremental (domain by domain, Dagster stays authoritative until parity), and honest (every definition gets an explicit disposition; semantic deltas are documented, never papered over).
First time driving this? Read reference/quickstart.md first: hour-one commands, the glossary, and what can and cannot break.
scripts/inventory.py → manifest).reference/mapping.md); make the go/no-go call (three outcomes; migrate-with-conditions is the common case, stay is the narrow one); plan DAG boundaries, per-edge IO decisions, and Gate 3 expectations into the manifest.reference/validation.md), tracking per-unit state (scripts/status.py); fix failure classes via reference/troubleshooting.md, never stub.reference/astro-deployment.md.Verified against Airflow 3.3.0 / Astro Runtime 3.3-2 / astronomer-cosmos 1.15 / Dagster 1.13 (2026-07). Version-sensitive rows in the references carry their floor (notably the 3.2-vs-3.3 partition surface). Before relying on a version-gated claim: check the target (airflow version, astro deployment inspect), probe imports for sdk surface (python3 -c "from airflow.sdk import X"), and prefer --help / API spec discovery over assuming verbatim CLI/REST contracts on newer versions. Playbook entries are version-scoped per entry.
astro CLI for the target project.complete or deferred (reason). scripts/status.py summary exits nonzero otherwise; run it before claiming done.reference/troubleshooting.md), then re-apply; do not hand-patch one unit.Confirm target Runtime version, astro CLI presence, and repo access. Detect the project layout: classic (@repository/workspace.yaml), modern (Definitions), or Components (pyproject.toml [tool.dg], defs.yaml files); all three occur, sometimes together. Baseline the source project's test suite now: pre-existing failures are recorded and excluded from migration blame.
python3 scripts/inventory.py <dagster_repo> --out manifest.json # static scan
python3 scripts/inventory.py <dagster_repo> --runtime --out manifest.json # + runtime introspection when the project importsThe manifest lists every definition with file:line, captured params, current-vs-deprecated spelling, and dependency edges with their IO manager; every record starts classification: "pending". Classifying is YOUR first judgment task: assign each record MECH / JUDG / REDESIGN / NONE from its row in reference/mapping.md and write it into the manifest. The scanner enumerates (deterministic completeness); the agent classifies (judgment). A record you cannot map to a mapping.md row is itself a finding: record it, do not guess. Also grep for DAGSTER_CLOUD_ and EnvVar( (platform layer, Phase 5).
Manifest conventions: the canonical manifest lives in the migration run directory. Once the Astro project exists (Phase 2 scaffold), copy the manifest to its include/inventory/manifest.json so the Gate 3 pytest and status.py defaults find it; until then it just stays in the run dir (keep the two in sync afterward, the run-dir copy wins). Static records are the canonical migration units; runtime-mode enrichment merges into them, and only genuinely runtime-only definitions (factory-generated) become new units.
Emit the migration report skeleton now: one section per manifest record, plus the secrets/env naming map from reference/astro-deployment.md. Scale the skeleton to the project: a secretless local project gets a one-line "no secrets/platform layer" note, not empty boilerplate sections.
Before translating anything, answer the project-level question the inventory makes answerable: what does this team give up by migrating, and does each loss have an acceptable answer? Assess the NONE and REDESIGN rows against what is load-bearing for THIS team, evaluating the mitigation, not just the loss:
| If load-bearing | The Airflow-world answer | Stay-signal only if |
|---|---|---|
dbt rebuild-on-code-change (code_version_changed()) | State-aware dbt builds on a cron (Fusion / dbt State skip unchanged models per run, so the post-deploy tick rebuilds exactly what changed), and/or CI-triggered dbt build on merge (PR-gated, often an upgrade) | The team can neither run a state-aware dbt stack nor dbt from CI |
| Freshness driving materialization | Astro Observe freshness SLAs / Timeliness alerts + scheduled runs sized to the SLA | Freshness-triggered compute is genuinely irreplaceable by schedule+alerting |
| Per-asset cost accounting (Insights) | Astro Observe pipeline-level warehouse cost management; per-asset granularity is lost | Per-ASSET chargeback is a contractual/organizational requirement |
| Asset catalog / column-level lineage as daily tools | Airflow 3 asset views + OpenLineage/Astro lineage (asset-level) | Column-level lineage is embedded in daily workflows with no external catalog |
Deep AutomationCondition compositions, can_subset, selective per-partition materialization | Most decompose to cron/asset schedules (see reference/automation.md); the residue is redesigned per domain | Multiple domains depend on compositions that decompose to nothing |
| Sensor cursor transactionality, run-scoped teardown | Idempotent consumers + max_active_runs; context managers in task bodies | Exactly-once event coalescing is a correctness requirement that idempotency cannot absorb |
One rule the table implies, stated plainly: no dbt-only condition reaches "stay." Between Cosmos, state-aware dbt builds, and CI-triggered builds, every dbt-workflow loss has an accepted-practice mitigation (execution-proven in this skill's eval program, including on a real warehouse); dbt items are conditions to record, never blockers. The observability rows (per-asset cost, column-level lineage) are separate conditions and are evaluated on their own, even for dbt-heavy teams.
The gate's outcome is three-valued, and the middle one is the common case:
define_asset_job selections usually name the natural domains.reference/io-and-data-passing.md (fuse / explicit storage / XCom).dag_id, task_count, edges, schedule, asset_outlets per unit. Gate 3 asserts against exactly these fields; a unit without them is skipped by validation, so an unenriched manifest means Gate 3 checks nothing (validate_dag reports skipped counts loudly, do not ignore them).astro dev init, shared helpers under include/. House conventions the scaffold imposes (e.g. a test demanding retries >= 2) do NOT override source fidelity: source behavior wins; convention adoption is a post-cutover improvement listed in the report, and the scaffold test gets skipped with an explicit reason.Migrate 2-3 representative units end-to-end through every gate before fanning out. Pick one MECH asset, one partitioned asset, one JUDG case, or the nearest available mix (small projects may have no partitioned or no MECH assets; pick one full path through a real DAG instead). What the trial teaches goes into reference/troubleshooting.md before scaling; if the trial fails structurally, stop and rework the plan, not the units.
Per unit, the state machine (tracked in the manifest):
pending → translate → fix-import → fix-lint → fix-tests → verify-parity → complete
↘ deferred (reason required)python3 scripts/validate_dag.py <astro_project> --manifest manifest.json (gates 1-3), then execution and parity per reference/validation.md.python3 scripts/status.py advance <unit-id> .... A wrong disposition is corrected with status.py reopen <unit-id> --reason .... The no-hand-editing rule applies to the STATE field (status) only; the PLAN fields (dag_id, task_count, edges, schedule, asset_outlets, target) are the planner's to write in Phase 2.complete with target: "none" and evidence naming where they went; Gate 3 skips them by design.reference/astro-deployment.md: Deployments topology, secrets/connection naming map, CI/CD and preview Deployments, alert-policy mapping, Observe/lineage expectations, the DAGSTER_CLOUD_* in-code rewrite checklist.
Dagster remains authoritative. Run migrated DAGs shadowed/paused; compare outputs over the same logical window (row counts + checksums; recompute expected values from the Dagster-produced output itself, using recorded materialization metadata only opportunistically, per reference/validation.md Gate 5). Flip schedules one domain per change window: pause the Dagster schedule, unpause the Airflow DAG; rollback is the reverse. Keep Dagster readable after cutover (run history does not migrate).
scripts/status.py summary must pass. The report contains: the go/no-go assessment (Phase 1.5) and its rationale, disposition table for every definition, all equivalence rows, the NONE/REDESIGN losses stated plainly (lineage depth, code_version triggers, Insights cost accounting, sensor cursor transactionality), the secrets map, and the deferred list with reasons. Spot-check ten complete claims before delivering it.
| Construct encountered | Read |
|---|---|
| First hour, glossary, what can break | reference/quickstart.md |
| Anything (first stop: one row per construct) | reference/mapping.md |
| Asset-key → URI convention, translation granularity, external/observable assets | reference/assets.md |
| Asset deps, IO managers, XCom, storage decisions | reference/io-and-data-passing.md |
Any partitions_def, partition mappings, backfills | reference/partitions.md |
| Schedules, sensors, AutomationCondition, freshness | reference/automation.md |
@dbt_assets, translators, dbt Cloud | reference/dbt.md |
| Components (defs.yaml), custom Component subclasses, dynamic generation | reference/components.md |
| dagster_cloud.yaml, secrets, alerts, CI/CD, cutover | reference/astro-deployment.md |
| Gates, parity testing, state machine | reference/validation.md |
| Failure classes seen before | reference/troubleshooting.md |
| Script | Purpose |
|---|---|
scripts/inventory.py | Scan the Dagster repo → JSON manifest (static + optional runtime mode) |
scripts/validate_dag.py | Gates 1-3 against the generated Astro project |
scripts/status.py | Per-unit state machine + completeness gate |
© astronomer, 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
SKILL.md and 22 other files (scripts) in skills/migrating-dagster-to-airflow of astronomer/agents.
Open the folder on GitHubat commit 486ee63
Migrating Dagster To Airflow 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Migrating Dagster To Airflow this skillastronomer/agents | 451 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| AI Data Engineeringancoleman/ai-design-components | 525 | — | ~3.5k | Automated safety check: Pass | MIT | |
| Engineering Data Pipelinestelagod/code-abyss | 244 | — | ~236 | Automated safety check: Pass | MIT | |
| Senior Data Engineerborghei/Claude-Skills | 891 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Chart Testsastronomer/airflow-chart | 297 | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Functional Testsastronomer/airflow-chart | 297 | — | ~2.2k | Automated safety check: Pass | Custom licence |
ancoleman/ai-design-components
Data pipelines, feature stores, and embedding generation for AI/ML systems.
telagod/code-abyss
Data engineering knowledge reference covering Airflow, Dagster, Kafka Streams, Flink, dbt, and data quality patterns.
borghei/Claude-Skills
Data engineering for batch and streaming pipelines with Airflow, dbt, Spark, and Kafka.
astronomer/airflow-chart
A skill your agent uses when writing, editing, reviewing, or running Helm chart tests for the Astronomer airflow-chart repository.
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.
benchflow-ai/skillsbench
World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, real-time streaming, and data infrastructure.
astronomer/agents
Queries the data warehouse with SQL and answers business questions about data.
astronomer/agents
Queries, manages, and troubleshoots Apache Airflow using the af CLI.
astronomer/agents
Workflow and best practices for writing Apache Airflow DAGs.
astronomer/agents
Deploys Airflow DAGs and projects. An agent skill from astronomer/agents.
astronomer/agents
Builds human-in-the-loop (HITL) Airflow workflows - approval gates, form input, and human-driven branching.
astronomer/agents
Annotate Airflow tasks with data lineage using inlets and outlets.
Works with
Categories
Guide for migrating Dagster projects to Apache Airflow 3 on Astro. Migrating Dagster To Airflow is an agent skill from astronomer/agents. Guide for migrating Dagster projects to Apache Airflow 3 on Astro.
Migrating Dagster To Airflow fits situations like: the user mentions migrating; porting Dagster (or Dagster+) code to Airflow; assess such a migration; asks what a Dagster construct maps to in Airflow.
Run `npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a claude-code`. Or copy the skill folder (skills/migrating-dagster-to-airflow in astronomer/agents) into .claude/skills/migrating-dagster-to-airflow in your project. Claude Code loads it when a task matches its description.
Run `npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a codex`. Or copy the skill folder (skills/migrating-dagster-to-airflow in astronomer/agents) into .agents/skills/migrating-dagster-to-airflow in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add astronomer/agents --skill migrating-dagster-to-airflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/migrating-dagster-to-airflow, .gemini/skills/migrating-dagster-to-airflow, .github/skills/migrating-dagster-to-airflow and .opencode/skills/migrating-dagster-to-airflow in your project.
Going by SKILL.md and its folder, Migrating Dagster To Airflow needs Python for the scripts in its folder and the command-line tools its instructions call (python3, airflow and dbt). Our summary lists: Python 3.
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.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Migrating Dagster To Airflow 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.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Migrating Dagster To Airflow: AI Data Engineering (ancoleman/ai-design-components, 525 stars), Engineering Data Pipelines (telagod/code-abyss, 244 stars), Senior Data Engineer (borghei/Claude-Skills, 891 stars) and Chart Tests (astronomer/airflow-chart, 297 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
astronomer (a GitHub organization) maintains it in astronomer/agents, which has 451 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on October 7, 2026.
Source: astronomer/agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.