{
 "model": "claude-haiku-5-5",
 "category": "stress-agents-vision-cli",
 "scenarios": [
  {
   "id": "h1-same-project-4x",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "All four drivers exited 0 with 4 distinct valid sessions, all tool_use blocks paired, 5/5 snapshot sha256 values correct, no lost writes, and final outputs matching disk. test/extra.test.js gives 6 pass, 2 fail; the full suite gives 6 pass, 7 fail.",
   "notes": "All 7 failures come from bugs already in the edit-existing seed (its 5 tests fail) or from new tests that expose its lowStock off-by-one, as the model reported. d4's Bash settled as failed because npm test really exited non-zero. Learned patterns match the commands: 'npm test' runs 2, successes 0 (d4 non-zero; d3 piped to head); 'node --test test/extra.test.js' runs 1, successes 0 (piped to grep); d2's calls with 'ls' or 'cat' before the check were correctly not recorded. usageTotals sum to 20 requests, matching result.json. Leftovers are empty and .err files are 0 bytes."
  },
  {
   "id": "h2-burst-12",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "All 12 of 12 completed in 11 s with exit 0. Each of p1..p12 has a 3-line notes.txt, and 12 valid sessions sit under 12 separate project hashes in the one HOME.",
   "notes": "No 429, 529, overload or retry text in any log, so rate-limit handling was not exercised. A search of each session for other project paths found no cross-talk. All sessions report cacheReadTokens > 0, and the recompute matches at 29 requests."
  },
  {
   "id": "h3-same-home-8-medium",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "All 8 of 8 completed with exit 0. I reran node --test in each project and all pass: 14, 10, 7, 22, 22, 17, 18 and 28 tests, with 0 failures.",
   "notes": "No cross-talk: each session's cwd and first message match its own module, and none mentions another project's path. Snapshot hashes are all correct and final outputs match disk. m1's first node --test failed on the model's own code and was fixed. All 8 learned/patterns.json files match their commands: m1 runs 2/successes 1; m4 runs 2/successes 0 (both piped to tail); m5 runs 2/successes 1; the others 1/1. `node --version` was not recorded as a check."
  },
  {
   "id": "h4-resume-race",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "r1 won the lock, edited remove() and exited 0. r2 was refused in 91 ms with exit 1 and made no edit. The saved session is consistent, with 2 turns and all tool_use blocks paired.",
   "notes": "r2's message: 'Fatal: Session 6f5e4cc8-… is open in another G-Code process (pid 31615). Close it there first, or start a new chat.' It is clear and matches the by-design behaviour. r2's message was never applied (add() has no comment and its text is not in the session), and it was refused rather than lost silently. Nothing from turn 1 or r1 was lost. usageTotals show 4 requests (2 original + 2 r1), matching result.json."
  },
  {
   "id": "h5-rapid-messages",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "All 5 messages were sent in the same millisecond and ran in order, with 5 turn-complete frames. Files are a.txt='1!', b.txt='2', c.txt='3'.",
   "notes": "Saved messages show all 5 user messages in send order with replies paired and none lost; turn_count is 5. session-controls was sent first. The cache-read ratio is 0.98."
  },
  {
   "id": "e1-subagents-audit",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "Three parallel Agent calls ran and returned 20, 30 and 23 tool calls in 5, 7 and 9 replies. The parent wrote a prioritized REVIEW.md of 110 lines.",
   "notes": "Parent usage includes the children: 28 requests = 7 parent + 21 sub-agent, with unreportedRequests 0. Each Agent result ends with a correct '[Sub-agent run]' summary. The round-11 limits were not reached. No project files changed except REVIEW.md, and outputs match disk."
  },
  {
   "id": "e2-subagents-write",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "Two sub-agents wrote strings.js and dates.js with tests, and the parent wrote index.js. I reran node --test: 69/69 pass. index exports isoWeek, relativeTime, slugify, titleCase and truncate.",
   "notes": "Bypass was inherited with 0 approvals. writes.jsonl shows 6 writes with a separate writer id per agent and no conflicting writes. Each of the 6 outputs has one version whose sha256 matches disk. Agent results list the right 'Files changed'. Usage: 14 requests = 6 parent + 8 sub-agent. The final npm test call had `ls -la &&` before the check and was correctly not recorded in learned patterns."
  },
  {
   "id": "e3-workflow",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "Workflow was off and the project's enable was ignored. The system frame, ToolSearch entry and final reply all explain that only ~/.gcode/settings.json can turn it on. No tests exist, and the model reported that accurately.",
   "notes": "The request's 31 tools exclude Workflow; Skill is present with the 6-skill catalog. The model did not do the work by hand and offered that as an option, which is its own choice. FileRead of the absent package.json correctly settled as failed. Learned pattern 'npm test' is runs 1, broken 1, which is right for the package.json read failure. No Bash call touched ~/.gcode, and no [hidden: API key] masking occurred or was needed."
  },
  {
   "id": "f1-screenshots",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "The model read the 4 screenshots plus 17 crops as image blocks and wrote NOTES.md. I opened home-desktop.png and products-desktop.png: the checked notes match (gold headline on pale sky, El Mirador's two-line row offset, eight lots leaving an empty slot, repeated bean art, bag art in the Products hero).",
   "notes": "The 21st image exceeded the limit of 20 per request. G-Code warned in that FileRead result, replaced the oldest image with a '[Image removed from the conversation…]' note and sent a system frame; no API error followed. That is the designed fitImages path. Downscale notes gave correct scale factors. The other two PNGs were not opened by me. The model made and deleted crops in the project's .gcode/tmp-crops, with its Bash calls allowed there as designed; it also created /tmp/crops, its own choice."
  },
  {
   "id": "f2-big-image",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "The 48 MB, 4000×4000 PNG was refused with 'Image is 45.8 MiB, over the 5 MiB inline limit. Resize or compress the image.' The model got the dimensions with sips, downscaled to 1000×1000 and viewed the preview, with no API 400 and no crash.",
   "notes": "Its description of near-uniform grey noise fits the os.urandom seed. The model left its preview at .gcode/tmp/huge-preview.jpg and said so."
  },
  {
   "id": "f3-image-to-html",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "index.html and styles.css recreate the hero. Six BrowserVerify runs passed, including the final one (6/6 checks): the title, headline, CTA and overflow checks passed, with the observed headline 'Grown in the mist, shipped green.'",
   "notes": "The first BrowserPlan had invalid input and settled as refused with a clear per-issue message; it had no tool-use frame by design, which explains 52 uses against 53 results. The text check passed on its first run across block spans, with no rewrite needed. A subfolder entry was exercised (.gcode/verification/fonttest/index.html, with matching server.path); a bad server.path rejection and a 404 URL were not. The Google Fonts request appears only under blockedRequests with errors [], and the model used a temporary local-font copy to measure. Its deleted fonttest-plan.json was recorded as deleted in outputs. The one failed Bash was the model's own script (IndexError). A key-shape scan matched an AIza pattern once, in the saved session file, inside a 1.8 MB base64 image token; this is a false positive and no value was printed. The model used /tmp for scripts and ran curl for fonts, its own choices. Server stopped, no leftovers."
  },
  {
   "id": "i1-headless-p",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "Exit 0. fizzbuzz.js was created and I reran it: output is correct for 1, 3, 5, 15 and 30. Session saved with 3 requests, mode 600, cacheRead > 0.",
   "notes": "stdout holds only the result frame and stderr only the provider line; the key-shape scan found nothing. headless.json records no permission denials field or denied call."
  },
  {
   "id": "i2-headless-bg-left",
   "status": "pass",
   "product_defects": [],
   "task_outcome": "Exit 0. The background server was started on 8950 and verified by curl (200, body 'ok'). After exit the port was free, and my own lsof and pgrep checks found no listener or server.mjs process.",
   "notes": "result.json afterExit.port is 'free' and leftovers are empty. The reply correctly told the user the server stops when the run ends. The model's TaskOutput call completed normally."
  }
 ]
}