CtrlK
BlogDocsLog inGet started
Tessl Logo

annotating-task-lineage

Annotate Airflow tasks with data lineage using inlets and outlets. Use when the user wants to add lineage metadata to tasks, specify input/output datasets, or enable lineage tracking for operators without built-in OpenLineage extraction.

66

Quality

79%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/annotating-task-lineage/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%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 highly actionable, well-structured reference with executable examples and strong decision guidance (when to use inlets/outlets vs. OpenLineage methods, precedence rules, limitations). Its weaknesses are redundancy (naming helpers shown twice, repeated Dataset definitions, promotional Astro prose) and the absence of any reference files despite a length that warrants splitting detailed material out of SKILL.md.

Suggestions

Remove the duplicate naming-helper content: the 'Best Practices → Use the Naming Helpers' section repeats the 'Dataset Naming Helpers' section; keep one, or reduce the best-practices section to a one-line pointer plus the reusable snowflake_dataset() helper function.

Move the per-platform naming-helper catalogue (Snowflake/BigQuery/S3/PostgreSQL) and the 'On Astro' deployment notes into reference files (e.g., references/naming.md, references/astro.md) linked from SKILL.md, keeping the body as a lean overview with the basic usage pattern inline.

Condense the repeated Dataset constructions in 'Supported Types' and 'Basic Usage' — show the OpenLineage Dataset form once and reuse it, trimming the intro line and the Astro marketing paragraph to a factual one-liner.

DimensionReasoningScore

Conciseness

Mostly efficient domain-specific content, but naming helpers are fully demonstrated twice ('Dataset Naming Helpers' and again in 'Best Practices'), Dataset constructions are repeated between 'Supported Types' and 'Basic Usage', and the 'On Astro' section is promotional prose ('immediately visible in the Astro UI, giving you a unified view...') that adds little instructional value.

3 / 5

Actionability

Fully executable, copy-paste-ready code throughout: inlets/outlets on operators, two complete custom-operator patterns, per-platform naming helpers (Snowflake, BigQuery, S3, PostgreSQL) with expected outputs, plus concrete decision tables (precedence rules, limitations with workarounds) covering the common cases.

5 / 5

Workflow Clarity

A clear decision path is sequenced: the 'When to Use This Approach' table, the numbered precedence rules, and the limitations/workaround table guide path selection. However, there is no validation or verification step (e.g., how to confirm annotations actually surfaced in lineage events), which keeps it below the top anchor.

4 / 5

Progressive Disclosure

Sections are well-organized with clear headers, but no bundle files exist at all — all ~350 lines are inlined in SKILL.md. The per-platform naming-helper catalogue and the Astro deployment notes are reference material that clearly belongs in separate files, matching the anchor where 'content that should be separate is inline'.

3 / 5

Total

15

/

20

Passed

Description

87%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: concrete domain-specific actions, an explicit multi-trigger 'Use when' clause in third-person imperative voice, and clear scoping that avoids overlap with sibling OpenLineage skills. Only minor gaps in keyword synonym breadth and action comprehensiveness keep it off the top anchor on two dimensions.

DimensionReasoningScore

Specificity

Names the domain ('Airflow tasks', 'data lineage') and several concrete actions ('Annotate... using inlets and outlets', 'specify input/output datasets', 'enable lineage tracking'), but the actions are largely variants of one annotation operation rather than a fully comprehensive capability list.

4 / 5

Completeness

Explicitly answers both: 'what' ('Annotate Airflow tasks with data lineage using inlets and outlets') and 'when' ('Use when the user wants to add lineage metadata to tasks, specify input/output datasets, or enable lineage tracking for operators without built-in OpenLineage extraction'). The when-clause is explicit with three concrete triggers.

5 / 5

Trigger Term Quality

Includes natural terms users would say — 'Airflow tasks', 'data lineage', 'inlets and outlets', 'input/output datasets', 'lineage tracking', 'OpenLineage' — but misses common variations such as 'DAG' or 'data flow', so coverage is good rather than comprehensive.

4 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers; the clause 'for operators without built-in OpenLineage extraction' explicitly scopes it away from the closely related extractor-creation skill, minimizing conflict risk.

5 / 5

Total

18

/

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