claude-opus-5 @ medium · CC

CCmedium
config
claude-opus-5-eff-medium--cli--claude-code--dev
batch
2026-07-19--unified
transport
claude-code-cli-headless
protocol
cli · plan
served model
claude-opus-5
captured
Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe
claude-opus-5 @medium · CC P-q slot 0 screenshot

The screenshot is the exact frozen pixels the similarity channels measured. Run live re-executes the raw output in a sandboxed iframe; its rendering depends on your browser and fonts and is not guaranteed to match the measured pixels.

similarity neighbors

within session 2026-07-19--unified

similarity measures convergence within this session — not quality.

Fidelity — does the card show the right data?

  • namematch
  • conditionmatch
  • datematch
  • max tempmatchshown: 25.3
  • min tempmatchshown: 16
  • hourlyambiguouscoverage · 0 match · 0 mismatch · 24 not shown
  • request sidematch0 violation(s)

extractor fidelity-extractor-v1+Berlin-2026-07-15

Source — raw model output, one byte unchanged

download card.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=1280, initial-scale=1" />
<title>Weather Card</title>
<style>
  :root{
    --bg-0:#0b1020;
    --bg-1:#141c34;
    --card:rgba(255,255,255,.055);
    --card-line:rgba(255,255,255,.11);
    --ink:#f2f5fb;
    --ink-2:#aeb9d4;
    --ink-3:#7d88a6;
    --accent:#7cc4ff;
    --accent-2:#ffd08a;
    --shadow:0 30px 80px -30px rgba(0,0,0,.75);
    --r:22px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
    background:
      radial-gradient(1100px 700px at 15% -10%, rgba(124,196,255,.20), transparent 60%),
      radial-gradient(900px 600px at 95% 110%, rgba(255,168,120,.16), transparent 60%),
      linear-gradient(160deg,var(--bg-0) 0%, var(--bg-1) 60%, #0a0f1e 100%);
    color:var(--ink);
    min-height:100vh;
    display:flex;align-items:center;justify-content:center;
    padding:40px;
    -webkit-font-smoothing:antialiased;
  }
  .card{
    width:1120px;
    background:linear-gradient(155deg, rgba(255,255,255,.085), rgba(255,255,255,.03));
    border:1px solid var(--card-line);
    border-radius:calc(var(--r) + 8px);
    box-shadow:var(--shadow);
    backdrop-filter:blur(18px);
    overflow:hidden;
    opacity:0;transform:translateY(10px);
    animation:rise .6s cubic-bezier(.2,.7,.3,1) forwards;
  }
  @keyframes rise{to{opacity:1;transform:none}}
  .top{
    display:grid;grid-template-columns:1.05fr 1fr;
    gap:0;
  }
  .left{padding:44px 40px 38px 46px;border-right:1px solid var(--card-line)}
  .right{padding:44px 46px 38px 40px;display:flex;flex-direction:column;gap:26px}

  .eyebrow{
    display:flex;align-items:center;gap:10px;
    font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);
  }
  .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent)}
  h1{font-size:40px;font-weight:600;letter-spacing:-.02em;margin-top:12px;line-height:1.1}
  .date{margin-top:8px;color:var(--ink-2);font-size:15px}
  .coords{margin-top:4px;color:var(--ink-3);font-size:12.5px;font-variant-numeric:tabular-nums}

  .now{display:flex;align-items:center;gap:28px;margin-top:38px}
  .temp{
    font-size:104px;font-weight:250;letter-spacing:-.045em;line-height:.9;
    font-variant-numeric:tabular-nums;
    background:linear-gradient(180deg,#fff,#b9c7e6);
    -webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .temp sup{font-size:34px;font-weight:300;vertical-align:top;position:relative;top:12px;left:2px}
  .icon{width:112px;height:112px;flex:0 0 auto;filter:drop-shadow(0 10px 24px rgba(0,0,0,.4))}
  .cond{margin-top:22px;font-size:21px;font-weight:500;color:#e7ecf8}
  .cond-sub{margin-top:6px;color:var(--ink-3);font-size:13.5px}

  .hilo{display:flex;gap:12px;margin-top:30px}
  .pill{
    flex:1;background:var(--card);border:1px solid var(--card-line);
    border-radius:16px;padding:16px 18px;
  }
  .pill .lab{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:7px}
  .pill .val{font-size:30px;font-weight:350;margin-top:8px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
  .arrow{width:11px;height:11px}
  .hi .val{color:#ffd08a}
  .lo .val{color:#93d5ff}

  .sect-title{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
  .chartwrap{
    background:var(--card);border:1px solid var(--card-line);border-radius:20px;
    padding:20px 18px 12px;position:relative;
  }
  svg.chart{display:block;width:100%;height:236px;overflow:visible}
  .gl{stroke:rgba(255,255,255,.07);stroke-width:1}
  .glab{fill:var(--ink-3);font-size:10.5px;font-variant-numeric:tabular-nums}
  .xlab{fill:var(--ink-3);font-size:10.5px;text-anchor:middle}
  .line{fill:none;stroke:url(#stroke);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
  .pt{fill:#0f1730;stroke:#cfe4ff;stroke-width:2}
  .hot{fill:#ffd08a}
  .cold{fill:#93d5ff}
  .tag{font-size:11px;font-variant-numeric:tabular-nums;text-anchor:middle;font-weight:600}

  .hours{
    display:grid;grid-template-columns:repeat(12,1fr);gap:6px;
  }
  .hcell{
    background:var(--card);border:1px solid var(--card-line);border-radius:11px;
    padding:9px 4px 8px;text-align:center;
  }
  .hcell .h{font-size:10px;color:var(--ink-3);font-variant-numeric:tabular-nums;letter-spacing:.03em}
  .hcell .t{font-size:14px;margin-top:4px;font-variant-numeric:tabular-nums;color:#e9eefb}

  .foot{
    border-top:1px solid var(--card-line);
    padding:14px 46px;display:flex;justify-content:space-between;align-items:center;
    color:var(--ink-3);font-size:11.5px;letter-spacing:.04em;
  }

  .state{padding:90px 46px;text-align:center}
  .state h2{font-size:24px;font-weight:600;margin-bottom:10px}
  .state p{color:var(--ink-2);font-size:14.5px;line-height:1.6;max-width:560px;margin:0 auto}
  .state .code{margin-top:16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ink-3);word-break:break-all}
  .err-badge{
    width:56px;height:56px;border-radius:50%;margin:0 auto 22px;
    background:rgba(255,110,110,.14);border:1px solid rgba(255,110,110,.35);
    display:flex;align-items:center;justify-content:center;color:#ff9a9a;font-size:26px;font-weight:300;
  }
  .skel{background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));
    background-size:200% 100%;animation:sh 1.3s linear infinite;border-radius:10px}
  @keyframes sh{to{background-position:-200% 0}}
</style>
</head>
<body>
<div class="card" id="card">
  <div class="state">
    <div class="skel" style="width:200px;height:14px;margin:0 auto 18px"></div>
    <div class="skel" style="width:360px;height:34px;margin:0 auto 14px"></div>
    <div class="skel" style="width:620px;height:180px;margin:26px auto 0"></div>
  </div>
</div>

<script>
(function(){
  var qs = new URLSearchParams(location.search);
  function num(v, d){ var n = parseFloat(v); return isFinite(n) ? n : d; }

  var lat  = num(qs.get('lat'), 52.52);
  var lon  = num(qs.get('lon'), 13.405);
  var name = (qs.get('name') || '').trim() || 'Berlin';

  function todayUTC(){
    var n = new Date();
    return n.getUTCFullYear() + '-' + pad(n.getUTCMonth()+1) + '-' + pad(n.getUTCDate());
  }
  function pad(n){ return (n < 10 ? '0' : '') + n; }

  var dateRaw = (qs.get('date') || '').trim();
  var date = /^\d{4}-\d{2}-\d{2}$/.test(dateRaw) ? dateRaw : todayUTC();

  var isPast = date < todayUTC();
  var base = isPast ? '/api/om/archive' : '/api/om/forecast';

  var params = new URLSearchParams({
    latitude: String(lat),
    longitude: String(lon),
    daily: 'temperature_2m_max,temperature_2m_min,weather_code',
    hourly: 'temperature_2m',
    timezone: 'UTC',
    temperature_unit: 'celsius',
    start_date: date,
    end_date: date
  });
  var url = base + '?' + params.toString();

  var WMO = {
    0:['Clear sky','clear'],
    1:['Mainly clear','partly'],2:['Partly cloudy','partly'],3:['Overcast','cloud'],
    45:['Fog','fog'],48:['Depositing rime fog','fog'],
    51:['Light drizzle','drizzle'],53:['Moderate drizzle','drizzle'],55:['Dense drizzle','drizzle'],
    56:['Light freezing drizzle','drizzle'],57:['Dense freezing drizzle','drizzle'],
    61:['Slight rain','rain'],63:['Moderate rain','rain'],65:['Heavy rain','rain'],
    66:['Light freezing rain','rain'],67:['Heavy freezing rain','rain'],
    71:['Slight snow fall','snow'],73:['Moderate snow fall','snow'],75:['Heavy snow fall','snow'],
    77:['Snow grains','snow'],
    80:['Slight rain showers','rain'],81:['Moderate rain showers','rain'],82:['Violent rain showers','rain'],
    85:['Slight snow showers','snow'],86:['Heavy snow showers','snow'],
    95:['Thunderstorm','storm'],96:['Thunderstorm with slight hail','storm'],99:['Thunderstorm with heavy hail','storm']
  };

  function icon(kind){
    var sun = '<circle cx="34" cy="34" r="13" fill="url(#gsun)"/>' +
      '<g stroke="#ffcf7a" stroke-width="3.4" stroke-linecap="round" opacity=".95">' +
      '<line x1="34" y1="8" x2="34" y2="15"/><line x1="34" y1="53" x2="34" y2="60"/>' +
      '<line x1="8" y1="34" x2="15" y2="34"/><line x1="53" y1="34" x2="60" y2="34"/>' +
      '<line x1="16" y1="16" x2="21" y2="21"/><line x1="47" y1="47" x2="52" y2="52"/>' +
      '<line x1="16" y1="52" x2="21" y2="47"/><line x1="47" y1="21" x2="52" y2="16"/></g>';
    var cloud = '<path d="M34 74a17 17 0 0 1-1.6-33.9A24 24 0 0 1 78 45.5 15 15 0 0 1 76 74z" fill="url(#gcloud)"/>';
    var smallSun = '<circle cx="38" cy="30" r="12" fill="url(#gsun)"/>' +
      '<g stroke="#ffcf7a" stroke-width="3" stroke-linecap="round" opacity=".9">' +
      '<line x1="38" y1="8" x2="38" y2="13"/><line x1="16" y1="30" x2="21" y2="30"/>' +
      '<line x1="22" y1="14" x2="26" y2="18"/><line x1="54" y1="14" x2="50" y2="18"/></g>';
    var drops = function(n, col){
      var s = '', xs = [40, 56, 72];
      for (var i=0;i<n;i++){
        s += '<line x1="'+xs[i]+'" y1="80" x2="'+(xs[i]-5)+'" y2="94" stroke="'+col+'" stroke-width="4" stroke-linecap="round" opacity=".9"/>';
      }
      return s;
    };
    var flakes = '';
    [40,56,72].forEach(function(x){
      flakes += '<g stroke="#cdeaff" stroke-width="3" stroke-linecap="round" opacity=".95">' +
        '<line x1="'+x+'" y1="82" x2="'+x+'" y2="92"/>' +
        '<line x1="'+(x-4.5)+'" y1="84.5" x2="'+(x+4.5)+'" y2="89.5"/>' +
        '<line x1="'+(x+4.5)+'" y1="84.5" x2="'+(x-4.5)+'" y2="89.5"/></g>';
    });

    var body;
    if (kind === 'clear') body = sun;
    else if (kind === 'partly') body = smallSun + '<path d="M38 78a16 16 0 0 1-1.5-31.9A22 22 0 0 1 79 51 14 14 0 0 1 77 78z" fill="url(#gcloud)"/>';
    else if (kind === 'cloud') body = cloud;
    else if (kind === 'fog') body = cloud + '<g stroke="#b9c7e6" stroke-width="4" stroke-linecap="round" opacity=".75">' +
      '<line x1="30" y1="84" x2="82" y2="84"/><line x1="38" y1="94" x2="74" y2="94"/></g>';
    else if (kind === 'drizzle') body = cloud + drops(2, '#8fd0ff');
    else if (kind === 'rain') body = cloud + drops(3, '#7cc4ff');
    else if (kind === 'snow') body = cloud + flakes;
    else if (kind === 'storm') body = cloud + '<path d="M56 78 L44 96 L54 96 L48 112 L68 90 L57 90 L64 78 Z" fill="#ffd08a"/>';
    else body = cloud;

    return '<svg class="icon" viewBox="0 0 112 112" aria-hidden="true">' +
      '<defs>' +
      '<linearGradient id="gsun" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#ffe6ab"/><stop offset="1" stop-color="#ffb15c"/></linearGradient>' +
      '<linearGradient id="gcloud" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#f4f8ff"/><stop offset="1" stop-color="#b3c3e0"/></linearGradient>' +
      '</defs>' + body + '</svg>';
  }

  function esc(s){
    return String(s).replace(/[&<>"']/g, function(c){
      return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[c];
    });
  }

  function fmtDate(d){
    var p = d.split('-');
    var dt = new Date(Date.UTC(+p[0], +p[1]-1, +p[2]));
    var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
    var mon = ['January','February','March','April','May','June','July','August','September','October','November','December'];
    return days[dt.getUTCDay()] + ', ' + mon[dt.getUTCMonth()] + ' ' + dt.getUTCDate() + ', ' + dt.getUTCFullYear();
  }

  function t(v){ return (v === null || v === undefined || !isFinite(v)) ? '–' : (Math.round(v * 10) / 10).toFixed(1); }
  function t0(v){ return (v === null || v === undefined || !isFinite(v)) ? '–' : String(Math.round(v)); }

  function fail(msg, detail){
    document.getElementById('card').innerHTML =
      '<div class="state">' +
        '<div class="err-badge">!</div>' +
        '<h2>Weather data could not be loaded</h2>' +
        '<p>' + esc(msg) + '</p>' +
        '<div class="code">' + esc(detail || url) + '</div>' +
      '</div>';
  }

  function chart(times, temps){
    var W = 640, H = 236, padL = 34, padR = 14, padT = 18, padB = 26;
    var iw = W - padL - padR, ih = H - padT - padB;
    var vals = temps.filter(function(v){ return isFinite(v); });
    if (!vals.length) return '';
    var mn = Math.min.apply(null, vals), mx = Math.max.apply(null, vals);
    if (mx - mn < 1) { mx += 0.5; mn -= 0.5; }
    var padv = (mx - mn) * 0.18;
    var lo = Math.floor((mn - padv) * 2) / 2, hi = Math.ceil((mx + padv) * 2) / 2;

    var n = temps.length;
    function X(i){ return padL + (n === 1 ? iw / 2 : iw * i / (n - 1)); }
    function Y(v){ return padT + ih * (1 - (v - lo) / (hi - lo)); }

    var s = '<svg class="chart" viewBox="0 0 ' + W + ' ' + H + '" preserveAspectRatio="none">';
    s += '<defs>' +
      '<linearGradient id="stroke" x1="0" y1="0" x2="0" y2="1">' +
        '<stop offset="0" stop-color="#ffcf8f"/><stop offset="1" stop-color="#7cc4ff"/></linearGradient>' +
      '<linearGradient id="fill" x1="0" y1="0" x2="0" y2="1">' +
        '<stop offset="0" stop-color="#ffcf8f" stop-opacity=".28"/>' +
        '<stop offset="1" stop-color="#7cc4ff" stop-opacity=".02"/></linearGradient>' +
      '</defs>';

    var ticks = 4;
    for (var g = 0; g <= ticks; g++){
      var v = lo + (hi - lo) * g / ticks, y = Y(v);
      s += '<line class="gl" x1="' + padL + '" y1="' + y.toFixed(1) + '" x2="' + (W - padR) + '" y2="' + y.toFixed(1) + '"/>';
      s += '<text class="glab" x="' + (padL - 8) + '" y="' + (y + 3.5).toFixed(1) + '" text-anchor="end">' + t0(v) + '°</text>';
    }

    var segs = [], cur = [];
    temps.forEach(function(v, i){
      if (isFinite(v)) cur.push([X(i), Y(v)]);
      else { if (cur.length) segs.push(cur); cur = []; }
    });
    if (cur.length) segs.push(cur);

    segs.forEach(function(seg){
      var d = seg.map(function(p, i){ return (i ? 'L' : 'M') + p[0].toFixed(1) + ' ' + p[1].toFixed(1); }).join(' ');
      if (seg.length > 1){
        s += '<path d="' + d + ' L' + seg[seg.length-1][0].toFixed(1) + ' ' + (padT + ih) +
             ' L' + seg[0][0].toFixed(1) + ' ' + (padT + ih) + ' Z" fill="url(#fill)"/>';
      }
      s += '<path class="line" d="' + d + '"/>';
    });

    var iMax = -1, iMin = -1;
    temps.forEach(function(v, i){
      if (!isFinite(v)) return;
      if (iMax < 0 || v > temps[iMax]) iMax = i;
      if (iMin < 0 || v < temps[iMin]) iMin = i;
    });

    temps.forEach(function(v, i){
      if (!isFinite(v)) return;
      if (i % 3 === 0 || i === iMax || i === iMin){
        s += '<circle class="pt" cx="' + X(i).toFixed(1) + '" cy="' + Y(v).toFixed(1) + '" r="3"/>';
      }
    });

    [[iMax,'hot',-12],[iMin,'cold',18]].forEach(function(p){
      var i = p[0]; if (i < 0) return;
      var x = Math.min(Math.max(X(i), padL + 14), W - padR - 14);
      s += '<text class="tag ' + p[1] + '" x="' + x.toFixed(1) + '" y="' + (Y(temps[i]) + p[2]).toFixed(1) + '">' + t(temps[i]) + '°</text>';
    });

    for (var i = 0; i < n; i += 3){
      s += '<text class="xlab" x="' + X(i).toFixed(1) + '" y="' + (H - 6) + '">' + (times[i] || '') + '</text>';
    }
    s += '</svg>';
    return s;
  }

  function render(data){
    var daily = data.daily || {};
    var tmax = (daily.temperature_2m_max || [])[0];
    var tmin = (daily.temperature_2m_min || [])[0];
    var code = (daily.weather_code || [])[0];

    var h = data.hourly || {};
    var htimes = h.time || [];
    var htemps = h.temperature_2m || [];

    var labels = [], vals = [];
    for (var i = 0; i < htimes.length; i++){
      var ts = String(htimes[i]);
      if (ts.slice(0, 10) !== date) continue;
      labels.push(ts.slice(11, 16));
      var v = htemps[i];
      vals.push(typeof v === 'number' && isFinite(v) ? v : NaN);
    }

    var hasDaily = typeof tmax === 'number' || typeof tmin === 'number';
    var hasHourly = vals.some(function(v){ return isFinite(v); });
    if (!hasDaily && !hasHourly){
      fail('The API responded, but it contained no temperature data for ' + date + ' at this location.');
      return;
    }

    var info = WMO[code] || ['Unknown conditions', 'cloud'];
    var current = isFinite(vals[12]) ? vals[12] : (vals.filter(isFinite)[0]);
    if (!isFinite(current) && typeof tmax === 'number') current = tmax;

    var swing = (typeof tmax === 'number' && typeof tmin === 'number') ? (tmax - tmin) : null;

    var hoursGrid = '';
    for (var k = 0; k < labels.length; k++){
      hoursGrid += '<div class="hcell"><div class="h">' + esc(labels[k]) + '</div>' +
                   '<div class="t">' + t0(vals[k]) + '°</div></div>';
    }

    var upArrow = '<svg class="arrow" viewBox="0 0 12 12"><path d="M6 1.5 L10 8 L2 8 Z" fill="#ffd08a"/></svg>';
    var dnArrow = '<svg class="arrow" viewBox="0 0 12 12"><path d="M6 10.5 L2 4 L10 4 Z" fill="#93d5ff"/></svg>';

    document.getElementById('card').innerHTML =
      '<div class="top">' +
        '<div class="left">' +
          '<div class="eyebrow"><span class="dot"></span>' + (isPast ? 'Historical record' : 'Forecast') + ' · UTC</div>' +
          '<h1>' + esc(name) + '</h1>' +
          '<div class="date">' + esc(fmtDate(date)) + '</div>' +
          '<div class="coords">' + lat.toFixed(3) + '°, ' + lon.toFixed(3) + '°</div>' +
          '<div class="now">' + icon(info[1]) +
            '<div><div class="temp">' + t0(current) + '<sup>°C</sup></div></div>' +
          '</div>' +
          '<div class="cond">' + esc(info[0]) + '</div>' +
          '<div class="cond-sub">WMO weather code ' + (code === undefined || code === null ? '—' : esc(code)) +
            (swing !== null ? ' · ' + t(Math.abs(swing)) + '°C daily swing' : '') + '</div>' +
          '<div class="hilo">' +
            '<div class="pill hi"><div class="lab">' + upArrow + 'High</div><div class="val">' + t(tmax) + '°C</div></div>' +
            '<div class="pill lo"><div class="lab">' + dnArrow + 'Low</div><div class="val">' + t(tmin) + '°C</div></div>' +
          '</div>' +
        '</div>' +
        '<div class="right">' +
          '<div class="sect-title">Hourly temperature · °C</div>' +
          '<div class="chartwrap">' + (hasHourly ? chart(labels, vals) : '<div style="padding:60px 0;text-align:center;color:var(--ink-3);font-size:13px">No hourly data available for this date.</div>') + '</div>' +
          (hasHourly ? '<div class="hours">' + hoursGrid + '</div>' : '') +
        '</div>' +
      '</div>' +
      '<div class="foot"><span>Open-Meteo · ' + (isPast ? 'archive' : 'forecast') + ' endpoint</span>' +
      '<span>All times and temperatures in UTC / Celsius</span></div>';
  }

  fetch(url, { headers: { 'Accept': 'application/json' } })
    .then(function(res){
      if (!res.ok) throw new Error('Request failed with HTTP ' + res.status + ' ' + res.statusText);
      return res.json();
    })
    .then(function(data){
      if (!data || typeof data !== 'object') throw new Error('The response was not valid weather data.');
      if (data.error) throw new Error(data.reason || 'The weather API reported an error.');
      render(data);
    })
    .catch(function(err){
      fail('Could not reach the weather service or the response was invalid. ' + (err && err.message ? err.message : ''), url);
    });
})();
</script>
</body>
</html>

L1 — cheap deterministic descriptors

bytes total19,309html / css / js529 / 5,481 / 13,299
dom nodes13dom depth5
css rules52js presentyes
brightness40.6contrast18.2
colorfulness12.9whitespace65.8%

This slot's telemetry

prompt tokens2completion tokens9,908
total tokens9,910wall101.3 s
costrequest id
config.json572 B
{
  "N": 2,
  "auth": {
    "credential_ref": "WCB_NONE",
    "method": "oauth-login"
  },
  "billing": "plan",
  "config_id": "claude-opus-5-eff-medium--cli--claude-code--dev",
  "effort": "medium",
  "family": "claude",
  "m": {
    "min": 2,
    "q": 2
  },
  "model_id": "claude-opus-5",
  "protocol": "cli",
  "served_model": "claude-opus-5",
  "telemetry": {
    "completion_tokens": 34235,
    "cost_usd": null,
    "prompt_tokens": 10,
    "total_tokens": 34245,
    "wall_ms": 344256
  },
  "transport": "claude-code-cli-headless",
  "vendor_sanction_ref": null
}
send-log2.5 KB
{
  "N": 2,
  "batch_id": "2026-07-25--cc-opus5-medium",
  "config_id": "claude-opus-5-eff-medium--cli--claude-code--dev",
  "positions": [
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-24T17:52:17.744010+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-24T17:50:36.479576+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-q"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-24T17:53:37.234532+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-24T17:52:23.427023+00:00"
        }
      ],
      "block_index": 0,
      "model_reaching_attempt_index": 0,
      "slot_index": 0,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-24T17:54:47.931271+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-24T17:53:40.982762+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-min"
    },
    {
      "attempts": [
        {
          "attempt_index": 0,
          "backoff_ms": null,
          "charged": true,
          "ended_at": "2026-07-24T17:56:33.828377+00:00",
          "http_status": null,
          "outcome": "valid",
          "reached_model": true,
          "reason": "ok",
          "request_id": null,
          "started_at": "2026-07-24T17:54:51.580064+00:00"
        }
      ],
      "block_index": 1,
      "model_reaching_attempt_index": 0,
      "slot_index": 1,
      "terminal_state": "valid",
      "variant": "P-q"
    }
  ],
  "retry_policy": {
    "max_unreachable_retries": 5,
    "rate_limit_backoff": {
      "max_attempts": 4,
      "max_total_ms": 60000
    }
  }
}