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.
89
86%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
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, specific domain (Airflow task lineage annotation) with concrete actions and explicit trigger conditions. It uses appropriate domain-specific terminology that users would naturally employ, and the 'Use when...' clause covers multiple relevant scenarios. The description is concise yet comprehensive, making it easy for Claude to select this skill precisely when needed.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists specific concrete actions: 'Annotate Airflow tasks with data lineage using inlets and outlets', 'add lineage metadata to tasks', 'specify input/output datasets', 'enable lineage tracking for operators without built-in OpenLineage extraction'. These are multiple distinct, concrete capabilities. | 3 / 3 |
Completeness | Clearly answers both 'what' (annotate Airflow tasks with data lineage using inlets and outlets) and 'when' (explicit 'Use when...' clause covering three trigger scenarios: adding lineage metadata, specifying input/output datasets, or enabling lineage tracking for operators without built-in OpenLineage extraction). | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'Airflow tasks', 'data lineage', 'inlets and outlets', 'lineage metadata', 'input/output datasets', 'lineage tracking', 'operators', 'OpenLineage'. These cover the domain-specific terms a user working with Airflow lineage would naturally use. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive niche targeting Airflow data lineage with inlets/outlets and OpenLineage. This is unlikely to conflict with other skills due to the very specific domain (Airflow lineage annotation) and precise technical triggers. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
72%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, well-structured skill with excellent actionability—every concept is backed by executable code examples with proper imports. The main weaknesses are moderate verbosity (repeated naming helper examples, some redundant sections) and the lack of a verification/validation step to confirm lineage annotations are working correctly. The decision table and precedence rules are particularly strong additions that help Claude make the right choice.
Suggestions
Add a brief verification step showing how to confirm lineage annotations are being captured (e.g., checking OpenLineage events or the Airflow UI lineage tab), which would improve workflow clarity.
Consolidate the naming helpers section—show one or two platform examples inline and reference the OpenLineage docs for the rest, reducing token usage significantly.
Remove the repetition between the 'Dataset Naming Helpers' section and the 'Best Practices > Use the Naming Helpers' section—the wrapper function pattern could replace the verbose multi-platform examples above.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is generally well-structured but includes some unnecessary verbosity—the Astro section adds marketing-style language, the naming helpers section is quite long with four platform examples when one or two would suffice, and the 'Best Practices' section partially repeats the naming helpers content already shown above. | 2 / 3 |
Actionability | The skill provides fully executable, copy-paste ready Python code examples throughout, covering basic usage, multiple inputs/outputs, custom operators with two approaches, and naming helpers. All examples include proper imports and realistic parameters. | 3 / 3 |
Workflow Clarity | The decision table for when to use inlets/outlets is excellent, and the precedence rules are clearly documented. However, there's no explicit validation workflow—no steps to verify that lineage annotations are actually being picked up by OpenLineage, no 'run this command to check' checkpoint, which matters for a configuration that silently falls back. | 2 / 3 |
Progressive Disclosure | Content is well-organized with clear sections progressing from when-to-use, to supported types, to basic usage, to advanced patterns. External references are one level deep (OpenLineage docs, related skills), and the related skills section at the bottom provides clear navigation to adjacent topics. | 3 / 3 |
Total | 10 / 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.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
166c98a
Table of Contents
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.