Background
Most coding benchmarks stop at the first working version. Vibe Code Bench 1-100 measures what comes after: whether a model can evolve a working web application through a long sequence of dependent product requests without breaking what already works.
It picks up where Vibe Code Bench (VCB) leaves off. VCB measures zero-to-one generation, starting from scratch and producing a working web application. VCB 1-100 begins with a complete, fully passing web application from Vibe Code Bench v1.1 and asks the model to keep going.
Each task hands the model an ordered sequence of realistic requests without specific technical details, the kind a PM sends an engineer or a vibe coder types at an agent. Later requests depend on earlier features, data models, permissions and user journeys. The model keeps both its conversation and its code across the whole task. Every iteration has to add the new behavior while preserving all the behaviors before it, and the first incomplete iteration ends the attempt.
This matters because most real software work is not greenfield. It is shipping the next feature, migrating a schema without losing data, applying a policy change consistently across every surface of an app. It is the skill no one-shot benchmark touches, and the one that decides whether coding agents can be trusted with production codebases.
Overview
Long-horizon and realistic product requests
VCB v1.1 measures building an application from a specification. VCB 1–100 starts with a working application and asks the agent to extend it through up to ten dependent requests.
The requests describe product behavior that needs to be changed in plain English, similar to how developers prompt while vibe coding, without any technical jargon. The agent must locate the relevant code, understand existing systems, and choose an implementation of the feature on their own. Later turns retain the code, data, and conversation from earlier work. A short request can require substantial engineering, as compatibility with previously added features needs to be preserved.
Characters. Scale: 0–4,000. Select a row for details.
Million tokens. Scale: 0–40. Select a row for details.
File-change events. Scale: 0–40. Select a row for details.
Regression tests ensure that the app stays usable under development
Each iteration includes tests for the new request and selected regression tests for earlier behavior that must remain active. Both sets of tests run against the same submitted candidate app. If a model successfully adds a new feature, but breaks the existing app features in the process, we still consider that a failure.
Share of 11299 workflows (%). Scale: 0–100. Select a row for details.
About one third of all workflows in the dataset are regression checks: 3,747 out of 11,299 (33.2%), with the remaining 7,552 (66.8%) covering new feature checks. These numbers span the same 939 requests across 100 application arcs, including the test set and the validation set.
The regressions are a selected subset. At iteration 2 they cover 43.1% of the new request workflows from iteration 1. Later iterations still spend about 30% of each suite on regressions, but they do not re-check every earlier flow.
Methodology
A sequence of changes to one application
Each task starts with a working Vibe Code Bench v1.1 application and its saved app state. The model receives up to ten product requests, one at a time. It edits the same codebase throughout and retains its conversation and tool history. Later requests build on earlier features and decisions; they are not independent coding tasks.
After each change, a browser agent checks the new request and selected regression workflows against the submitted application. Every step must pass for a workflow to pass. The reported score counts consecutive completed iterations as long as they pass with 100% workflow success, stopping at the first incomplete or incorrect iteration. Breaking previous features (from previous iterations or the base app) also counts as failing.
All models use the same modified OpenHands V1 environment, with terminal access and preconfigured Supabase, Stripe test services, and MailHog. Each task has one ten-hour generation budget shared across its iterations. Evaluation time is excluded.
Task construction
Each task consists of a working starting application, an ordered sequence of product requests, and browser-based acceptance tests for each iteration.
Requests build on the product state left by earlier changes. They specify the desired behavior and preservation constraints without prescribing an implementation. The sequence covers five change types and contains up to ten iterations.
Each iteration includes new feature tests and selected regression tests. The tests assess observable behavior rather than require a particular internal code structure. The dataset contains 50 test set scenarios and 50 separate validation scenarios. All model scores reported on this page are only over the test subset.
Five kinds of software change
In software, the tasks cover many different types of changes that will be needed in producing and iterating on a real application.
Our feature requests are categorized into five types of changes, listed below with examples.
| Change type | What the agent must do | Example |
|---|---|---|
| Additive | Add a capability while keeping existing flows working. | Add a private Saved area for posts, with notes. |
| Cross-cutting | Apply one rule across related features and operations. | Add opt-in, read-only collection sharing across the feed, profiles, and shared links. |
| Schema migration | Change the data model without losing identity or history. | Organize saved posts into collections without losing any saved post or note. |
| Bug fix | Diagnose a reported symptom and preserve valid nearby behavior. | Make sure revoked share urls stay unavailable after new share urls are generated. |
| Revert | Remove a feature while retaining explicitly preserved behavior. | Remove public sharing while keeping collections, memberships, and notes. |
Share of 939 requests (%). Scale: 0–100. Select a row for details.
Cross-cutting changes form the largest group. Success requires applying a rule consistently across the product, not only adding a screen or endpoint. Migrations and reverts test a different skill: changing or removing functionality while retaining the data and behavior that must survive.
Quality Assurance
Tasks undergo expert review for clarity, realism and consistency. The experts also review the iteration checks to ensure that expected behavior in the checks follow from the request and that all reasonable implementations can satisfy the tests.
Each workflow must have reproducible setup, actions a browser can perform, and a clear result.
The review checks four things:
- Prompt/test agreement: Every tested expectation is supported by the request, and each core requirement has a corresponding check.
- Executable workflows: The steps can be performed in a browser, with enough setup information and a clear yes-or-no result.
- Realistic scope: The request gives enough information for a useful implementation without prescribing an unnecessary technology stack.
- Preservation and edge cases: The requested change does not contradict earlier live behavior, and important unhappy paths are covered.
Task review and execution checks serve different purposes: one checks what should be tested; the other checks that the application and test can run. Missing or incomplete observations are not treated as proof of an implementation defect.
Example task: Zeeter
Zeeter is a small social application with accounts, posts, profiles, likes, and follows. This standalone example is a separate task, not part of the test or validation sets.
| Iteration | Product request | Behavior that must survive |
|---|---|---|
| 1 | Add private saved posts and notes. | Existing posts, likes, follows, and account privacy. |
| 2 | Organize saved posts into collections. | Saved records and private notes. |
| 3 | Add opt-in, read-only collection sharing. | Collection membership and note privacy. |
| 4 | Keep revoked links expired after sharing resumes. | Access to independently shared collections. |
| 5 | Remove public sharing without losing data. | Private collections, memberships, and notes. |
| 6 | Reflect source edits and show deleted post placeholders. | Saved references and the removal of public sharing. |
Example request — iteration 1
Add a private Saved area where signed-in members can save and unsave posts from the feed, profiles, and post detail, then find their saved posts without changing likes or follows. Each saved post can have a private note of up to 500 characters; repeated saves must produce one entry, and saved posts must show the current source text after edits. Guests and other members must not see a member’s Saved area or notes.
Example acceptance workflow — save from the feed
1. Open Zeeter. Sign out if needed. Create username 'zt1w1owner', email 'zt1w1owner@example.com', password 'ZeeterPass123!'. Complete or skip profile setup to reach the home feed.
2. For this workflow only, the separate reader account is username 'zt1w1reader', email 'zt1w1reader@example.com', password 'ZeeterPass123!'. Create it only when instructed; later sign-ins use these same credentials. The original author is 'zt1w1owner' with password 'ZeeterPass123!'.
3. Publish a post with text 'zt1w1alpha source post'. Save it from the home feed.
4. Open Saved and confirm exactly one entry for 'zt1w1alpha source post'. Reload and confirm it remains.
In the example below, this workflow passed all four steps. Other workflows check note privacy, repeated saves, and existing interactions. Later regression checks include a previously shared URL: removing its button is not enough if guests can still open the URL.
Note that in real tasks from the test set the workflows are longer and test more complicated aspects of the changes, such as edge case interactions.
Example generated output
The image below shows the Zeeter starting app during a browser replay.

The evaluation GIF below shows this save-from-feed workflow after iteration 1.

Evaluation
We use Browser Use to evaluate the submitted application through its user interface. The evaluator agent follows each workflow and checks the expected behavior. Each iteration includes checks for the new request and selected regression checks for earlier functionality.
A workflow passes only when every step succeeds. The reported score credits an iteration only when all its workflows pass. We stop the task after the first incomplete iteration - if an application is broken we do not attempt to add more features on top.
A scenario’s score is the number of consecutive iterations passed, divided by the number planned for it. The benchmark score is the mean across scenarios. All models run on the same OpenHands harness, against the same scenarios and the same checks.