DecisionKit
Provider-independent .NET decision engine with a separate TypeSafe Jev provider package mapping Choice, Score and Noul to /v1/systemone.
Overview
DecisionKit is a strongly typed decision engine for .NET. Applications model a decision the way the domain sees it, with typed questions, typed answers and explicit probabilities and scores, and execute it against a pluggable provider. The core package knows nothing about Jev, HTTP or JSON; a separate DecisionKit.Jev package maps questions onto the TypeSafe System One API, so swapping providers does not rewrite the domain model.
According to the list summaries, it includes dependency-injection wiring, offline test doubles, a runnable ASP.NET ticket-triage sample that picks the owning team and escalates to a human at a normalised score of 0.8, and 1,096 tests across net8.0 and net10.0 that run without HTTP. It is pre-release and the public API may change before 1.0.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this ticket? | Billing · Support |
| Score | How frustrated is the customer? | 0 · 10 |
How it works
- Define typed questions in DecisionKit.Core
- Configure a provider such as JevDecisionProvider
- Call DecideAsync with the input
- Read typed results and apply escalation rules
Strengths
- Domain model independent of vendor wire format
- Extensive offline tests
- DI integration and sample app
Caveats
- Pre-release, unstable API
- Jev is the only production provider so far
Getting started
Reference DecisionKit.Core and DecisionKit.Jev, register the Jev provider and call provider.DecideAsync(request).At a glance
- Type
- Library
- Status
- beta
- Language
- C#
- Runtime
- .NET 8 / .NET 10
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
.NET ecosystem: provider-independent .NET decision engine whose domain package holds no Jev URL, header or DTO, mapping `Choice`, `Score` and `Noul` questions onto `POST /v1/systemone` from a separate provider package, with a runnable ASP.NET ticket-triage sample that picks the owning team and escalates to a human at a normalized `Score` of 0.8, and 1,096 tests across `net8.0` and `net10.0` that run with no HTTP.
yibie/awesome-jevProvider-independent .NET decision engine whose domain package knows nothing about Jev, while a separate provider package maps typed Choice, Score, and Noul questions onto the System One API, with dependency-injection wiring and offline test doubles.
hellogumbo/awesome-jev
Frequently asked questions
Is this a TypeSafe SDK?
No, it is a provider-independent decision engine; Jev support lives in a separate package.
Is it stable?
Not yet; the API may change until 1.0.
Is there a sample?
Yes, an ASP.NET ticket-triage sample per the list summary.
Related projects
Local service to define, test and publish versioned Jev judgment functions, callable over HTTP by backends and over MCP by agents.
MCP serverbetaTypeScriptRuby gem that stores Jev Noul, Choice and Score answers about a record's text as ordinary ActiveRecord columns you can query.
LibrarybetaRubyUnofficial Go client for TypeSafe System One with generics that bind each choice, score and noul answer to a declared Go type.
ProjectbetaGoPython dialect that adds a '~' operator and jev/case blocks so a branch can ask Jev a yes/no, scale or choice question.
ProjectprototypePythonElixir/OTP library treating Jev as a peer process whose answers arrive as messages you pattern match in GenServer clauses.
LibrarybetaElixirRuby gem for the Jev API with ask (Noul), choose (Choice) and score (Score) builders and a uniform result accessor.
LibrarybetaRuby