# Jaggedness

What Jers gets wrong, as measured, so that you design around it rather than find out later. Measured on 2026-09-22 and 2026-09-23 with the Jers checkpoints on a Mac, unless a line says the engine's authors measured it. Other versions differ.

## Reading

- **It reads a window, not the whole state.** About 475 tokens of state on `jers-english`, about 990 on the 1024-token checkpoints, less when the question has many options (State has the table). The rest is cut, and every answer says so (`state_truncated`, a `state_cut` warning). Send the part that matters, or `"windows": true`.
- **Large choices collapse in one pass.** Above about 20 options the one-pass answer concentrates on a few options. Jers answers those in two rounds (8 of 8 right at 40, 80 and 255 options).
- **Option order matters.** The engine's authors report 15 to 23% of answers changing when the options of a 20-option choice are reordered. `"robust": true` averages fixed orders for choices of up to 20 options; above 20 the groups follow your order and robust does not apply.
- **Text only.** Images, audio and video are not read; put a description in the state.

## Memory

- **Numbers are not compared.** A numeric condition written as a line does not fire at the limit: a stop-loss of 30 as a line left the stop answer at 0.22 to 0.30 when the loss reached 30; as a rule with `when` it was 0.75 (`cookbooks/rules_in_memory.py`). Use a rule with `when`, or `derive`.
- **Negation is not read.** Naming a forbidden option makes it more likely: gold coins 83% to 94% in the Dungeon. A positive line helps sometimes (the Dungeon's Stone Hall: old bridge 94% without memory, muddy path 70% with the room's line) and sometimes not at all (roulette states where 17 had just come up: 9 to 10 of 10 on 17 whatever the memory said). Leave options that must never be chosen out of the question; Jers warns about negative lines.
- **Presence moves answers.** Lines move an answer by being there, not only by what they say, in either direction: five neutral lines moved an escalation answer from 0.46 to 0.28 (`measurements/jers-recall-size-2026-09-23.json`). `"memory": {"placebo": true}` shows which questions move only because lines are present.
- **Similar lines interfere.** With lessons about three rooms in one memory, reading all of them could pull one room's answer back to the trap; reading only that room's line (`min_share` 0.5) fixed it.
- **Unrelated facts can move an answer.** In the Forgetting cookbook two lines unrelated to mail ("Fabrikam pays yearly; the next invoice is due in December." and "Fabrikam's support tickets go to the enterprise desk.") lowered "send this launch mail?" from 0.68 with no memory to 0.14. Keep a subject's memory to what matters for the decisions you make about it, and check with `compare` and `placebo`.
- **Recall is lexical.** A fact worded without the names or terms in the state is not recalled.

## Accuracy and confidence

- **The engine's authors report:** moderation 0.53, jailbreak detection 0.70 to 0.76, spam and phishing 0.98 to 0.99; Swedish 0.57 against English 0.78; the base checkpoints near chance on multi-question workflow decisions (0.36 and 0.34 against a 0.46 majority baseline), the typed-decisions checkpoint 0.77 on its own workflows.
- **Calibration differs per task.** On a constructed 60-case support set the English checkpoint was 83% right with a calibration error of 0.17, lowered to 0.13 by a fitted temperature; typed-decisions 85% right, 0.34 lowered to 0.10. The engine was under-confident there. Measure on your own labels: see Quality.
- **Threshold noise.** Answers near a threshold flip on small changes of the state; require a fired rule or two answers in a row for expensive actions.

## Operations

- **One server.** Keys, ledgers and memories are files on one Jers server; right for a handful of tenants, a database when there are more.
