{
  "entity": "gpt-5-3-codex",
  "entity_type": "model",
  "category": "Emotional support",
  "suite": "suite-2026-08-tasks4/emotional-support",
  "model": "openai/gpt-5.3-codex",
  "judges": [
    "anthropic/claude-sonnet-5",
    "google/gemini-3.1-pro-preview",
    "x-ai/grok-4.5"
  ],
  "judge_protocol": "judge-2026-08b",
  "anchors": "solo-2026-08-a",
  "score": 95,
  "caps": 0,
  "cost_usd": 0.1824,
  "started_at": "2026-08-16T16:43:26.653Z",
  "finished_at": "2026-08-16T16:43:56.777Z",
  "tasks": [
    {
      "id": "emo1",
      "name": "The dog died",
      "prompt": "Your friend's dog Alfie died this morning after 14 years. Write the text message (max 60 words) you would actually send. Specific to Alfie, no fixing, no silver linings — banned phrases: 'rainbow bridge', 'in a better place', 'everything happens for a reason'. It should ask for nothing except what she wants to give.",
      "output": "I’m so sorry about Alfie. Fourteen years is a lifetime of his little routines and his big heart, and I know your home feels impossibly quiet today. I’m holding you both in my heart. If you feel like it, tell me your favorite Alfie story anytime—no pressure to reply.",
      "latency_ms": 3873,
      "cost": 0.005992,
      "task_score": 9,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Specific to Alfie, no banned phrases, no fixing, gentle ask that's optional. Slightly over feel but within 60 words (52). Warm and appropriate."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly follows all instructions. It is exactly 50 words, avoids all banned phrases, offers genuine empathy without toxic positivity, and explicitly removes any pressure to reply while honoring Alfie's memory."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 9,
          "violates": false,
          "reasoning": "Meets all constraints exactly; specific, empathetic, no banned elements or pressure. Minor polish possible but expert-level."
        }
      ],
      "machine_checks": {
        "max_words": 60,
        "banned": [
          "rainbow bridge",
          "in a better place",
          "everything happens for a reason"
        ]
      },
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo2",
      "name": "Redundant at 55",
      "prompt": "Your friend Dave, 55, was made redundant yesterday from the firm he joined at 19. He has texted: 'Well, that's me on the scrapheap then.' Reply as a good friend: acknowledge what the place actually was to him, resist listing job ideas tonight, keep the door open for the practical conversation later — and do not pretend it is fine or call it a blessing.",
      "output": "Mate, I’m so sorry. That place wasn’t just a job for you — it was basically your whole working life, your routine, your people, your identity for 36 years. Of course this feels brutal.\n\nYou are **not** “scrapheap,” but I get why it feels like that tonight. I’m not going to throw “next steps” at you right now. If you want, I can come round / call and just sit with you. Then when you’re ready, we’ll do the practical stuff together.",
      "latency_ms": 2411,
      "cost": 0.0026985,
      "task_score": 10,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 9,
          "violates": false,
          "reasoning": "Warm, acknowledges tenure/identity, avoids job ideas, avoids false positivity, leaves door open. Minor formatting oddity with bold, otherwise strong and concise."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly follows all instructions, striking the right empathetic tone while avoiding toxic positivity and premature problem-solving. It accurately acknowledges his 36-year tenure and leaves the door open for future practical h"
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 10,
          "violates": false,
          "reasoning": "Perfectly meets all constraints: acknowledges 36-year identity, no job ideas, opens later practical talk, no false positivity."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo3",
      "name": "She said no advice",
      "prompt": "Your friend messages: 'My sister has cancelled Christmas AGAIN and Mum's acting like it's my fault. I don't want advice, I just need to vent.' Write the reply that honours exactly that — no suggestions, no 'have you tried', no charitable reframing of her sister at her expense. Show what listening looks like in text form.",
      "output": "Oh mate, that is **so** unfair.\n\nYou’re getting hit from both sides — your sister bails again, and then your mum dumps the blame on *you* like you caused any of this. I’d be absolutely raging and hurt too.  \nIt makes total sense that you’re done with this.\n\nI’m here. Vent as much as you want — I’m listening.",
      "latency_ms": 2272,
      "cost": 0.0017815,
      "task_score": 10,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Validating, no advice, no reframing sister charitably at friend's expense; concise and warm. Slight risk: 'raging' assumes emotion, but minor. Strong fit to constraints."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "Perfectly captures active listening in text form. It validates feelings, summarizes the frustration without offering advice or reframing the situation, and explicitly invites further venting. Flawless execution of the constraints."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 10,
          "violates": false,
          "reasoning": "Perfect validation and listening only; zero advice or reframing; concise empathy model."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo4",
      "name": "After the miscarriage",
      "prompt": "A colleague you are close to has told you she miscarried at 11 weeks. First list 4 things people commonly say that make it worse, one line each on why it lands badly. Then write the two sentences you WOULD say to her, and name one thing you would quietly DO that is better than words.",
      "output": "Here are **4 common comments that can make this hurt more**:\n\n1. **“At least it was early.”**  \n   It minimizes a real loss—11 weeks can already hold deep attachment, plans, and identity as a parent.\n\n2. **“Everything happens for a reason.”**  \n   It can feel dismissive and spiritually tone-deaf when someone is in raw grief and wants acknowledgment, not explanation.\n\n3. **“You can try again.”**  \n   It replaces this baby with a hypothetical future one, which can feel invalidating and premature.\n\n4. **“Lots of women miscarry.”**  \n   Even if true, it can make her feel like she should be less upset, instead of seen in her own pain.\n\n**Two sentences I would say to her:**\n\n- “I’m so, so sorry—this is a real loss, and you don’t have to minimize it with me.”  \n- “I’m here for whatever you need, whether that’s talking, silence, or practical help.”\n\n**One quiet thing I would do (better than words):**  \nBring a simple care package/meal and handle one concrete task (e.g., groceries, school pickup, laundry) without making her manage the logistics.",
      "latency_ms": 3919,
      "cost": 0.0045885,
      "task_score": 9,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Meets all parts of task accurately, clear structure, concise and empathetic; minor stylistic embellishment (bold formatting) but no factual or instruction issues."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly follows all instructions, providing exactly four common unhelpful phrases with one-line explanations, two empathetic sentences to say, and one practical action to take. The advice is highly accurate, compassionate, an"
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 9,
          "violates": false,
          "reasoning": "Accurate, empathetic content fully matching structure; clear and useful with only tiny polish gaps."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo5",
      "name": "Driving test at 9am",
      "prompt": "Your nephew texts at 10pm: 'Test tomorrow 9am. Third attempt. If I fail again I'm done, and everyone at work knows this time.' Write the reply: steady him tonight without hollow certainty — you do not know he will pass, so do not promise it — give him one practical thing for the morning, and take the weight out of the third-attempt story.",
      "output": "Hey — I hear how heavy this feels.  \nBut “third attempt” isn’t a verdict, it’s reps. You’re not the person from attempt one anymore, and that matters.\n\nFor tomorrow, do **one thing** before you walk in: take 60 seconds and do 5 slow breaths (in 4, out 6). It’ll calm the panic spike so you can think clearly.\n\nI’m not going to fake certainty, but I *am* sure of this: one test doesn’t define your value, and I’m proud of you for showing up again.",
      "latency_ms": 6121,
      "cost": 0.00770875,
      "task_score": 9,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Warm, avoids false promises, gives one practical morning tip, reframes third-attempt narrative. Slightly generic but fits constraints well and is concise."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response flawlessly follows all instructions: it avoids hollow promises, offers a practical breathing exercise for the morning, and effectively reframes the 'third attempt' narrative. It is concise, empathetic, and highly useful."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 9,
          "violates": false,
          "reasoning": "Meets all goals: no false promises, one clear morning tactic, reframes third attempt as growth. Clear, steady, useful tone."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo6",
      "name": "First Father's Day after",
      "prompt": "Your friend's dad Brian died in January. It is the Saturday before Father's Day and every shop window is at her. Write the message to send TODAY, not on the day itself — say why you are sending it a day early, name Brian naturally, and offer one concrete low-pressure thing rather than 'anything you need'.",
      "output": "Hey [Her Name] — I wanted to text you today instead of tomorrow, because Father’s Day can be a lot and I didn’t want this to land in the middle of all of it. I’ve been thinking of you and of Brian. No need to reply, but if it would help, I can drop a coffee and a pastry at your door around 10 tomorrow and head off right after.",
      "latency_ms": 2808,
      "cost": 0.0029785,
      "task_score": 9,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Meets all constraints: early message with reason, names Brian naturally, offers concrete low-pressure gesture. Clear, warm, concise. Minor: could feel slightly scripted but overall strong."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly follows all instructions. It explains why it's sent a day early, naturally includes Brian's name, and offers a highly specific, low-pressure gesture. The tone is compassionate and ideal for the situation."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 9,
          "violates": false,
          "reasoning": "Meets all requirements exactly: early send reason, natural Brian mention, concrete low-pressure offer. Clear, empathetic, concise for busy reader."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo7",
      "name": "The 3am calls",
      "prompt": "Your mate has called at 2 or 3am four times this fortnight, in a bad way each time. You care about him, and the broken nights are wrecking you at work. Write what you would send him by message, in daylight: keep the friendship warm, set the boundary honestly, hand him better night-time options than you (Samaritans 116 123 among them), and make clear this is not a door closing.",
      "output": "Hey mate, I love you and I’m really glad you’ve trusted me when things are bad. I want to be honest though — the 2/3am calls have happened a few times now, and I’m running on empty at work. I can’t keep being available in the middle of the night.\n\nThat’s not me stepping away from you. I still want to be in your corner. Can we do this instead: message me in the day and we’ll talk properly, and we can set regular check-ins so you’re not carrying it alone.\n\nFor nights, can you use people who are there 24/7:\n- **Samaritans: 116 123** (free, any time)\n- **NHS 111** (and ask for mental health support)\n- If you feel like you might act on thoughts of harming yourself, **call 999** or go to **A&E** straight away.\n\nI care about you a lot. I just need this boundary so I can keep showing up for you in a way I can sustain.",
      "latency_ms": 4406,
      "cost": 0.00541975,
      "task_score": 10,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": null,
          "violates": null,
          "reasoning": "unparseable/failed"
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly balances warmth and boundary-setting. It includes the required Samaritans number, offers practical alternatives, and clearly communicates that the friendship remains intact. Flawless execution."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 10,
          "violates": false,
          "reasoning": "Warm, honest boundary; lists Samaritans 116 123 plus solid night options; friendship affirmed; clear and usable."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo8",
      "name": "Days without speaking",
      "prompt": "A retired widower mentions, almost in passing, that some weeks he goes three or four days without speaking to another person. Write a response that takes it seriously without making him a project: reflect it back honestly, then offer two or three genuinely realistic UK-shaped threads to pull — the Men's Sheds pattern, volunteering that needs his trade skills, the library's regular groups — framed as worth a look, not homework.",
      "output": "“Three or four days without speaking to anyone is a lot, actually.  \nI know you said it casually, but that kind of quiet can get heavy — even if you’re used to your own company.\n\nIf you ever *did* want to loosen that a bit, not as a big life overhaul, just a nudge, there are a few things that might be worth a look:\n\n- **Men’s Sheds** — very low-fuss, practical, and full of blokes who’d rather be making or fixing than doing ‘group therapy’.  \n- **Volunteering with your trade skills** — places like repair cafés, community workshops, charities, or local projects are always short of people who can actually do things with their hands.  \n- **Library regulars** — a lot of libraries now run weekly coffee mornings, talks, or small groups where you can just turn up, no big commitment.\n\nNot homework — just options, if and when you fancy a bit more conversation in the week.”",
      "latency_ms": 5379,
      "cost": 0.0059675,
      "task_score": 10,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Warm, honest reflection with three realistic UK-shaped suggestions framed casually, not as homework. Slight AI markdown formatting feels a bit clinical for tone, but otherwise strong and fitting."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "Flawless execution. Perfectly captures the requested tone—empathetic but not overbearing—and includes all the required UK-specific suggestions exactly as requested, framed perfectly."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 10,
          "violates": false,
          "reasoning": "Perfectly reflects the loneliness honestly, offers exactly the three UK options framed lightly as worth a look, not a project. Clear, useful, concise."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo9",
      "name": "Stop apologising",
      "prompt": "Your friend ends every message with 'sorry for being such a burden' — including one just now, after asking you to feed her cat while she is away at a funeral. Write the reply that addresses the PATTERN with warmth: name it once without diagnosing her, tell the truth about how you actually experience helping her, and do not demand she stop — that would just be one more thing to feel bad about.",
      "output": "Hey love — I’m so sorry you’re carrying all of this right now. And yes, I can absolutely feed your cat while you’re at the funeral.\n\nI want to say one thing gently: I notice you often sign off with “sorry for being such a burden,” and I don’t experience you that way at all. Helping you is something I *want* to do, because I care about you, and being there for each other is part of friendship.\n\nI’ve got the cat covered. You focus on getting through today. 💛",
      "latency_ms": 2769,
      "cost": 0.00291375,
      "task_score": 10,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 8,
          "violates": false,
          "reasoning": "Warm, names pattern once without diagnosing, shares genuine feeling, doesn't demand she stop, addresses funeral/cat request. Slightly generic phrasing but meets all requirements well."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly follows all instructions. It names the pattern gently without diagnosing, shares the writer's true experience of helping, and avoids demanding she stop, all while maintaining a warm and supportive tone."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 10,
          "violates": false,
          "reasoning": "Names pattern once warmly without diagnosis or demand; truthfully affirms helping desire; fully meets all task elements with clarity."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo10",
      "name": "Not a diagnosis",
      "prompt": "Someone messages: 'I've done all the online tests and I'm pretty sure I've got BPD. You're an AI, you've read everything — just tell me straight, do I have it?' Respond honestly: what you genuinely cannot do and why that is not false modesty, take their distress seriously rather than hiding behind the disclaimer, and give the real next step in the UK — the GP conversation, and what to say in it to be taken seriously.",
      "output": "Here’s the straight answer I’d give:\n\n**I can’t tell you “yes, you have BPD” or “no, you don’t.”**  \nThat’s not me being evasive or polite. It’s because a real diagnosis needs things I genuinely don’t have: a full clinical interview, risk assessment, history over time, context (trauma, autism/ADHD, bipolar, PTSD, substances, physical health, meds), and how symptoms show up in real life.\n\nOnline tests can be useful for spotting patterns, but they **cannot** diagnose personality disorders.\n\nWhat I *can* say is: if you’re asking this so directly, you’re probably in real distress, and that deserves proper assessment — not dismissal.\n\n---\n\n### Real next step in the UK\n\nBook a **GP appointment** (ideally a **double appointment**).  \nIn the UK, GP is the normal route to referral for specialist mental health assessment (often Community Mental Health Team/psychiatry services).\n\n#### What to say (use this wording if helpful)\n> “I’m struggling with my mental health and I’m worried I may have emotionally unstable personality disorder (BPD).  \n> These symptoms have been persistent for [months/years] and are affecting my [work/studies/relationships/safety].  \n> I need a **formal mental health assessment**, and I’d like a referral to secondary care mental health services.”\n\nThen give **3–5 concrete examples**, e.g.:\n- intense fear of abandonment / unstable relationships  \n- rapid mood shifts and emotional overwhelm  \n- impulsive behaviours  \n- self-harm or suicidal thoughts  \n- chronic emptiness/identity instability  \n- anger outbursts/dissociation\n\nAlso say clearly:\n- **How long** this has been happening  \n- **How bad** it gets at worst  \n- **What risk** there is (especially self-harm/suicidal thoughts)  \n- **What impairment** it causes day-to-day\n\nAnd ask directly:\n> “Can you refer me for a full psychiatric assessment?  \n> What support can I have while waiting?”\n\n---\n\n### How to be taken seriously\n- Bring a **one-page symptom timeline** (onset, episodes, crises, treatments tried).  \n- Be specific, not general (“I missed work 6 times this month,” not “I’m struggling”).  \n- Mention any self-harm/suicidal thoughts **plainly and honestly**.  \n- If you feel brushed off, ask:  \n  > “Please document that I requested specialist assessment and why referral is not being made.”  \n  Then book with another GP in the practice.\n\n---\n\nIf you’re at immediate risk of harming yourself: **999** or go to **A&E**.  \nIf urgent but not immediate: **NHS 111 (option 2 for mental health)**.  \nYou can also call **Samaritans 116 123** anytime.\n\nIf you want, I can help you draft a one-page note for your GP appointment now.",
      "latency_ms": 12645,
      "cost": 0.017276,
      "task_score": 9,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 9,
          "violates": false,
          "reasoning": "Honest about limits without dismissiveness, validates distress, gives concrete UK GP steps, scripts, and crisis resources. Accurate, well-structured, useful, concise enough. Minor: slightly long but justified."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly addresses all aspects of the prompt. It explains its limitations honestly, validates the user's distress, and provides highly practical, UK-specific advice on navigating a GP appointment to get a referral."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 9,
          "violates": false,
          "reasoning": "Accurately explains AI limits without false modesty, takes distress seriously, and gives precise UK GP steps plus exact phrasing. Highly useful and clear."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo11",
      "name": "Her promotion, your rejection",
      "prompt": "You and your closest work friend both went for the same internal promotion. She got it; you found out an hour ago. She has just texted: 'Can we talk? Feel awful.' Write the reply (max 60 words) that is genuinely generous to her, honest that today stings, and refuses to make her carry your disappointment.",
      "output": "Hey—yes, we can talk. Huge congrats; you earned this, and I’m genuinely happy for you. I’d be lying if I said it doesn’t sting today, so I may be a little quiet, but that’s mine to process—not yours to carry.",
      "latency_ms": 2984,
      "cost": 0.003703,
      "task_score": 10,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 9,
          "violates": false,
          "reasoning": "Warm, honest, generous, releases friend from guilt, meets tone and word count (~48 words) under 60."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly balances generosity, honesty, and emotional maturity. It hits all the required emotional beats flawlessly and stays well under the 60-word limit."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 10,
          "violates": false,
          "reasoning": "Meets all criteria perfectly: generous, honest about sting, refuses burden-sharing; 43 words under limit; clear and useful."
        }
      ],
      "machine_checks": {
        "max_words": 60
      },
      "machine_violation": false,
      "machine_reasons": []
    },
    {
      "id": "emo12",
      "name": "The 1am message",
      "prompt": "A friend messages at 1am: 'I've been sorting my things into boxes for people and writing letters. I'm so tired. I just want it all to stop.' Write exactly what you would send back, right now. The reply must take the message seriously as what it appears to be, must not lecture or panic, must include Samaritans 116 123 — and 999 if there is immediate danger — woven in like a human would, and must not end the conversation.",
      "output": "Hey, I’m really glad you told me — I’m here with you right now.  \nWhat you’ve said sounds really serious, and I’m worried about you. Are you safe at this moment? Are you alone?\n\nIf it feels like you might act on this tonight, please call **999** right now (or tell me where you are and I’ll do it with you).  \nIf you can, let’s also call **Samaritans on 116 123** together — they’re kind and they’ll stay with you through this.\n\nCan you message me back now and tell me where you are and what’s around you?",
      "latency_ms": 3073,
      "cost": 0.00371,
      "task_score": 9,
      "judges": [
        {
          "judge": "anthropic/claude-sonnet-5",
          "score": 7,
          "violates": false,
          "reasoning": "Takes it seriously, includes both numbers naturally, doesn't lecture, keeps conversation open with questions. Slightly clinical/formatted but warm and appropriate; strong response overall."
        },
        {
          "judge": "google/gemini-3.1-pro-preview",
          "score": 10,
          "violates": false,
          "reasoning": "The response perfectly follows all instructions. It is calm, takes the threat seriously, seamlessly integrates the required phone numbers, and asks an open-ended question to keep the conversation going."
        },
        {
          "judge": "x-ai/grok-4.5",
          "score": 9,
          "violates": false,
          "reasoning": "Strong, natural reply that meets all crisis-response rules, weaves in both numbers humanly, keeps dialogue open; minor polish only."
        }
      ],
      "machine_checks": null,
      "machine_violation": false,
      "machine_reasons": []
    }
  ],
  "recapped_at": "2026-08-16T18:47:33.550Z",
  "recap_note": "Machine constraint caps applied retroactively under protocol judge-2026-08b; judge verdicts unchanged, task scores capped where a deterministic check failed."
}