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.
- Business: Second Loaf, a bakery on Harbour Street, Sana Mirza (owner), 6 staff.
- The talk: 10 minutes at the Harbourside Business Breakfast on 7 November 2026, about how they cut bread waste. Audience: about 60 local business owners. She'll present from her laptop and the organisers want a PDF afterwards.
- Brand: her logo in
assets/; colours mustard#e0a526and forest green#2d4a3e; no brand fonts ("something friendly and easy to read"). - Material:
talk-notes.md(her notes),waste-by-month.csvandtop-waste-items.csv(her own figures).
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 talk: 10 minutes, about 60 local business owners, presenting live from her laptop; the organisers want a PDF afterwards.
- The story: "It's all in my notes. Roughly: who I am, the problem, the three things we did, the results, what surprised us, our mistake, what you can do tomorrow, thanks." She approves a sensible 10-12 slide outline that follows that order.
- Brand: the logo and the two colours; "keep the fonts if they're friendly".
- Pictures and numbers: the two CSV files; no photos for now.
- Format: 16:9, speaker notes on every slide please ("I always forget what to say"), PDF and presenting from the laptop.
The requests
- 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.
- 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.
- 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.
- 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?
- 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.
- Template: slide-deck-kit 1.0.0, fresh from the packed zip, with the user's logo,
talk-notes.mdand two CSV files fromassets/. - Agent: a Claude Sonnet 5.5 subagent with no CodePlate context, on Windows (Node 26, Edge/Chrome installed). User turns were relayed one at a time from
concept.mdandrequests.md. - Result: interview + 5/5 requests passed. I re-ran
npm run checkindependently at the end:CODEPLATE CHECKS: PASS(17.8 s of the 90 s budget).
| # | Request | Turns | Result | Notes |
|---|---|---|---|---|
| 0 | Interview | 2 | pass | Proposed 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). |
| 1 | Make it Second Loaf | 1 | pass | Logo 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. |
| 2 | The talk from the notes | 0 | pass | Already done in the interview turn: agreed outline, short slides, speaker notes on every slide, monthly chart. |
| 3 | Before/after + quote slide | 1 | pass | Moved its table, made a quote slide, re-flowed the speaker notes. Asked which "three things" slide was meant. |
| 4 | 4:3 + PDF with notes | 2 | pass | Switched 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). |
| 5 | 5-slide web version | 1 | pass | A second deck in decks.json, 16:9, no notes, a kilos chart labelled as kilos. |
Where the template fell short (fixed before merge)
- 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.
- 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-editableor equivalent), or say clearly in the brief and README that the PPTX is image-only and how to change wording instead. - 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.
- 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.
- Logos that disappear on the title background. Add a logo-badge / logo-on-dark option to the title layout.
- 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. - 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 checkends withCODEPLATE CHECKS: PASS(tools, assets, decks, unit, inspect, export, preview, credit, budget), run in full after the change.- No check is weakened:
maxWordsis not raised to fit text, no inlinestyle=to shrink text, no<!-- fit -->to squeeze, no check removed. - The agent ran
npm run previewand openedcontact.pngand the slides it changed, and said what it saw. docs/project.mdis updated (the stub marker is gone after the interview).README.mdstill 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.
- Brand
assets/second-loaf-logo.svg(or a renamed copy) inassets/andassets.jsonwithwidth: 200, height: 120;CREDITS.mdupdated; the Loamly logo, pictures, decks and theirdecks.jsonentries removed (and their pictures fromassets.json), preferably withnpm run remove-sample -- --yes.theme/brand.cssvariables use her green as--brandand her mustard where it passes contrast; the agent noticed (fromnpm 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-backingbadge or a light logo;inspectfails otherwise).
- 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. maxWordsat 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) withunit: 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.
- An outline agreed with her (shown before writing slides) in
- 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
quoteslide with Tomasz's words and attribution before the results; the outline indecks.jsonupdated in the same order.
- A two-column (or table) slide inserted after the three-changes slide: January 410 / 35 / 0 vs September 61 / 170 / 251, with labels; a
- 4:3 and PDF with notes
size: 4:3in the talk's front matter and"size": "4:3"in itsdecks.jsonentry (the radio deck later stays 16:9); every slide passesinspectat 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 handoutornpm run build: each slide with its notes, one page per slide, A4 unless she asks for Letter), not just--pdf-notesannotations; the agent told her which file to send to the organisers.
- Radio version
- A second deck file (e.g.
decks/radio.md) indecks.jsonwith its own 5-title outline andrequireNotes: false; the 10-minute talk and its outline are unchanged. - A horizontal bar chart (
type: hbar,unit: kg) of kilos binned per product fromtop-waste-items.csv(Sourdough loaves 612 … Focaccia 98), all six or a stated top five. - Same theme and brand;
contact.pngfor both decks shows them consistent.
- A second deck file (e.g.