In jev-rogue, the player fights; Jev directs the parameters of upcoming rooms, encounters, doors and rewards. It never draws a map or controls combat. This makes the project a useful example of giving a decision model a bounded job without handing it the whole game.

The boundary in code

  • The TypeScript core enumerates legal, in-budget options. The Director sends the player’s stated style and recent play to Jev, validates its probabilities, and samples a choice with seeded randomness; generators build and validate the actual room.
  • An explicit “none of these” option lets Jev decline. Invalid replies, timeouts and declined questions fall back to a rule table. A separate flat-random arm exists for comparisons.
  • The browser’s debug panel exposes the state, options, distributions and fallback source. A stateless server proxy holds the TypeSafe key instead of shipping it to the browser.

What its comparison shows

  • The author’s October 7 harness report uses the same ten seeds and scripted player profiles for Jev and a rule director. Across five styles, style-matching spell cards offered were higher under Jev: 56–77% versus 39–54% under rules. These are author-reported figures; I inspected the harness and source, but did not rerun the paid model calls.
  • Jev offered fewer distinct spells per run: 11.9 versus 14.4, according to the same report. Stronger personalization comes with a variety cost. The rule baseline cannot read the player’s typed sentence, so that difference is part of the comparison.
  • The author explicitly does not claim that the result is more fun. No completed blind human preference test is reported; boss reach in ten runs per arm is too small to establish a survival advantage.

The transferable pattern is to keep hard constraints, generation and fallback in code, while testing whether the model’s actual choices improve an outcome players care about. A typed distribution alone is not proof of a better game. Repository and implementation inspected; game and paid Jev calls not run. Related: Jev playing NetHack puts the decision model on the other side of the player/director boundary.