Henry Robinson.

AI Builder Product Manager.

Twenty years shipping product, most of it automotive. I built an AI product and now run an AI company, solo, after building the artificial cofounder I needed.

Available now

I'm available for AI product management, forward-deployed PM roles, founding-PM roles, and advisory work.

SF Bay Area · open to relocate

Claudia Control Plane

I built an agent system to run the operations around a solo business: it brings the important work forward, routes bounded jobs to the right model, and tells me when a process needs my attention.

The system combines deterministic checks for the things I already know can fail with model review for the things I cannot predict. The agent never decides that its own work is complete; independent checks do.

The Claudia home screen. Three work queues need attention; everything else is running normally.
The home screen is an attention queue, not a dashboard full of charts.
Voice Legacy, a living digital memoir platform

In productionFounder2025 – Present

Voice Legacy, a living digital memoir platform

It interviews your parents and grandparents the way a thoughtful biographer would, then writes their living digital memoir in their own voice without inventing a word of it. That last part is the hard problem: an AI under pressure to make a story look finished will fabricate details, so the pipeline separates a frozen fact layer from a free voice layer and refuses to write until the source material can support it.

Claude (Opus/Sonnet/Haiku)·Agent harness·LiveKit·Deepgram·Cartesia·pgvector·Firebase·Stripe

Solobuilt and operated
Paying customerstrial-to-paid model
One agenta massive harness around it

Who has the problem

Voice Legacy interviews parents and grandparents the way a patient biographer would, and then writes their living digital memoir in their own voice. The adult child pays for it. The product is designed for people who are losing their memories, since a family gets one chance at that recording.

Why this is not just a wrapper

A wrapper would hand the transcript to a model and let it write. That fails on facts. A model handed thin source material writes wonderful-sounding prose that is mostly invented. From nine fragments that amounted to "we drank rum," the model produced a piña colada, a stroller, and ancient ruins. None of this happened. It was an entertaining story, but it was all made up.

What I decided

I put a gate in front of the writer that scores the source material before anything gets written. It counts the words of source, counts the distinct concrete facts (named people, events, a stated setting), checks for any sensory or emotional detail, and checks whether a conversation transcript sits behind the story at all. Every story comes out as one of three tiers: a scrap, a sketch, or a scene. A sketch or a scene gets written, and the user can edit and publish it. A scrap is held back, and the product keeps asking follow-up questions until the story has enough behind it to write.

  • Live · 32 weekly actives
  • 3 tiers · scrap, sketch, scene
voicelegacy.app
2025 – present

Founder · Voice Legacy

I built and ran it alone: strategy, product, a production codebase, marketing, support, and the books. It is live with real users.

2025

Lead AI Product Manager · Lucid Motors

I led product for an AI service scheduling system. It added 30% to service bay capacity, took three days off the customer wait, and held prediction error under 15% in production.

See the demo

2022 – 2025

Independent product consultant

I took these years to look after my father while I started a company. Along the way I did zero-to-one product work at SingularityLabs, a VR work-simulation startup that Talespin later acquired, and I retrained myself in AI on purpose, using legal AI projects like Terminate Mate and an AI patent evaluation tool as the practice ground.

2021 – 2022

Head of Product · SimplyInsured

I ran product at a platform that helps small businesses buy health insurance, and drove 50% year-over-year revenue growth.

2014 – 2021

Principal Product Manager · Xtime (Cox Automotive)

I owned the mobile suite that dealership service departments run on. The first version of Xtime Engage was built by asking dealerships what they wanted. The turnaround came from asking their customers instead.

That answer moved the sale of additional work out of the service lane and back into the shop, where the technician's inspection photos made the case. It was worth about a hundred dollars more per repair order, which is roughly a quarter to a third on top of a typical ticket.

Engage went from zero to 3,500 dealerships, a quarter of the market, every one of them organic, at $750 per dealership per month. That is about $31.5 million a year in recurring revenue.

2010 – 2014

Senior Product Manager · Ariba (acquired by SAP)

I was head of product for Ariba Discovery, the B2B e-commerce upstart inside Ariba, and grew the seller base from zero to one million.

2007 – 2010

Category Manager, Automotive · eBay Motors

I ran auto parts and accessories. The compatibility and cross-border work brought $2 billion in GMV through eBay Motors and $240 million in incremental revenue to eBay, and I hold US Patent 8,429,020 for surfacing international-seller listings.

2001 – 2005

Senior Integration Engineer · General Motors

I worked on interior systems across three vehicle platforms, around two million units a year. The changes I drove cut component costs 18%, cut development time 30%, and saved $12 million in tooling per program.

Download the CV (PDF)

Camberbot

An RC vehicle setup assistant that came out of my own racing hobby. You tell it the car, the track surface, and what the car is doing wrong, and it tells you what to adjust. It covers 21 vehicles and has over 100 active users.

camberbot.com

Terminate Mate

An eight-hour hackathon build: an AI legal assistant for people who just got fired, fine-tuned on California labor law and case precedent. It took an honorable mention.

See the project

MBA

Dartmouth · Tuck School of Business

MS & BS

Mechanical Engineering · Purdue University

I focused on simulation and computer graphics software development.

2024

AI Product Management Bootcamp · AI Product Academy

Capstone project with VC pitch. Curriculum led by Dr. Marily Nika (Google).

2024

Product Management for AI and ML · ELVTR

AI and ML product strategy, evaluation, and system design. Graded 95%.

2022

Decentralized Finance MOOC · DeFi Learning

Blockchain financial systems, smart contracts, and decentralized applications. Earned the Ninja Tier NFT certification.

2011

Product Master Certification · Pragmatic Institute

Eight-course series on product management, strategy, and product marketing.

These are the decisions behind the featured work above: the problem, the rule I chose, and the proof that keeps it honest. They stay collapsed until a reader wants the detail.

Voice Legacygrounding & guardrails

The voice engine: writing in someone's voice without inventing their life

How a memoir writer stays faithful to a family’s words when the source material is thin.

Read the case

The problem. Voice Legacy writes a family memoir from a recorded conversation. Given thin material, the writer invented details. My eval caught it inventing facts on 14 of 14 test stories, where "we drank rum" became a story about a piña colada, a stroller, and ancient ruins. I had rated one of those drafts five out of five on facts myself, which is why I stopped trusting either the generator or my own reading to police it.

The decision. The writer may not add a fact the family did not say. I split the product into a frozen layer that holds only the person's actual words and a free layer that is allowed to shape diction and rhythm, and I set a floor: a story with too little behind it gets more questions instead of a draft.

The check. A story counts as grounded only if every fact in it traces back to the transcript. That rule runs as a script on every story, so a prompt change that starts inventing again fails before a customer sees a word of it.

The lesson. AI will always hallucinate. My job was to build guardrails to ground what the agent wrote in fact, while allowing it to combine stories told across multiple sessions into a coherent narrative. This is essential for people who are losing their memory or their ability to tell stories coherently.

Voice Legacyevals

Grading a ghostwriter

Why a single quality score hid regressions, and the test set that made them visible.

Read the case

The problem. When I changed a prompt, I had no way to tell whether the stories got better or worse.

The decision. Every change gets scored against an answer key I wrote, and the score stays split into the things I care about: whether every fact is real, whether it sounds like the person, and whether it reads well.

The check. I made up two fake families and wrote down every fact about them by hand, 22 relatives in one and 33 in the other, with traps planted: the same fact told twice in different words, and a few family recipes as a stress test. Those two families run through the real product end to end, and a script scores every story on more than fifteen things. Most of the checks are plain code comparing text to known facts. A model judges only the few things code cannot. It runs at four sizes, from a two-cent spot check to a five-dollar full run.

What it caught. One prompt change made the stories sound more like the person and read worse at the same time. A single overall score would have averaged that out and called it a wash.

Claudiaagents & verification

The agent that said it was done

A false success report became a rule: agents do not certify their own work.

Read the case

The problem. I asked an agent to write about twenty documentation pages. Shortly thereafter it reported "done, gate passed, all 22 pages complete." It had written nothing. It had run its own check from the wrong folder, found zero problems because it found zero files, and read zero as success. Anyone who has managed these tools has experienced this. The AI says it is done, and it is not.

The decision. The engineer does not grade its own work. Before a job starts, I write down what would have to be true for it to be done: the files that must exist, the tests that must pass, the count that must match. If the check cannot run at all, that counts as a failure, never a pass.

The check. A separate script, plain code with no model in it, checks those things after the agent finishes. The harness runs the script itself, so the agent cannot skip it. When the job is code, the test is written before the code. The job is done when the test passes, and not before.

The lesson. An AI being "done" is a claim. Proof has to come from something the AI does not control, and writing that proof down before the work starts is product work.

Starflight Tributeevals & autonomy

The night the agent wrote its own proof

A robot player turned an overnight build into something that could be independently checked.

Read the case

The problem. I gave Claude Code one prompt at bedtime, "clone Starflight, you have one shot," and woke up to a playable remake of a 1986 open-world space exploration game: a galaxy to explore, planets to mine, aliens to negotiate with, and an ending you can reach. I had no way to know whether any of it worked without playing it for hours, and the agent saying "it works" is worth nothing.

What the agent did. Without being asked, it built a robot player: a script that starts the real game, presses keys the way a person would, plays it through to the ending, and checks that the game's rules held at every step. The overnight build shipped with 41 of those checks. Later runs took it to 93, and after about 300 simulated battles the robot found a real bug I would never have caught by hand: a laser fired at exactly its maximum range did the wrong thing.

The decision. Here is the insight, and the decision. The robot player was the reason I could trust a build I had not watched being made, so I made it the rule for every agent job since: nothing counts as done until there is a receipt, something deterministic the agent cannot fake. Every other card on this page runs on that rule.

The lesson. Part of this job is watching what the agent does and knowing which of it to keep. Evals are not enough for agents. An eval tells you how good the output is. It does not tell you the agent did the work, or that the thing it built holds together. For that you need scaffolding: evals for quality, robot players and tests for behavior, deterministic checkpoints for done. Deciding what that scaffolding checks is the product work.

Claudiaproduction reliability

The machine that puts itself back together

A recovery layer outside the agents keeps the host healthy and makes silent failure visible.

Read the case

The problem. I use a Mac mini in my house that runs Claudia, with every agent in its own container. One night the Docker engine died, and every agent went down with it. I found out in the morning. Nothing was watching the agent that was supposed to be watching everything else.

The decision. I created a separate recovery layer, outside the agents, that brings the machine back without me and tells me when it cannot. The recovery process may run any number of times without doing harm, and it fails loudly when it cannot prove that it worked.

The check. A small service starts at boot and makes sure Docker and the workers are running. A watchdog checks every five minutes that they are still up. Both use the same recovery script, which does nothing when things are working fine. The watcher is itself watched by a heartbeat: if it goes quiet, the silence raises the alarm.

The same layer handles failed jobs. When a job fails, a diagnosis job reads the logs, names the likely cause, and sends me the proposed fix on Signal. Fixes from a short approved list run on their own. Everything else waits for my yes.

The lesson. Even though we have AI agents, there needs to be structure around them to make sure that they are working properly and telling you the truth. With that in place, the system can use liveness checks alongside a coding model to actually repair itself.

Claudiasecurity

The agent that almost gave away everything

A malicious plugin incident led to least-privilege jobs and a tightly controlled secret path.

Read the case

The problem. In February I was running my assistant on OpenClaw, an open-source agent runner. OpenClaw had a skill marketplace, which sounded great in principle but was actually a vector for bad actors to take control of your agent.

I installed an OpenClaw plugin that promised to watch my browser traffic and write API wrappers for any site I visited. OpenClaw runs a plugin inside the same process as the assistant, so the plugin could read everything the assistant could read, including my 1Password service-account token, which opens up every other secret in the vault. Over two weeks it captured logins from a dozen services as I browsed, my credit card account and my medical records among them, and posted each one to a remote server. It also rewrote the files my assistant reads at startup, telling it to deflect diagnostic questions, ask me for more permissions, and keep the plugin running. I noticed because the assistant started acting slightly wrong. The logs showed the rest. The cleanup took twenty hours.

The decision. I built my own agent starting from two questions: what does the agent need to do its job, and how can I limit the damage it can do if it gets tricked? The first rule became my "run-with-secrets" architecture: one secret exists at rest, the 1Password service-account token, in a file only my user can read on an encrypted disk. Everything else is fetched at boot from references, never stored as values. Every agent runs in a Linux container with only the folders its job needs. Jobs that read untrusted text, code and web pages, hold no keys at all. Nothing from the outside gets installed without a scan in an isolated container, and the scanner rejects the patterns that the malicious plugin had, like anything touching cryptocurrency, or code that sends data to a server it has no business talking to.

The check. Two checks hold those rules in place. If a secret cannot be fetched at boot, the process stops instead of running without it. And a test lists the secrets no job may ever hold and the few each job must keep, so a change that quietly adds a key back, or removes one a job needs, fails the test.

The lesson. Agents can be tricked, and giving them access to your life or your data needs to be thought through extremely carefully. You should only give an agent access to exactly what it needs to get the job done, at the time it needs it. This needs to be a core design principle of any agent that needs access to personal or sensitive data.

Content opscontext engineering

The blog pipeline

How AI can edit toward a writer’s own voice without supplying the ideas or the facts.

Read the case

The problem. Every AI-assisted blog sounds like every other AI-assisted blog. I wanted the help without the slop.

The decision. I always write the draft. The model can sharpen sentences and fix typos and grammar, but it never writes the seed and it never adds a fact I did not write. It edits toward my own writing: over forty samples of it, including Substack posts, emails, and even Reddit comments.

The check. The edit runs as three passes in a fixed order. One strips the generic AI phrasing. One strips the two dozen patterns that mark machine writing, like inflated significance, synonym cycling, and em dashes. One pulls the draft toward my own idiom, using the samples. A final sweep catches the habits the rewriting itself puts back in, because it always does. Then the result is set beside two or three of my samples and read against them before it goes anywhere.

The lesson. Good AI-assisted writing is doable if you have enough of your own writing to test against, and a solid process to find and clean up any inserted slop.

Agent architecturetool use

Reading documents behind a login

A brittle login workflow became a staged pipeline with an inspectable output at every step.

Read the case

The problem. Investor decks I wanted analyzed lived inside viewers that allow no download. The pages are drawn on screen as pictures, behind a login with two-factor. Handing a model the login and telling it to go get the document was slow and fragile.

The decision. I logged in once, by hand, in a real browser, two-factor included, and the browser session was saved. From then on the model never touched the login. The job split in three. Plain code reused the saved session, opened the deck, scrolled through it, and took a screenshot of every page. A vision model read the screenshots and wrote the text out. A separate reasoning model did the analysis on that text.

The check. Each stage left one thing I could look at: the screenshots, the transcribed text, the analysis. When an answer was wrong, I could see which stage failed without reading any code.

The lesson. The real lesson is the same one as the security card. The model gets no access it does not need. Plain code holds the login, a cheap model reads the pictures, and the expensive model does the thinking, and each stage leaves something I can check.

---

I'm open to AI product management and forward-deployed PM roles, and I take on advisory and consulting work. My usual clients are founders who want to ship faster and PMs who want to learn to operate this way.

@henry~chat
online
Henry·usually replies within a dayHey, I'm Henry. What brings you here?

routes to my inbox · I read every email

SubstackGitHubLinkedInVoice LegacySF Bay Area · open to relocate