When Airflow's built-in OpenLineage support doesn't cover your operators, you need custom extractors. This skill walks through two approaches: adding OpenLineage methods directly to operators you control (the recommended path), or building standalone extractors for third-party operators you can't modify. The guide includes specifics on capturing column-level lineage, runtime metadata like row counts, and registration via airflow.cfg. It's honest about extractors being harder to maintain than the methods approach. If you're running custom operators or need lineage from providers that don't ship with extractors, this covers the implementation patterns and shows you which extraction hooks fire when.
npx skills add https://github.com/astronomer/agents --skill creating-openlineage-extractors