⚙ MECHANICS MANUAL

PRECISE RULES · EXACT NUMBERS · NO HAND-WAVING

This page is the source of truth. Every number on this site — every IA delta, every jury shift, every cache decision — is documented here. If something in the courtroom doesn't match what you read on this page, the courtroom is wrong (or this page is out of date). Anchor pills are linkable: drop into the exact rule from anywhere.

1. Burden Detection

The High Court Judge evaluates every exchange after the AI character has responded. The same call that produces the round verdict can also flag an extraordinary claim, which freezes the trial and mounts the spotlight.

WHEN A CLAIM IS FLAGGED

The judge looks for affirmative overreach — a positive assertion the speaker cannot trivially substantiate, not a routine denial. Examples it considers extraordinary: "Bank of England's success proves my Mississippi scheme would have worked", "PVC is legally equivalent to cement", "It wasn't my fault — other examples succeeded".

The judge returns a structured extraordinaryClaim payload with the verbatim claim text, who said it, the evidence standard required to prove it, severity, and an IA bond amount.

Severity tiers

SeverityBond (IA)Jurors pressured to uncertainTypical trigger
minor5–152Overreach but plausible
major20–504–6Counter-factual, sweeping deflection, unfounded analogy

Jurors who are pressured don't flip to the opposing side — they go orange / uncertain and pulse. The colour change is the moment the courtroom visibly destabilises.

#burden-detection

2. Spotlight Resolution

Once the spotlight is up, the claimant must respond. The judge then rules: proved, withdrawn, or failed. Each verdict has deterministic consequences.

Outcomes

VerdictBond settlementUncertain jurorsStrike on transcript?Stacking failure count
proved Returned to claimant + bonus (0–25 IA) Resolve back toward claimant's side No — claim promoted to established fact No change
withdrawn ½ bond forfeited to opposing side Stay uncertain (doubt planted) No — claim quietly retracted No change
failed Full bond forfeited to opposing side Resolve toward opposing side Yes — bubble gets STRUCK watermark, line-through, kept for the film cut extraordinaryFailures[claimant]++

When an extraordinary claim is flagged, the burden flow owns all jury motion for the round. The normal "winner shifts N jurors" rule is suppressed — only pressureJurors (on flag) and resolveUncertainJurors (on resolution) move the panel. This prevents two waves of motion in the same direction.

Spotlight hold time

After the judge's ruling, the spotlight remains mounted until both the ruling TTS finishes AND a 5-second minimum has elapsed. The minimum guarantees readability when TTS is disabled; the TTS-wait guarantees the audience never hears words they can't see.

#spotlight

3. Inquisitor's Edge

The stacking-penalty reward. When the same side accumulates extraordinary-claim failures, the opposing side earns a consumable amplifier.

AWARD TRIGGER

Every 3 failures by a side awards 1 token to the opposing side. Concretely: when extraordinaryFailures[claimedBy] % 3 === 0 after an increment, inquisitorTokens[opposingSide]++.

The badge 🗡 INQUISITOR'S EDGE × N mounts in the HUD with an amber pulse. Symmetric: the AI accused can earn tokens against a player whose claims are repeatedly struck.

CONSUMPTION

One token is consumed on the holder's next winning argument (non-burden round). Effects:

• Jury shift count doubles (normally 1–3, becomes 2–6).
• Player side gets +5 bonus IA with reason inquisitors_edge. (AI side gets no IA — they have no ledger — only the jury double.)
• Impact log displays "🗡 INQUISITOR'S EDGE consumed — +5 IA, double jury shift".

#inquisitor-edge

4. The Corpus

Every argument used in every trial gets recorded. Real-time counters update on each event; derived metrics recompute nightly. This is the data layer that the marketplace, the archive, the consult, the packs, and the visualisation all draw from.

What gets recorded

TableWhen writtenHolds
argument_eventsEnd of every chain (eval or burden)One row per player argument use: arg_hash, trial, player, jury_shift, triggered_extraordinary, burden_verdict, ia_change, winner
argument_statsUPSERT on every eventReal-time counters per (arg_hash, case_id, target_character): uses, trap_triggers, trap_lands, trap_misses, total_jury_shift, total_ia_won
defense_corpusAfter every burden rulingOne row per substantiation: defense_hash, argument_hash, character_id, mode, full_text, outcome, author_id, cited_evidence
corpus_unlocksEvery IA-priced unlockplayer_id, unlock_type, unlock_target, paid_ia, author_share, house_share, trial_id, target_extra

Effectiveness EMA

Derived nightly by recompute-argument-stats.php from the last 20 events for each (arg_hash, case, character) tuple. Each event contributes a per-event score:

score = 0.5 + 0.5 * (jury_shift / 12)
              + 0.3 * triggered_extraordinary
              + 0.5 * (burden_verdict ∈ {failed, withdrawn})
              - 0.5 * (burden_verdict == 'proved')
score = clamp(score, 0, 1)

effectiveness = exponentially-weighted mean of recent 20 scores
                  with halflife of 8 events

Decay slope

Only shown once an argument has ≥10 uses. Computed as:

decay_slope = avg(recent 5 scores) - avg(preceding 5 scores)

A positive slope means the argument is improving (probably because defenders' best counters are now in the corpus, forcing the AI into worse fallbacks). Negative means the argument is being learned around.

#corpus

5. Anti-Repetition

The AI defender consults the corpus before composing every substantiation. Prior failures are explicitly named in the prompt as forbidden. Prior successes are named as inspiration. This kills the Truman script — no two trials of the same case produce the same defense.

WHAT THE AI SEES

Before answering a flag, the system fetches from defense_corpus:

• Up to 5 prior struck defenses for the same (argument_hash, character_id) tuple. Injected with "DO NOT REHASH" framing.

• Up to 2 prior proved defenses. Injected with "DRAW INSPIRATION BUT VARY THE ANGLE" framing.

The AI is told to vary the angle, not the facts — historical fabrication is explicitly forbidden by the prompt.

PROMPT CACHING

The substantiation prompt is split into three blocks:

• System block 1 (cacheable): character voice, case context, dossier evidence.
• System block 2 (cacheable): prior struck and proved defenses for this attack/character.
• User message (volatile): the specific flagged claim, required evidence, bond, recent transcript.

The first two blocks have cache_control: ephemeral markers, so repeat trials of the same case hit Anthropic's prompt cache for the bulk of the tokens. First trial of a case pays full cost; subsequent runs within the cache window are ~10× cheaper.

#anti-repetition

6. Marketplace Pricing

Three distinct pricing layers: marketplace listings, archive unlocks, and character packs.

Listing tiers

Listing kindPrice rangeDefault suggested
Regular argument5–50 IA15 IA
TRAP argument5–100 IA40 IA

Archive per-item unlocks

On the post-trial archive, full verbatim text of an attack is gated. Price scales with effectiveness:

price_ia = round((5 + effectiveness * 20) / 5) * 5
// effectiveness 0.0  →  5 IA
// effectiveness 0.5  → 15 IA
// effectiveness 1.0  → 25 IA

In-trial consult

Flat 15 IA for the top 3 unused archived attacks against the current defendant. Refund automatic if the archive returns nothing.

Character Defense Packs

Bundled DLC, range 10–200 IA, default 50 IA. Each pack contains ~20 proved defenses for a single character. Purchase grants read access to every defense in the pack and tags the player's intern with internPacks[] so future drafts can leverage the material.

Throne mechanic (forward-looking)

Once Sprint 8 of Stage 2 lands, each argument has a lifetime royalty cap of 1000 IA to its original author. Beyond that cap, royalties stop. Additionally, when a refuting defense consistently beats a famous attack (effectiveness threshold + 5+ engagements), the throne transfers — future royalties on that attack flow to the new champion (the defense author). Historical royalties stay with the original author. Old champions are dethroned, not erased.

#marketplace-pricing

7. Royalty Splits

Every corpus_unlock row records both an author share and a house share. The split rule depends on the unlock type.

Unlock typeAuthor shareHouse shareNotes
dossier_consult0%100%Service — no individual author
attack40%60%Author = the original listing's author_id
defense40%60%Author = defense_corpus.author_id
pack50% pooled50%Pool split across each defense's author_id when Sprint 8 lands (currently logged; not yet paid out)

The author share is credited to the recipient's IA ledger with reason royalty_<type>. The house share funds the platform — it's the only revenue stream that doesn't flow to a player.

For full schema and the planned royalty_payouts table, see plan_argument_learning.md.

#royalty-splits