I built a generative audio engine for focus and sleep. It shipped to exactly one user — me — and it lives on my phone. The app is called Audio Apothecary: a programmatic engine for timeline-driven "Potions" built from modular channels and modules with automated parameter transitions. It is explicitly not a DAW, not a sample player, not a music composer.
The build took six active days in August 2026, with 187 commits landing across a Rust workspace (a portable, allocation-free engine core, a UI-agnostic controller layer, and a device layer for audio output) bridged to a Flutter/Dart mobile app. Work was organized into named, ID-tagged parallel lanes, and about 29 architectural decisions were logged across those six days.
By the time I reached commit 187, every automated test passed. I had 1,211 test functions total: 671 Rust #[test] units and 540 Dart test/testWidgets checks. The suite told me the code agreed with itself. It did not tell me the code did what the product actually needed.
What a review agent found
On 11 August 2026, I pointed a five-agent review pass at the finished build with a brief to find what was wrong, not to extend it. The review included independent web research. It found two showstopper signal-processing bugs that the build agents and the automated test suite had both missed.
Stereo panning did not exist. The equal-power pan law used L = cos((1−p)·π/2) and R = sin(p·π/2). By a basic trig identity, those formulas produce the same number for any pan value p. Every pan position — hard-left, hard-right, center — produced identical gain on both channels. The panning control did nothing.
The master limiter was not a limiter. It was a waveshaper: 1.2x / (1+|1.2x|). No threshold, no envelope, no unity region. Every sample, at every level, passed through constant audible distortion.
The review's own executive summary named both bugs as reasons the project was "not currently shippable." Both were fixed the next day, 12 August, alongside a real equal-power pan law and a real peak limiter with threshold and attack/release envelope.
Why listening alone would not have caught them
A self-canceling pan law sounds like mono. Listening to a generative audio app designed to sit in the background — the entire point is that it should not demand attention — you might never isolate whether a lack of spatial width was intentional design or a broken formula.
The limiter applied distortion to every sample, but it was subtle. The app mixes layers of procedural audio with slow parameter sweeps. You might notice the tone was "warmer" or "harder" than you expected, and you might attribute that to the module selection or the mix rather than to a signal-processing bug that was distorting the entire master bus.
Both bugs hid behind plausible explanations. The review agent, working from a brief to find problems rather than to listen passively, isolated them immediately.
An agent decision that looked ratified but wasn't
A separate finding from the same review: decision AD-20 inferred that composing a new Potion from scratch should be out of scope for the phone app. The narrowing stood for a full sprint, with the same numbering, format and declarative confidence as every other decision in the log. It read exactly like an operator ruling.
A later operator ruling, AD-27, reversed it explicitly: "Composing on the phone is in scope. The narrowing traced to sprint 5's AD-20 — an agent's inference of product use, never ratified — which is struck."
AD-20 was an agent-authored scope proposal that was never marked as such, so it was treated as binding until I caught it. The process fix, AD-28, added a provenance tag ([OPERATOR] or [AGENT]) to every future decision record, so an agent-authored inference is marked a proposal rather than silently promoted to policy.
What tests check, and what they don't
Tests check that code does what it says. They don't check that what it says is what the product actually needs. Every test in the suite verified the code agreed with its own contract. None of them verified that the contract matched reality.
The pan law test confirmed that the left and right channel formulas were applied as written. It did not check whether those formulas actually produced a stereo image. The limiter test confirmed that the waveshaper was applied to every sample. It did not check whether the waveshaper was the right function.
A review agent, briefed adversarially and allowed to research signal-processing literature independently, caught what 1,211 passing tests missed.
Audio Apothecary is shipped — it is on my phone, and I use it. It shipped correctly because I pointed an agent at my own finished work with a brief to find what was wrong, and I fixed what it found before I installed the build.