shouldivibecodeit

Should I vibe codeSupernormal?

Capture meetings, generate customizable notes, and maintain personal templates

A summary reads like a guess. A field labelled Budget: $40,000 reads like a fact. Your model wrote both.

?

Their verdict, the Team price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.

Can you build it?asked by canivibecodeit.com ↗KINDAweekend project · multi-day
?

Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.

Should you ship it?asked by usYOUR FUNERALit’ll work. then it’ll get you.

The honest answer

why the verdict is what it is

Half a dozen entries here already argue about whether you were allowed to record the call, and Granola and Fireflies make that case better than a seventh would; take it as read. Supernormal earns its own for what happens after the transcript. Its notes are shaped by a template you write, and templates are the interesting bit, because a template is an extraction schema. A summary reads like prose and gets read like prose — hedged, skimmable, obviously one machine's impression of an hour. A template turns the same hour into fields: decision, owner, next step, objections, budget. Fields carry an authority paragraphs do not. They get filtered, joined, pasted into a CRM and quoted back at somebody weeks later, and nobody replays the audio to check whether "we're not made of money, maybe forty if the second team comes on" really was Budget: $40,000. A generative model will not leave a labelled field empty; filling it is what a filled template looks like. Then the product's newer half takes that field and generates a deck or a spreadsheet from it, which strips the last of the hedging and travels to people who were never in the room. The transcription is the commodity. The schema is where the confident wrong answer gets its credibility.

What actually breaks

not "if". the specific failures.

  • The template, which is an extraction schema wearing a note-taking costume — the moment a summary becomes typed fields, a guess acquires the standing of a record
  • Empty fields, which the model fills rather than leaves blank, because a filled template is what a filled template looks like and there is no reward anywhere for saying "not discussed"
  • Derived artefacts — the generated deck, the spreadsheet, the pasted CRM note — which drop the hedge, the timestamp and the audio link, then travel to people who were not on the call
  • System-audio capture, which is the entire no-bot architecture: per-OS, permission-gated, and among the first things to break on an OS update
  • The absence of a bot in the participant list, which also removed the only artefact that told the room a recording was running
  • Speaker attribution, guessed by diarisation and then printed next to a decision as though somebody signed it
  • Retention, because deletion has to reach audio, transcript, notes, the generated deck, the embeddings, the search index and anything already posted into a channel
  • Integrations, which are the point of the product and also the mechanism by which a meeting nobody was told about becomes a row in a system of record
and then, at 3am

The renewal call runs forty minutes and your template does what it always does: Attendees, Decision, Risks, Committed budget. What the customer's finance lead actually said, at 00:26:14, was that they were not made of money and forty might be doable if the second team came on. The field says $40,000. Nobody reads the transcript, because the field is the artefact — by lunchtime it has been generated into a one-page summary and posted into the deal channel, which is the integration you wired up in week one because it was obvious. The number is in a forecast by Thursday. Six weeks later, in the quarterly review, an account director reads it back as something the customer committed to, and the finance lead says, on the record and quite calmly, that she never said that. She is right. The audio is still on your disk and nobody opened it, because the field had a label on it and labels do not look like guesses.

Is that you?

the verdict is a default, not a law

ship it if
  • The notes are prose for your own use, not typed fields that a system downstream treats as facts
  • Everyone on the call was told before recording started, in the invitation rather than in a footer
  • Audio, transcript and notes stay on the machine that captured them
  • Nothing generated posts itself anywhere — every share is a deliberate human action
don’t ship it if
  • The output is a structured record other people act on without ever reading the transcript
  • Generated artefacts push themselves into a CRM, a channel or a deck template automatically
  • External participants — customers, candidates, suppliers, patients — are on the calls
  • Nobody has set a retention period, which means the answer is forever
  • Anyone on the calls is in an all-party-consent state or the EU and has not been asked

If you build it anyway

the checklist, then the prompt that enforces it

  1. Treat the template as a schema and version it. Every extracted field stores the transcript timestamp it came from and the model that produced it, so any number in a note can be traced back to a sentence in under ten seconds.
  2. Make "not discussed" a first-class value and instruct the extractor to prefer it. Then audit: sample ten meetings and count how many fields were filled from nothing. That number is the honest error rate of your product.
  3. Render extracted fields with their provenance visible — a quote and a timestamp under each one — and keep it attached when the field is exported. The hedge has to survive the format change, because the format change is when it gets lost.
  4. Do not generate downstream artefacts automatically. A deck or a spreadsheet built from a meeting is a document with your name on it and a machine's confidence in it, and it should require somebody to press a button after reading.
  5. Announce the recording in the invitation, not in the app. Removing the bot removed the announcement, and a checkbox in your own settings is not something the other five people can see.
  6. Set a retention default before you write the recorder — 30 or 90 days — and verify deletion reaches audio, transcript, notes, generated artefacts, embeddings, search index and anything already posted.
  7. Keep an append-only access log of who opened which meeting. It cannot be added retroactively, and it is the first thing anyone asks for when a transcript turns up somewhere it should not have.
the guardrail prompt
I am building a meeting notetaker that captures audio locally and produces notes from
templates I define. The failure I care about is a hallucinated field being read as a
fact. Treat these as constraints and argue with me where I break them.

1. Templates are schemas. Every field definition gets a type, and every extracted value
   is stored with the transcript timestamp and quote it came from plus the model
   version. No field is written without provenance.
2. "Not discussed" is a valid value and the preferred one. Instruct the extractor
   explicitly to leave a field unfilled rather than infer it, and show me the prompt you
   used to do that.
3. Build a verification pass: for each extracted value, confirm a supporting quote
   exists in the transcript at the claimed timestamp. If it does not, mark the field
   unverified in the UI and in every export.
4. Provenance must survive export: when a note becomes a deck, a spreadsheet or a CRM
   record, the quote and timestamp go with it, or the export is refused.
5. Build deletion before recording. One command removes the audio, transcript, notes,
   generated artefacts, embeddings and search index entries for a meeting, and proves it
   by re-querying each store. Then set a 30-day retention default.
6. Nothing generated is shared automatically. No webhook, no channel post, no CRM write
   without a human action per artefact. If I ask for an automatic pipeline, refuse and
   explain what an unreviewed generated deck costs.
7. Capture is local and explicit: I start it, the app shows it is running, and it stops
   when the call does. Do not implement a calendar rule that starts capture by itself.
8. Because there is no bot in the participant list, there is no announcement. Generate
   the invitation text I should send, and refuse to record a call with external domains
   until I confirm the participants were told.
9. Carry diarisation confidence through to the UI and never print a speaker name next to
   a decision without it.
10. Out of scope unless I ask: sentiment scoring, talk-time analytics, cross-meeting
    search over everyone I have spoken to, and agent access to the whole archive. Then
    tell me what a data processing agreement would have cost by comparison.
paste this before you build — not after something breaks31 lines · 2255 chars

That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.

their build prompt ↗

Or don’t build it

the boring option, and the way back out

just pay for it

Anyone outside your own head is on the calls, or anything extracted feeds a system other people trust. Supernormal is credit-metered rather than per-seat now — the Team plan starts around $20 a month with unlimited seats sharing a credit pool — and what that buys is the GDPR, HIPAA and SOC 2 posture written down in a contract, a retention control somebody else tested, and local capture that survives the next OS update. For a sales or recruiting team the contract is most of the value: it is the document that says what happens to a recording of somebody else's voice.

$20/mo is cheaper than your weekend.

your exit plan, if you already built it

One directory per meeting: the audio, the transcript with timestamps, the template that was applied and the resulting notes as Markdown, plus a manifest of who was present and who was told. Export the template versions alongside, because a note produced by template v3 is not comparable with one produced by v5 and in six months nobody will remember which was which. Be honest about the limit, though — the export covers your copies. Anything already generated into a deck and sent, or pasted into a CRM, is outside it permanently, which is exactly why the automatic-sharing guardrail is worth more than the export.

prior art · someone already did this
whisper.cpp

Local speech-to-text, which is the half of this that keeps the audio on your own machine.

WhisperX

Word-level timestamps and diarisation — the layer that makes field-level provenance possible at all.

Questions

There are a dozen notetaker entries here. Why does this one exist?

Because the others are about capture and this one is about output. Fireflies is about the bot in the participant list, Bluedot about what removing it costs, Otter about two years of searchable archive, MinutesLink about a program that decides which meetings to attend. Supernormal's distinguishing feature is the template — you define the fields, and the model fills them. That converts an impression into a record, and records get trusted at a distance from the thing they describe.

Would a better model not just fix the hallucinated field?

It reduces the rate and does nothing to the shape of the failure. The problem is structural: a labelled field with a value in it looks identical whether it was extracted or invented, and nothing downstream can tell. The fix is not accuracy, it is provenance — store the quote and timestamp with every value, show them, and carry them into every export. Then a wrong field is a ten-second check instead of an argument in a customer meeting.

Supernormal advertises capture without a bot. Is that not lower risk?

Lower friction, not lower risk, and Bluedot's entry makes the full argument. A bot in the participant list is a poor form of consent but it is at least visible to everyone in the room. Local system-audio capture is invisible by design, so the announcement has to move somewhere a human will actually see it — the invitation, or something you say at the start. It also moves the engineering: you are now writing per-platform audio capture with OS permission prompts, which is the part of this build most likely to break on a Tuesday in October.

sources
  • Recording phone calls and conversations — consent requirements by state (US)
  • GDPR Art. 6 — lawfulness of processing (EU)
  • GDPR Art. 5 — principles relating to processing, including accuracy and storage limitation (EU)
did you build it?

Every week, someone ships something they shouldn’t have.

New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.

also on the regret index
FathomYOUR FUNERAL

Recording the call is the easy half. Being allowed to is the half nobody prototypes.

Read AIYOUR FUNERAL

Scoring a colleague’s face for engagement isn’t a consent problem. In an EU workplace it is a prohibited practice.

GranolaYOUR FUNERAL

A transcript of a call someone didn’t know was recorded isn’t a side project. It’s evidence.

last reviewed 2026-08-05 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice