
Dbt Ingest
Map dbt `schema.yml` / `properties.yml` models and sources into ktx semantic-layer...
Install
npx skills add Kaelio/ktx --skill dbt_ingest -g -a claude-code -y- Repository
- Kaelio/ktx1.6k
- Category
- Git and review
- Updated
- 13d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 1,562 tokens
- Runs scripts
- No, instructions only
What it does
Map dbt `schema.yml` / `properties.yml` models and sources into ktx semantic-layer overlays and column notes. Covers `sources:` vs `models:`, column `data_tests` (not_null, unique, accepted_values, relationships), and how bundle-time writes complement manifest backfill from git sync. Load when the WorkUnit's `skillNames` includes `dbt_ingest` or when raw files are dbt YAML under `models/` / `sources/`.
dbt → ktx (bundle ingest)
Use this skill for uploaded dbt projects (dbt_project.yml at stage root, models/**, sources/**, schema.yml). There is no fetch() in v1 - scheduled dbt parse / manifest.json pulls are out of scope; host-provided dbt sync may still backfill structured test metadata into _schema on the next sync.
Mapping (models / sources → SL)
| dbt | ktx | Notes |
|---|---|---|
models: entry with columns: | Overlay on the manifest table with the same name (after discover_data / entity_details) | One SL source per physical table; model name may differ from DB name - resolve with read_raw_file + warehouse context. |
sources: → tables: | Same as models; use identifier when present instead of logical name. | Schema + name must match how the connection sees tables. |
Column description | column_overrides[].descriptions.user on the overlay | Do not overwrite dbt description keys from sync. |
data_tests: not_null / unique | Short hint in column descriptions or notes: “dbt: not null”, “dbt: unique” | Full structured metadata lands in manifest via sync; the skill keeps bundle-time SL text useful for the agent. |
accepted_values | Add a brief line in the column description: allowed values (truncate long lists) | Also mention enum-like use in discover_data / filters. |
relationships | Add or confirm joins: on the overlay only when to resolves to a real table via read_raw_file + discover_data / entity_details | If the ref cannot be resolved, capture the intent in a wiki page instead. |

