Faycall1l’s bouncer builds community-specific moderation around Laya, an open Jev-style decision model. It turns a server’s written rules into answer choices, then applies ordinary code to decide whether to allow, flag, delete, or escalate.

The inspected implementation imports Laya’s Router; it does not call the hosted TypeSafe Jev API. Its value here is an inspectable alternative with reported failure data and a reproducible wrapper mistake.

The advertised speed outruns the evidence

  • The README advertises a roughly 30 ms pass, but its benchmark lists about 33 ms on a T4 GPU as a reference figure.
  • Its reported zero-shot test measures 200 rows, one rule-choice question, and 1,004 ms median CPU time.
  • The author reports 30.5% rule accuracy and zero predictions meeting the 0.85 confidence threshold.
  • The fine-tuned 80%+ accuracy entry is explicitly a target, not a measured result.

Those model results were not reproduced here. The one-question test also cannot establish the deployed path’s five-question speed or moderation quality. Self-hosted hardware and operation still cost money.

A local shortcut skips the model

Before inference, _fastpath_allow() checks whether every rule text mentions links, URLs, promotion, or ads. If the message has no recognized link, it immediately returns allow with a hard-coded 0.9 confidence.

I exercised the actual moderate() entry point locally, with a router configured to refuse inference:

  • Rule: “No ads or self-promo, even without links”.
  • Message: “Buy my premium coaching package today; message me to order.”
  • Result: allow, with reason fastpath: no links.
  • Raising the configured allow threshold to 0.99 still returned allow at 0.9 confidence. The router received no calls.

This is a code-path failure reproduced without model weights. It says nothing about how Laya or Jev would classify the same message.

Put every route through the policy

The model path has useful controls: separate allow/delete thresholds, a human-review signal, and escalation after inference failures. But the shortcut returns before those model-path checks.

  • Limit deterministic shortcuts to policies their conditions actually prove.
  • Apply relevant thresholds and review rules to every return path.
  • Label heuristic scores separately from model confidence.
  • Test wrapper shortcuts alongside model errors before enabling automatic moderation.

Caveat: the shortcut was reproduced locally; the model benchmark and GPU speed were not. Typed output is not a correct decision, and a hard-coded confidence is not calibration.