Skip to the paper
OnPuck

Know what your users will do before your agent builds it.

User stories checked against your data, turned into specs your coding agent can ship. Applied in Woku; simulated users are a separate research prototype.

P. Riquelme and D. Orrego · OnPuck

Illustration of a simulated run

Illustration of a simulated run. Each person carries frustration, fatigue and motivation, and leaves under the simulated-user rule. Drawn, not recorded. Hover or tap a person.

  • Friction
  • Tired
  • Done
  • Leaving
  • Voice

AI user research for coding agents: user stories checked against your data and specs tested on simulated users, for growing startups in San Francisco, CA, USA.

How OnPuck works

Building got cheap. Building the wrong thing didn’t.

OnPuck finds out what your users really need, and hands your coding agent a spec it can trust.

  1. 1

    Plug in your stack

    Read-only access to your repo and data. Revoke it anytime.

  2. 2

    We talk to your users

    Short interviews about one real moment, every detail checked against your data.

  3. 3

    Your agent ships the right fix

    A spec with the evidence attached, ready for your coding agent.

What changes for your team

TodayWith OnPuck
Guessing from a handful of interviewsEvery story checked against your data
Vague tickets your agent misreadsSpecs with the evidence attached
Building on what users sayBuilding on what they actually did
Research eating your team’s weekRun for you, free during the partnership

Works with the tools you already use

  • GitHub
  • PostHog
  • Sentry
  • Axiom
  • CloudWatch
  • Postgres
  • MongoDB
  • Claude Code
  • Codex
  • Cursor
  • Copilot
  • OpenCode

What OnPuck is: AI user research for coding agents

OnPuck turns user stories into specs checked against code, analytics and logs. The founders applied this workflow in Woku and shipped changes. We are building a repeatable platform for coding agents, alongside a separate research prototype that tests preview builds with simulated users.

  • 01Interviews explain why.
  • 02Data proves how many.
  • 03Trackers join the two.
  • 04Simulation tests the change before it is built.

Figure 1The loop

  1. Step 1

    Connect

    Trackers verified against live data

    Applied in Woku
  2. Step 2

    Listen

    One concrete story per interview

    Human-led in Woku
  3. Step 3

    Anchor

    Each detail confirmed or contradicted

    Applied in Woku
  4. Step 4

    Spec

    A spec with the evidence attached

    Applied in Woku
  5. Step 5

    Simulate

    A predicted change, with an interval

    Research prototype
  6. Step 6

    Ship

    The change in production

    Shipped in Woku; MCP planned
  7. Step 7

    Calibrate

    An accuracy record

    By hand in exp-01 to exp-04
Figure 1: The founders ran the evidence workflow in Woku and shipped resulting changes. Simulation is a separate research prototype.

1Why user interviews and product analytics disagree

Interviews tell you why. Analytics tell you how many. Neither tells you if the story is true.

Across 52,007 people, self-reports about software use rarely matched the logs [32]. So OnPuck checks every tracker: a detail your system could have recorded, like a time, a device, a feature or an error.

Figure 2One story, resolved

Interview with a synthetic example user

“Last night I tried to export the monthly report from my phone, and it never downloaded.”

TrackerUser saidSystem recordedResolution
Time (anchor)“last night”export_clicked at 21:42confirmed
Device (dimension)“my phone”iOS Safari, 390 x 844confirmed
Feature (dimension)“export the monthly report”POST /reports/export returned 200confirmed
Outcome (dimension)“it never downloaded”File served, 1.2 MB; never openedcontradicted

Resulting spec

fix Make the exported file findable on iOS Safari

The download worked. The user could not find the file.

4 trackers, 3 queries, 1 story

Figure 2: Synthetic example. One sentence, four trackers, one contradiction, and the contradiction changes the spec.

2How OnPuck turns user stories into specs for your coding agent

Seven steps, each backed by research or by our own experiments.

  1. Step 1

    Connect

    Applied in Woku

    Trackers verified against live data

    An agent reads your repo, analytics and logs, and keeps only the trackers that show up in live data.

    Evidence.Agents solve 21.3% of real enterprise SQL tasks without schema context [23, 24], and can trace errors in logs [25, 26].

  2. Step 2

    Listen

    Human-led in Woku

    One concrete story per interview

    Our Woku field work used human-led interviews. Automated interviews are specified; existing transcripts can feed the same evidence workflow.

    Evidence.AI interviewers match human ones [28, 29, 30]; concrete incidents beat opinions [31, 16].

  3. Step 3

    Anchor

    Applied in Woku

    Each detail confirmed or contradicted

    Every tracker is resolved against your system. Contradictions are kept: that is where the spec changes.

    Evidence.Self-reports rarely match logs [32]; time landmarks improve recall [33].

  4. Step 4

    Spec

    Applied in Woku

    A spec with the evidence attached

    Each spec carries an action type (fix, build, refactor, remove) and the queries behind it.

    Evidence.Coding agents fail on underspecified tasks [21, 22, 34].

  5. Step 5

    Simulate

    Research prototype

    A predicted change, with an interval

    Simulated users calibrated on your sessions run your preview build and predict what changes.

    Evidence.LLM simulations predict the direction of experiments [5, 6] and find usability problems [7].

  6. Step 6

    Ship

    Shipped in Woku; MCP planned

    The change in production

    Woku changes were implemented with agents. Repeatable delivery to your agent over MCP [27] is being built.

  7. Step 7

    Calibrate

    By hand in exp-01 to exp-04

    An accuracy record

    We compare prediction and reality, then recalibrate. Model versions are pinned [13].

3From customer interviews to shipped changes in Woku

Before digital users, we ran the evidence workflow on Woku and shipped changes from its customer stories.

Woku is the feedback product the founders operate. Its customer interviews were human-led; agents helped trace stories through code and read-only data into specifications.

One investigation catalogued 79 trackers: 65 marked verified, 7 stale and 7 unverifiable. Account analyses retained confirmations, contradictions and gaps.

  • Review reliability. Customers described blank pages and uncertain submissions. Code and error records shaped the specification. The implementation added retries, pending drafts and explicit submission outcomes; its engineering plan records a production rollout.
  • Repeated account warnings. An interview about repeated inactivity emails was traced to duplicate jobs and account records. Warning and account deduplication were implemented; the batch plan records a production rollout.
  • Reports by period. Customers assembled reports manually. Checking report scope exposed missing date controls. Period filters and reports were implemented; the batch plan records their production rollout.

This field work demonstrates execution and delivery. It does not establish causal uplift or simulator accuracy. Woku is the founders’ lab, not an independent OnPuck customer.

We are turning that agent-assisted process into a repeatable platform. Human review and source links remain part of the workflow.

4Simulated users that get tired, frustrated and quit

An LLM alone plays a user who is too efficient. We add the part that gets tired.

LLM agents take 2.5 times fewer actions than people [6], know too much [4] and flatten groups [15]. Each simulated user keeps an explicit state: frustration R, fatigue F, boredom B, progress P and motivation M.

RuleChance of quitting at each step

hazard = σ(h0 + 3R + 1.5F + 1.5B − 3M − 2P)

h0 is fitted on real sessions (exp-02).

Figure 3Simulated run

Illustration of a simulated run replaying the exp-04 prediction

Registered prediction

People whose first action is writing, among those who start.

  • Rating first7%
  • Rating after the comment20%

This replay so far

0
started
–
wrote first
0
submitted

Result pending. We publish it either way.

Figure 3: Illustration replaying our registered exp-04 prediction for a live A/B on woku. Drawn, not recorded.

5How accurate are simulated users? Our validation

Four experiments on woku, misses included, and one blind prediction waiting for its result.

OnPuck experiments on woku: question, sample, prediction, reality and verdict
ExperimentQuestionPredicted vs realVerdict
exp-01BacktestPartial

Can a simulated user predict how submissions changed between two past versions of woku?

560 simulated vs 1,499 real sessions

PredictedΔ +0.028 [−0.016, +0.072]RealΔ −0.022 [−0.084, +0.040]Inside the real interval; the generic prior was not. But "nothing changes" was too, and the model missed real abandonment.
exp-02RecalibrationMiss on Δ, bug found

Recalibrated on real sessions, does it reproduce abandonment out of sample?

280 simulated sessions

PredictedAbandonment after starting 0.24; Δ +0.061RealAbandonment after starting 0.20; Δ −0.022 [−0.084, +0.040]Abandonment reproduced; the Δ missed. A simulated user found a real bug: tapping a tab submitted the form. Fixed in production.
exp-03VarianceHit

Same model, better estimator: was the exp-02 miss just noise?

120 paired simulated sessions

PredictedΔ −0.011 [−0.046, +0.025]RealΔ −0.022 [−0.084, +0.040]Yes. Inside the real interval, 62% narrower, and it excludes the generic prior. It can’t yet beat "nothing changes".
exp-04Blind predictionRegistered, result pending

Blind, before a live A/B: what changes when the rating moves after the comment?

540 simulated; up to 600 real sessions per arm

PredictedWriting first goes from 7% to 20% (Δ +0.131 [+0.059, +0.202])RealResult pendingRegistered (git tag and SHA-256) before any real data. It can clearly fail, and we will publish it either way.

Figure 4Prediction vs reality

SourceChange [95% interval]
Real change−0.022 [−0.084, +0.040]
exp-01 simulator+0.028 [−0.016, +0.072]
exp-02 simulator+0.061 [−0.018, +0.147]
exp-03 simulator−0.011 [−0.046, +0.025]
Generic latency prior+0.062
"Nothing changes"0.000

Real 95% interval Simulator 95% interval Generic prior “Nothing changes”

Figure 4: Change in review submissions between two versions of woku, on mobile. Bars are 95% intervals. Real data.

Best result so far: a simulated user found a real bug on woku’s review form (exp-02). It was fixed in production.

6The research behind AI interviews and simulated users

What the research found, and what OnPuck does with it.

  • Research

    Agents grounded in interviews beat demographic ones [1, 2, 3].

    In OnPuck todayIn the prototype

    Our prototype uses sessions; interview-grounded digital users remain planned.

  • Research

    LLM agents act too efficient and know too much [4, 6].

    In OnPuck todayIn the prototype

    A state layer decides when someone gets tired or quits.

  • Research

    Simulations get the direction right and the size wrong [5].

    In OnPuck todayIn the prototype

    We report a direction and an interval, never exact magnitudes.

  • Research

    Verbalized sampling restores diversity lost to tuning [17, 18, 19].

    In OnPuck todayIn the prototype

    The model proposes actions with probabilities; code samples them.

  • Research

    Keystroke-level models predict task time [20].

    In OnPuck todayIn the prototype

    Time per action is fitted on real sessions.

  • Research

    World models learn how apps respond [8, 9, 10, 11].

    In OnPuck todayIn the prototype

    We run your real preview build instead.

  • Research

    Cognitive models, identity labels and twins distort people [12, 14, 15].

    In OnPuck todayRun by hand

    Every prediction is scored against "nothing changes". Misses are published.

  • Research

    AI interviewers match human ones [28, 29, 30].

    In OnPuck todayDesigned, not built

    Human-led Woku interviews; automated interviewing is specified.

  • Research

    Agents on real data need its schema, values and code [23, 24, 25, 26].

    In OnPuck todayRun by hand

    We checked Woku trackers against live data and resolved existing interview stories.

  • Research

    Clear specs and good tools make coding agents succeed [21, 22, 34].

    In OnPuck todayDesigned, not built

    Specs carry their evidence, designed to reach your agent over MCP [27].

7What simulated users cannot predict

What we can’t promise, and what we do about it.

  1. Exact magnitudes

    Why not.Simulations overestimate effect sizes [5].

    What we do.We give a direction and an interval, scored against "nothing changes".

  2. Brand-new features

    Why not.Hypothetical answers flatter [16]; twins transfer poorly to new behaviour [14].

    What we do.We test changes to flows people already use.

  3. One person’s exact session

    Why not.Next-action accuracy is 11 to 21% [35, 36].

    What we do.We predict rates across a population, never one person.

  4. Replacing interviews

    Why not.Without real input, simulated people are generic [15].

    What we do.Interviews feed every step.

  5. Stable results across models

    Why not.Results shift with prompts and models [13].

    What we do.Model versions are pinned and baselines re-run.

  6. Transfer beyond Woku

    Why not.The evidence workflow has been applied in the founders’ product.

    What we do.Design partners test repeatability, cost and usefulness in other teams.

8Design partner program for startups in San Francisco

We’re building OnPuck with 5 teams. The founders run it for you while the platform is built.

Length
3 months, renewable
Check-in
Every two weeks
Cost
Free
Cohort
5 teams in San Francisco

What you get

  • Trackers your system can verify
  • Interviews with your users, checked against your data
  • Specs your coding agent can ship
  • Simulated runs before you build
  • Every prediction scored against reality

What we ask

  • Read-only access to your repo and one data source
  • A check-in every two weeks
  • Intros to a few of your users
  • Honest feedback

A good fit if

  • You ship weekly, ideally with Claude Code, Codex or Cursor
  • You have users in production
  • You run PostHog, Sentry, Axiom or CloudWatch
  • Seed to Series A, in San Francisco

Apply to be a design partner or book a call

Apply in five fields, or just book a 30-minute call with the founders.

Design partner application

Questions about access, data, time and cost

What CTOs ask us first.

References

Every claim on this page links to one of these papers or to our experiments.