


Vibe Studio Enterprise
Enterprise Engineering Review System
Enterprise Engineering Review System
Enterprise Engineering Review System
Enterprise Engineering Review System
Human in Loop
Human in Loop
Human in Loop
This guide walks through the three parts of the Enterprise workflow: approving a change, letting review agents check it first, and finding anything that shipped in Build history.
This guide walks through the three parts of the Enterprise workflow: approving a change, letting review agents check it first, and finding anything that shipped in Build history.
This guide walks through the three parts of the Enterprise workflow: approving a change, letting review agents check it first, and finding anything that shipped in Build history.

In this guide
In this guide
In this guide
In this guide
Three chapters. Read them in order the first time, then use this page to look things up.
Three chapters. Read them in order the first time, then use this page to look things up.
Three chapters. Read them in order the first time, then use this page to look things up.

Chapter 1
Approve or reject a change
Approve or reject a change
Approve or reject a change
See what Vibe Studio built, compare it with what is live, then approve it or send it back.
See what Vibe Studio built, compare it with what is live, then approve it or send it back.
5 steps

Chapter 2
Review agents
Review agents
Review agents
Put a check in front of every merge so nothing reaches your live app unreviewed.
Put a check in front of every merge so nothing reaches your live app unreviewed.
5 steps

Chapter 3
Build history
Build history
Every version you have ever shipped, in plain language, with a way back.
Every version you have ever shipped, in plain language, with a way back.
2 views
CHAPTER 1
Approve or reject a change
Approve or reject a change
Approve or reject a change
Approve or reject a change
Vibe Studio never edits your live app. Every build lands on its own branch and everything you review is a preview deployed to its own URL. Approving marks the change ready to go. On Enterprise the merge that puts it in front of your users belongs to an engineer, so nothing here can release by accident.
Vibe Studio never edits your live app. Every build lands on its own branch and everything you review is a preview deployed to its own URL. Approving marks the change ready to go. On Enterprise the merge that puts it in front of your users belongs to an engineer, so nothing here can release by accident.
Vibe Studio never edits your live app. Every build lands on its own branch and everything you review is a preview deployed to its own URL. Approving marks the change ready to go. On Enterprise the merge that puts it in front of your users belongs to an engineer, so nothing here can release by accident.
1
Vibe Studio tells you the new version is ready
Vibe Studio tells you the new version is ready
Vibe Studio tells you the new version is ready
Vibe Studio tells you the new version is ready
When a build finishes, a card lands at the bottom of the chat. It repeats what you asked for, says what changed, and shows a green Tested & safe chip once the Flutter build passed and the app booted cleanly in the simulator. That card is the plain-language face of a pull request: Vibe Studio committed the work to a branch and opened the PR.
When a build finishes, a card lands at the bottom of the chat. It repeats what you asked for, says what changed, and shows a green Tested & safe chip once the Flutter build passed and the app booted cleanly in the simulator. That card is the plain-language face of a pull request: Vibe Studio committed the work to a branch and opened the PR.
When a build finishes, a card lands at the bottom of the chat. It repeats what you asked for, says what changed, and shows a green Tested & safe chip once the Flutter build passed and the app booted cleanly in the simulator. That card is the plain-language face of a pull request: Vibe Studio committed the work to a branch and opened the PR.
The simulator keeps running the new version while you decide.
The simulator keeps running the new version while you decide.
UNDER THE HOOD
push → GitHub webhook · commit on Vibe Studio/feat-signin-brand · PR opened


2
Put the new version next to the live one
Put the new version next to the live one
Put the new version next to the live one
Put the new version next to the live one
Above the simulator, the preview tabs list every build that is live right now: the change Vibe Studio just made, and any branch or pull request your engineers have open. Main is your production app. Each other tab is a Firebase Hosting preview channel on its own stable URL, so what you click is the real build and not a mockup. Switch between them, or put any two side by side. Approve and reject only appear on changes Vibe Studio built for you. Engineer branches are view-only.
Above the simulator, the preview tabs list every build that is live right now: the change Vibe Studio just made, and any branch or pull request your engineers have open. Main is your production app. Each other tab is a Firebase Hosting preview channel on its own stable URL, so what you click is the real build and not a mockup. Switch between them, or put any two side by side. Approve and reject only appear on changes Vibe Studio built for you. Engineer branches are view-only.
Above the simulator, the preview tabs list every build that is live right now: the change Vibe Studio just made, and any branch or pull request your engineers have open. Main is your production app. Each other tab is a Firebase Hosting preview channel on its own stable URL, so what you click is the real build and not a mockup. Switch between them, or put any two side by side. Approve and reject only appear on changes Vibe Studio built for you. Engineer branches are view-only.
You can even compare two engineer pull requests against each other.
You can even compare two engineer pull requests against each other.
UNDER THE HOOD
preview = Firebase Hosting channel · stable URL · compare any two
3
Approve, or send it back
Approve, or send it back
Approve, or send it back
Approve, or send it back
Approve marks the change ready to go. Reject closes the pull request, deletes the branch and puts the app back exactly as it was. Neither button touches main, so nothing your users see moves at this point and there is no decision here you cannot walk back from.
Approve marks the change ready to go. Reject closes the pull request, deletes the branch and puts the app back exactly as it was. Neither button touches main, so nothing your users see moves at this point and there is no decision here you cannot walk back from.
Approve marks the change ready to go. Reject closes the pull request, deletes the branch and puts the app back exactly as it was. Neither button touches main, so nothing your users see moves at this point and there is no decision here you cannot walk back from.
Rejecting drops you back into the build loop, which is where most changes get better.
Rejecting drops you back into the build loop, which is where most changes get better.
UNDER THE HOOD
approve = squash-merge + promote channel · reject = close PR + delete branch


4
Look through the saved versions
Look through the saved versions
Look through the saved versions
See version history opens the full list. Every version is there with the time it was saved and a one line description of what changed. The green dot marks the one you are on. Each entry is a commit on the branch, and Restore checks an earlier one back out into your draft.
See version history opens the full list. Every version is there with the time it was saved and a one line description of what changed. The green dot marks the one you are on. Each entry is a commit on the branch, and Restore checks an earlier one back out into your draft.
Restore an earlier version, or send the one you are on for review.
Restore an earlier version, or send the one you are on for review.
UNDER THE HOOD
each saved version = a commit · Restore = checkout that commit
5
Send it for a final check
Send it for a final check
Send it for a final check
On an Enterprise app the button reads Send for final check, and it does what it says: nothing goes live yet. It marks the change approved, fires a Slack message to your engineering team, and drops the pull request into their admin-portal review queue. An engineer merges it to main, or returns it to you with a note on what to change. The merge is the only thing your users ever see.
On an Enterprise app the button reads Send for final check, and it does what it says: nothing goes live yet. It marks the change approved, fires a Slack message to your engineering team, and drops the pull request into their admin-portal review queue. An engineer merges it to main, or returns it to you with a note on what to change. The merge is the only thing your users ever see.
On an Enterprise app the button reads Send for final check, and it does what it says: nothing goes live yet. It marks the change approved, fires a Slack message to your engineering team, and drops the pull request into their admin-portal review queue. An engineer merges it to main, or returns it to you with a note on what to change. The merge is the only thing your users ever see.
Returned work comes back with the engineer note attached, ready to iterate and resubmit.
Returned work comes back with the engineer note attached, ready to iterate and resubmit.
UNDER THE HOOD
approve → Slack webhook → admin review queue → squash-merge to main

CHAPTER 2
CHAPTER 2
Review agents
Review agents
Review agents
Review agents are the automated gate. They run against the pull request every time a change is ready, and report pass, fail or pending. A required agent blocks the merge until it passes, an advisory one only leaves a note. They never merge anything themselves. Their job is to catch what a person should not have to.
Review agents are the automated gate. They run against the pull request every time a change is ready, and report pass, fail or pending. A required agent blocks the merge until it passes, an advisory one only leaves a note. They never merge anything themselves. Their job is to catch what a person should not have to.
Review agents are the automated gate. They run against the pull request every time a change is ready, and report pass, fail or pending. A required agent blocks the merge until it passes, an advisory one only leaves a note. They never merge anything themselves. Their job is to catch what a person should not have to.
1
See what changed before anything runs
See what changed before anything runs
See what changed before anything runs
Vibe Studio posts a short summary in the chat: which version the work landed on, which files it touched, and how many lines moved. The panel on the right is the pull request diff, green for added lines and red for removed. Nobody has to read that to make a decision, but it is there when someone wants it.
Vibe Studio posts a short summary in the chat: which version the work landed on, which files it touched, and how many lines moved. The panel on the right is the pull request diff, green for added lines and red for removed. Nobody has to read that to make a decision, but it is there when someone wants it.
Vibe Studio posts a short summary in the chat: which version the work landed on, which files it touched, and how many lines moved. The panel on the right is the pull request diff, green for added lines and red for removed. Nobody has to read that to make a decision, but it is there when someone wants it.
Press Review changes when you are ready.
Press Review changes when you are ready.
UNDER THE HOOD
diff = Dart / Flutter changed files on the PR


2
Let the review agent work
Let the review agent work
Let the review agent work
The agent runs on opencode and works through a checklist against the code as it stands on the branch, reporting as it goes: finished, running now, still queued. It takes a moment because it is reading the change, not just checking that the build compiled. Nothing merges while this runs.
The agent runs on opencode and works through a checklist against the code as it stands on the branch, reporting as it goes: finished, running now, still queued. It takes a moment because it is reading the change, not just checking that the build compiled. Nothing merges while this runs.
The agent runs on opencode and works through a checklist against the code as it stands on the branch, reporting as it goes: finished, running now, still queued. It takes a moment because it is reading the change, not just checking that the build compiled. Nothing merges while this runs.
The review is never automatic. It starts when someone asks for it.
The review is never automatic. It starts when someone asks for it.
UNDER THE HOOD
review agent (opencode) runs on the PR head commit
3
Read the finding in plain language
Read the finding in plain language
Read the finding in plain language
If the agent finds something, it explains what it is, how much it matters, and which file and line it came from. No jargon, no stack traces. Fix it with Vibe Studio pushes another commit to the same branch and re-runs the checks. Talk to a human engineer hands it to a person on your team.
If the agent finds something, it explains what it is, how much it matters, and which file and line it came from. No jargon, no stack traces. Fix it with Vibe Studio pushes another commit to the same branch and re-runs the checks. Talk to a human engineer hands it to a person on your team.
If the agent finds something, it explains what it is, how much it matters, and which file and line it came from. No jargon, no stack traces. Fix it with Vibe Studio pushes another commit to the same branch and re-runs the checks. Talk to a human engineer hands it to a person on your team.
The flagged line is marked in the diff, so you can see it in context.
The flagged line is marked in the diff, so you can see it in context.
UNDER THE HOOD
finding → file + line in the diff


4
Clear the checks
Clear the checks
Clear the checks
Once the fix is in and the review runs clean you get an all clear: no problems found, every check passed. Passing the required checks is what unlocks approval. An advisory failure will still let you through, it just travels with the change as a note.
Once the fix is in and the review runs clean you get an all clear: no problems found, every check passed. Passing the required checks is what unlocks approval. An advisory failure will still let you through, it just travels with the change as a note.
Once the fix is in and the review runs clean you get an all clear: no problems found, every check passed. Passing the required checks is what unlocks approval. An advisory failure will still let you through, it just travels with the change as a note.
Approve stays disabled until every required check is green.
Approve stays disabled until every required check is green.
UNDER THE HOOD
required checks must pass before merge is enabled
5
Approval hands it over, the merge makes it live
Approval hands it over, the merge makes it live
Approval hands it over, the merge makes it live
Approving clears the automated gate and moves the pull request into your engineers’ review queue, with a Slack notification attached. An engineer merges it to main or returns it with a note. When the merge lands, the preview you have been clicking through becomes the live app, and the chat confirms it with the branch name and where it went.
Approving clears the automated gate and moves the pull request into your engineers’ review queue, with a Slack notification attached. An engineer merges it to main or returns it with a note. When the merge lands, the preview you have been clicking through becomes the live app, and the chat confirms it with the branch name and where it went.
Approving clears the automated gate and moves the pull request into your engineers’ review queue, with a Slack notification attached. An engineer merges it to main or returns it with a note. When the merge lands, the preview you have been clicking through becomes the live app, and the chat confirms it with the branch name and where it went.
Merged or returned, it reaches you the moment it happens, no refresh, with a link into Build history.
Merged or returned, it reaches you the moment it happens, no refresh, with a link into Build history.
UNDER THE HOOD
PR squash-merged · channel promoted · Firestore push, no reload

CHAPTER 3
Build history
Build history
Build history
Approvals, rejections, fixes, engineer notes and releases all end up in the same place. Build history is the record: what happened, when, who it was waiting on, and a way back to any earlier version. Every entry is a commit, with the pull request it belonged to and the preview it was deployed to.
Approvals, rejections, fixes, engineer notes and releases all end up in the same place. Build history is the record: what happened, when, who it was waiting on, and a way back to any earlier version. Every entry is a commit, with the pull request it belonged to and the preview it was deployed to.
Approvals, rejections, fixes, engineer notes and releases all end up in the same place. Build history is the record: what happened, when, who it was waiting on, and a way back to any earlier version. Every entry is a commit, with the pull request it belonged to and the preview it was deployed to.
1
Open the history next to the chat
Open the history next to the chat
Open the history next to the chat
Build history sits at the top of the window beside Chat with AI. Opening it swaps the chat rail for a feed of everything that has happened to this app, newest first and grouped by day. The simulator stays where it is, so you can read the history and look at the app at the same time.
Build history sits at the top of the window beside Chat with AI. Opening it swaps the chat rail for a feed of everything that has happened to this app, newest first and grouped by day. The simulator stays where it is, so you can read the history and look at the app at the same time.
Build history sits at the top of the window beside Chat with AI. Opening it swaps the chat rail for a feed of everything that has happened to this app, newest first and grouped by day. The simulator stays where it is, so you can read the history and look at the app at the same time.
Orange is still building, amber needs your review, green is live on main, grey is saved to your draft.
UNDER THE HOOD
feed = commits, PRs, preview deploys, merges


2
Open a version to see the detail
Open a version to see the detail
Open a version to see the detail
A single entry opens into what actually changed, in the same plain language as the rest of the product, with the steps the build went through underneath. Try it yourself points at the simulator so you can check the change instead of taking the summary on trust. If an engineer returned the change, their note sits here too.
A single entry opens into what actually changed, in the same plain language as the rest of the product, with the steps the build went through underneath. Try it yourself points at the simulator so you can check the change instead of taking the summary on trust. If an engineer returned the change, their note sits here too.
A single entry opens into what actually changed, in the same plain language as the rest of the product, with the steps the build went through underneath. Try it yourself points at the simulator so you can check the change instead of taking the summary on trust. If an engineer returned the change, their note sits here too.
Keep it and Undo it sit at the bottom if the entry is still waiting on you.
Keep it and Undo it sit at the bottom if the entry is still waiting on you.
UNDER THE HOOD
entry = commit + preview channel URL + merge SHA
Who does what
Who does what
Three parties touch a change, and only one of them can put it on main.
Three parties touch a change, and only one of them can put it on main.
You, the client
You, the client
Prompt Vibe Studio, click through the preview, approve or reject. Approving marks a change ready and notifies your team. You have no write access to main, which is what makes approving safe.
cannot merge
Review agents
Run against the pull request whenever a change is sent for review and report pass, fail or pending. Required agents block approval until they pass. Advisory ones travel along as a note.
automated checks on the PR
Your engineers
Your engineers
Get the Slack notification, work the review queue in the admin portal, then merge to main or return the change with a note. They can also build any branch or PR into its own preview for you to see, straight from their dashboard.
the only role that can merge
Nothing reaches main without an engineer merge. Approving is how you say the change is right, not how it ships.
Nothing reaches main without an engineer merge. Approving is how you say the change is right, not how it ships.
The same thing, in two languages
The same thing, in two languages
The product speaks plainly on purpose. If you work with the repository, or you are sitting next to someone who does, here is the same vocabulary on both sides.
The product speaks plainly on purpose. If you work with the repository, or you are sitting next to someone who does, here is the same vocabulary on both sides.
What you see
What it is
New version
New version
A branch, cut from main and named for what it does, like Vibe Studio/feat-add-height-input.
A branch, cut from main and named for what it does, like Vibe Studio/feat-add-height-input.
A branch, cut from main and named for what it does, like Vibe Studio/feat-add-height-input.
Change
Change
A commit on that branch.
A commit on that branch.
A commit on that branch.
Sent for review
Sent for review
A pull request, open and waiting.
A pull request, open and waiting.
A pull request, open and waiting.
Preview
Preview
A deploy of the branch on its own stable URL, in a pending state.
A deploy of the branch on its own stable URL, in a pending state.
A deploy of the branch on its own stable URL, in a pending state.
Live
Live
main, the branch your users are served from.
main, the branch your users are served from.
main, the branch your users are served from.
Approved
Approved
Sent for a final check: the pull request marked ready and queued for an engineer.
Sent for a final check: the pull request marked ready and queued for an engineer.
Sent for a final check: the pull request marked ready and queued for an engineer.
Merged
Merged
The pull request squash-merged into main, so the preview becomes the live app.
The pull request squash-merged into main, so the preview becomes the live app.
The pull request squash-merged into main, so the preview becomes the live app.
Rejected
Rejected
The pull request closed and the branch deleted.
The pull request closed and the branch deleted.
The pull request closed and the branch deleted.
Returned to you
Returned to you
The pull request left open with an engineer note attached.
The pull request left open with an engineer note attached.
The pull request left open with an engineer note attached.
Roll back
Roll back
An earlier commit restored, and shipped the same way as any other change.
An earlier commit restored, and shipped the same way as any other change.
An earlier commit restored, and shipped the same way as any other change.
Approving from your phone
Approving from your phone
Approving from your phone
Approving from your phone
The same decisions are on mobile, in the same order. Reviews rarely wait for someone to get back to a desk, so the approve card, the compare view and the publish confirmation all work at phone width, in light and dark.
The same decisions are on mobile, in the same order. Reviews rarely wait for someone to get back to a desk, so the approve card, the compare view and the publish confirmation all work at phone width, in light and dark.
The same decisions are on mobile, in the same order. Reviews rarely wait for someone to get back to a desk, so the approve card, the compare view and the publish confirmation all work at phone width, in light and dark.

Approve or reject

Compare before you decide

Live for your users
Good to know
Good to know
Good to know
Nothing is ever lost
Nothing is ever lost
Rejected work stays in Build history with everything else. Nothing is deleted from the record, only the branch is, and the commits behind it are still reachable.
Rejected work stays in Build history with everything else. Nothing is deleted from the record, only the branch is, and the commits behind it are still reachable.
Required and advisory
Required and advisory
A required agent blocks approval until it passes. An advisory one travels along as a note. Neither of them merges anything, that part belongs to your engineers.
A required agent blocks approval until it passes. An advisory one travels along as a note. Neither of them merges anything, that part belongs to your engineers.
Your work stays off main
Your work stays off main
Approving saves to your branch and deploys a preview on its own URL. Your users keep seeing main until an engineer merges, which is why you can approve all morning and release once.
Approving saves to your branch and deploys a preview on its own URL. Your users keep seeing main until an engineer merges, which is why you can approve all morning and release once.
It updates on its own
It updates on its own
When an engineer merges or returns your change, Vibe Studio shows it right away without a reload. Build history keeps the record either way.
When an engineer merges or returns your change, Vibe Studio shows it right away without a reload. Build history keeps the record either way.
Questions that come up
Questions that come up
Questions that come up
Questions that come up
Why did approving not put my change live?
Why did approving not put my change live?
Why did approving not put my change live?
Because on Enterprise approving is a request, not a release. It marks the pull request ready, notifies your engineers in Slack, and puts it in their review queue. The merge to main is what your users see, and an engineer makes it.
Because on Enterprise approving is a request, not a release. It marks the pull request ready, notifies your engineers in Slack, and puts it in their review queue. The merge to main is what your users see, and an engineer makes it.
Because on Enterprise approving is a request, not a release. It marks the pull request ready, notifies your engineers in Slack, and puts it in their review queue. The merge to main is what your users see, and an engineer makes it.
What happens when an engineer returns a change?
What happens when an engineer returns a change?
What happens when an engineer returns a change?
It comes back to you with their note attached and the pull request still open. You iterate with Vibe Studio on the same branch and resubmit. Nothing is lost in the handover.
It comes back to you with their note attached and the pull request still open. You iterate with Vibe Studio on the same branch and resubmit. Nothing is lost in the handover.
What happens to a change I reject?
What happens to a change I reject?
What happens to a change I reject?
The pull request closes and the branch is deleted, so the app goes back to how it was. The attempt stays in Build history, so you can see what was tried and ask for it again.
The pull request closes and the branch is deleted, so the app goes back to how it was. The attempt stays in Build history, so you can see what was tried and ask for it again.
The pull request closes and the branch is deleted, so the app goes back to how it was. The attempt stays in Build history, so you can see what was tried and ask for it again.
Can I approve one change and hold another?
Can I approve one change and hold another?
Can I approve one change and hold another?
Yes. Each change lives on its own branch with its own preview, so they do not queue behind each other. Your engineers merge them in whatever order makes sense.
Yes. Each change lives on its own branch with its own preview, so they do not queue behind each other. Your engineers merge them in whatever order makes sense.
Yes. Each change lives on its own branch with its own preview, so they do not queue behind each other. Your engineers merge them in whatever order makes sense.
What do review agents actually check?
What do review agents actually check?
What do review agents actually check?
Whatever you set them up to check: security, accessibility, mobile layout, performance, brand rules. Each returns pass, fail or pending against the pull request, and you choose which of them are allowed to block approval.
Whatever you set them up to check: security, accessibility, mobile layout, performance, brand rules. Each returns pass, fail or pending against the pull request, and you choose which of them are allowed to block approval.
Whatever you set them up to check: security, accessibility, mobile layout, performance, brand rules. Each returns pass, fail or pending against the pull request, and you choose which of them are allowed to block approval.
Do I need to read the code to approve?
Do I need to read the code to approve?
Do I need to read the code to approve?
No. Every screen leads with a plain summary of what changed, and the preview is the real build, so clicking through it tells you more than the diff will. The diff is on the right for whoever wants it.
No. Every screen leads with a plain summary of what changed, and the preview is the real build, so clicking through it tells you more than the diff will. The diff is on the right for whoever wants it.
No. Every screen leads with a plain summary of what changed, and the preview is the real build, so clicking through it tells you more than the diff will. The diff is on the right for whoever wants it.
Who on my team can approve?
Who on my team can approve?
Who on my team can approve?
Anyone with review rights on the project. Whoever approved is recorded on the entry in Build history along with the time, and the merge is recorded against the engineer who made it.
Anyone with review rights on the project. Whoever approved is recorded on the entry in Build history along with the time, and the merge is recorded against the engineer who made it.
Anyone with review rights on the project. Whoever approved is recorded on the entry in Build history along with the time, and the merge is recorded against the engineer who made it.
Do I have to use the chat to make every change?
Do I have to use the chat to make every change?
Do I have to use the chat to make every change?
No. Your engineers develop outside the app builder, and when they push to a branch Vibe Studio rebuilds it and stages the same review card you would get from a chat build. You review it the same way.
No. Your engineers develop outside the app builder, and when they push to a branch Vibe Studio rebuilds it and stages the same review card you would get from a chat build. You review it the same way.
No. Your engineers develop outside the app builder, and when they push to a branch Vibe Studio rebuilds it and stages the same review card you would get from a chat build. You review it the same way.
Can I add a teammate who has no Vibe Studio account yet?
Can I add a teammate who has no Vibe Studio account yet?
Can I add a teammate who has no Vibe Studio account yet?
Yes. Grant access by their email and they get an invitation. Their access turns on the moment they sign up, so you do not have to come back and do it again.
Yes. Grant access by their email and they get an invitation. Their access turns on the moment they sign up, so you do not have to come back and do it again.
Yes. Grant access by their email and they get an invitation. Their access turns on the moment they sign up, so you do not have to come back and do it again.





