CtrlK
BlogDocsLog inGet started
Tessl Logo

creating-openlineage-extractors

Create custom OpenLineage extractors for Airflow operators. Use when the user needs lineage from unsupported or third-party operators, wants column-level lineage, or needs complex extraction logic beyond what inlets/outlets provide.

88

1.29x
Quality

82%

Does it follow best practices?

Impact

97%

1.29x

Average score across 3 eval scenarios

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

Quality

Content

64%

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

This is a solid, actionable skill with excellent executable code examples covering multiple patterns and both recommended approaches. Its main weaknesses are the lack of validation/verification steps (how to confirm extractors are working correctly) and the monolithic structure that could benefit from splitting common patterns into separate files. Some redundancy between the decision table and the 'Two Approaches' summary section adds unnecessary tokens.

Suggestions

Add a verification/validation section showing how to confirm an extractor is registered and producing lineage events (e.g., checking Airflow logs for OpenLineage output, using the OpenLineage API, or inspecting the Astro Lineage tab).

Extract the 'Common Patterns' section (SQL, file transfer, dynamic lineage) into a separate PATTERNS.md file and reference it from the main skill to improve progressive disclosure.

Remove the redundant 'Two Approaches' section since the decision table already covers when to use each approach — just link directly to the detailed sections.

DimensionReasoningScore

Conciseness

The skill is reasonably well-structured but includes some unnecessary verbosity: the introductory sentence restates the description, the 'Two Approaches' section redundantly summarizes what was already covered in the decision table, and some patterns (like the SQL parsing example with placeholder logic) add bulk without full value. The Astro-specific paragraph is tangential.

2 / 3

Actionability

The skill provides fully executable, copy-paste-ready code examples for both approaches (OpenLineage methods and custom extractors), concrete registration commands, unit test examples, and specific import paths. The common pitfalls section includes concrete bad/good code comparisons.

3 / 3

Workflow Clarity

The decision table and precedence rules provide good guidance on which approach to use, and the extraction methods are clearly sequenced. However, there are no explicit validation/verification steps — no guidance on how to verify the extractor is working, no feedback loop for testing lineage events appear correctly, and no checkpoint after registration to confirm the extractor is picked up.

2 / 3

Progressive Disclosure

The content is well-organized with clear sections and tables, but it's a long monolithic document (~300 lines) with no bundle files to offload detailed patterns or reference material. The common patterns section (SQL, file transfer, dynamic) could be split into separate reference files. The external link to the OpenLineage developer guide is helpful but the skill itself could benefit from splitting.

2 / 3

Total

9

/

12

Passed

Description

100%

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

This is an excellent skill description that clearly defines a specific niche (custom OpenLineage extractors for Airflow), lists concrete capabilities, and provides explicit trigger conditions via a 'Use when' clause. The domain-specific terminology serves as effective trigger terms for users who would need this skill, and the description is concise without unnecessary padding.

DimensionReasoningScore

Specificity

Lists specific concrete actions: creating custom OpenLineage extractors, handling lineage from unsupported/third-party operators, column-level lineage, and complex extraction logic beyond inlets/outlets.

3 / 3

Completeness

Clearly answers both 'what' (create custom OpenLineage extractors for Airflow operators) and 'when' (explicit 'Use when' clause covering unsupported operators, column-level lineage needs, and complex extraction logic).

3 / 3

Trigger Term Quality

Includes strong natural keywords users would say: 'OpenLineage', 'extractors', 'Airflow operators', 'lineage', 'column-level lineage', 'inlets/outlets', 'third-party operators'. These are terms a user working in this domain would naturally use.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive niche targeting OpenLineage extractors specifically for Airflow operators, with clear differentiation from general Airflow skills or general lineage tools. The mention of inlets/outlets further distinguishes it from simpler lineage approaches.

3 / 3

Total

12

/

12

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.

Validation11 / 11 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.