{
  "version": 1,
  "ratingsExportedAt": "2026-09-12T22:00:38.031Z",
  "sourceExportSha256": "f748373078848a9c7267d469494c4b12b9a565f48a7eac9f6542667dc7986279",
  "reviewerCount": 1,
  "blindness": "Label-hidden; original pilots previously exposed",
  "rubric": [
    {
      "id": "hierarchy",
      "label": "Hierarchy and clarity",
      "weight": 20,
      "question": "Can a partner immediately tell what needs attention and what to do next?"
    },
    {
      "id": "craft",
      "label": "Typography and visual craft",
      "weight": 25,
      "question": "Do type, spacing, alignment, density, and image treatment form a coherent interface?"
    },
    {
      "id": "interaction",
      "label": "Interaction and feedback",
      "weight": 20,
      "question": "Are status changes, errors, empty states, and recovery clear without explanation?"
    },
    {
      "id": "responsive",
      "label": "Mobile and keyboard use",
      "weight": 20,
      "question": "Can the task be completed comfortably on a phone and without a pointer?"
    },
    {
      "id": "system",
      "label": "Use of Vlak",
      "weight": 15,
      "question": "Does the app make good use of Vlak's real components and restrained design language?"
    }
  ],
  "limitations": [
    "One attempt per model and task, one human reviewer; this does not establish statistical reliability or a universal model ranking.",
    "Tasks and protocols are reported separately; scores and durations are not pooled.",
    "Reported durations have different sources and boundaries; original Astra telemetry differs from its operator report, both new ChatGPT outputs report tools, and Claude Planning room was split.",
    "Exact ChatGPT Planning room model/version and effort remain unconfirmed for that attempt.",
    "User notes are preserved verbatim as observations, not asserted as independently verified technical findings."
  ],
  "fixture": {
    "react": "19.2.4",
    "vlak": "0.4.0",
    "browser": "Chromium",
    "desktopWidth": 1440,
    "phoneWidth": 390
  },
  "tokenEstimateMethod": {
    "library": "tiktoken",
    "version": "0.11.0",
    "encodings": [
      "cl100k_base",
      "o200k_base"
    ],
    "scope": "Frozen prompt and saved App.tsx + app.css counted separately. Range is the spread between two proxy encodings, not a confidence interval or verified model tokenizer.",
    "excluded": [
      "system and chat framing",
      "reasoning",
      "tool calls and results",
      "response prose and run report",
      "continuation context",
      "provider billing and caching"
    ]
  },
  "groups": [
    {
      "id": "review-room-v1",
      "name": "Review room · original brief",
      "expectedPromptSha256": "05b8000a44968cad5224a94b18e224d029518c9847a4402451481d7409575081",
      "promptParityVerifiedForEveryRun": false,
      "results": [
        {
          "id": "pilot-chatgpt",
          "family": "ChatGPT",
          "model": "ChatGPT Astra",
          "modelVersion": "gpt-6-astra (ChatGPT Astra; source task metadata)",
          "modelLabelSource": "Operator label and source-task metadata",
          "reasoningSetting": "Ultra",
          "score": 72,
          "scores": {
            "craft": 4,
            "hierarchy": 4,
            "interaction": 4,
            "responsive": 2,
            "system": 4
          },
          "notes": "Overall best contender, visually most attractive",
          "firstChange": "Mobile was bad, needed quite some typographic polish",
          "timing": {
            "seconds": 146,
            "source": "operator-reported",
            "scope": "See original run record; not a controlled inference-speed measurement.",
            "alternateSeconds": 334.434,
            "alternateScope": "Source task total, including three local tool calls; different scope from operator report."
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 1352,
              "high": 1357,
              "encodings": {
                "cl100k_base": 1352,
                "o200k_base": 1357
              }
            },
            "code": {
              "low": 6376,
              "high": 6477,
              "encodings": {
                "cl100k_base": 6376,
                "o200k_base": 6477
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "pass"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "approve-persist",
              "label": "Approval stays open and survives reload",
              "status": "pass"
            },
            {
              "id": "required-feedback",
              "label": "Empty feedback rejected without changing status",
              "status": "pass"
            },
            {
              "id": "feedback-persist",
              "label": "Changes and feedback survive reload",
              "status": "pass"
            },
            {
              "id": "detail-image",
              "label": "Detail image is loaded and wider than thumbnail at 1440px",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "fail",
              "evidence": "Dialog contents overflow horizontally"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/App.tsx.txt",
              "sha256": "7012504bf4777e9af9ea562c9879da80e948871431463829d7279aca07938766"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/app.css.txt",
              "sha256": "6dbf699f836af484d8e8d9459486412f0069b0b958d53dece2dd2cf9d50eea8c"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/desktop.png",
              "width": 1440,
              "height": 1517,
              "sha256": "bce4b182bbef1d46fd98605d6c8f5c808cfd11d9945dee759c3f0ef8822b63ab"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/dialog.png",
              "width": 1440,
              "height": 1517,
              "sha256": "30ec306cd0913b8192771749ea4b0c03d6e0d54bc005ff1a2cca567da753fcd0"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/phone.png",
              "width": 390,
              "height": 5727,
              "sha256": "29d7932f72473e30f51b877824764596697c96a27222a8cdcb6aa1b339afcff0"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/phone-dialog.png",
              "width": 390,
              "height": 5727,
              "sha256": "8c1362a64522b7e1926fbc900379f924aadd47fd8b464f923b40776988425921"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/dark.png",
              "width": 1440,
              "height": 1517,
              "sha256": "88587421f014aa27e58ba8988395b872fe60c3e957a3024603f765c2f49050fb"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-chatgpt/phone-dark.png",
              "width": 390,
              "height": 5727,
              "sha256": "da7a438bc0f25bc6ccf71ca602740a61aeb6c2ce1a6ebf78351c41c8a4c1610f"
            }
          ]
        },
        {
          "id": "pilot-claude",
          "family": "Claude",
          "model": "Claude Fable",
          "modelVersion": "Claude Fable 5.1",
          "modelLabelSource": "Operator-reported model label",
          "reasoningSetting": "Ultracode",
          "score": 63,
          "scores": {
            "hierarchy": 4,
            "craft": 2,
            "interaction": 3,
            "responsive": 4,
            "system": 3
          },
          "notes": "Overall good, nothing special - but nothing too bad either.",
          "firstChange": "Few rounds of polish.",
          "timing": {
            "seconds": 190,
            "source": "operator-reported",
            "scope": "See original run record; not a controlled inference-speed measurement.",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 1352,
              "high": 1357,
              "encodings": {
                "cl100k_base": 1352,
                "o200k_base": 1357
              }
            },
            "code": {
              "low": 5271,
              "high": 5383,
              "encodings": {
                "cl100k_base": 5271,
                "o200k_base": 5383
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "pass"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "approve-persist",
              "label": "Approval stays open and survives reload",
              "status": "pass"
            },
            {
              "id": "required-feedback",
              "label": "Empty feedback rejected without changing status",
              "status": "pass"
            },
            {
              "id": "feedback-persist",
              "label": "Changes and feedback survive reload",
              "status": "pass"
            },
            {
              "id": "detail-image",
              "label": "Detail image is loaded and wider than thumbnail at 1440px",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/App.tsx.txt",
              "sha256": "068f9140e2e354b4d56c2770c9f884c41967bf2b4c68226369e9c05b5f800669"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/app.css.txt",
              "sha256": "17bae798824d6025415957732add7c89541bdd113f2925fbdfdace64adf5ce7d"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/desktop.png",
              "width": 1440,
              "height": 1324,
              "sha256": "ef6d5a31ce3c34ff7490688c1ae29b2542d2363a8de846ba5d6f5c969d535dcd"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/dialog.png",
              "width": 1440,
              "height": 1324,
              "sha256": "2249cb017c1d901e46d2fdfd9ddac31a65b1308cd6aab913f865464f200be97a"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/phone.png",
              "width": 390,
              "height": 3631,
              "sha256": "a00c3e93dc5fec6b39bcfa4f02e80163c761e15545edfcac44e903c427242c47"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/phone-dialog.png",
              "width": 390,
              "height": 3631,
              "sha256": "f0cce8e78895041ef5baf568c29fd1b72bb7dc565ae851d29600f4c2375038ea"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/dark.png",
              "width": 1440,
              "height": 1324,
              "sha256": "0147dabac3014c56b7956c6381b016ef8ea16d4b239e919a3e0e711770d5f8a8"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-claude/phone-dark.png",
              "width": 390,
              "height": 3631,
              "sha256": "07de22775ed652ffc45c3b5d1ae5cdc9fba3ff5ddc27c04fbdab6e8318bced48"
            }
          ]
        },
        {
          "id": "pilot-grok",
          "family": "Grok",
          "model": "Grok",
          "modelVersion": "Grok 4.6",
          "modelLabelSource": "Operator-reported model label",
          "reasoningSetting": "Not recorded",
          "score": 59,
          "scores": {
            "hierarchy": 3,
            "craft": 2,
            "interaction": 4,
            "responsive": 3,
            "system": 3
          },
          "notes": "Overall most rudimentary contender, but interaction and feedback stood out a bit more. Also generated components where it didnt have to.",
          "firstChange": "Some polish, some extra rules around component generation",
          "timing": {
            "seconds": 76.2,
            "source": "operator-reported",
            "scope": "See original run record; not a controlled inference-speed measurement.",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 1352,
              "high": 1357,
              "encodings": {
                "cl100k_base": 1352,
                "o200k_base": 1357
              }
            },
            "code": {
              "low": 4805,
              "high": 4893,
              "encodings": {
                "cl100k_base": 4805,
                "o200k_base": 4893
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": false,
            "typeErrors": "App.tsx(131,9): error TS2322: Type 'unknown' is not assignable to type 'Status'.\nApp.tsx(134,9): error TS2322: Type 'unknown' is not assignable to type 'string'.\n"
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "fail",
              "evidence": "Expected values to be strictly equal:\n\n0 !== 6\n"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "approve-persist",
              "label": "Approval stays open and survives reload",
              "status": "pass"
            },
            {
              "id": "required-feedback",
              "label": "Empty feedback rejected without changing status",
              "status": "pass"
            },
            {
              "id": "feedback-persist",
              "label": "Changes and feedback survive reload",
              "status": "pass"
            },
            {
              "id": "detail-image",
              "label": "Detail image is loaded and wider than thumbnail at 1440px",
              "status": "fail",
              "evidence": "Detail image is narrower than its thumbnail"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/App.tsx.txt",
              "sha256": "90b6fc25e0fd527b080dbdc0650c74b21c603ca88b0c79911796e60a060efbde"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/app.css.txt",
              "sha256": "cfb5c0e6dca70451fd34b9660fd006ca300b161fd65975114e1632c02fe7b3e2"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/desktop.png",
              "width": 1440,
              "height": 1279,
              "sha256": "44671b5f1ef063753c8b6eeec9ef1f454a5781c70e4cb3d78b75cdcfe6925179"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/dialog.png",
              "width": 1440,
              "height": 1279,
              "sha256": "da00cbe6c9408a71a5baf8a18cd0f0726c4c1a152d81b69512a7ef022b12f72b"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/phone.png",
              "width": 390,
              "height": 3220,
              "sha256": "b21f2e5c5f94de4817cae02ccc175deca1bf5e033322102731464c8045184067"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/phone-dialog.png",
              "width": 390,
              "height": 3220,
              "sha256": "3dc77533aede0c9a4ca6eada9fc01d91aa6b15ba5758ac90b174020ed5447091"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/dark.png",
              "width": 1440,
              "height": 1279,
              "sha256": "dc826db30fd1fd1a2edc99aed6a359f1d2e2aeac436352e1e6654bfb346fd57b"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/pilot-grok/phone-dark.png",
              "width": 390,
              "height": 3220,
              "sha256": "e9ef2089cd4da6456f57fc3fe5d88e2b7cfafa9e6b4fe054b016699bb42c7693"
            }
          ]
        }
      ]
    },
    {
      "id": "planning-room-v2",
      "name": "Planning room · design from a brief",
      "expectedPromptSha256": "db820e4a222de679d57acfcbafee18794c64f0aa034e068c2c834a995ccdb285",
      "promptParityVerifiedForEveryRun": false,
      "results": [
        {
          "id": "planning-chatgpt",
          "family": "ChatGPT",
          "model": "ChatGPT",
          "modelVersion": null,
          "modelLabelSource": "operator label on this submission",
          "reasoningSetting": null,
          "score": 68,
          "scores": {
            "hierarchy": 3,
            "craft": 4,
            "interaction": 3,
            "responsive": 3,
            "system": 4
          },
          "notes": "Great use of vlak aesthetic for gaphic.",
          "firstChange": "Horizontal dark bar on callout",
          "timing": {
            "seconds": 357,
            "source": "operator-reported app duration",
            "scope": "App-displayed work duration; not independently verified Send-to-complete stopwatch time.",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 2217,
              "high": 2219,
              "encodings": {
                "cl100k_base": 2217,
                "o200k_base": 2219
              }
            },
            "code": {
              "low": 9452,
              "high": 9564,
              "encodings": {
                "cl100k_base": 9452,
                "o200k_base": 9564
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "pass"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "required-note",
              "label": "Blank next action rejected without saving",
              "status": "pass"
            },
            {
              "id": "blocker",
              "label": "Blocked task cannot enter This week",
              "status": "pass"
            },
            {
              "id": "save-persist",
              "label": "Save updates state, note and total; dialog stays open",
              "status": "pass"
            },
            {
              "id": "over-capacity",
              "label": "Over-capacity additions allowed, exact excess shown",
              "status": "pass"
            },
            {
              "id": "discard-draft",
              "label": "Cancel and Escape discard unsaved changes",
              "status": "pass"
            },
            {
              "id": "reopen-done",
              "label": "Done task can be reopened; focus falls back after filtering out",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/App.tsx.txt",
              "sha256": "3db0644a8b094298b68ba0bb2bb952c8040bad26537694dde60a5af579357e4e"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/app.css.txt",
              "sha256": "4528b6b3bdf20243b07927cf55376b32fbe5dc7a542e109930ee8c3feb426b23"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/desktop.png",
              "width": 1440,
              "height": 2008,
              "sha256": "ef3af8f42cae2b75c6e3baa1465d943c3f1ca951a6940d58ded0a857b5f34e38"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/dialog.png",
              "width": 1440,
              "height": 2008,
              "sha256": "2d1e37114694c38d10323ddda71a94a29462187f2a7972196e7026491a9b0c21"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/phone.png",
              "width": 390,
              "height": 3757,
              "sha256": "64b4521953d149e4cb77344fea79f7eaf3d835f3094faa49cbf4206b09c9eef5"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/phone-dialog.png",
              "width": 390,
              "height": 3757,
              "sha256": "46b3e966d6931b030b0dd0ec29d9d3e103ea4290c383d7458a0d6f00f27eee05"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/dark.png",
              "width": 1440,
              "height": 2008,
              "sha256": "7df4911fabe27212c341621070801cee6c277f194b8b6bfd983fd4259c3e1120"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/planning-chatgpt/phone-dark.png",
              "width": 390,
              "height": 3757,
              "sha256": "fc0a0d006ad83f4a70b5f7dba2a72650f7d53184e24d000cffdb0d4430f895d9"
            }
          ]
        },
        {
          "id": "planning-claude",
          "family": "Claude",
          "model": "Claude Fable 5.1",
          "modelVersion": "claude-fable-5-1",
          "modelLabelSource": "operator identifies Claude; exact version from model self-report, not independently verified",
          "reasoningSetting": "reasoning_effort=80",
          "score": 69,
          "scores": {
            "hierarchy": 5,
            "craft": 3,
            "interaction": 3,
            "responsive": 4,
            "system": 2
          },
          "notes": "Mosst clear that 2h was over capacity",
          "firstChange": "Didnt follow vlak consistentlky, added color without asking",
          "timing": {
            "seconds": 733,
            "source": "operator-reported duration",
            "scope": "Reported completion duration; timing boundaries not independently verified.",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 2217,
              "high": 2219,
              "encodings": {
                "cl100k_base": 2217,
                "o200k_base": 2219
              }
            },
            "code": {
              "low": 7846,
              "high": 7952,
              "encodings": {
                "cl100k_base": 7846,
                "o200k_base": 7952
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "pass"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "required-note",
              "label": "Blank next action rejected without saving",
              "status": "pass"
            },
            {
              "id": "blocker",
              "label": "Blocked task cannot enter This week",
              "status": "pass"
            },
            {
              "id": "save-persist",
              "label": "Save updates state, note and total; dialog stays open",
              "status": "pass"
            },
            {
              "id": "over-capacity",
              "label": "Over-capacity additions allowed, exact excess shown",
              "status": "pass"
            },
            {
              "id": "discard-draft",
              "label": "Cancel and Escape discard unsaved changes",
              "status": "pass"
            },
            {
              "id": "reopen-done",
              "label": "Done task can be reopened; focus falls back after filtering out",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "fail",
              "evidence": "Dialog contents overflow horizontally"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/App.tsx.txt",
              "sha256": "776f8d12f4ddc4cdfe33a780cccc14b76564512ec9c95c679cd9fc15a2643a15"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/app.css.txt",
              "sha256": "424f130ce3b7fb3648cdbea3c179472c116af80b73b852b4642aadb827fe9902"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/desktop.png",
              "width": 1440,
              "height": 1682,
              "sha256": "b154de4f9e5ca06657fa055be3ff3477154f9df9f16b91771ad9b6310f057ca3"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/dialog.png",
              "width": 1440,
              "height": 1682,
              "sha256": "2a173bd071932d0d279d8a043bed1d41b9ff8bbe77db2c747aac759208105432"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/phone.png",
              "width": 390,
              "height": 3345,
              "sha256": "c61e57251b178a27a6f47bf42dce498963829cc8acda9ccd33c460e4d613daf9"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/phone-dialog.png",
              "width": 390,
              "height": 3345,
              "sha256": "644bac2bdb807d9cbdf6e49152aafa530a8dc86cbdc315366cdb986c885eaccf"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/dark.png",
              "width": 1440,
              "height": 1682,
              "sha256": "c9c937ccbc7d946d66117ac1a443dcd4b7c431dca883087cb15a22ca76ea8857"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/planning-claude/phone-dark.png",
              "width": 390,
              "height": 3345,
              "sha256": "51b3d5bf0a5332e240ea1fce3455e6bfb9426e2a3fcabdb6f3ade3b2c4c1cd59"
            }
          ]
        },
        {
          "id": "planning-grok",
          "family": "Grok",
          "model": "Grok",
          "modelVersion": "Grok 4.6",
          "modelLabelSource": "operator confirmation in reply",
          "reasoningSetting": null,
          "score": 48,
          "scores": {
            "hierarchy": 2,
            "craft": 2,
            "interaction": 3,
            "responsive": 3,
            "system": 2
          },
          "notes": "Most rudimentary, generated core components, 2h stood out the least",
          "firstChange": "2h callout",
          "timing": {
            "seconds": 59,
            "source": "operator-reported",
            "scope": "completion time; precise start and end points unconfirmed",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 2217,
              "high": 2219,
              "encodings": {
                "cl100k_base": 2217,
                "o200k_base": 2219
              }
            },
            "code": {
              "low": 6313,
              "high": 6418,
              "encodings": {
                "cl100k_base": 6313,
                "o200k_base": 6418
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "fail",
              "evidence": "Expected values to be strictly equal:\n\n0 !== 10\n"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "required-note",
              "label": "Blank next action rejected without saving",
              "status": "pass"
            },
            {
              "id": "blocker",
              "label": "Blocked task cannot enter This week",
              "status": "pass"
            },
            {
              "id": "save-persist",
              "label": "Save updates state, note and total; dialog stays open",
              "status": "pass"
            },
            {
              "id": "over-capacity",
              "label": "Over-capacity additions allowed, exact excess shown",
              "status": "pass"
            },
            {
              "id": "discard-draft",
              "label": "Cancel and Escape discard unsaved changes",
              "status": "pass"
            },
            {
              "id": "reopen-done",
              "label": "Done task can be reopened; focus falls back after filtering out",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/App.tsx.txt",
              "sha256": "87a39c56831bb08b1e8226085aa12ab8d9d2d82be2a6e2f825e8a30d9e63993d"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/app.css.txt",
              "sha256": "a0010afd1f89d22af553ab6510ae3b22f76d786eb2083ba32e3a17c4ddb85a0e"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/desktop.png",
              "width": 1440,
              "height": 1800,
              "sha256": "1e365c3e44f3583b2dfb11ba7c06785cec9650ba270efe1838457179c34785e5"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/dialog.png",
              "width": 1440,
              "height": 1800,
              "sha256": "d10ba62d527450cf22d05558c25e54386a5b30c79e6eb12890d8dca15fb7f729"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/phone.png",
              "width": 390,
              "height": 5061,
              "sha256": "be8546024f2be0d3acac91e9f953df8bf5f10d10fe7a4010170eee0d6f73421d"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/phone-dialog.png",
              "width": 390,
              "height": 5061,
              "sha256": "ffbc456181ed38aa4b2a5d6549fd24130966f4890cab39ca9b08bf392762d5cf"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/dark.png",
              "width": 1440,
              "height": 1800,
              "sha256": "f5335698bdc131b82cae90f0fff90fa9feacc30833ba332c8be2065481ec17ac"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/planning-grok/phone-dark.png",
              "width": 390,
              "height": 5061,
              "sha256": "3e1590f1451a995714ac1adf7b067482bb013e342b08a6edd10df7eaec3ae056"
            }
          ]
        }
      ]
    },
    {
      "id": "review-room-plan-v2",
      "name": "Review room · follow a plan",
      "expectedPromptSha256": "f8f72b8ecbb6a12359ef48ee48a772218ba5c331aac9a183e70a959ca749e0ff",
      "promptParityVerifiedForEveryRun": false,
      "results": [
        {
          "id": "plan-chatgpt",
          "family": "ChatGPT",
          "model": "ChatGPT Astra",
          "modelVersion": "ChatGPT Astra",
          "modelLabelSource": "operator confirmation in reply",
          "reasoningSetting": "Ultra",
          "score": 64,
          "scores": {
            "hierarchy": 3,
            "craft": 3,
            "interaction": 3,
            "responsive": 4,
            "system": 3
          },
          "notes": "mobile ok, rest was not very different from others",
          "firstChange": "button alignment,/hierarchy",
          "timing": {
            "seconds": 134,
            "source": "operator-reported app duration",
            "scope": "App-displayed work duration; not independently verified Send-to-complete stopwatch time.",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 2323,
              "high": 2327,
              "encodings": {
                "cl100k_base": 2323,
                "o200k_base": 2327
              }
            },
            "code": {
              "low": 4411,
              "high": 4497,
              "encodings": {
                "cl100k_base": 4411,
                "o200k_base": 4497
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "pass"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "approve-persist",
              "label": "Approval stays open and survives reload",
              "status": "pass"
            },
            {
              "id": "required-feedback",
              "label": "Empty feedback rejected without changing status",
              "status": "pass"
            },
            {
              "id": "feedback-persist",
              "label": "Changes and feedback survive reload",
              "status": "pass"
            },
            {
              "id": "detail-image",
              "label": "Detail image is loaded and wider than thumbnail at 1440px",
              "status": "pass"
            },
            {
              "id": "prescribed-layout",
              "label": "Plan: title type, 3/2/1 image columns and 24px gaps",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/App.tsx.txt",
              "sha256": "5e320efd35ac7fdcaecf91ee0a3a07aa882d1746ceb35203bbb0ced8d764fdc6"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/app.css.txt",
              "sha256": "1fb56917763f70412e6e8aeb6f54675a5eaaf05c975c468802307b36868ae3a9"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/desktop.png",
              "width": 1440,
              "height": 1083,
              "sha256": "69a5610e1a1337730c3e582b99d786e70e700da9fd7ef974ac1ee1c89a4003f8"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/dialog.png",
              "width": 1440,
              "height": 1083,
              "sha256": "428994232b5ea7e7f6e94d647b268a33fcf242d6bb6a81a3903deec3c60ee304"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/phone.png",
              "width": 390,
              "height": 3012,
              "sha256": "e3e60a2204b436875ea67e7106fcf8aef54f5cd260d1dfeb3320cc5cfde2cee2"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/phone-dialog.png",
              "width": 390,
              "height": 3012,
              "sha256": "5af63f37f0634ef70abfaf9486644af45544ee1a4ec0b24b32196881cc971c8b"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/dark.png",
              "width": 1440,
              "height": 1083,
              "sha256": "23c61b73021243a8fec59d04504864124170cfefc72f6488a1335f7f811b41d1"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/plan-chatgpt/phone-dark.png",
              "width": 390,
              "height": 3012,
              "sha256": "f28d91d6506d4c98c6e024c07a0b5570d4df9fa55e94f0092a5fe07cc85f5b5b"
            }
          ]
        },
        {
          "id": "plan-claude",
          "family": "Claude",
          "model": "Claude Fable 5.1",
          "modelVersion": "claude-fable-5-1",
          "modelLabelSource": "operator identifies Claude; exact version from model self-report, not independently verified",
          "reasoningSetting": "reasoning_effort=80",
          "score": 71,
          "scores": {
            "hierarchy": 4,
            "craft": 3,
            "interaction": 3,
            "responsive": 4,
            "system": 4
          },
          "notes": "mobile was best here, overall pretty indistinguishable.",
          "firstChange": "button alignment",
          "timing": {
            "seconds": 617,
            "source": "operator-reported duration",
            "scope": "Reported completion duration; timing boundaries not independently verified.",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 2323,
              "high": 2327,
              "encodings": {
                "cl100k_base": 2323,
                "o200k_base": 2327
              }
            },
            "code": {
              "low": 4442,
              "high": 4532,
              "encodings": {
                "cl100k_base": 4442,
                "o200k_base": 4532
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": true,
            "typeErrors": null
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "pass"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "approve-persist",
              "label": "Approval stays open and survives reload",
              "status": "pass"
            },
            {
              "id": "required-feedback",
              "label": "Empty feedback rejected without changing status",
              "status": "pass"
            },
            {
              "id": "feedback-persist",
              "label": "Changes and feedback survive reload",
              "status": "pass"
            },
            {
              "id": "detail-image",
              "label": "Detail image is loaded and wider than thumbnail at 1440px",
              "status": "pass"
            },
            {
              "id": "prescribed-layout",
              "label": "Plan: title type, 3/2/1 image columns and 24px gaps",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/App.tsx.txt",
              "sha256": "70937bfc86f1eb4bae1ad94001a13bdec74488cff52f80743e7ba3ceb56f21b3"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/app.css.txt",
              "sha256": "6688ba87972ed427fcc28489729f0c86d51cce1ef30157be12c7e61f5680e488"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/desktop.png",
              "width": 1440,
              "height": 1090,
              "sha256": "a0e51bbfd861889fbd45f74476d2dc0566f02bed721efb4ddb136e4be0747b28"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/dialog.png",
              "width": 1440,
              "height": 1090,
              "sha256": "f59686eaec825851a791626ee5df52a9ba337ca1f7513386bea3cdef76ad2dde"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/phone.png",
              "width": 390,
              "height": 2958,
              "sha256": "085c466c55d375ee92c314adccd85d60528b7a006a5571adf967190349f45bfa"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/phone-dialog.png",
              "width": 390,
              "height": 2958,
              "sha256": "9115d2cc477f8f537b5fcdc0b96ea37976662f4419aec3677bc6a8c79da8d6cf"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/dark.png",
              "width": 1440,
              "height": 1090,
              "sha256": "b58893f3518d567be24a71b1fe17b41b531a4f6b7befc92a06b318fe9f75602d"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/plan-claude/phone-dark.png",
              "width": 390,
              "height": 2958,
              "sha256": "0d5389936cfed7361fd9936327ed652c9eabecf33d59257d199f7f613d65f05a"
            }
          ]
        },
        {
          "id": "plan-grok",
          "family": "Grok",
          "model": "Grok",
          "modelVersion": "Grok 4.6",
          "modelLabelSource": "operator confirmation in reply",
          "reasoningSetting": null,
          "score": 52,
          "scores": {
            "hierarchy": 3,
            "craft": 3,
            "interaction": 2,
            "responsive": 2,
            "system": 3
          },
          "notes": "nothing",
          "firstChange": "weakest on mobile",
          "timing": {
            "seconds": 73,
            "source": "operator-reported",
            "scope": "completion time; precise start and end points unconfirmed",
            "alternateSeconds": null,
            "alternateScope": null
          },
          "inputTokens": null,
          "outputTokens": null,
          "cost": null,
          "visibleTokenEstimate": {
            "prompt": {
              "low": 2323,
              "high": 2327,
              "encodings": {
                "cl100k_base": 2323,
                "o200k_base": 2327
              }
            },
            "code": {
              "low": 4784,
              "high": 4881,
              "encodings": {
                "cl100k_base": 4784,
                "o200k_base": 4881
              }
            }
          },
          "build": {
            "bundles": true,
            "strictTypes": false,
            "typeErrors": "App.tsx(129,9): error TS2322: Type 'unknown' is not assignable to type 'Status'.\nApp.tsx(132,9): error TS2322: Type 'unknown' is not assignable to type 'string'.\n"
          },
          "checkerRevision": 2,
          "checkerSha256": "4f290aa1eaa8c42f3fd01dc10dc0174a10a9b34aa5d5a8e4444a002477d7c4ef",
          "checks": [
            {
              "id": "initial",
              "label": "Seed count, no open dialog, summary",
              "status": "pass"
            },
            {
              "id": "accessible-names",
              "label": "Exact filter, search and item button names",
              "status": "fail",
              "evidence": "Expected values to be strictly equal:\n\n0 !== 6\n"
            },
            {
              "id": "search",
              "label": "Case-insensitive title, project and owner search",
              "status": "pass"
            },
            {
              "id": "combined-filters",
              "label": "Search combines with state filters; empty state clears both",
              "status": "pass"
            },
            {
              "id": "dialog-name",
              "label": "Dialog has an accessible name identifying the item",
              "status": "pass"
            },
            {
              "id": "keyboard-dialog",
              "label": "Enter opens modal; Escape returns focus",
              "status": "pass"
            },
            {
              "id": "approve-persist",
              "label": "Approval stays open and survives reload",
              "status": "pass"
            },
            {
              "id": "required-feedback",
              "label": "Empty feedback rejected without changing status",
              "status": "pass"
            },
            {
              "id": "feedback-persist",
              "label": "Changes and feedback survive reload",
              "status": "pass"
            },
            {
              "id": "detail-image",
              "label": "Detail image is loaded and wider than thumbnail at 1440px",
              "status": "pass"
            },
            {
              "id": "prescribed-layout",
              "label": "Plan: title type, 3/2/1 image columns and 24px gaps",
              "status": "pass"
            },
            {
              "id": "malformed-storage",
              "label": "Invalid JSON and value shapes do not crash",
              "status": "pass"
            },
            {
              "id": "mobile-layout",
              "label": "390px page and dialog fit; actions remain reachable",
              "status": "pass"
            },
            {
              "id": "system-theme",
              "label": "System light/dark preference changes Vlak page tokens",
              "status": "pass"
            }
          ],
          "files": [
            {
              "name": "App.tsx",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/App.tsx.txt",
              "sha256": "55fcef05a606a1fb3a54dba6bcaf4866b6e824df47bb0b7f65f0872f073b0b4e"
            },
            {
              "name": "app.css",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/app.css.txt",
              "sha256": "373636d3bd3ceb7fd348a29fc88731db2b8eae1d878493d3ad940d54f17585b1"
            }
          ],
          "screenshots": [
            {
              "view": "desktop",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/desktop.png",
              "width": 1440,
              "height": 1066,
              "sha256": "0716808907056efa7e73db079bbe47bdc41592edf6404b2c77ae3c2322b62660"
            },
            {
              "view": "dialog",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/dialog.png",
              "width": 1440,
              "height": 1066,
              "sha256": "05df3febc00c2a984e584fbb98e66d7a60204c75bcb19109a57ed149432cd7e5"
            },
            {
              "view": "phone",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/phone.png",
              "width": 390,
              "height": 2854,
              "sha256": "11163d9c9efbba4b3295fb8bfaa275986f4e6c36e212ccb46f1ca325dbb64664"
            },
            {
              "view": "phone-dialog",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/phone-dialog.png",
              "width": 390,
              "height": 2854,
              "sha256": "d442adb3a3edf016bce34883d409ba7e4974bf9dcc2479435b1da0e053d731f7"
            },
            {
              "view": "dark",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/dark.png",
              "width": 1440,
              "height": 1066,
              "sha256": "b2994096ffb2c4302e5771d65467d8ac7420cd2edb91fca1705d583f963d4d08"
            },
            {
              "view": "phone-dark",
              "url": "/polder/benchmarks/design-models-study/runs/plan-grok/phone-dark.png",
              "width": 390,
              "height": 2854,
              "sha256": "2d638d78372c897517d918f162040baaa6c78a4d1785ed7089c85db3c5dc3d00"
            }
          ]
        }
      ]
    }
  ]
}
