Decider toolkit
The decider toolkit (package decikit) builds decision pipelines from plain
Python functions, run over polars frames or single records. A function's arguments are the columns it reads and its name
is the column it writes. Steps compose with flow, dag, branch and
loop; decision trees, decision tables and scorecards load from JSON as
steps. Tunable values are param()s, retuned per call through a params
document without rebuilding or recompiling. The same pipeline runs
interpreted, or compiled with numba (per step or fused), and can be paused and
stepped through in a debug session.
Install
pip install decikit # library and CLI
pip install "decikit[serve-starlette]" # HTTP serving with uvicorn + starlette
pip install "decikit[serve-sanic]" # or sanic
pip install "decikit[mcp]" # `decikit mcp` server for agents (fastmcp)
pip install "decikit[prove]" # symbolic proofs (z3-solver)
From a checkout: uv sync, then uv run pytest.
Example
import polars as pl
from decikit import FusedEngine, flow, param
def ratio(income: float, debt: float) -> float:
return debt / income
def affordable(ratio: float, limit: float = param(0.4)) -> bool:
return ratio <= limit
pipeline = flow(ratio, affordable, name="afford")
df = pl.DataFrame({"income": [1000.0, 500.0], "debt": [200.0, 400.0]})
pipeline.run(df) # income, debt, affordable
pipeline.run(df, params={"afford": {"affordable": {"limit": 0.9}}})
FusedEngine().bind(pipeline).run({"income": 1000.0, "debt": 200.0}) # one record
CLI
decikit guide # print the getting-started guide
decikit template NAME [DIR] # write a starter project
decikit build [VERSION] # stage and warm a config version (fills the numba cache)
decikit serve # POST /invocations, GET /ping
Settings come from DECIKIT_* environment variables; see decikit --help.
Claude Code plugin
This repository is a Claude Code plugin marketplace. In Claude Code:
/plugin marketplace add capitec/dsp-decision-engine
/plugin install decikit@decikit
You get the decikit skill (a guide to the project layout, best practices,
pipelines, checks and the config documents) and the decikit mcp server, which
reads pipelines, edits trees, tables, scorecards and params with validation, and
talks to the VS Code extension. The server runs through uv in the directory
Claude Code starts in, so start it from your project root. Setup and
troubleshooting: setup-project.md.
Documentation
- Start with
decikit guide(the same text asdecikit/GUIDE.md): concepts, runnable examples, project layout and common mistakes.docs/is the docs site. docs/architecture/: how it works (steps and IR, engine, configurable steps, serving, lab); published on the docs site.docs/design_decisions/: why it is built this way: decisions, experiments and known limitations.- The package docstrings (
help(decikit)) are the user documentation.
Contributing
See CONTRIBUTING.md. Run uv run pytest before opening a
pull request.
License
MIT. See LICENSE.
Metadata
Release files for decikit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| decikit-0.1.0.tar.gz | 5.7 MB | With provenance | Details for decikit-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| decikit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for decikit-0.1.0-py3-none-any.whl |
Total release size: 6.3 MB
Release files / decikit-0.1.0.tar.gz
| Download URL | decikit-0.1.0.tar.gz |
|---|---|
| Size | 5.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
740e2cf4b073e32f8f38a2e72648df3995834718837bb668de8c3047fb6167a8
|
|
BLAKE2b-256 checksum How to use checksums |
a519f0e86292b94a7c96aefec9cb5d53794995ebf3bd680b36d13bb0df6f137f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logRelease files / decikit-0.1.0-py3-none-any.whl
| Download URL | decikit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 627.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
abd2f8d8b8e0dfff560cf74fd966613b1d81e8a24997c0869f6e911d21c30ced
|
|
BLAKE2b-256 checksum How to use checksums |
ad2dcac224db26e9a33ab9b83fc85e5ccbe9007503fd6cf8be5cb1c58416b5a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logSecurity for decikit 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for decikit-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.