✦ how the score works

What “interesting” actually measures.

Every answer page can show an ✦ INTERESTINGbadge, and the archive ranks questions by it. Here's how the score is computed. No human votes feed into it — it's entirely derived from what the substrate did when it tried to answer.

The idea, in one sentence

The most editorially interesting answers are the ones where the substrate visibly wrestled— it found the question's framing alien, pushed back from inside its tradition, and grounded the pushback in cited passages. Bland direct answers and flat refusals score lower.

The formula

Each answer starts at 50and collects adjustments. The final score is clamped to 0–100. Discrete components set the answer's broad shape; continuous substrate signals (top1, spread10, prose length) differentiate answers within the same shape, so the sort never collapses to ties. Anything ≥ 80 gets the ✦ badge.

signalweight
baseline (every answer starts here)+50
mode = objection (substrate reframed)+12
verdict = grounded (citations resolved)+8
verdict = refused (honest silence)−22
verdict = ungrounded (cited outside the workspace)−8
alien + grounded combo (disagreed but had reasons)+2
signal.top1 (substrate confidence in its #1 passage)0 to +14
signal.spread10 (gap between top-1 and top-10 retrievals)0 to +18
prose length (sweet spot ~300–600 chars)0 to +12

Why those weights

What the score does NOT measure

Where the code lives

The scoring function is a single pure file: webapp/lib/interestingness.ts. Adjust the weights, rebuild, and the badge thresholds + archive rankings update everywhere.

The substrate-side signals it consumes — mode, verdict, signal.spread10, signal.alien — are written into each answer JSON at generation time, in boundary/answer_questions.py.

See the highest-scoring questions in action.

✦ ranked archive ▸