# One enum, every model

> Two files test the same column with different accepted_values. Both pass. Find the one that drifted.

- Page: https://coremodels.io/recipe/governed-vocabulary
- JSON: https://coremodels.io/recipe/governed-vocabulary.json
- Connector: [dbt](https://coremodels.io/connector/dbt) (Import)
- [Start with this recipe →](https://go.coremodels.io/app/new/dbt/governed-vocabulary) No warehouse credential. No dbt Cloud token. Read-only.

Open two dbt YAML files that test the same column and compare the accepted_values lists. If one is missing a value somebody added six months ago, nothing in dbt will ever report it — each test is internally valid, so both pass. The lists are strings, copied per model, with no definition behind them and nothing that notices when they disagree. This recipe finds them: import the manifest and every accepted_values list becomes a governed vocabulary you can see side by side — which models reference it, and which one drifted. Name it, describe it, add the value that was missed, give it an owner. That much works today. Publishing the corrected list back into every model that uses the field is the next step, and we run that with you while the self-serve path is finished. Your workspace opens with the vocabulary grid and ownership columns already configured.

## What you do

1. See every vocabulary referenced by more than one model, and the one that drifted.
2. Name it, describe it, give it an owner. Once.
3. Publishing the list back into every model is Early access; we run that with you.

## Guides for this recipe

### Strategy

- [Eleven Copies of One Enum](https://coremodels.io/connector/dbt/h1-need)

### Engineering

- [Finding the `accepted_values` List That Drifted](https://coremodels.io/connector/dbt/t7-vocabularies)

All dbt recipes: https://coremodels.io/connector/dbt#recipes
