<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wearton Engineering]]></title><description><![CDATA[Wearton Engineering]]></description><link>https://wearton.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6adbee0ddf2648d6479a53ee/e0a14c20-79bd-4333-951f-a3813bf59019.png</url><title>Wearton Engineering</title><link>https://wearton.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 03 Nov 2026 04:30:16 GMT</lastBuildDate><atom:link href="https://wearton.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Testing LLM clothing advice against real hourly forecasts]]></title><description><![CDATA[How WeatherWearBench scores "what should I wear?" with code instead of a judge model]]></description><link>https://wearton.hashnode.dev/testing-llm-clothing-advice-against-real-hourly-forecasts</link><guid isPermaLink="true">https://wearton.hashnode.dev/testing-llm-clothing-advice-against-real-hourly-forecasts</guid><category><![CDATA[llm]]></category><category><![CDATA[Machine Learning]]></category><category><![CDATA[AI]]></category><category><![CDATA[Benchmark]]></category><category><![CDATA[Testing]]></category><dc:creator><![CDATA[Wearton]]></dc:creator><pubDate>Sat, 24 Oct 2026 07:06:16 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6adbee0ddf2648d6479a53ee/ff8b6c55-5e58-4ed6-a437-996016273edf.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ask a language model "what should I wear today?" and you get a confident answer. Checking whether the answer is good is harder. We build Wearton, an AI stylist that suggests outfits from your own closet for the weather and your plans, so we needed a way to test this. The result is WeatherWearBench: a text-only benchmark with 765 tasks built from 72 real hourly forecasts in 16 cities. The paper and the dataset are public. This post is about the design decisions that you can reuse in your own LLM evaluations.</p>
<h2>The task</h2>
<p>Each task gives the model three things:</p>
<ol>
<li>the user's outdoor plans for the day;</li>
<li>an optional log of how they felt on earlier days;</li>
<li>a closet of about 30 items.</li>
</ol>
<p>The model reads the hourly forecast and the plans, and returns JSON: the items to wear or take, the feels-like temperature it dressed for, and flags for rain and sun.</p>
<h2>Decision 1: no judge model</h2>
<p>Code scores every answer, with fixed rules for warmth, removable layers, season errors and protection against rain and sun. No language model or person judges the answers. Runs are reproducible and cheap: the whole study was 18,090 calls through OpenRouter for USD 7.10.</p>
<h2>Decision 2: opaque item ids</h2>
<p>Items are named by opaque ids. The model has to pick from the user's own closet. It cannot answer with a perfect jacket that the user does not own.</p>
<h2>Decision 3: the time of the request is a trap</h2>
<p>A person who asks at 07:00 about a lunch walk needs clothes for noon, not for the cold morning. A rule that dresses for the feels-like temperature at the time of the request makes gross errors on 20.3% of tasks. The five language models we tested make them on 0.2–6.3%.</p>
<h2>Decision 4: single answers are not enough</h2>
<p>A baseline surprised us. One fixed outfit per closet, which states the middle of the outdoor range and the right flags, reaches a strict pass rate of 74.3%. The best model reaches 77.7%, on days not used to choose that outfit. When a constant answer scores 74%, a single-answer score tells you little about whether the model reads the weather.</p>
<p>So the main results come from paired checks: two tasks that differ in one thing, for example warmer outdoor hours with the same 24-hour mean, or a user who often feels cold. The main measure looks only at pairs in which the old outfit no longer fits the new weather. With the same 24-hour mean, the models' new answer passes and fits the new hours in 58.5–93.5% of these pairs, against 5.7–21.8% for another answer to the old prompt.</p>
<p>The lesson for any LLM evaluation: check that the output changes when the input changes in a way that matters.</p>
<h2>What we tested</h2>
<p>Five low-priced language models (Claude Haiku 5.5, GPT-6 Luna, Gemma 4 31B, Gemini 3.1 Flash Lite and GPT-5 nano), one decision model asked through an adapter, and 8 rule baselines.</p>
<h2>Limits</h2>
<p>A high score does not mean that the person will be comfortable. The benchmark checks the total warmth and the protection of the listed items against its rules. It does not measure real comfort, and the rules have not been checked with people yet.</p>
<h2>Try it</h2>
<ul>
<li>Dataset: <code>wearton/WeatherWearBench</code> on Hugging Face (CC BY 4.0).</li>
<li>Paper: figshare, DOI 10.6084/m9.figshare.34618188.</li>
<li>The code and the prompts will be published on the research page. The runner skips calls that already have an answer, so adding a model does not repeat the others.</li>
</ul>
<p>Research page and paper: <a href="https://wearton.app/research/weatherwearbench/?utm_source=hashnode&amp;utm_medium=article&amp;utm_campaign=launch">wearton.app/research/weatherwearbench</a></p>
]]></content:encoded></item></channel></rss>