Prompting Jev-like Decision Models

Last updated:

Treat the prompt as a decision contract

Jev-like systems choose from a schema; they do not repair an ambiguous question with a long explanation. Write the exact judgment your code needs, make the criteria observable in the state, and keep one decision per question.

A robust choice pattern

{
  "state": {
    "subject": "Your order #124 has shipped.",
    "sender_domain": "store.example"
  },
  "question": "Classify this message by its primary purpose. Choose transactional only when it communicates a completed customer operation; choose marketing only when it promotes an offer.",
  "choices": ["transactional", "marketing", "support", "spam"]
}

This contract has a named subject, mutually exclusive choices, and a boundary between the two plausible outcomes. It does not ask the model to calculate, infer an unstated business rule, or write prose.

Checklist before shipping

  1. State the positive condition and the relevant boundary case; avoid implied negation such as “not unsafe unless…”.
  2. Make choices mutually exclusive and collectively sufficient. Add other only when your code has a safe handling path for it.
  3. Filter irrelevant state before inference. Put field names and facts close to the criterion they support.
  4. Compute numbers, dates, thresholds, and permissions in code. Ask the model only for semantic classification.
  5. Split multi-hop or compound judgments into separate questions; do not hide a chain of reasoning in one boolean.
  6. Test normal, boundary, adversarial, and reversed-option cases with labelled answers.
  7. Fit and monitor confidence on your data. A high raw probability is not evidence of calibration.

Safe routing pattern

Use confidence as a routing signal, not proof:

decision = decide(state, question, choices)
if decision.confidence < 0.85 or decision.option_order_changed:
    return escalate_to_review_or_system_two(state)
return handle(decision.answer)

The threshold belongs to your labelled validation set and the harm of a wrong automatic action. It should not be copied between choice, boolean, and score questions.

Model-specific caution

Jev documents literal interpretation, weak numerical/date reasoning, sensitivity to indirection and noisy state, and the need for precise criteria. Open alternatives may have additional context, calibration, or option-order limits. Use this pattern as a common baseline, then validate each model with the local benchmark protocol before production.