CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dag-factory

Authors Apache Airflow DAGs declaratively from dag-factory YAML configs. Use when building DAGs declaratively from YAML via dag-factory; creating/editing dag-factory templates/YAML configs,reating/editing dag-factory YAML configs, defaults, dynamic tasks, datasets, or callbacks; or validating dag-factory configurations; upgrading or re-pinning dag-factory.

72

Quality

90%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

85%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, highly actionable reference body: executable code and YAML for every feature, explicit validation and verification checkpoints, and effective troubleshooting feedback loops. The two real weaknesses are broken progressive disclosure — all migration.md links point to a nonexistent file — and modest redundancy in the link/reference sections.

Suggestions

Create the referenced reference/migration.md file (or fix the link path to wherever the migration guide actually lives) — all four links currently point to a file that is absent from the bundle, so pre-1.0 users hit a dead end.

Remove the duplication between the header block (Repo/Docs/PyPI URLs) and the trailing "Reference" section — keep one.

Consolidate the repeated v1.0+/migration caveats (header, Before Starting item 3, and the Defaults note) into a single pointer to the migration reference.

DimensionReasoningScore

Conciseness

The body is dense and assumes Airflow knowledge — tables, complete YAML blocks, and cause/fix troubleshooting with almost no conceptual padding. It stops short of the level-5 'every token earns its place' anchor because of redundancy: the header link block (Repo/Docs/PyPI) duplicates the trailing "Reference" section, and the v1.0+/migration caveat is repeated three times (header, Before Starting, Defaults note).

4 / 5

Actionability

Guidance is fully executable: a complete loader snippet (load_dags.py with all three load options), copy-paste-ready YAML for each feature (task groups, defaults, K8s pod, dynamic mapping, datasets, callbacks, __type__ objects), an exact CLI command table, and a "Tested patterns" vs "Unsupported/untested" list. Specific examples cover the common cases, matching the level-5 anchor.

5 / 5

Workflow Clarity

Multi-step processes are clearly sequenced with checkpoints: "Before Starting" confirmation list, a routing table mapping user requests to sections, a validation workflow ("dagfactory lint dags/" then "astro dev parse"), a closing Verification Checklist, and a Troubleshooting section that provides cause/fix feedback loops for error recovery. This matches the level-5 anchor (explicit validation, feedback loops, checklist).

5 / 5

Progressive Disclosure

In-file structure is good (clear sections, routing table), but every cross-file pointer — "[reference/migration.md](reference/migration.md)" linked four times — targets a file that does not exist in the bundle (no reference/ or references/ directory is present at all). Scoring against the actual bundle structure, the only external reference is broken, which fits the level-3 anchor ('references present but not clearly signaled / organization gaps') rather than level 4's 'references mostly clear'.

3 / 5

Total

17

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: third-person "what" statement followed by an explicit "Use when" clause enumerating concrete trigger scenarios that map to the skill's actual sections. The main defects are a garbled/duplicated text fragment ("configs,reating/editing dag-factory YAML configs") and the absence of file-extension and lint/convert trigger terms.

Suggestions

Fix the corrupted duplication in the trigger clause — "creating/editing dag-factory templates/YAML configs,reating/editing dag-factory YAML configs" repeats a garbled copy of the same phrase.

Add missing natural trigger terms: file extensions (.yml/.yaml files), "lint"/"validate YAML", "convert Python DAG to YAML", and "migrate" (the skill body routes on all of these).

Consider trimming the near-duplicate "upgrading or re-pinning dag-factory" tail into the main trigger list to tighten the sentence without losing coverage.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Authors Apache Airflow DAGs declaratively from dag-factory YAML configs", "creating/editing dag-factory templates/YAML configs... defaults, dynamic tasks, datasets, or callbacks", "validating dag-factory configurations", "upgrading or re-pinning dag-factory" — with coverage that maps onto every major section of the skill. The garbled duplicated fragment ("configs,reating/editing dag-factory YAML configs") is a typo but does not remove any concrete action, so it does not drop this to the level-4 anchor ('minor gaps in coverage').

5 / 5

Completeness

It explicitly answers both questions: the "what" is "Authors Apache Airflow DAGs declaratively from dag-factory YAML configs", and the "when" is a concrete "Use when building DAGs declaratively from YAML via dag-factory; creating/editing...; validating...; upgrading or re-pinning dag-factory" clause. This matches the level-5 anchor (clear 'what' plus explicit 'Use when' with concrete trigger phrases), not level 4 where the 'when' would be less specific.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "dag-factory", "YAML", "DAGs", "dynamic tasks", "datasets", "callbacks", "upgrading" are phrases users would naturally say. It falls short of the level-5 anchor ('comprehensive coverage including synonyms and file extensions') because file extensions (.yml/.yaml) and common user verbs like "lint", "convert", or "migrate" are absent.

4 / 5

Distinctiveness Conflict Risk

The skill is anchored to a specific named library ("dag-factory") and a specific declarative-YAML authoring niche, with triggers that name that library directly. This is a clear niche with distinct triggers and minimal conflict risk with generic Airflow-Python DAG-authoring skills, matching the level-5 anchor.

5 / 5

Total

19

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 4 missing

Warning

Total

15

/

16

Passed

Repository

astronomer/agents

Path

skills/dag-factory/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.