Builds / EXP-009

EXP-009● Building

The best page, the worse journey: when an AI tool's quality isn't worth the effort

Mullo turns my notes from talks and courses into a sketch note, a one-page illustrated summary of what I took away. Its first real test, against NotebookLM, gave me the page I'd want to keep and by far the harder journey to get it, and showed that a careful prompt gets a general-purpose tool most of the way to my own takeaways; I'm now redesigning Mullo around what's left that only it does.

Mullo · Oct 2026

The question

Can AI turn my notes from a talk into a page I'd put my name to, and is it worth the effort when a general-purpose tool can get most of the way?

Started
Oct 2026
Status
Building
Tools
Claude Code · Perplexity · Anthropic API · Gemini API · the stack

Update, 3 November 2026. The first real test changed my mind about what Mullo is for. I made a sketch note from my takeaways from a talk, and compared it with two from NotebookLM: one made from the transcript alone, and one from a careful prompt containing my five takeaways. Mullo's page was the one I'd want to keep, in my judgement, but given my takeaways, NotebookLM reproduced five of the nine pieces of text I'd asked for exactly, alongside many additions of its own, so choosing your own takeaways isn't what makes Mullo different. Getting to Mullo's page also took far more effort, through a long form, two approvals and strict checks that forced rerun after rerun. I'm now redesigning the journey around a short quiz, where Mullo drafts everything and I react, choose and add, with one check on meaning in place of the exact-word and arrow checks. Until the redesign lands, the sections below describe the version I tested.

What Mullo does

I go to a few talks and courses a year and take plenty of notes, then rarely look at them again. In the version I tested, Mullo started from the part that matters to me: I wrote down what stuck, in my own words, before any model saw the notes, and only then did it plan and draw a page. In the redesign, that's an optional "Before we peek" card, for transcripts as well as notes. A language model turns my notes and chosen takeaways into a plan for the page and its small scenes, an image model draws the whole page, words included, and a checker reads the result against that plan. I approved the page's words before it was drawn; in the redesign, that approval moves to before sharing. Every page carries the line "Mulled from my notes on…", crediting the speaker.

Asking before building

I had Perplexity research AI visual note-taking over four rounds, deliberately without telling it who Mullo was for, so its findings were free to contradict me. Each round went to a builder team of four Claude personas, a product manager, a CTO, a UX lead and an evals lead, whose job was to argue over what it meant and change the plan only where they agreed. The evidence was thin, mostly posts on Reddit, LinkedIn and Substack, and we treated it that way, checking what we could and catching Perplexity misattributing a journal.

It still changed more than any design session did:

  • Sharing depends on where the notes came from. Public talks can be shared. Paid courses and conferences with delegate terms default to a private study copy, and Chatham House sessions get anonymised themes only.
  • The page leads with my words. Speaker tagging is opt-in, and only once the page has passed its check.
  • It's a portfolio build, not a venture. People attend a few events a year, rarely pay for tools like this, and the big platforms could add it in a release, so I'm building Mullo to learn from rather than to sell.

The fourth round led my builder team to drop the hand-drawn look, because that look had become shorthand for AI slop. When I saw the result, I overruled it: without the drawings the page was just a diagram, and what separates a Mullo page from slop isn't its look but its words, which are mine and are checked against a plan made from my notes.

Two ways to draw a page

The first trial compared two routes on the same notes. In route A, the model drew only the pictures and code set every word, so the words were exact by construction; on every run from real notes, though, text overflowed its box. In route B, the model drew the whole page, words included, and the checker read every word and arrow, with up to three attempts to repair it. Route B looked like a page someone had made, and I chose it; in my notes from the session, "I really only like Route B".

A sketch note drawn by Mullo, headed "Era of Product Creators, Christian Idiodi · MtPCon London 2026". A head with a magnifying glass over the brain sits above the words "Product sense" and "AI cannot replace: judgment, taste, ethics, strategy, leadership". Around it, one person consumes AI from an armchair while another builds with it at a workbench, a conductor leads an orchestra under "Active or reactive?", and a wheelchair user works on a large gear under "Tech is the business". The footer reads "Mulled from my notes on Era of Product Creators, Christian Idiodi".
A route B page from my notes on Christian Idiodi's talk Era of Product Creators, MtPCon London 2026, drawn in the v0.10 run of the casting described below.

Two findings surprised me. The larger image model, Nano Banana Pro, wasn't clearly better, and cost about twice as much; on the same notes and prompts, its first attempts drew 7, 8, 7 and 1 arrow errors across four runs, against 0 to 5 for Nano Banana 2.1. The prompt mattered more than the model: four rounds of prompt changes took the drawing from rejected to a page I accepted. The source mattered too, with short course points coming out clean far more often than dense talk notes.

Checking every word and arrow

This describes the checks I tested up to 3 November. They didn't work well enough, and the redesign replaces them with a different set.

The errors were rarely ugly; they were plausible. Duplicated words ("solving solving"), invented filler ("AI worf product disrilers it?") and punctuation silently changed were all common, but the most common fault was an arrow linking two ideas my notes never linked. On a sketch note, an arrow says one idea leads to another, so at first I treated an invented arrow as a claim put in my mouth. I've since changed my mind: an arrow within one idea is a pointer rather than a claim, and checking arrows and exact wording this strictly drove reruns while missing the slips in meaning that mattered: two shortened captions changed what I'd written, and both passed.

The verifier, Gemini 3.8 Flash, checks each word against the plan and each arrow's ends, direction and label. While building it, I used 21 errors planted on purpose, written by Claude and by Gemini, so a Claude-built checker wasn't graded only on errors Claude had imagined; a case counted only if all three reads caught it. It caught all 21, but those were the cases it was tuned on, so they're a development result rather than proof it can be trusted. The best of three later, larger runs missed 3 of 35 planted errors, against a limit of 2, with 11% false alarms. The test it wasn't tuned on is a hold-out set, made from my notes on Making Friends with Machine Learning, kept aside and scored only at milestones; it was never scored before I changed approach. It can block a sketch note but never approve one; nothing is shared until I've looked at it and chosen to. A separate test fed the planning step six sets of notes with instructions hidden inside, and it obeyed none of them.

What the checks couldn't see

A checker built for words and arrows passes a person with three arms. A body check added later, for under a penny a page, caught the arms but still missed a head drawn on backwards.

The bigger blind spot was the people. When I asked for more diverse people on the pages, the AI writing the scene descriptions met the request by attaching an identity to each scene, and gave out the roles along stereotyped lines; the image model drew exactly what it was told, so every check passed. I've written that up separately, in Diverse by prompt, biased by role.

Casting decided by code

The fix changes who decides:

  • The step that plans the scenes never says who anyone is. It describes each task and how it's done with dignity: upright, with the right tools, competence visible.
  • Code fills the roles from a recurring cast of 14 people, choosing the least-used first, and never puts anyone with a mobility aid on uneven ground.
  • The check reads people by a marker, never by identity, such as a teal scarf or a yellow beanie, and blocks a page where the wrong person holds a role or a step-free scene has steps. A separate read of the whole picture can only raise concerns, never pass a page.

The six v0.10 runs with the new casting showed that the checks now see what earlier versions couldn't: an engineer drawn small at the edge of the work, other people doing the marked characters' tasks, one character drawn three times, and a plank that didn't reach the far bank, which a later prompt fixed. One of those pages was clean on words and arrows. The casting is far from solved, but the failures are now visible, which is where fixing them starts.

Against NotebookLM

The first real test, on 3 November, set Mullo against a general-purpose tool on the same talk. I made two Mullo pages, one before fixes and one after, and two sketch-note infographics in NotebookLM: one from the transcript alone, and one from a careful prompt containing my five takeaways, a title, one requested arrow and an instruction not to draw real people. Claude Code, which builds Mullo, then scored the pages.

Detail of a Mullo page, drawn in thick coloured marker: a person in a green jumper puts a pink blanket round someone sitting on the ground.
A detail from the Mullo page before fixes, cropped to show the drawing style only.

Detail of a NotebookLM page, drawn in thin pen and watercolour: a head full of gears beside a cloud and a magnifying glass, above a few lines of garbled code.
A detail from the NotebookLM page made from the transcript alone, cropped to show its style; the lines under the cloud aren't real code.

The scores, all measured:

  • Mullo, before fixes: 25 of 27 short phrases exact, with 3 added.
  • Mullo, after fixes: 26 of 27 as scored; the one miss was the scorer's own misreading.
  • NotebookLM, from my prompt: 5 of 9 exact, with 24 added, and it drew the one requested arrow correctly. Both Mullo pages missed that arrow; on the fixed page its label sat inside a drawing, attached to nothing.

Detail of the fixed Mullo page: three small networks on a winners' podium, with the word "supports" written across the podium and connected to nothing.
The requested arrow on the fixed Mullo page: its label, drawn on a podium with no arrow. The scorer counted it as present.

Neither side was clean. NotebookLM wrote "fall" where my takeaway said "fail", which changes the meaning, and nothing flagged it. Mullo's own checks passed two errors of meaning: a word that changed what I'd written, and a dropped hedge. The first came in at the planning step, not the drawing, so the lesson is to check proposed wording against my takeaway when it's proposed. Both are now planted test cases. The scorer was flawed too: it misread one phrase, it wasn't like for like, scoring Mullo on 27 short phrases and NotebookLM on 9 pieces of text, some of them whole paragraphs, and it checks that words are present, not what they mean, so neither meaning error showed up in its counts.

Detail of a NotebookLM page: a network diagram in which the same label, "WG", is written on connection after connection.
A detail from the NotebookLM page made from my prompt: the same label, repeated across the diagram. Generated by NotebookLM.

The main finding is the uncomfortable one. With my takeaways in the prompt, NotebookLM reproduced five of the nine pieces of text I'd asked for exactly, alongside many additions of its own, and since the scores don't compare directly, text accuracy alone doesn't separate the two. Mullo's case rests elsewhere: there's no prompt to write; once the redesign's check on meaning is built, slips like the two above should be caught before I see a page; it can repair one part of a page instead of redrawing it, which worked on the first Mullo page here; and it gives a library of pages a consistent look. Only the repair was tested in this comparison.

The effort was the other half. Before anything was drawn, Mullo's journey had me review every name in the transcript one by one, decide on four "not found" cards with a typed reason each, fill in a plan form with words, a drawing idea and a setting for every idea and a part for every person, and approve the page twice, with a wait in between; NotebookLM needed one prompt. That Mullo's page was the best of the four is my judgement, from one talk.

Own goals

The builder broke its own rules twice, and I'd rather record that than tidy it away. Claude Code hard-coded a £0.20 approval that went around the gate it had just built for paid runs. A broad git add -A swept my edits to the product spec into one of its commits.

Style

At first I couldn't see any difference between pages drawn with my own doodles as style references and pages drawn without them. A few prompt rounds later, the influence is clear in the illustrations.

What's next

Five milestones are done: the trial that settled the route, the app's notes and recall, the plan, which checks my takeaways against my notes, suggests ideas I missed and picks the cast, the drawing, which is now in the app, with a preview, an overlay and fixing one part of a page at a time, and the faithfulness gate. My first two pages from a real transcript were both blocked after three tries, at £0.64 and £0.68; in my notes, "the second try was a strong sketchnote". The gate has 44 test cases I approved and has had three evaluation runs: the best missed 3 of 35 planted errors, against a limit of 2, with 11% false alarms, so it isn't good enough yet. Reflection arrows are no longer blocked, since the checker now reads whether a line is dotted or solid and arrows no longer block a page at all.

Next is the redesign described at the top: a short quiz, a page Mullo drafts for me to react to, one check on meaning, and casting the user never has to think about. After that come export and sharing, and a hosted version behind a password, with a public replay. Still to come is a test with speakers: shown a Mullo page and a NotebookLM infographic of their own talk, without being told which is which, which would they reshare?

Who did what

I framed

  • The problem
  • The "write your takeaways first" rule
  • The sharing rules
  • The people rules

I set up the team

1 reviewer · 2 builder sessions · 1 planning session · 2 models in the product · 2 other · Just me · 5 constraints

See the team ↓

I decided

  • Route B
  • Keeping the illustrated look against the research
  • The talk to test on
  • The budgets

Claude Code built

  • Claude Code, from my build pack

The team

How the team workedMe at the top, then lanes for Plans, Builds, Reviews, In the product, Other. Arrows show briefs from me to Plans; specs from Plans to Builds; changes from Builds to Reviews; findings from Reviews to Builds; calls from Builds to In the product; questions only I can answer from Reviews to me. Inside 5 constraints.How the team workedMe at the top, then lanes for Plans, Builds, Reviews, In the product, Other. Arrows show briefs from me to Plans; specs from Plans to Builds; changes from Builds to Reviews; findings from Reviews to Builds; calls from Builds to In the product; questions only I can answer from Reviews to me. Inside 5 constraints.

Agents and models

NameRoleModelWhat it was for
Builder team (four Claude personas)PlansArgued over each research round and decided the research changes to the plan, made only where all four agreed; the calls that came down to values were mine
Claude CodeBuildsClaude Opus 5.5The main build and the trial harness
Claude CodeBuildsClaude Sonnet 5.5A separate session for the app's notes and recall
Gemini 3.8 FlashReviewsGemini 3.8 FlashThe page verifier, and one of three authors of planted errors
Claude Sonnet 5.5In the productClaude Sonnet 5.5Plans each page and its scenes
Nano Banana 2.1In the productNano Banana 2.1Draws the page; Nano Banana Pro tested for comparison
PerplexityOtherFour rounds of research, without being told who Mullo was for
Lab scribeOtherClaude SonnetRecords each session

Constraints and unblocking

  • Wrote the build pack: spec, brief, design references, prompts and test notes
  • Set up API keys with spending limits
  • Approved and froze the planted cases
  • Ran the reviewer checks that call paid models myself, in my own terminal
  • Topped up the verifier's credits when they ran out

Ledger

ItemValueBasisNote
Model spend, 30 Oct to 3 Nov$36.49 (about £27.20)MeasuredFrom Mullo's ledger as read on 3 Nov 2026. Nano Banana 2.1 $20.23 (about £15.10); Claude Sonnet $8.73 (about £6.50); Gemini Flash $5.39 (about £4); Nano Banana Pro $2.14 (about £1.60). Each call converts at HMRC's monthly rate for the month it was made, October or November 2026, per the site's currency rule, not the trial's own flat rate.
Why the spend is highMostly reruns, in my viewEstimatedMy view rather than a split of the ledger: most of this went on reruns, since the checks I tested were strict about exact wording and arrows, so a page often needed several tries to pass. The redesign replaces them with one check on meaning, which should cut reruns.
Cost of a pageAbout £0.58 now; about £0.25 to £0.75 after the redesignModelledClaude Code's modelled figures for Mullo: about £0.25 a drawing try and 2.3 tries a run today, with automatic retries; after the redesign, depending on how many fixes I ask for.
Calls not priced by the provider$0.16 (about 12p)EstimatedTwo Gemini Flash checks that timed out, at the trial's own estimate of $0.08 each.
Gemini credit added on 2 Nov£25MeasuredPrepaid when the credits ran out mid-run.
Budget£40 for the prototype; £14 for the first trial, raised to £20MeasuredMy approvals.
Claude CodeSubscriptionMeasuredNot apportioned; an API-equivalent estimate isn't money spent.
Time, 30 Oct to 1 Nov4h25m active within 65h41mModelledActive time is modelled; the span is measured. 2 Nov not recorded.
Measured
counted or timed directly
Modelled
estimated from a stated method
Upper bound
the most it could be
Estimated
my own estimate, not measured

Time figures say whether they are elapsed or worked. Time between commits is never presented as hours worked.

Non-sterling costs show the amount paid, with an approximate sterling figure at that month's average rate. Rates from HMRC's monthly exchange rates.

Notes from this build