AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻譯準備中
Small tools for the ugly gaps on Databricks: stevin, lely, leeghwater, caland
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Small tools for the ugly gaps on Databricks.
Databricks runs the compute, governs the catalog and deploys the code. dlt and dbt land
the data and shape it. Between them sit a handful of jobs that nobody ships a tool for,
and every team fills them the same way: a setup notebook, a shell script around the
deploy, a page of steps in a wiki. Those are the parts of a data platform that are never
reviewed, that break in the second environment, and that leave with whoever wrote them.
These are four small tools, one per gap, and a template that starts a data product with
them in place.檢視完整 README ↗Small tools for the ugly gaps on Databricks. Databricks runs the compute, governs the catalog and deploys the code. dlt and dbt land the data and shape it. Between them sit a handful of jobs that nobody ships a tool for, and every team fills them the same way: a setup notebook, a shell script around the deploy, a page of steps in a wiki. Those are the parts of a data platform that are never reviewed, that break in the second environment, and that leave with whoever wrote them.
These are four small tools, one per gap, and a template that starts a data product with them in place.
Every tool keeps to the same six points:
Why they exist, and what they are worth
| tool | the gap | |
|---|---|---|
| stevin | puts in place the tables and access that your transformation tool doesn't own — a plan for Unity Catalog tables that knows which Delta changes are free and which rewrite 400 GB | docs |
| lely | one plan for your whole Databricks deploy — the bundle and the steps around it, reviewed before anything runs | docs |
| leeghwater | your dlt pipeline, the same on your laptop and in a Databricks job | docs |
| caland | Databricks secrets, by hand: a keyboard-driven page in your browser, served from your own machine | docs |
Every tool is a package of its own on PyPI, with its own version, changelog and docs; none needs another. They share this repository: one lock file, one test gate, one site. A data product that uses them together starts from data-product-template, a copier template in a repository of its own.
Each does one job and none needs another: Terraform sets up the platform, an Asset Bundle deploys the code, dbt, Lakeflow or SQLMesh build the tables they build, and these tools take the pieces in between. Kostavo is the company behind them: it builds a governance platform for Databricks workspaces, and the tools are complete without it.
Community project, not affiliated with or endorsed by Databricks.
Dutch water engineers: Simon Stevin designed sluices and introduced decimal notation, Cornelis Lely drew the plan that closed the Zuiderzee, Jan Adriaanszoon Leeghwater drained the lakes north of Amsterdam, and Pieter Caland cut Rotterdam's way to the sea. Precision before action.
The repository is a uv workspace, with mise to pin the tools and the Astral stack (ruff, ty).
mise install # pinned Python + uv
uv sync # one .venv with every package and the dev tools
mise run check # lint + format check + types + unit tests, every package
mise run test # the unit tests alone
mise run docs # the site at localhost:8000
mise tasks # the rest
A change to one package is a pull request about that package; a release is that
package's version bumped and its changelog moved, merged — see
CONTRIBUTING.md. Each package's own CLAUDE.md and CONTRIBUTING.md
say what holds inside it.
Apache-2.0, every package.