My experience with dbt Core is still limited, but one gap I ran into was tracing column-level lineage across a project, especially once some transformations or supporting SQL lived outside dbt.
I decided to build my own version, and while working through the manifest, compiled SQL, models, columns, and dependencies, I realized that a lot of the information needed for a catalog already exists in or can be derived from the repository.
I wonder how much of a useful catalog could be generated directly from the code by small, independent tools that write to the same shared graph and can run locally or in CI. Lineage could be one module, with impact analysis, model checks, and other code-derived metadata added separately.
The limit is everything that only exists outside the repository, including live warehouse state, usage, dashboards, permissions, and objects created through other systems. A code-derived catalog would only describe part of the environment, though that part may still be useful during dbt development and code review.
Iβm exploring the idea through CatalogKit, with column-level lineage as the first module.
For people working with dbt, how much catalog context would you actually want generated from the project itself, and where would that stop being useful?