Skip to content

jev-feels

Ruby gem making semantic checks ordinary methods: feels?, decide and score on model fields, with Rails validations.

Librarybeta

Overview

jev-feels turns Jev questions into ordinary Ruby. An app defines its vocabulary with Jev.define: a symbol with a description is a yes/no check (for example :urgent), a definition with choices becomes a decide question with up to 255 options, and a scale with 2 to 10 levels becomes a score. Models then call email.feels?(:urgent), email.decide(:support_team) or score(:severity) on a field.

In Rails, validates_feeling adds semantic validations with the usual options (allow_nil, allow_blank, if, unless, on, message and at_least), and skipped checks make no HTTP call. Plain Ruby objects can include Jev::Model and bind fields, and string methods are available through an opt-in refinement or a global patch. Configuration takes a JEV_API_KEY.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this field feel urgent (requires immediate attention)?—
ChoiceWhich support team should handle this?billing · technical · sales · other
ScoreHow severe is this?—

How it works

  1. Define vocabulary with Jev.define
  2. Bind fields on models with feels, decide or validates_feeling
  3. Call methods or run validations
  4. Branch or fail validation on the result

Strengths

  • Semantic checks read like ordinary Ruby
  • Rails validation integration
  • No HTTP call when validation is skipped

Caveats

  • Community gem; maturity not stated
  • Each check is a network call

Getting started

Add `gem "jev-feels"`, configure `Jev.configure { |c| c.api_key = ENV.fetch("JEV_API_KEY") }`, and define vocabulary with Jev.define.

At a glance

Type
Library
Status
beta
Language
Ruby
Runtime
Rails / plain Ruby
Has code
yes

Use cases and integrations

How curated lists describe it

  • Semantic decisions as ordinary Ruby #feels?, #decide, #score, Rails validations…

    wh000wh000/awesome-jev-live
  • Semantic decisions as ordinary Ruby — feels?, decide, score, Rails validations and pattern matching powered by Jev.

    hellogumbo/awesome-jev
  • Ruby and Rails: `email.feels?(:urgent)` as a named question on a field, with `decide` and `score` beside it and validations that use them.

    MrJev/awesome-jev

Frequently asked questions

What does feels? do?

Asks Jev a yes/no question defined in your vocabulary about a field.

Can I validate Rails models?

Yes, with validates_feeling and standard validation options.

Does it patch String?

Only if you opt in with a refinement or require the string extension.

Related projects

  • Small Go agent-loop library with an optional goodall/typesafe package that uses Jev as a tool or hook beside chat models.

    LibrarybetaGo
  • Ax, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.

    PluginproductionTypeScript
  • Effect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.

    ProjectproductionTypeScript
  • PHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.

    ProjectproductionPHP
  • Elixir library for unified LLM calls across providers, with an evaluate interface that calls Jev via TypeSafe or OpenRouter.

    ProjectproductionElixir
  • Self-hosted multi-tenant AI agent platform listed as including optional TypeSafe client tools for classification, scoring and yes/no.

    LibraryproductionPython