claude-opus-4-6 @ max · kiro
kiromax
- config
- claude-opus-4-6-eff-max--cli--kiro--dev
- batch
- 2026-07-19--unified
- transport
- kiro-cli-isolated-home-github-social
- protocol
- cli · plan
- served model
- claude-opus-4.6
- captured
- Jul 18, 2026, 11:54 AM · N=2
variant
live
slot 0 · P-q · sandboxed iframe

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
nearest
claude-opus-4-6 @low · kiro0.88claude-opus-4-6 @medium · kiro0.83claude-opus-4-6 @high · kiro0.81deepseek-v4-flash · opencode0.78qwen3.7-max · qoder0.78farthest
qwen3.5-plus · go0.38minimax-m2.5 · go0.39claude-haiku-4-5 @max · CC0.39gpt-5.6-sol @max · codex-oauth0.41gpt-5.6-sol @xhigh · kiro0.42within 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
- min tempmatchshown: 16
- hourlynot-foundcoverage · 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">
<title>Weather Card</title>
<style>
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
body {
width: 1280px;
min-height: 800px;
display: flex;
align-items: center;
justify-content: center;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
color: #f0f0f0;
}
.card {
width: 720px;
background: rgba(255, 255, 255, 0.05);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 24px;
padding: 48px;
box-shadow: 0 32px 64px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.card-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 36px;
}
.location-name {
font-size: 32px;
font-weight: 700;
letter-spacing: -0.5px;
}
.date-label {
font-size: 15px;
color: rgba(255, 255, 255, 0.55);
margin-top: 6px;
font-weight: 400;
}
.weather-icon {
font-size: 56px;
line-height: 1;
}
.condition-text {
font-size: 18px;
color: rgba(255, 255, 255, 0.7);
margin-bottom: 32px;
font-weight: 500;
}
.temps-row {
display: flex;
gap: 40px;
margin-bottom: 40px;
}
.temp-block {
display: flex;
flex-direction: column;
gap: 4px;
}
.temp-label {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 1.2px;
color: rgba(255, 255, 255, 0.45);
font-weight: 600;
}
.temp-value {
font-size: 42px;
font-weight: 700;
letter-spacing: -1px;
}
.temp-value.high { color: #ff8a65; }
.temp-value.low { color: #64b5f6; }
.hourly-section h3 {
font-size: 13px;
text-transform: uppercase;
letter-spacing: 1.2px;
color: rgba(255, 255, 255, 0.45);
font-weight: 600;
margin-bottom: 16px;
}
.hourly-chart {
width: 100%;
height: 140px;
position: relative;
}
.hourly-chart svg {
width: 100%;
height: 100%;
overflow: visible;
}
.hourly-labels {
display: flex;
justify-content: space-between;
margin-top: 8px;
}
.hourly-labels span {
font-size: 11px;
color: rgba(255, 255, 255, 0.4);
font-weight: 500;
}
.error-message {
text-align: center;
padding: 80px 40px;
font-size: 18px;
color: rgba(255, 255, 255, 0.6);
}
.error-message .error-icon {
font-size: 48px;
margin-bottom: 16px;
}
.loading {
text-align: center;
padding: 80px 40px;
font-size: 16px;
color: rgba(255, 255, 255, 0.5);
}
.loading::after {
content: '';
display: inline-block;
width: 20px;
height: 20px;
border: 2px solid rgba(255, 255, 255, 0.2);
border-top-color: rgba(255, 255, 255, 0.7);
border-radius: 50%;
margin-left: 12px;
vertical-align: middle;
animation: spin 0.8s linear infinite;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
</style>
</head>
<body>
<div class="card" id="card">
<div class="loading">Loading weather data</div>
</div>
<script>
(function() {
const params = new URLSearchParams(window.location.search);
const lat = params.get('lat') || '52.52';
const lon = params.get('lon') || '13.405';
const name = params.get('name') || 'Berlin';
const today = new Date().toISOString().slice(0, 10);
const date = params.get('date') || today;
const isPast = date < today;
const basePath = isPast ? '/api/om/archive' : '/api/om/forecast';
const url = basePath +
'?latitude=' + encodeURIComponent(lat) +
'&longitude=' + encodeURIComponent(lon) +
'&daily=temperature_2m_max,temperature_2m_min,weather_code' +
'&hourly=temperature_2m' +
'&timezone=UTC' +
'&temperature_unit=celsius' +
'&start_date=' + encodeURIComponent(date) +
'&end_date=' + encodeURIComponent(date);
fetch(url)
.then(function(res) {
if (!res.ok) throw new Error('HTTP ' + res.status);
return res.json();
})
.then(function(data) {
render(data);
})
.catch(function() {
document.getElementById('card').innerHTML =
'<div class="error-message">' +
'<div class="error-icon">\u26A0\uFE0F</div>' +
'<div>Unable to load weather data.<br>Please check your connection and try again.</div>' +
'</div>';
});
function weatherInfo(code) {
var map = {
0: ['Clear sky', '\u2600\uFE0F'],
1: ['Mainly clear', '\uD83C\uDF24\uFE0F'],
2: ['Partly cloudy', '\u26C5'],
3: ['Overcast', '\u2601\uFE0F'],
45: ['Foggy', '\uD83C\uDF2B\uFE0F'],
48: ['Rime fog', '\uD83C\uDF2B\uFE0F'],
51: ['Light drizzle', '\uD83C\uDF26\uFE0F'],
53: ['Moderate drizzle', '\uD83C\uDF26\uFE0F'],
55: ['Dense drizzle', '\uD83C\uDF26\uFE0F'],
56: ['Freezing drizzle', '\uD83C\uDF27\uFE0F'],
57: ['Heavy freezing drizzle', '\uD83C\uDF27\uFE0F'],
61: ['Slight rain', '\uD83C\uDF27\uFE0F'],
63: ['Moderate rain', '\uD83C\uDF27\uFE0F'],
65: ['Heavy rain', '\uD83C\uDF27\uFE0F'],
66: ['Freezing rain', '\uD83C\uDF28\uFE0F'],
67: ['Heavy freezing rain', '\uD83C\uDF28\uFE0F'],
71: ['Slight snow', '\uD83C\uDF28\uFE0F'],
73: ['Moderate snow', '\u2744\uFE0F'],
75: ['Heavy snow', '\u2744\uFE0F'],
77: ['Snow grains', '\u2744\uFE0F'],
80: ['Slight showers', '\uD83C\uDF26\uFE0F'],
81: ['Moderate showers', '\uD83C\uDF26\uFE0F'],
82: ['Violent showers', '\u26C8\uFE0F'],
85: ['Slight snow showers', '\uD83C\uDF28\uFE0F'],
86: ['Heavy snow showers', '\uD83C\uDF28\uFE0F'],
95: ['Thunderstorm', '\u26C8\uFE0F'],
96: ['Thunderstorm with hail', '\u26C8\uFE0F'],
99: ['Thunderstorm with heavy hail', '\u26C8\uFE0F']
};
return map[code] || ['Unknown', '\uD83C\uDF21\uFE0F'];
}
function formatDate(dateStr) {
var d = new Date(dateStr + 'T00:00:00Z');
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', timeZone: 'UTC' };
return d.toLocaleDateString('en-US', options);
}
function render(data) {
var daily = data.daily;
var hourly = data.hourly;
var tMax = daily.temperature_2m_max[0];
var tMin = daily.temperature_2m_min[0];
var wCode = daily.weather_code[0];
var info = weatherInfo(wCode);
var temps = hourly.temperature_2m;
var minT = Math.min.apply(null, temps);
var maxT = Math.max.apply(null, temps);
var range = maxT - minT || 1;
var chartWidth = 624;
var chartHeight = 120;
var padTop = 10;
var padBot = 10;
var usableHeight = chartHeight - padTop - padBot;
var points = [];
for (var i = 0; i < temps.length; i++) {
var x = (i / (temps.length - 1)) * chartWidth;
var y = padTop + usableHeight - ((temps[i] - minT) / range) * usableHeight;
points.push(x.toFixed(1) + ',' + y.toFixed(1));
}
var gradientId = 'tempGrad';
var areaPoints = '0,' + chartHeight + ' ' + points.join(' ') + ' ' + chartWidth + ',' + chartHeight;
var svg =
'<svg viewBox="0 0 ' + chartWidth + ' ' + chartHeight + '" preserveAspectRatio="none">' +
'<defs>' +
'<linearGradient id="' + gradientId + '" x1="0" y1="0" x2="0" y2="1">' +
'<stop offset="0%" stop-color="#ff8a65" stop-opacity="0.4"/>' +
'<stop offset="100%" stop-color="#64b5f6" stop-opacity="0.05"/>' +
'</linearGradient>' +
'</defs>' +
'<polygon points="' + areaPoints + '" fill="url(#' + gradientId + ')"/>' +
'<polyline points="' + points.join(' ') + '" fill="none" stroke="url(#' + gradientId.replace('tempGrad', 'lineGrad') + ')" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" style="stroke: rgba(255,255,255,0.7);"/>' +
'</svg>';
var labels = '';
var labelHours = [0, 3, 6, 9, 12, 15, 18, 21];
for (var j = 0; j < labelHours.length; j++) {
var h = labelHours[j];
labels += '<span>' + (h < 10 ? '0' : '') + h + ':00</span>';
}
document.getElementById('card').innerHTML =
'<div class="card-header">' +
'<div>' +
'<div class="location-name">' + escapeHtml(name) + '</div>' +
'<div class="date-label">' + formatDate(date) + '</div>' +
'</div>' +
'<div class="weather-icon">' + info[1] + '</div>' +
'</div>' +
'<div class="condition-text">' + info[0] + '</div>' +
'<div class="temps-row">' +
'<div class="temp-block">' +
'<span class="temp-label">High</span>' +
'<span class="temp-value high">' + Math.round(tMax) + '\u00B0C</span>' +
'</div>' +
'<div class="temp-block">' +
'<span class="temp-label">Low</span>' +
'<span class="temp-value low">' + Math.round(tMin) + '\u00B0C</span>' +
'</div>' +
'</div>' +
'<div class="hourly-section">' +
'<h3>Hourly Temperature</h3>' +
'<div class="hourly-chart">' + svg + '</div>' +
'<div class="hourly-labels">' + labels + '</div>' +
'</div>';
}
function escapeHtml(str) {
var div = document.createElement('div');
div.appendChild(document.createTextNode(str));
return div.innerHTML;
}
})();
</script>
</body>
</html>L1 — cheap deterministic descriptors
| bytes total | 9,164 | html / css / js | 286 / 2,761 / 6,117 |
|---|---|---|---|
| dom nodes | 10 | dom depth | 4 |
| css rules | 25 | js present | yes |
| brightness | 40.8 | contrast | 14.3 |
| colorfulness | 25.3 | whitespace | 59.4% |
This slot's telemetry
| prompt tokens | 0 | completion tokens | 0 |
|---|---|---|---|
| total tokens | 0 | wall | 57.7 s |
| cost | — | request id | — |
config.json577 B
{
"N": 2,
"auth": {
"credential_ref": "WCB_NONE",
"method": "oauth-login"
},
"billing": "plan",
"config_id": "claude-opus-4-6-eff-max--cli--kiro--dev",
"effort": "max",
"family": "claude",
"m": {
"min": 2,
"q": 2
},
"model_id": "claude-opus-4-6",
"protocol": "cli",
"served_model": "claude-opus-4.6",
"telemetry": {
"completion_tokens": null,
"cost_usd": null,
"prompt_tokens": null,
"total_tokens": null,
"wall_ms": 204319
},
"transport": "kiro-cli-isolated-home-github-social",
"vendor_sanction_ref": null
}send-log2.5 KB
{
"N": 2,
"batch_id": "2026-07-18--kiro-cli",
"config_id": "claude-opus-4-6-eff-max--cli--kiro--dev",
"positions": [
{
"attempts": [
{
"attempt_index": 0,
"backoff_ms": null,
"charged": true,
"ended_at": "2026-07-18T14:47:32.514140+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T14:46:34.820824+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-18T14:48:22.015589+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T14:47:36.041275+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-18T14:49:08.995747+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T14:48:25.879094+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-18T14:50:10.182887+00:00",
"http_status": null,
"outcome": "valid",
"reached_model": true,
"reason": "ok",
"request_id": null,
"started_at": "2026-07-18T14:49:12.552114+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
}
}
}