{
  "markdown": "# specdbt\n\n[![CI](https://github.com/SanaVarsi/specdbt/actions/workflows/ci.yml/badge.svg)](https://github.com/SanaVarsi/specdbt/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](pyproject.toml)\n\nBDD-style `Given`/`When`/`Then` testing for dbt models and macros. Write a\nscenario a stakeholder can read; specdbt compiles and runs it for real\nagainst dbt and reports pass/fail — no hand-maintained YAML, no\nhardcoded expected output.\n\n```gherkin\nFeature: stg_customers renames the raw seed's id column\n\n  Scenario: Renames id to customer_id, passes names through unchanged\n    Given the following rows in \"raw_customers\":\n      | id | first_name | last_name |\n      | 1  | Michael    | P.        |\n    When the \"stg_customers\" model runs\n    Then the \"stg_customers\" should produce the following rows:\n      | customer_id | first_name | last_name |\n      | 1           | Michael    | P.        |\n```\n\nModels compile to a real dbt `unit_tests:` entry and run via `dbt test`.\nMacros — which dbt [has no native way to unit test][dbt-10547] — run\nthrough a real ephemeral-table/`dbt show` pipeline instead. Any warehouse\ndbt-core supports is in scope; DuckDB and Postgres are CI-verified,\nDatabricks is manually validated (see [docs](docs/knowledge/index.md)).\n\n[dbt-10547]: https://github.com/dbt-labs/dbt-core/issues/10547\n\n## Install\n\n```bash\nuv add --dev specdbt          # or: pip install specdbt\n```\n\nAdd your warehouse's dbt adapter alongside it, e.g. `uv add --dev\n\"specdbt[postgres]\"` (`databricks`, `snowflake` extras also available;\nDuckDB ships built in).\n\n## Quickstart\n\n```bash\nuv add --dev specdbt\nuv run specdbt init features/                 # scaffold an example .feature file\nuv run specdbt run features/ \\\n  --engine dbt --project-dir . --target <your target>\n```\n\n## Docs\n\n- [`docs/knowledge/index.md`](docs/knowledge/index.md) — architecture,\n  adapters, the two-tier model/macro design.\n- [`docs/knowledge/gherkin-style-guide.md`](docs/knowledge/gherkin-style-guide.md)\n  — how to write scenarios.\n- [`examples/jaffle_shop/`](examples/jaffle_shop) — a full worked example\n  (`just run-example`).\n- [`CONTRIBUTING.md`](CONTRIBUTING.md) — local setup, testing other\n  adapters, release process.\n\n## License\n\nMIT — see [`LICENSE`](LICENSE).\n",
  "bytes": 2380,
  "sha": "0164d72cc95edf26547a9cae8438e7a75098222884096fcac07651c46481d817",
  "repo_slug": "sanavarsi/specdbt",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_sanavarsi_specdbt_docs_knowledge_index_m_7ca0dc4f/readme"
}