Skip to main content

Enterprise AI SDLC toolkit for dbt projects, with spec-driven workflows, CI validation, and warehouse-specific presets.

Project description

dbt-spec-kit

AI SDLC for dbt teams: specs are contracts, agents do bounded implementation, and CI proves the work followed the plan.

dbt-spec-kit helps analytics engineering teams use AI coding agents safely inside real dbt projects. It adds a lightweight spec-driven workflow, warehouse-aware planning templates, agent prompts, and CI validation to an existing dbt repo.

It is modeled on GitHub Spec Kit, composes with dbt-labs/dbt-agent-skills, and works with any agent that reads markdown context, including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and Cline.

Why teams use it

AI agents are useful, but "build a customer mart" is too vague for enterprise dbt work. A safe dbt change needs grain, source contracts, tests, semantic-layer impact, downstream consumers, warehouse cost decisions, and human approval points.

dbt-spec-kit turns that into a repeatable loop:

Idea -> spec.md -> plan.md -> tasks.md -> dbt changes -> CI report -> review

The default is controlled autonomy. Agents can draft and implement, but humans approve the spec, the plan, and the final diff.

Try it with jaffle-shop

The fastest way to understand the workflow is to apply it to the upstream dbt-labs/jaffle-shop project.

git clone https://github.com/dbt-labs/jaffle-shop.git
cd jaffle-shop

uvx --from git+https://github.com/duckcode-ai/dbt-spec-kit.git \
  dbt-specify init jaffle-shop --warehouse bigquery

dbt-specify doctor

Then use your AI agent:

/dbt.specify Add a customer segmentation field to the customers mart without breaking existing metrics.
/dbt.plan
/dbt.tasks
/dbt.implement
/dbt.review

See the full walkthrough: Jaffle-shop AI SDLC walkthrough.

Install

Requires Python 3.11+. Recommended via uv.

After the first PyPI release:

uvx --from dbt-spec-kit dbt-specify init my-project --warehouse snowflake

From the GitHub source before the PyPI release:

uvx --from git+https://github.com/duckcode-ai/dbt-spec-kit.git \
  dbt-specify init my-project --warehouse snowflake

Persistent install:

uv tool install dbt-spec-kit
dbt-specify --version

Supported warehouse presets: snowflake, databricks, trino, and bigquery.

What init adds

Running dbt-specify init in an existing dbt project creates:

  • .dbt-specify/constitution.md for project principles and warehouse guardrails
  • .dbt-specify/templates/ for spec, plan, tasks, retro, and CI templates
  • .dbt-specify/skills/ for spec-writing guidance
  • .dbt-specify/commands/ for agent prompts
  • CLAUDE.md or CLAUDE.md.dbt-specify-suggested
  • specs/ for feature-level SDLC artifacts

The agent commands are:

  • /dbt.specify drafts the requirement.
  • /dbt.plan creates a file-by-file implementation contract.
  • /dbt.tasks decomposes the approved plan into small tasks.
  • /dbt.implement executes one task at a time.
  • /dbt.analyze checks traceability before implementation.
  • /dbt.review reviews the final diff against the approved plan.

CI trust boundary

Use these checks locally or in CI:

dbt-specify validate project
dbt parse
dbt-specify validate dbt --manifest target/manifest.json
dbt-specify report --format markdown

Use dbt-specify ci when the lifecycle and dbt artifact checks should block a PR.

Who this is for

  • Analytics engineers who want AI help without losing dbt conventions.
  • Data platform leads standardizing AI-assisted delivery across teams.
  • dbt consultants who need a repeatable client onboarding method.
  • OSS contributors building warehouse presets, validators, examples, and skills.

Docs

OSS project

What this is not

  • Not a replacement for dbt or dbt Cloud.
  • Not a replacement for dbt-labs/dbt-agent-skills.
  • Not an IDE or hosted service.
  • Not full autonomy or auto-merge.

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbt_spec_kit-1.0.0.tar.gz (107.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbt_spec_kit-1.0.0-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

Details for the file dbt_spec_kit-1.0.0.tar.gz.

File metadata

  • Download URL: dbt_spec_kit-1.0.0.tar.gz
  • Upload date:
  • Size: 107.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbt_spec_kit-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bc4d9fcd6d8d61d64f9a8a47b57bb74164e301de3767d7404b5a0b319c8b17b2
MD5 6453c8e012afb719ebb64214d5225807
BLAKE2b-256 3ae24869fd4f6f126bc22f3a5422c081bbdf78da3cb318e5584d1a6367fd888a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_spec_kit-1.0.0.tar.gz:

Publisher: release.yml on duckcode-ai/dbt-spec-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dbt_spec_kit-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dbt_spec_kit-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbt_spec_kit-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 833d4c9ccab278e1fe83592d1706cea38d3d3d6248764be221244129a4c79090
MD5 3d55fca20b65024e72b7e7f64e86a81c
BLAKE2b-256 135768628b8b12ae38c73ebea3782ad9f7ed0d1240af376224a3b5ae5004cf8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_spec_kit-1.0.0-py3-none-any.whl:

Publisher: release.yml on duckcode-ai/dbt-spec-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page