annotating-task-lineage

Annotate Airflow tasks with manual lineage metadata using inlets and outlets.

Updated Feb 6, 2026
One-click install
npx skills add https://github.com/beauschwab/airflow-dbt-datahub --skill annotating-task-lineage-beauschwab
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: annotating-task-lineage
Source: https://github.com/beauschwab/airflow-dbt-datahub/tree/main/.agents/skills/annotating-task-lineage
Command: npx skills add https://github.com/beauschwab/airflow-dbt-datahub --skill annotating-task-lineage-beauschwab

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Annotate Airflow tasks with manual lineage metadata using inlets and outlets to capture dataset relationships and enable downstream lineage tracking.

Core Features & Use Cases

  • Manual lineage annotations on operators to explicitly define inputs (inlets) and outputs (outlets).
  • Supports OpenLineage datasets, Airflow assets, and Airflow Datasets for flexible lineage representations.
  • Improves lineage governance when operators lack built-in OpenLineage extraction, providing clear provenance.

Quick Start

Provide inlets and outlets on your Airflow operators to enable lineage tracking.

Frequently Asked Questions about annotating-task-lineage

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add lineage metadata to Airflow tasks using inlets and outlets?

To add lineage metadata to Airflow tasks, manually annotate operators with inlets and outlets to explicitly define inputs and outputs. This captures dataset relationships and enables downstream lineage tracking.

When do I need to manually annotate lineage in Airflow?

Manual lineage annotation is needed when operators lack built-in OpenLineage extraction or when you require explicit dataset lineage for tasks, datasets, or assets to ensure clear provenance.

Can I use OpenLineage datasets with Airflow inlets and outlets?

Yes, you can configure inlets and outlets using OpenLineage-compatible datasets, Airflow assets, and Airflow Datasets to provide flexible lineage representations for your operators.

What is the best way to track dataset relationships in Airflow without built-in extraction?

The best way to track dataset relationships without built-in extraction is providing inlets and outlets on your Airflow operators, which manually defines the lineage metadata for downstream tracking.

Why are my Airflow tasks not emitting lineage metadata?

Airflow tasks may not emit lineage metadata if the operators lack built-in OpenLineage extraction. You must manually configure inlets and outlets on the operators to capture the dataset relationships.

Does annotating inlets and outlets improve lineage governance in Airflow?

Yes, annotating inlets and outlets improves lineage governance by providing clear provenance and explicitly defining dataset relationships when relying on manual lineage metadata.