feelc documentation

feelc is an AI-native DMN/FEEL business-rules engine compiled to Go: an LLM authors the rules, and a deterministic engine compiles, verifies and runs them — no LLM in the core. This is the documentation map.

The docs come in three layers:

Reference

Page What it covers
DSL grammar The .rules language: model, inputs, decisions, tables, hit policies, brackets, units, applicability.
FEEL subset The supported expression/cell subset (and what fails loudly), including temporal types.
CLI reference Every feelc subcommand, its flags, and exit codes.
HTTP API The complete feelc serve route table (single-model + project + AI + health).
Project mode Multi-module workspaces: namespaced merge, uses bindings, the web editor.
AI authoring Bring-your-own-LLM authoring: the chat UI, the portable skill, and the red→green ingest loop.
IR format The canonical compiled-model wire format (.ir.bin) and its hash.
Error schema The structured diag.Error shape returned by the compiler/API.
Architecture Package map and the compile pipeline (for contributors).
Decisions The key engineering decisions, one line each (links to the full ADRs).

Quickstart

go build -o feelc ./cmd/feelc                      # or grab a release binary

cat > credit.rules <<'EOF'
model "credit" { rounding: half_even }
input score : number in [300..850]
decision eligible : boolean {
  needs: score
  hit: first
  >= 680 => true
  default => false
}
EOF

feelc verify --rules credit.rules                  # prove completeness / no conflicts
feelc run    --rules credit.rules --decision eligible --input '{"score":720}'   # → true
feelc serve  --ui                                  # author by chatting with your own LLM at :8080

Prefer a browser? The playground runs the real engine compiled to WebAssembly — no backend, no install. Want to contribute? See CONTRIBUTING.