CodePlate home

Agent evals · Slide Deck Kit

Slide Deck Kit: the eval log

We gave Slide Deck Kit to a coding agent in a new session with no CodePlate context, along with a made-up user's brief ("Second Loaf"), then sent the requests below one at a time.

5 of 5 requests passed

Run
2026-10-14
Agent
Claude Sonnet 5.5
The user
The script, relayed turn by turn
Version tested
v1.0.0
On sale now
v1.1.3

This run tested v1.0.0. The version on sale is v1.1.3, which includes the fixes listed at the end of the record and has not had its own eval run.

The made-up user

Written the way a buyer would put it. {ASSETS}, {ART} and {GODOT} stand for the folder with their files and the engine's path; their asset pack isn't published.

The user runs a bakery and builds with an agent. She has given talks before with slides made in a hurry in a slide app the night before. She doesn't read code. Node and a browser (Edge or Chrome) are installed on the eval machine.

First message

Hi! I'm giving a 10-minute talk at a business breakfast next month about how my bakery stopped throwing away bread. My notes, my logo and our numbers are in {ASSETS}. Can you make me some slides?

Interview answers

The requests

  1. Make it look like Second Loaf: my logo on the first slide, my mustard and green everywhere, and take the Loamly and water-cycle examples out.
  2. Make my 10-minute talk from my notes: the outline we agreed, not too many words on each slide (put the rest in speaker notes so I don't forget), and a chart of how many loaves we binned each month.
  3. After "The three things we did", add a before-and-after slide (January vs September: binned, donated, sold next-day), and turn Tomasz's review into a quote slide just before the results.
  4. The organisers just told me their projector is the old square kind, and they want the PDF with my speaker notes in it. Can you do both?
  5. The local radio station wants a 5-slide version for their website: same look, just the problem, the three changes, the results and a chart of which breads we wasted most. No speaker notes needed for that one. Keep the 10-minute talk as it is.

The run record

As we wrote it on 2026-10-14, with local paths and internal references taken out. "I" is the person running the eval.

#RequestTurnsResultNotes
0Interview2passProposed a 10-slide outline before writing anything, and asked about delivery, fonts, photos, permission to quote a customer review, the "about £1,100" estimate, and that the waste-items file is in kilos, not loaves. Then built the deck in the same turn, growing it to 13 slides on its own (it said which ones to cut).
1Make it Second Loaf1passLogo on a cream badge (its dark marks vanish on green); a darker mustard (#8a5f00) for text because #e0a526 fails contrast on cream. Removed the sample decks, pictures, logo and docs/media screenshots by hand.
2The talk from the notes0passAlready done in the interview turn: agreed outline, short slides, speaker notes on every slide, monthly chart.
3Before/after + quote slide1passMoved its table, made a quote slide, re-flowed the speaker notes. Asked which "three things" slide was meant.
44:3 + PDF with notes2passSwitched to 4:3 and enlarged chart labels that fell under 18 px. "PDF with notes" only produced sticky-note annotations; a readable handout needed a second turn, where it wrote src/handout.mjs (slide above its notes, A4).
55-slide web version1passA second deck in decks.json, 16:9, no notes, a kilos chart labelled as kilos.

Where the template fell short (fixed before merge)

  1. No handout export. "PDF with my speaker notes" is a common ask; ship a handout (slide + notes per page, A4/Letter) as a built-in export with a check.
  2. PowerPoint export is pictures. The PPTX has one image per slide, so nobody can edit text in PowerPoint. Ship an editable-text option if Marp supports it (--pptx-editable or equivalent), or say clearly in the brief and README that the PPTX is image-only and how to change wording instead.
  3. No "remove the sample" step. The agent deleted the sample decks, pictures, logo, screenshots and list entries by hand. Ship a command or recipe that lists every sample-only file.
  4. Brand colours that fail contrast. The agent had to derive a darker text shade itself. Give the theme a separate "accent for text" variable (or derive one) and a recipe line on what to do when a brand colour fails AA.
  5. Logos that disappear on the title background. Add a logo-badge / logo-on-dark option to the title layout.
  6. Per-deck size. One deck had to be 4:3 while another stayed 16:9; make sure the size is per deck in decks.json (not theme-wide) and documented.
  7. Units on charts. The chart block should take a unit/caption (e.g. "kg") so values and axis say what they measure.
What each request was scored against

Every request:

  • npm run check ends with CODEPLATE CHECKS: PASS (tools, assets, decks, unit, inspect, export, preview, credit, budget), run in full after the change.
  • No check is weakened: maxWords is not raised to fit text, no inline style= to shrink text, no <!-- fit --> to squeeze, no check removed.
  • The agent ran npm run preview and opened contact.png and the slides it changed, and said what it saw.
  • docs/project.md is updated (the stub marker is gone after the interview).
  • README.md still carries "Built with CodePlate (codeplate.io)"; any new package is pinned exactly with a permissive licence.
  • Every chart number comes from her CSV files or notes; nothing is invented.
  1. Brand
    • assets/second-loaf-logo.svg (or a renamed copy) in assets/ and assets.json with width: 200, height: 120; CREDITS.md updated; the Loamly logo, pictures, decks and their decks.json entries removed (and their pictures from assets.json), preferably with npm run remove-sample -- --yes.
    • theme/brand.css variables use her green as --brand and her mustard where it passes contrast; the agent noticed (from npm run contrast, the check or by itself) that mustard on the paper background is too pale for big numbers (2.07:1) and set a darker mustard as --accent-text (keeping the bright one for rules if it passes there) or used the green, and told her why.
    • Title, section and end slides are green; the footer and page numbers are readable on them; the logo's green marks don't vanish on the green title slide (--logo-backing badge or a light logo; inspect fails otherwise).
  2. The talk
    • An outline agreed with her (shown before writing slides) in decks.json, 10-12 titles that tell the story in her order; the deck matches it.
    • maxWords at 40 or below; every slide has speaker notes (requireNotes: true) carrying the detail from her notes (the 12%, the weather spreadsheet, the £1,100, the 70% mistake).
    • A bar or line chart of loaves binned per month from waste-by-month.csv (Jan 410 … Sep 61) with unit: loaves, September highlighted or otherwise emphasised, with a source/caption line.
    • Uses at least three different layouts (e.g. title, stat, columns, quote, section, end), no wall-of-bullets run; the contact sheet looks varied.
  3. Before/after and quote
    • A two-column (or table) slide inserted after the three-changes slide: January 410 / 35 / 0 vs September 61 / 170 / 251, with labels; a quote slide with Tomasz's words and attribution before the results; the outline in decks.json updated in the same order.
  4. 4:3 and PDF with notes
    • size: 4:3 in the talk's front matter and "size": "4:3" in its decks.json entry (the radio deck later stays 16:9); every slide passes inspect at 960×720 (the agent fixed anything that overflowed rather than shrinking text) and the PNGs are 960×720. Since 1.1.0 the theme enlarges chart text on 4:3 slides, so charts pass without changes; the minimum is never lowered.
    • The handout out/talk-handout.pdf (npm run handout or npm run build: each slide with its notes, one page per slide, A4 unless she asks for Letter), not just --pdf-notes annotations; the agent told her which file to send to the organisers.
  5. Radio version
    • A second deck file (e.g. decks/radio.md) in decks.json with its own 5-title outline and requireNotes: false; the 10-minute talk and its outline are unchanged.
    • A horizontal bar chart (type: hbar, unit: kg) of kilos binned per product from top-waste-items.csv (Sourdough loaves 612 … Focaccia 98), all six or a stated top five.
    • Same theme and brand; contact.png for both decks shows them consistent.

← Slide Deck Kit · Every eval log