Rules

Here you can find an overview of all possible rules. Use the filter below to find the rules you need, or search using Ctrl or Cmd + K.

Manifest Rules


Rule NameCategoryDescriptionKeywords
has_descriptionManifestCheck if a description is populated. Ensures objects have a description in their schema (e.g. YAML) files.description, documentation, yaml, schema
name_conventionManifestCheck if object names follow casing (e.g.snake_case) or custom regex patterns. Enforces naming standards using configurable patterns.naming, pattern, regex, conventions, prefixes
has_tagsManifestCheck if objects have the required tags. Ensure proper categorization for selective execution.tags, metadata, categorization, organization
is_not_orphanedManifestCheck if objects are referenced by other objects. Identifies orphaned data assets that may be unused or underutilized.orphaned, unused, references, dependencies, lineage
has_unique_testManifestCheck if dbt objects have at least one uniqueness test attached. Supports standard and custom uniqueness tests.tests, uniqueness, unique, validation, custom
has_metadata_keysManifestCheck if dbt objects has the provided keys in the metadatatests, uniqueness, unique, validation, custom
has_refsManifestCheck if dbt objects have at least one upstream reference using ref() or source(). Identifies objects that may be using hardcoded SQL instead of leveraging dbt's dependency management.references, upstream, dependencies, ref, source
max_code_linesManifestEnforce a maximum line count for code.code, lines, length, size, complexity

Catalog Rules

Why differentiate between manifest and catalog?

These rules use both the manifest.json and catalog.json artifacts. These files can become out of sync during development (for example, when running dbtective in pre-commit hooks), especially if files are moved or renamed and only one of the commands generating manifest.json is run. For more information, see the dbt documentation on manifest.json.

To ensure your catalog is up to date, delete it from the dbt target folder and regenerate it using dbt docs generate. Future updates to dbtective will include an option to automate this process with a specific flag.

Rule NameCategoryDescriptionKeywords
columns_all_documentedCatalogCheck if all SQL columns are documented in e.g. their yml file. Validates that database columns match documentation.columns, catalog, database, schema, undocumented
columns_have_descriptionCatalogCheck if all documented columns have non-empty descriptions. Ensures column-level documentation is completecolumns, descriptions, documentation, catalog, database
columns_name_conventionCatalogCheck if column names follow casing (e.g.snake_case) or custom regex patterns. Enforces naming standards using configurable patterns.columns, naming, pattern, regex, conventions
columns_canonical_nameCatalogEnforce canonical column naming by flagging invalid name patterns. Supports exceptions for allowed variations.columns, canonical, naming, standards, consistency