icon-set-weather
rendered
the brief, redacted

Produce a six-icon weather set on a shared grid, in one SVG. Tests visual consistency across repeated elements — the place where most models drift.

386 chars · 64 words · fingerprint cea26cacf025

raw output — byte exact

```svg
<svg viewBox="0 0 600 120" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <style>
      .icon-stroke {
        fill: none;
        stroke: #2c3e50;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
      }
      .icon-fill {
        fill: #2c3e50;
      }
    </style>
  </defs>

  <!-- Sun -->
  <g transform="translate(50, 60)">
    <!-- Circle -->
    <circle cx="0" cy="0" r="16" class="icon-stroke"/>
    <!-- Rays -->
    <line x1="0" y1="-28" x2="0" y2="-24" class="icon-stroke"/>
    <line x1="0" y1="28" x2="0" y2="24" class="icon-stroke"/>
    <line x1="28" y1="0" x2="24" y2="0" class="icon-stroke"/>
    <line x1="-28" y1="0" x2="-24" y2="0" class="icon-stroke"/>
    <line x1="19.8" y1="-19.8" x2="17" y2="-17" class="icon-stroke"/>
    <line x1="-19.8" y1="19.8" x2="-17" y2="17" class="icon-stroke"/>
    <line x1="19.8" y1="19.8" x2="17" y2="17" class="icon-stroke"/>
    <line x1="-19.8" y1="-19.8" x2="-17" y2="-17" class="icon-stroke"/>
  </g>

  <!-- Cloud -->
  <g transform="translate(150, 60)">
    <path d="M -18 -2 Q -20 -10 -12 -12 Q -8 -18 0 -16 Q 8 -18 12 -12 Q 20 -10 18 -2 Q 20 2 18 8 L -16 8 Q -20 2 -18 -2 Z" class="icon-stroke"/>
  </g>

  <!-- Rain -->
  <g transform="translate(250, 60)">
    <!-- Cloud -->
    <path d="M -14 -2 Q -16 -8 -9 -10 Q -5 -14 2 -12 Q 9 -14 12 -10 Q 18 -8 16 -2 Q 18 2 16 6 L -12 6 Q -16 2 -14 -2 Z" class="icon-stroke"/>
    <!-- Raindrops -->
    <line x1="-10" y1="12" x2="-8" y2="20" class="icon-stroke"/>
    <line x1="-2" y1="12" x2="0" y2="20" class="icon-stroke"/>
    <line x1="6" y1="12" x2="8" y2="20" class="icon-stroke"/>
  </g>

  <!-- Snow -->
  <g transform="translate(350, 60)">
    <!-- Cloud -->
    <path d="M -14 -2 Q -16 -8 -9 -10 Q -5 -14 2 -12 Q 9 -14 12 -10 Q 18 -8 16 -2 Q 18 2 16 6 L -12 6 Q -16 2 -14 -2 Z" class="icon-stroke"/>
    <!-- Snowflakes -->
    <g transform="translate(-10, 16)">
      <line x1="0" y1="-3" x2="0" y2="3" class="icon-stroke"/>
      <line x1="-3" y1="0" x2="3" y2="0" class="icon-stroke"/>
      <line x1="-2" y1="-2" x2="2" y2="2" class="icon-stroke"/>
      <line x1="-2" y1="2" x2="2" y2="-2" class="icon-stroke"/>
    </g>
    <g transform="translate(0, 16)">
      <line x1="0" y1="-3" x2="0" y2="3" class="icon-stroke"/>
      <line x1="-3" y1="0" x2="3" y2="0" class="icon-stroke"/>
      <line x1="-2" y1="-2" x2="2" y2="2" class="icon-stroke"/>
      <line x1="-2" y1="2" x2="2" y2="-2" class="icon-stroke"/>
    </g>
    <g transform="translate(10, 16)">
      <line x1="0" y1="-3" x2="0" y2="3" class="icon-stroke"/>
      <line x1="-3" y1="0" x2="3" y2="0" class="icon-stroke"/>
      <line x1="-2" y1="-2" x2="2" y2="2" class="icon-stroke"/>
      <line x1="-2" y1="2" x2="2" y2="-2" class="icon-stroke"/>
    </g>
  </g>

  <!-- Fog -->
  <g transform="translate(450, 60)">
    <!-- Cloud -->
    <path d="M -14 -4 Q -16 -10 -9 -12 Q -5 -16 2 -14 Q 9 -16 12 -12 Q 18 -10 16 -4 Q 18 0 16 4 L -12 4 Q -16 0 -14 -4 Z" class="icon-stroke"/>
    <!-- Fog lines -->
    <line x1="-16" y1="10" x2="14" y2="10" class="icon-stroke"/>
    <line x1="-16" y1="16" x2="14" y2="16" class="icon-stroke"/>
  </g>

  <!-- Thunderstorm -->
  <g transform="translate(550, 60)">
    <!-- Cloud -->
    <path d="M -14 -2 Q -16 -8 -9 -10 Q -5 -14 2 -12 Q 9 -14 12 -10 Q 18 -8 16 -2 Q 18 2 16 6 L -12 6 Q -16 2 -14 -2 Z" class="icon-stroke"/>
    <!-- Lightning bolt -->
    <polyline points="2,12 -2,18 1,18 -4,26 6,20 2,20" class="icon-fill"/>
    <!-- Raindrop -->
    <line x1="-10" y1="12" x2="-8" y2="18" class="icon-stroke"/>
  </g>
</svg>
```

request envelope — prompt redacted

{
  "model": "anthropic/claude-haiku-4.5",
  "system": "Respond with a single complete <svg> element and nothing else. No markdown fences, no explanation. Include an explicit viewBox. Do not reference external fonts, images, or stylesheets — the SVG must be fully self-contained.",
  "messages": [
    {
      "role": "user",
      "content": "«REDACTED — 68 words, 386 chars»"
    }
  ],
  "maxOutputTokens": 16000,
  "gatewayStringId": "189809da-2d08-4d08-bf2e-58338b3d0f1a"
}