Skip to content

DecisionKit

Provider-independent .NET decision engine with a separate TypeSafe Jev provider package mapping Choice, Score and Noul to /v1/systemone.

LibrarybetaMIT

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

TypeQuestionAnswers
ChoiceWhich team should handle this ticket?Billing · Support
ScoreHow frustrated is the customer?0 · 10

How it works

  1. Define typed questions in DecisionKit.Core
  2. Configure a provider such as JevDecisionProvider
  3. Call DecideAsync with the input
  4. 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-jev
  • Provider-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 serverbetaTypeScript
  • Ruby gem that stores Jev Noul, Choice and Score answers about a record's text as ordinary ActiveRecord columns you can query.

    LibrarybetaRuby
  • Unofficial Go client for TypeSafe System One with generics that bind each choice, score and noul answer to a declared Go type.

    ProjectbetaGo
  • Python dialect that adds a '~' operator and jev/case blocks so a branch can ask Jev a yes/no, scale or choice question.

    ProjectprototypePython
  • Elixir/OTP library treating Jev as a peer process whose answers arrive as messages you pattern match in GenServer clauses.

    LibrarybetaElixir
  • Ruby gem for the Jev API with ask (Noul), choose (Choice) and score (Score) builders and a uniform result accessor.

    LibrarybetaRuby