Nick Nisi and Zack Proser: Give Coding Agents Evidence That Their Work Is Done

A WorkOS workshop uses a broken waitlist to show how repeatable checks, receipts and evaluations support agent-assisted development.

NNNick NisiVortrag · WorkOSZPZack ProserVortrag · WorkOS
Kanal
AI Engineer
Veröffentlicht
18. Okt. 2026
Video
1:01:04
Lesezeit
7 Min.
Folien
5
Original
Englisch
Auf YouTube öffnen
Beim Scrollen schrumpft das Video in die rechte untere Ecke und läuft weiter. Untertitel folgen Ihrer Lesesprache.
LesespracheIn 2 Sprachen verfügbar
Diesen Artikel gibt es noch nicht auf Deutsch, daher wird das Original (Englisch) angezeigt.
ZUSAMMENFASSUNG

In 30 Sekunden

Nick Nisi and Zack Proser argue that agent-generated work needs observable completion criteria. A waitlist that displays success but loses its data on reload illustrates why an agent’s report or a single UI check is not enough. They demonstrate an application-specific verifier, discuss fresh evidence and evaluation cases, and answer questions about local feedback, CI and production monitoring. Tests and model-based judges remain fallible.

  1. 1Success without persistenceThe waitlist appears to work until a refresh reveals that the data was never saved.
  2. 2Evidence, not assertionsRetain test results and other artifacts relevant to the stated outcome.
  3. 3An application-specific verifierSnack drives the example application and checks its environment and state.
  4. 4Screenshots have limitsA plausible image can conceal the wrong path or missing side effects.
  5. 5Stale receiptsOld proof must not be mistaken for evidence about changed code.
  6. 6Local checks and CIFast local feedback can complement enforced shared checks.

Das Wichtigste

  1. Define user outcomes and make them observable to the agent.
  2. Check persistence and the full user journey, not just an immediate success message.
  3. Use repeatable application-specific checks and informative failures.
  4. Bind evidence to the version and conditions actually checked.
  5. Turn missed failures into evaluation cases and regression tests.
  6. Use CI and human oversight alongside local agent feedback.
VOLLTEXT

Den bearbeiteten Text nach Kapiteln lesen

01

What does done mean?

The presenters show a waitlist whose success state is misleading.

Nick Nisi and Zack Proser introduce Beyond Done, a workshop about making agent work verifiable. They frame trust as something earned over time through observable checks rather than a declaration that a task is complete.

Nisi is an engineering manager at WorkOS; Proser is an engineer on its Applied AI team. Their workshop repository contains slides and exercises for a small example application.

The first instinct may be to inspect every line of generated code, but agent-generated changes can accumulate faster than a person can review them. The presenters explore additional evidence about actual behavior.

A browser test can submit a form and check for a success message. That is useful, but a model's report that a test passed is not by itself evidence that the complete user outcome happened.

The demo is a browser-local waitlist application. Entering an email initially appears to succeed: the page shows the address and a success state.

After a refresh, the entry disappears. The interface had changed, but nothing persisted. A test that checks only the immediate display would miss the other half of the requirement.

Proser says this is especially easy to miss when a developer supervises many concurrent agents. A build and passing tests can coexist with a result that is still wrong for the user.

The team emphasizes verification, reliability and evaluation as foundations for scaling agent work. An agent needs feedback that makes failure visible and explains what good behavior looks like.

02

Define outcomes and retain evidence

They discuss clear goals and experimental verification tools.

Nisi says vague instructions such as “make no mistakes” are insufficient. Define the desired outcome and give the agent a way to observe it, attempt a repair and check again.

The presenters favor decomposing large tasks and giving each one a clear completion condition. Their productivity claims are presented as team experience, not controlled evidence of guaranteed gains.

Nisi asks for receipts: test output, screenshots, recordings or smoke checks that show what happened. Evidence must correspond to the requirement, rather than merely accompany a confident status message.

Two verification tools
FOLIE 1 / 5Two verification toolsThe presenters compare Riker and CTX as experiments in evidence-backed status.

Proser describes CTX, an experimental service for shared context and verification. An agent reports work through an MCP connection, and a verifier checks an external artifact before marking a workflow node complete.

For example, a verifier can query GitHub for a pull request and its checks, then return failures to the agent. The reusable check provides more concrete evidence than the agent's assertion alone.

Nisi's experimental tool Riker manages work after it is delegated: it can follow reviews, run checks, retain evidence and ask for human attention when needed. These are examples of their own approaches, not universal products or guarantees.

03

Give agents observable checks

A workshop CLI drives the app and reports its state.

The audience lists ordinary verification steps: refresh the page, check the API and network responses, inspect storage and console logs, and interact with the interface. The same observations can be made available to an agent.

A generic instruction to verify in a browser leaves room for interpretation. A repeatable script can run a consistent sequence and report which specific check failed.

A repeatable verification command
FOLIE 2 / 5A repeatable verification commandThe slide contrasts a prose reminder with a command that reports the failed reload check.

The presenters contrast nondeterministic model responses with commands that carry out defined checks. A script can make the check more consistent, though its coverage and correctness still matter.

They created Snack as a workshop template, not a generic verifier for every app. Its commands start and stop the application, check its environment, drive the waitlist and inspect results.

Snack can inspect storage, take page snapshots and screenshots, and run checks. The example also includes a model-based judge for questions that are not captured by an exact comparison.

Proser says shared verification tools can benefit the whole team. Nisi adds that a meaningful test suite can preserve behavioral expectations even when an implementation is rewritten.

The presenters demonstrate snapshots as JSON and screenshots as evidence. Browser debugging can also reveal performance bottlenecks instead of asking an agent to guess why a page is slow.

The waitlist example checks storage and reloads the page. Because storage is empty, the verifier can expose the persistence bug and give the agent a concrete failure to address.

Inspecting the waitlist state
FOLIE 3 / 5Inspecting the waitlist stateThe exercise checks whether the supposedly saved entry actually reached local storage.

They note that verification can cover backend and database operations as well as the UI. Each team needs checks tailored to its own application and definition of success.

Nisi gives an example of making an otherwise invisible animation observable: logging a ball's coordinates can reveal an unexpected jump. A useful feedback loop exposes the state needed to diagnose the problem.

04

Build verification loops

They explain regression checks, failure feedback and evidence limitations.

For the waitlist, a Playwright-style check starts empty, fills an address, clicks the button and inspects the resulting state. The same check can be rerun as a regression test after later changes.

A screenshot alone is not proof. It may show a plausible state reached through the wrong path or conceal side effects; verify the actual journey and the underlying state as well.

A repeatable loop gives an agent feedback it can act on: reproduce a failure, change the implementation, rerun the check and preserve the result. This reduces the need for a person to prompt each individual step.

Detailed error messages matter because they show what failed and how the system reached that state. An agent can use that information to investigate rather than merely seeing a generic failure.

The speakers do not advocate prescribing every implementation step. They want clear outcome checks while leaving room for the agent to choose a solution within the constraints.

They relate the process to the familiar red-green-refactor cycle: reproduce the failure, implement a fix and demonstrate the result. The proof is part of the work, not an afterthought.

The live doctor command checks the local environment, browser session and build. A subsequent storage check shows that the sample address was not saved.

05

Receipts, judges and a detective exercise

They discuss recorded runs, semantic evaluation and stale proof.

The presenters discuss retaining receipts from runs. Those records can help investigate current failures and build future evaluation cases, provided that they are relevant and handled appropriately.

A later demo introduces misleading confirmation text: the page may say a seat is confirmed even though the underlying state only says waitlisted. Exact checks and semantic judgments can each miss different problems.

The team discusses fast decision models as one possible judge. Such a model is another fallible component, so its classifications also require evaluation rather than automatic acceptance.

In the Saboteur and Detective exercise, a hidden bug is inserted into the demo and the participant must identify it with evidence. The exercise scores whether a claim is supported, not just how confident it sounds.

During the live run, the doctor shows an old failure receipt tied to code that has changed. This illustrates why evidence needs to be associated with the version and conditions it actually checked.

Scoring the detective
FOLIE 4 / 5Scoring the detectiveThe scorecard distinguishes supported findings from false confidence.

The demonstration encounters an output problem, which the presenters acknowledge. They use the exercise to distinguish a correctly identified bug, a false success claim, an invented bug and an answer without evidence.

Each missed failure can become a new evaluation case. The speakers suggest building a baseline and running it consistently, then evolving it with the team as new failure modes appear.

Old receipts can become stale when code or circumstances change. A passing result from yesterday does not establish that today's revision passes the same checks.

06

Evaluations and deployment

They cover tailored tools, CI, review and monitoring.

For a web app, the presenters recommend starting with a tailored verifier and a baseline evaluation. Give agents visibility into rendering, network traffic, storage and performance where those matter to the application.

The particular observations depend on the product. For sign-on, for example, the checks might include whether a cookie and its expiration were set correctly.

Save evidence of the user journey, including failures and timing, so humans can inspect what happened and teams can use recurring failures to improve checks. A recording can complement, but does not replace, appropriate review.

From receipts to evaluation cases
FOLIE 5 / 5From receipts to evaluation casesThe slide shows how failures can become cases for later evaluation.

The presenters describe building an evidence ladder: unit tests, evaluations and smoke tests accumulate as the application changes. Running previous checks helps catch regressions, though no suite proves the absence of every defect.

Asked how to ensure checks run, Proser favors enforcement in CI over relying only on a model choosing to follow a skill. Nisi also mentions local hooks and repository instructions as ways to prompt checks.

They describe the value of fast local feedback alongside CI. An agent can detect and fix a problem before returning work to a human, while shared CI remains an independent team-level check.

A question compares this with existing end-to-end tests. Nisi says the benefit is a shorter feedback loop: the agent can run the tools itself and return evidence instead of waiting for a person to discover an obvious failure.

Nisi says he relies on CI and automated code review, but points out that passing checks can still accompany code that does nothing useful. Verification must test the intended outcome as well as avoid regressions.

For production, Proser suggests verifying in a preview environment when available and monitoring a rollout, including metrics and feature flags. The appropriate safeguards depend on the system and do not eliminate risk.

Mehr aus diesem Kanal

9 Folien21:32EN
AI Engineer· 29. Okt. 2026Shy Ruparel on AI agent reliability and recovery after failuresShy Ruparel · TemporalTemporal’s survey finds a gap between frequent agent use and dependable deployment. Ruparel demonstrates a synthetic payout workflow that resumes after workers stop.AgentenObservability & ZuverlässigkeitAgent Engineering+2
7 Folien14:50EN
AI Engineer· 29. Okt. 2026Cole Gannaway on code review, cross-repository risk and AI software factoriesCole Gannaway · QodoA one-line rename can pass local checks while affecting distant clients. Qodo’s Cole Gannaway explains how review context, shared rules and independent agents can expose those risks.Code review & verificationCoding-AgentenEntwicklungs-Workflows & Tests+2
5 Folien11:47EN
AI Engineer· 29. Okt. 2026Revolut’s David Abitbol on self-hosting AI coding models at scaleDavid Abitbol · RevolutAbitbol shares engineering delivery trends, GPU-serving costs and latency tuning, then describes controls for operating the tools in a regulated bank.Local inferenceAI cost & performanceDeveloper productivity+2
4 Folien21:47EN
AI Engineer· 28. Okt. 2026Patrick Smyth on Open-Source Supply Chain Security in the AI EraPatrick Smyth · ChainguardChainguard’s Patrick Smyth discusses faster exploitation, malware in dependencies, zero-days and the expanding attack surface around developer workflows.CybersecurityOpen-source ecosystemsAI security+2
5 Folien14:09EN
AI Engineer· 28. Okt. 2026Taylor Luttrell-Williams on Finding Logic Vulnerabilities with SonarQube Hunter AgentTaylor Luttrell-Williams · SonarSonar’s Taylor Luttrell-Williams explains how a security agent maps a codebase, investigates logic flaws and presents validated findings alongside conventional scans.CybersecurityAI securityCode review & verification+2
5 Folien16:29EN
AI Engineer· 28. Okt. 2026Chris Vela on Benchmarking vLLM Configurations with Runpod BenchPodChris Vela · RunpodRunpod’s Chris Vela demonstrates a dashboard for comparing LLM serving configurations and choosing performance settings with workload-specific data.InferenceBenchmarksAI cost & performance+2