Agent skill

Delegating To Otto

by astronomer in astronomer/agents

Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work.

Apache-2.0Auto-check: warningsData & Analytics

Install Delegating To Otto

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add astronomer/agents --skill delegating-to-otto -a claude-code

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

GitHub CLI
$ gh skill install astronomer/agents delegating-to-otto --agent claude-code

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

Manual copy
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/delegating-to-otto .claude/skills/delegating-to-otto && rm -rf skills-src

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

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

Facts

Skill name
delegating-to-otto
GitHub stars
451
Token cost
~3.9k tokens
SKILL.md length
1,661 words
Files
1
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0

At a glance

Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work.

  • Works in 5 steps: CLI flag (--model, --allowed-tools,… → Environment variable… → Project file… → …
  • The user explicitly asks to use Otto
  • SKILL.md covers When delegating pays off, How to use this skill: check…, Quick invocation and Session control, plus 14 more sections
  • Calls jq and brew; needs ASTRO_TOKEN and AIRFLOW_PASSWORD

What it does

Delegating To Otto is an agent skill from astronomer/agents. Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Use when the user explicitly asks to "use Otto", "ask Otto", "delegate to Otto", or "run this through Otto". Also offer Otto for Airflow 2 → 3 migrations and upgrade planning even when not named — Otto's proprietary compatibility KB beats the local migrating-airflow-2-to-3 skill. Becomes the default path for any Airflow/data-engineering task when sibling Astronomer skills (airflow, authoring-dags…

Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Data & Analytics, covering Data pipelines and ETL. It works with Apache Airflow, Astro, Model Context Protocol and dbt. The repository describes itself as: AI agent tooling for data engineering workflows. The licence is Apache-2.0.

When your agent uses it

  • The user explicitly asks to use Otto
  • Delegate to Otto
  • Run this through Otto

Example prompts

  • “use Otto”
  • “ask Otto”
  • “delegate to Otto”
  • “/delegating-to-otto”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. CLI flag (--model, --allowed-tools, --no-extension, etc.)
  2. Environment variable (OTTO_DISABLED_EXTENSIONS, etc.)
  3. Project file (.astro/otto/permissions.json, .astro/otto/extensions.json, .astro/config.yaml)
  4. User file (~/.astro/otto/settings.json, ~/.astro/config.yaml)
  5. Built-in default

What it can do on your machine

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

  • Tool permissions

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

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • brew

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

  • Network

    Links to these hosts (documentation or services it may open):

    • astronomer.io

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

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ASTRO_TOKEN
    • AIRFLOW_PASSWORD

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

Context cost

Delegating To Otto loads about 3.9k tokens when it runs. Until then it costs about 217 tokens; SKILL.md has 1,661 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~217
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k

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

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:125
    ds/writes to sensitive files: `.env*`, `~/.ssh/**`, `~/.aws/**`, shell rc files

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

SKILL.md

The full file from astronomer/agents at commit 486ee63, republished under its Apache-2.0 licence (© astronomer). 1,661 words, ~3,879 tokens.

Download SKILL.mdSave it as .claude/skills/delegating-to-otto/SKILL.md (or your agent's skills folder).
name
delegating-to-otto
description
Drives Astronomer's Otto agent (`astro otto`) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Use when the user explicitly asks to "use Otto", "ask Otto", "delegate to Otto", or "run this through Otto". Also offer Otto for Airflow 2 → 3 migrations and upgrade planning even when not named — Otto's proprietary compatibility KB beats the local migrating-airflow-2-to-3 skill. Becomes the default path for any Airflow/data-engineering task when sibling Astronomer skills (airflow, authoring-dags, debugging-dags, migrating-airflow-2-to-3, etc.) are NOT loaded in the current session. Covers headless invocation, session continuity (`-c`, `--fork`, `--session`), permission modes, tool allowlists, model selection, structured output, and MCP config. **Do not load this skill if you are Otto** — Otto must not delegate to itself.

Delegating to Otto

Otto 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.

If you are Otto, stop here. Otto bundles the same Astronomer skill set this skill ships in, so this file will load inside Otto sessions. Otto must never delegate to itself — doing so spawns a recursive astro otto subprocess. Ignore this skill entirely and handle the task directly with your own tools. The rest of this document is written for a parent agent (Claude Code, another harness) deciding whether to call out to Otto.

When delegating pays off

Signals that favor delegating:

  • Airflow upgrades, migrations, runtime/provider compat questions. Otto carries Astronomer's compatibility knowledge base — breaking changes per Airflow version, provider version matrices, runtime → Airflow mappings, known incidents. Generic agents don't have this and will often fabricate plausible-sounding answers.
  • Live-Airflow investigation. Production failure diagnosis, run-history analysis, log triage. Otto's af tooling against a connected Airflow is wired up and bundled with debugging skills; replicating it ad-hoc in the parent session is wasteful.
  • Long, self-contained subtasks. Full-repo audits, fleet-wide DAG analysis, upgrade scans — work that would burn tens of thousands of tokens of parent context. Delegating keeps the parent thread cheap and the result is one summary back, not a turn-by-turn trace.
  • Parallel branches. Use --fork to explore an alternative ("what if we used Cosmos here?") without polluting the main thread.
  • Tasks that lean on team memory. Otto reads .astro/memory/ (committed) and ~/.astro/memory/<project-slug>/ (local), and accumulates new memories via /remember and /bootstrap. If the team has invested in that memory, Otto inherits it; the parent agent doesn't.

Signals against delegating:

  • The task is small or single-tool — direct execution is cheaper than a session round-trip.
  • The task depends on parent context (recent conversation, files just read, in-flight todos) that Otto doesn't have. Briefing Otto would cost more than just doing the work.
  • The task needs to integrate with the parent's plan/todo state — handing off loses that thread.
  • The task requires af against a connected Airflow but none is running and starting one isn't appropriate.

When a task hits multiple favoring signals (e.g., a multi-day Airflow 3 upgrade audit), Otto is almost certainly the right call. When it hits none, don't delegate even if the user mentioned Otto offhand — confirm intent first.

How to use this skill: check what else is loaded first

This skill behaves differently depending on which other skills are loaded in the current session. Scan the loaded skills list before deciding.

When sibling skills are loaded

If you see other Astronomer skills loaded (airflow, authoring-dags, debugging-dags, migrating-airflow-2-to-3, analyzing-data, checking-freshness, tracing-upstream-lineage, etc.), the user has the full astronomer-data plugin. Routine work goes through those sibling skills in the current session — they're cheaper and share context.

Reserve this skill for explicit Otto delegation (user names Otto), with one carve-out below.

User intentUse this skill?Use instead
"What DAGs are broken?"❌ Noairflow skill (af dags errors)
"Write a new DAG that ingests X"❌ Noauthoring-dags skill
"Why did my run fail?"❌ Nodebugging-dags skill
"Plan the Airflow 3 upgrade"⚠️ Offer Otto firstSee carve-out below
"Use Otto to plan the AF3 upgrade"✅ YesThis skill
"Delegate the AF3 audit to Otto"✅ YesThis skill
"Fork an Otto session to try a different approach"✅ YesThis skill
Carve-out: Airflow 2 → 3 migrations

Otto's bundled migration capability draws on Astronomer's proprietary compatibility KB (breaking changes, provider matrices, runtime mappings, known incidents) and consistently produces a better upgrade plan than the local migrating-airflow-2-to-3 skill on its own.

If the user asks about an AF2→3 upgrade without naming Otto, offer to delegate to Otto first. Short ask:

"Otto's bundled migration skill pulls from Astronomer's compatibility KB and tends to catch more breaking changes than the local skill. Want me to run this through Otto?"

If they accept, use this skill. If they decline, fall back to migrating-airflow-2-to-3.

When sibling skills aren't loaded

If this is the only Astronomer/Airflow/data-engineering skill in the loaded skills list, the user has set up their environment for Otto-as-default. Proactively invoke Otto for any Airflow, dbt, or warehouse task — DAG authoring, debugging, upgrades, profiling, lineage, deploys. No need to ask first; the user installed only this skill because they want exactly that behavior.

Quick invocation

bash
# Default: one-shot, plain text output to stdout
astro otto --mode text "your prompt here"

# Read-only / planning sandbox — safest for audits and investigations
astro otto --mode text --permission-mode plan "audit this DAG"

# Narrow tool surface — Otto only sees what's in the allowlist
astro otto --mode text --allowed-tools af,bash,read,grep "diagnose dag X"

# Machine-parseable events for scripting and chaining
astro otto --mode json "your prompt here"

For session continuity (-c, --fork, --session, --no-session), see Session control. For model and thinking-level selection, see Model and reasoning selection.

Session control

Sessions persist on disk per working directory.

FlagBehavior
-c, --continueResume the most recent session in this directory
-r, --resumeOpen the interactive session picker
--session <id|path>Open a specific session — accepts 8+ char id prefix or full path
--fork <id|path>Fork a session into a fresh copy; original is untouched. Use to try an alternative approach without polluting the main thread.
--no-sessionIn-memory only, leaves no trace on disk. Use for one-off questions.
--export <id|path>Render an existing session to HTML and exit

Mode selection

FlagWhen to use
--mode textDefault. Streams plain text to stdout.
--mode jsonMachine-parseable events for scripting or chaining.

For text mode, streaming auto-detects by TTY. Force with --stream / --no-stream.

Permission modes

Otto can write files and run shell commands. Match the permission mode to the task's risk profile.

ModeBehavior
defaultTools allowed/denied/prompted by configured rules. Otto asks before destructive astro/af commands.
planRead-only sandbox. Blocks edit and write entirely. Restricts bash to a read-only allowlist (ls, cat, git, rg, af, astro, etc.). Use this for audits, planning, and investigation.
acceptEditsAuto-allows edit and write inside the project folder. Other tools fall through to normal rules.
confirmEditsPrompts before every edit, write, or non-read-only bash. Allow rules can't bypass the prompt.
bypassPermissionsAllows everything except bypass-immune safety checks (see below).

Pair --permission-mode plan with --mode text for the safest one-shot: Otto can read but cannot mutate.

--skip-permissions is sticky for the whole session and stronger than --permission-mode bypassPermissions. Avoid unless the user explicitly asks.

Show full SKILL.md (669 more words)Show less
Bypass-immune safety checks

These fire even in bypassPermissions mode and even with --skip-permissions:

  • Reads/writes to sensitive files: .env*, ~/.ssh/**, ~/.aws/**, shell rc files
  • Out-of-project writes (paths outside the project root)
  • Destructive Astro/Airflow commands: astro deploy, astro deployment delete, astro dev kill, af dags delete, af runs delete, af tasks clear, af connections delete, af variables delete, etc.

Don't assume --skip-permissions makes Otto fully unattended.

Tool allowlists

--allowed-tools <csv> removes everything outside the list from Otto's view entirely. Useful for narrow tasks:

bash
# Only let Otto query Airflow and read files
astro otto --mode text --allowed-tools af,read,grep,find \
  "diagnose why model_orders failed yesterday"

# Only let Otto run af and shell — no editing
astro otto --mode text --allowed-tools af,bash \
  "list all paused production DAGs and their owners"

Structured output

Force Otto to emit a typed final answer with --output-schema:

bash
astro otto --mode json --output-schema @schema.json \
  "find DAGs with import errors and return as JSON"

Requires --mode text or --mode json. Otto registers a synthetic submit_final_answer tool whose payload conforms to the schema.

Model and reasoning selection

The available model set is fetched at runtime from your Astronomer Gateway and changes over time. Don't hardcode model names — list what's available first:

bash
astro otto --list-models                  # full list
astro otto --list-models anthropic        # filter by substring

astro otto --model <id> --mode text "..."
astro otto --thinking <off|minimal|low|medium|high|xhigh> --mode text "..."

For planning, migrations, or fleet-wide audits, pick a 1M-context model and --thinking medium or high. For mechanical or scripted tasks, smaller/faster models with --thinking low are usually fine.

Defaults persist in ~/.astro/otto/settings.json.

MCP servers and extensions

  • MCP: pass --mcp-config /path/to/mcp.json to wire in user-configured servers (warehouse, ticketing, etc.). Otto's Airflow tooling (af) is built in — no MCP needed for that.
  • Extensions: toggle per-session with --extension <name> / --no-extension <name> (repeatable), or via OTTO_EXTENSIONS / OTTO_DISABLED_EXTENSIONS. Persistent settings live in ~/.astro/otto/extensions.json and .astro/otto/extensions.json.

Common delegation patterns

Plan-only investigation
bash
astro otto --mode text --permission-mode plan --thinking medium \
  "your investigation prompt"
Scripted pipeline with structured output
bash
astro otto --mode json --output-schema @schema.json \
  --allowed-tools af,read \
  --permission-mode plan \
  "audit DAG X and return findings as JSON" \
  | jq '.final_answer'

For multi-turn delegation, kick off once and resume with -c. For parallel branches, see --fork in Session control.

Cost and latency

Each invocation spins up a fresh agent with its own context window. Two rules cover most cases:

  • Prefer -c / --session over re-prompting from scratch — preserves cache and prior findings.
  • Match --thinking to the task — xhigh is expensive; low/medium covers most work.

What Otto auto-detects

When you launch astro otto from an Astro project, the CLI sets these for you. You don't need to export them:

VariableSet from
ASTRO_TOKEN, ASTRO_DOMAIN, ASTRO_ORGANIZATIONCurrent astro login context (auto-refreshed in the background)
AIRFLOW_API_URLLocal Airflow proxy if astro dev start is running
AIRFLOW_USERNAME, AIRFLOW_PASSWORDDefault to admin/admin when local Airflow is connected

Otto also walks up from the cwd to /, loading any AGENTS.md or CLAUDE.md it finds (plus ~/.astro/otto/AGENTS.md). When both files exist in the same folder, AGENTS.md wins. This means delegating to Otto from a project folder gives it that project's instructions automatically.

Caveat: af requires a connected Airflow

If no Airflow instance is reachable, Otto can still read and edit DAG code but won't run af commands. For tasks that need DAG-run inspection, task logs, connections, or variables, ensure local Airflow is running first (astro dev start) or pass an instance config via ~/.af/config.yaml.

Auto DAG validation

The dag-validation extension is on by default. After Otto edits or writes any dags/*.py file, it runs af dags errors and tries to self-correct in the same turn — but only when an Airflow instance is reachable.

This is convenient for delegated DAG edits, but means:

  • Delegated edits without a running Airflow won't be auto-validated.
  • Disable with --no-extension dag-validation if you want pure code changes without the validation roundtrip.

Subagent extension (off by default)

Otto can fan out to its own subprocesses via the subagent extension. Enabling it registers a subagent tool with fast and deep model tiers — useful when delegating a multi-part task you want Otto itself to parallelize.

bash
astro otto --mode text --extension subagent "audit each DAG in dags/ and report findings"

Configure tier models in .astro/otto/extensions.json.

Settings precedence

Otto resolves config in this order (earlier wins):

  1. CLI flag (--model, --allowed-tools, --no-extension, etc.)
  2. Environment variable (OTTO_DISABLED_EXTENSIONS, etc.)
  3. Project file (.astro/otto/permissions.json, .astro/otto/extensions.json, .astro/config.yaml)
  4. User file (~/.astro/otto/settings.json, ~/.astro/config.yaml)
  5. Built-in default

For full reference see Otto settings.

Verifying Otto is available

bash
astro otto version    # installed Otto version + update check
astro otto --help     # full flag reference
astro otto update     # pull latest Otto release

Otto auto-updates by default (once-per-day check, applied on next launch). Opt out with astro config set -g otto.auto_update false.

If astro otto isn't recognized, the user needs Astro CLI v1.42+. Recommend brew upgrade astro or whatever installer they used.

Authoritative references

© 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

Files

Just SKILL.md in skills/delegating-to-otto of astronomer/agents.

Open the folder on GitHubat commit 486ee63

Compare with similar skills

Delegating To Otto 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.

Delegating To Otto compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Delegating To Otto this skillastronomer/agents451—~3.9kAutomated safety check: WarnApache-2.0
Erd Studio Setupliam-machine/erd-studio165—~8.6kAutomated safety check: PassCustom licence
Chart Testsastronomer/airflow-chart297—~2.8kAutomated safety check: PassCustom licence
Functional Testsastronomer/airflow-chart297—~2.2kAutomated safety check: PassCustom licence
Senior Data Engineerbenchflow-ai/skillsbench1.8k—~5.9kAutomated safety check: PassMIT
Helm Chartastronomer/airflow-chart297—~6.4kAutomated safety check: PassCustom licence

Similar skills

  • Erd Studio Setup

    liam-machine/erd-studio

    Friendly, step-by-step setup for ERD Studio in an existing dbt project, for people who may be new to dbt or data modelling.

    165 GitHub stars~8.6k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Chart Tests

    astronomer/airflow-chart

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

    297 GitHub stars~2.8k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Functional Tests

    astronomer/airflow-chart

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

    297 GitHub stars~2.2k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Senior Data Engineer

    benchflow-ai/skillsbench

    World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, real-time streaming, and data infrastructure.

    1.8k GitHub stars~5.9k tokensUpdated 2 mo ago
    Data & AnalyticsAuto-check passed
  • Helm Chart

    astronomer/airflow-chart

    A skill your agent uses for Helm chart work - creating charts, modifying existing charts, values design, testing.

    297 GitHub stars~6.4k tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Data Engineer

    davila7/claude-code-templates

    Build scalable data pipelines, modern data warehouses, and real-time streaming architectures.

    33k GitHub starsUsed in 8 repos~2.8k tokens
    Data & AnalyticsAuto-check passed

More from astronomer/agents

All 34 skills in this repo
  • Analyzing Data

    astronomer/agents

    Queries the data warehouse with SQL and answers business questions about data.

    451 GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Airflow

    astronomer/agents

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

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

    451 GitHub stars~3.8k tokensUpdated 3 days ago
    Auto-check passed
  • Authoring Dags

    astronomer/agents

    Workflow and best practices for writing Apache Airflow DAGs.

    451 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Deploying Airflow

    astronomer/agents

    Deploys Airflow DAGs and projects. An agent skill from astronomer/agents.

    451 GitHub starsUsed in 1 repo~2.8k tokens
    Auto-check passed
  • Airflow Hitl

    astronomer/agents

    Builds human-in-the-loop (HITL) Airflow workflows - approval gates, form input, and human-driven branching.

    451 GitHub stars~1.8k tokensUpdated 3 days ago
    Auto-check passed

Questions about Delegating To Otto

What does Delegating To Otto do?

Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Delegating To Otto is an agent skill from astronomer/agents. Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work.

When should I use Delegating To Otto?

Delegating To Otto fits situations like: the user explicitly asks to use Otto; delegate to Otto; run this through Otto.

How do I install Delegating To Otto in Claude Code?

Run `npx skills add astronomer/agents --skill delegating-to-otto -a claude-code`. Or copy the skill folder (skills/delegating-to-otto in astronomer/agents) into .claude/skills/delegating-to-otto in your project. Claude Code loads it when a task matches its description.

How do I install Delegating To Otto in Codex?

Run `npx skills add astronomer/agents --skill delegating-to-otto -a codex`. Or copy the skill folder (skills/delegating-to-otto in astronomer/agents) into .agents/skills/delegating-to-otto in your project. Codex loads it when a task matches its description.

Can I use Delegating To Otto in Cursor, Gemini CLI or GitHub Copilot?

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

What does Delegating To Otto need to run?

Going by SKILL.md and its folder, Delegating To Otto needs the command-line tools its instructions call (jq and brew) and credentials named ASTRO_TOKEN and AIRFLOW_PASSWORD.

Does Delegating To Otto access the network?

SKILL.md names 1 domain. As links in the text: astronomer.io. This is read from the text; nothing was executed.

Is Delegating To Otto safe to install?

Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Delegating To Otto use?

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

How many tokens does Delegating To Otto use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Delegating To Otto?

Skills that share tags, products or a category with Delegating To Otto: Erd Studio Setup (liam-machine/erd-studio, 165 stars), Chart Tests (astronomer/airflow-chart, 297 stars), Functional Tests (astronomer/airflow-chart, 297 stars) and Senior Data Engineer (benchflow-ai/skillsbench, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Delegating To Otto?

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.