CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

airflow-state-store

Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores (`task_state_store`, `asset_state_store`) and the crash-safe `ResumableJobMixin`. Use when the user asks about task state store, checkpointing in tasks, persisting state across retries, job IDs surviving worker crashes, watermarks, asset metadata, resumable tasks, crash-safe operators, or "what's new in Airflow 3.3". Also use proactively when reading a DAG that uses Variables or XCom for intra-task coordination state (flag the anti-pattern), or when reviewing any DAG that submits a job to an external system (Databricks, Snowflake, BigQuery, Redshift, Spark, dbt Cloud, EMR, AWS Batch, etc.) and waits for it to finish, whether as one submit-and-wait operator or split into submit + sensor/polling tasks; covers `wait_for_termination`, `deferrable`, `durable`, and hand-rolled polling sensors. State-persistence pieces require Airflow 3.3+; submit+poll architecture guidance applies on any version.

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

81%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.

The body delivers highly actionable, executable guidance on genuinely new Airflow 3.3 APIs with clear decision workflows and validation checkpoints. Its weaknesses are systematic repetition of the submit-task/durable=True point across Sections 2, 5, and 6, and a fully-inline structure where reference material (config reference, mixin spec) could be split into separate files.

Suggestions

State the 'the submit task still needs durable=True even when submit and poll are split' point once (in Section 5's table row) and cross-reference it from Sections 2 and 6 instead of restating it in Section 5's scope check, Section 5's closing paragraph, and Section 6's closing paragraph.

In Section 2, keep a single pointer to Section 6 for the submit+sensor split; the section currently forwards to it twice (the table row and the following paragraph).

Move Section 7's configuration reference and the full ResumableJobMixin method specification into references/ files (e.g., references/config.md, references/resumable-job-mixin.md) and keep one key example inline, reducing the ~400-line body to a leaner overview.

DimensionReasoningScore

Conciseness

The body is dense with genuinely new Airflow 3.3 API detail (no padding, no explanation of known concepts), but the 'submit task still needs durable=True even when split' point is restated in Section 2, Section 5's scope check, its table row, its closing paragraph, and again in Section 6's closing paragraph; Section 2 also points to Section 6 twice. This systematic repetition goes beyond the 'minor instances' of the anchor-4 example.

3 / 5

Actionability

Guidance is fully executable and copy-paste ready: complete task_state_store/asset_state_store DAG examples, the full API surface with retention options, a complete six-method ResumableJobMixin implementation, a retry-state behavior table, the INI config block, the 'af config version' gate command, and before/after anti-pattern pairs.

5 / 5

Workflow Clarity

Multi-step decisions are clearly sequenced with explicit checkpoints: the version check comes first with explicit pre-3.3 fallback instructions, Sections 1/2/5 provide decision tables, Section 6 gives a branched procedure with a validation step ('verify downstream tasks... depend on the sensor, not submit'), and Section 8 is a safety checklist.

5 / 5

Progressive Disclosure

No bundle files exist, so everything lives in a ~400-line SKILL.md. Numbered sections, cross-references, and a 'Related skills' section make navigation good, but Section 7's configuration reference and the full mixin specification are reference material that could be offloaded to one-level-deep files. Fits 'good structure; most content appropriately placed; minor organization gaps' rather than the ideal clear-overview-with-external-references pattern.

4 / 5

Total

17

/

20

Passed

Description

96%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: it names the exact Airflow 3.3 primitives, states what the skill does, gives explicit and comprehensive 'use when' triggers including natural synonyms and tool names, and scopes version requirements. The only weakness is that its proactive DAG-review trigger is broad enough to compete with general DAG-authoring/review skills.

DimensionReasoningScore

Specificity

Concrete actions are stated throughout: 'Persists task and asset state across retries and DAG runs', 'flag the anti-pattern', and 'reviewing any DAG that submits a job to an external system... and waits for it to finish', each tied to named mechanisms (task_state_store, asset_state_store, ResumableJobMixin). Coverage is comprehensive with no vague filler.

5 / 5

Completeness

Explicitly answers both questions: the first sentence states what the skill does, and two 'Use when...' clauses plus proactive-trigger guidance ('Also use proactively when reading a DAG that uses Variables or XCom...') state when to use it with concrete trigger phrases.

5 / 5

Trigger Term Quality

Natural phrases users would actually say are comprehensively covered: 'checkpointing in tasks', 'job IDs surviving worker crashes', 'watermarks', 'crash-safe operators', "what's new in Airflow 3.3", plus synonyms and the full external-system list (Databricks, Snowflake, BigQuery, Redshift, Spark, dbt Cloud, EMR, AWS Batch).

5 / 5

Distinctiveness Conflict Risk

The niche (Airflow 3.3 AIP-103 state stores) is clear with distinct triggers, but the proactive trigger 'reviewing any DAG that submits a job to an external system' is broad enough to overlap general DAG-review skills the skill itself lists as related (authoring-dags). This is deliberate cross-coverage but a minor conflict risk, so it fits 'mostly distinct; minor overlap risk' better than the minimal-conflict anchor 5.

4 / 5

Total

19

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

astronomer/agents

Path

skills/airflow-state-store/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.