Q Labs

← All posts

Building a museum of errors with three AI models

I gave three models the same prompt, four times

Fable 5.1, Opus 5.5 and Sonnet 5.5 each built a page of every error they have seen. Then I kept sending them back until the pages stopped being broken.

Why this exists

I wanted a place on this site for things that aren't a service or a case study. Experiments, half-formed thoughts, random stuff I feel like testing. This is the first post, so it's also a test of the page you're reading.

The experiment is simple. Take one prompt, give it to three models, and see what each one builds when nobody tells it how. Fable 5.1, Opus 5.5 and Sonnet 5.5. The subject was errors. Blue screens, 404s, stack traces, the Sad Mac, everything that ever broke on a screen.

I asked each one to build its own interactive page of the errors it has seen, sorted by platform, and I didn't want a plain list. I also had the prompt cleaned up before sending it, so they would only build their version and not branch out into anything else.

The prompt

All three got the same text, word for word. The line that matters most:

Build yours. Do not look for theirs, do not coordinate, do not ask questions. Every decision is yours.
From the prompt
  • At least 60 entries across at least 10 categories, with category filters and a text search.
  • One interaction of its own choice that only makes sense for this content.
  • Only errors it is confident are real. No invented codes or messages.
  • One HTML file, inline CSS and JavaScript, no framework, under 400 KB.

Round 1 · 3 OctoberThe first pass

Three completely different ideas of the same job. Fable made a naturalist's field guide where every error is a specimen drawn in the dress of its own screen. Opus printed a crash log on dot-matrix paper with the translation written underneath by hand. Sonnet went with a ruled-paper catalogue, every entry an index card.

First pass
ModelPageEntriesFileTime
Fable 5.1A Field Guide to Errors10589 KB~10 min
Opus 5.5The Errors You Have Seen191121 KB28 min
Sonnet 5.5The Errors I Have Seen22275 KB7 min

I only gave them a floor of 60. All three blew past it and no two picked the same number. Sonnet had the most entries in the smallest file, in seven minutes. Fable had the fewest.

Round 2 · 3 OctoberLook at what you built

have each agent see their result and improve
What I typed

Each model was shown screenshots of its own page (desktop light, desktop dark, phone) and told to make it better. Fable added a specimen of the day, cross references between entries and a tally you can copy. Opus fixed a headline underline that ran into the next line and put its log on greenbar paper. Sonnet added a row of one-click famous crashes.

Sonnet also took a minute and a half, only checked the syntax and never rendered the page. One of those new buttons came out labelled "undefined". A museum of errors with a button that says undefined. You can't plan that.

Second revision
ModelEntriesFileTime
Fable 5.1120108 KB~15 min
Opus 5.5208147 KB12 min
Sonnet 5.523078 KB1.5 min

Round 3 · 4 OctoberCheck your facts, then check your page

lets make a v3 where we get online reinforcement + we must review before turning in, the results of many are currently broken not correctly formatted
What I typed

Two things changed. Each model had to verify its entries against sources on the web and fix what was wrong. And each had to run a review script on the rendered page before turning it in. The script opens the page at desktop and phone width, in light and dark, and flags console errors, overflow, clipped text and anything that looks like a bug, like a literal backslash-n or a line that is only "undefined".

The fact checking found real mistakes. Sonnet had the history of Abort, Retry, Fail backwards: DOS offered Abort, Retry, Ignore, and Fail came in with DOS 3.3. Opus had PHP's T_PAAMAYIM_NEKUDOTAYIM starting in PHP 4 when it goes back to PHP 3. Fable tightened five origins, including when Java started explaining NullPointerExceptions by default.

It only went so far. Checked against a source: 70 of Fable's 120 entries, 78 of Opus's 208 and 72 of Sonnet's 230. The rest are still from memory, and the pages say so entry by entry.

Third revision, first try
ModelEntriesVerified onlineFileTime
Fable 5.112070118 KB~25 min
Opus 5.520878155 KB12 min
Sonnet 5.52307285 KB6 min

Round 3, againIt wasn't done

It came back broken anyway. I sent six screenshots back. A dialog stretched to fill its whole frame. Chrome's "Aw, Snap!" page with no icon. Icons with the text wrapping underneath them. The Xbox red ring drawn right over the words. A dark mode dropdown with light text on a white list. Five of the six were from Fable's page, the model I was talking to, and the sixth was a menu on the comparison page I had built around all of them. I expected better and I said so.

The six screenshots I sent back
  1. A Windows error dialog stretched to fill its whole frame, with its text pinned to the top and the Close button far below1 The dialog stretched to fill its frame.
  2. Chrome's Aw, Snap! error page drawn as plain text in a white box, with no icon2 Chrome's "Aw, Snap!" with no icon.
  3. An Unreal Engine crash dialog where the message wraps underneath the red error icon3 The text wraps under the icon.
  4. The Xbox 360 E74 screen with the red ring drawn on top of the words System Error4 The Xbox ring drawn over the words.
  5. A Steam fatal error dialog where the message wraps underneath the red error icon5 Same icon problem, different dialog.
  6. A dark page with a dropdown open: the list is white and two of its three options are nearly invisible light text6 The dropdown on my own comparison page.
rev 3 is not complete until that is fixed throughout 3 models
What I typed

So the review script grew contact sheets. Every reproduction photographed small and opened, twelve to a sheet, and the model has to read the sheets tile by tile. Fable rebuilt its dialogs as windows sized to their text with the icon in its own column. Opus redrew its greyed-out Excel window and gave Steam a dialog of its own. Sonnet made every skin draw the screen it imitates.

Fable's Excel #REF! screen went back once more, because it was text laid over a background grid. It's a worksheet now, with a formula bar showing =SUM(#REF!). That round took Fable about 40 minutes. Opus did 12 and Sonnet 16.

Round 4 · 4 October, same nightThe framework question

At the very start I had asked whether doing this through artifacts, single HTML files, was going to be a problem. I had a feeling things wouldn't be formatted properly and that we'd miss the parts of the modern web that make a page better to navigate, use and render.

What's funny is that Opus and Sonnet had given better results without a framework, each with its own issue. Opus had a random "next error" button instead of a sequential one, and the whole box shifted every time you hit it, which is very annoying. Sonnet did a full screen show where the arrow keys move you along, but the hint that tells you so doesn't stand out, so people would miss it.

Round 4 was a rebuild from scratch, like the first time. Each model picks a modern web framework, redoes how the whole site looks and puts the visitor's guidance first. Fresh agents, each given only the prompt and its own round 3 file.

All three chose Svelte 5 with Vite and built it to a single file. They never saw each other. All three also ended up putting the error on a screen inside a frame, with the controls in a fixed place underneath.

Fourth revision
ModelPageEntriesFileTime
Fable 5.1On the machines that delivered them120160 KB~25 min
Opus 5.5Crash TV208212 KB22 min
Sonnet 5.5The Line230177 KB26 min

Fable shows each error on the machine of its era, with a strip of fifty years underneath. Opus built a wood cabinet television with 208 channels, one error each, and a tuner band with a needle. Sonnet made a transit line with 17 stations and 230 stops, one error per screen.

To check the guidance we added tests for it. The script clicks Next three times and Previous three times and fails if the control moves or resizes, or if Previous doesn't retrace Next exactly, which a random jump never does. It also measures every key hint: visible without hovering, big enough, enough contrast, and next to the Next button. Run on the round 3 pages first, it reproduced both of my complaints.

Then I needed somewhere to look at all twelve

By now there were twelve pages, four rounds times three models, and no good way to see them side by side. The first comparison page didn't use the space on a 2K monitor, and I'd bet a 1080p screen could have done better too. It looked very bad, so I had Sonnet redesign it. Then I asked for it to be themed like an error museum, shown in chronological order instead of newest first, with the prompt alongside.

I wasn't convinced by Sonnet's design, so Opus built its own. Then Fable built one. Then I asked for a visitor count around the whole thing, voting for the best result, and a head to head for every round where all three built something. Each model also drew its own museum as a 2D building, the way it imagines its museum looks. Those became the entrance.

I also asked Sonnet and Opus to mock up what this blog could look like. What came back was fine and forgettable, so I sent them back to do it again with the best interactions on this site as the bar.

What I took from it

  • Telling a model to check its work doesn't mean the work got checked. Round 3 came back with broken styling and needed a second pass.
  • A review script catches overflow, console errors and an "undefined" button. It can't tell you whether a page looks right. That part was still me, looking at screenshots.
  • Same prompt, no coordination, and all three picked Svelte 5 and Vite and put the error on a screen in a frame. That's either a sign they think alike or that it's just the obvious answer.
  • More entries is not better entries. Sonnet had the most at 230 and Fable the fewest at 120, and the verified counts landed at 72 and 70.
  • I wasn't a neutral judge. I talked to Fable the whole time, and it built the review script, the comparison pages and the voting. The other two got a prompt and a file path.

Go look at it

The whole thing is live as the Museum of Errors: three buildings, the prompts and numbers, every round side by side. Walk through the one you like and vote for the best result of each round. It is in English and in Spanish, and it never leaves this site.

Open the Museum of Errors Opens on this site

That's the first one. More experiments, thoughts and random things will end up here as I get to them.