27 August 2026 · 0 of 135 items carry difficulty · nothing is
applied until you approve this
Peregrine already ships one. VigilanceTuning.nearPresets is
easy 0 / fair 2 / brutal 3, and LineupPicker uses it to choose how
many of the three fillers come from the con's own family. That is a dial applied at play time
to any item, and it makes a round harder without touching the question. The corpus field is a
property of the question itself. They need different names in conversation or this will be
re-litigated every few weeks — round difficulty for the dial and item difficulty
for the field.
One piece of the answer already exists. difficulty_basis is
declared in the Peregrine schema: "Where the difficulty read came from, so a proxy is never
mistaken for observed data." Whoever wrote that anticipated exactly this problem. The
rubric below fills it in rather than adding a field beside it.
I tested four candidate signals against all 135 items before proposing anything. Every signal I can compute tracks which family authored the item rather than how hard the question is.
| Candidate signal | Fires on | What it actually separates |
|---|---|---|
| Reading load over the section's 75th percentile math 26 words, reading 64, writing 35 |
30 / 135 | All 30 are Wager or Lineup items. Go Undercover claims and Snap Call stems are short by construction, so they can never fire. |
| More than one distractor carrying a trap mechanism | 34 / 135 | All 34 are Wager items. The Lineup authors a mechanism on the pick only, on purpose — "tagging the other two would invent cognition the round never dramatises." |
A near-miss wrong answer (plausible_clean) | 14 / 135 | Target Practice only. The field does not exist elsewhere. |
| A long reasoning chain breaking late | 0 / 135 | Nothing at all. The 17 con rounds have a median chain of 5 lines breaking at index 3, so any threshold above the median empties the set. |
A short Go Undercover claim and a long Wager passage are not two points on one difficulty scale. They are different content shapes. A single field ranking all 135 against each other would encode the authoring convention and read as if it encoded difficulty, which is worse than leaving the field empty — and leaving it empty is the current state.
Item difficulty is scoped to its own bank.
hard means hard for a round of this mini game, judged against its
siblings. Two values, standard and hard, which is the vocabulary your
own plan task already used. Every hard names the criterion that earned it in
difficulty_basis, so a proxy is never mistaken for an observed read and the whole
set is auditable later against play data.
Reaching the correct value takes work past the first number or the first true statement that looks like an answer. The intermediate is on the sheet.
Measurable everywhere a mechanism or counter is written — 43 items name a con or a fault today.
At least one distractor is still standing after the move that eliminates the others, so elimination alone does not finish the round.
Already recorded as plausible_clean on 14 Target Practice items.
Judged elsewhere.
Stem and passage together sit above the 75th percentile for this mini game, not for the corpus. The thresholds are recomputed as a bank grows.
Computable for every family, and meaningful only within one.
The trap code sits in the bottom quartile of the spine's observed frequency, so a student drilling common patterns has not met it.
Available on the 43 items naming a con or fault, from the spine's
observed_n.
An item is hard when at least one criterion holds and
difficulty_basis names which. One rather than two, because on most families only
one or two criteria are even measurable, and a two-of rule would silently make short-form banks
incapable of holding a hard item.
Backfill, then look at the split per bank. If hard lands on
everything or on almost nothing within a family, the criteria are wrong for that family and the
thresholds move. The validator can print the split the same way it prints the bank
reconciliation, so the calibration stays visible instead of being asserted once and forgotten.
standard and hard is what your plan
task says and what I have drafted. A third value for genuinely foundational items would let
a session open with something gettable, which matters more for a student on a first run
than the top of the scale does. Adding it later means revisiting every item once.