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

Discovery

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 narrow technical domain with specific actions and explicit trigger conditions. It uses appropriate domain-specific terminology that users would naturally employ, and the 'Use when' clause covers multiple realistic scenarios. The description is concise yet comprehensive, making it easy for Claude to distinguish this skill from others.

DimensionReasoningScore

Specificity

Lists multiple specific concrete actions: creating custom OpenLineage extractors, handling 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 three distinct trigger scenarios: unsupported operators, column-level lineage, 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 the exact terms a user working in this domain would use.

3 / 3

Distinctiveness Conflict Risk

Highly distinctive niche targeting specifically OpenLineage extractors for Airflow operators. The combination of 'OpenLineage', 'extractors', 'Airflow', and 'column-level lineage' creates a very clear, narrow domain unlikely to conflict with other skills.

3 / 3

Total

12

/

12

Passed

Implementation

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 code examples covering multiple real-world scenarios for creating OpenLineage extractors. Its main weaknesses are moderate verbosity (some redundant sections and explanatory text), a lack of explicit validation/verification steps in the workflow (e.g., confirming extractors are registered and emitting events), and a monolithic structure that could benefit from splitting detailed patterns into separate reference files.

Suggestions

Add an explicit end-to-end workflow with validation checkpoints, e.g., 'Step 1: Create extractor → Step 2: Register → Step 3: Verify registration with `airflow config get-value openlineage extractors` → Step 4: Trigger DAG → Step 5: Check lineage events in logs/UI'.

Remove the redundant 'Two Approaches' section that merely restates what the decision table already covers, and trim explanatory comments in code that Claude can infer.

Split the 'Common Patterns' section into a separate PATTERNS.md reference file to reduce the main skill's length and improve progressive disclosure.

DimensionReasoningScore

Conciseness

The skill is reasonably well-structured but includes some unnecessary verbosity: the introductory sentence restates the description, the 'Two Approaches' section duplicates the decision table above it, and some patterns (SQL, file transfer, dynamic) could be more condensed. The Astro-specific paragraph and some explanatory comments add tokens without much value for Claude.

2 / 3

Actionability

The skill provides fully executable, copy-paste-ready code examples for both OpenLineage methods and custom extractors, including registration commands, unit tests, and multiple real-world patterns. Import paths, configuration options, and operator property access are all concrete and specific.

3 / 3

Workflow Clarity

The decision table and precedence rules provide good guidance on which approach to use, and the methods reference tables clarify when each method is called. However, there's no explicit step-by-step workflow with validation checkpoints — e.g., no 'verify your extractor is registered' step, no 'check lineage events appear' verification, and no feedback loop for debugging failed extraction.

2 / 3

Progressive Disclosure

The content is well-organized with clear sections and headers, and references related skills at the bottom. However, at ~300 lines it's quite long and monolithic — the common patterns section and testing section could be split into separate files. The external link to the OpenLineage developer guide is good, but there are no bundle files to offload detailed content.

2 / 3

Total

9

/

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.