Vibe Lanes
Run a task through an ordered process where each checkpoint produces work, verifies the result, and carries approved context forward.
How Vibe Lanes work
A Vibe (Loop) defines one reusable checkpoint: the expected work, its verification, and its limits. It retries the work within those authored limits until verification passes or the Vibe stops for your direction.
A Vibe Lane (Spiral) arranges Vibes into an ordered recipe. As it moves through the checkpoints, it accumulates verified evidence, decisions, and outputs at each handoff. It never jumps backward unless the lane author explicitly groups contiguous checkpoints into a bounded loop.
Each checkpoint defines:
- Work — what the worker should produce.
- Verification — how the result is judged, either by an independent reviewer or by you.
- Bounds — the maximum attempts and time available before the checkpoint stops or asks you to steer.
Learn how to create the reusable definitions behind a lane in Vibes & Skills.
Before you start
Every task runs in a project directory. CrispyVibe uses the focused project by default, and you can choose any other folder when you create the task. You can author Vibes and Vibe Lanes in Automation without an open VibeSpace.
Open Automation or Vibe Lanes
Open Automation from the application side menu. The page heading reads Automation (Early Prototype), and its tabs are:
| Tab | Use it to |
|---|---|
| Overview | Learn how Skills, Vibes, Vibe Lanes, and Schedules fit together. |
| Tasks | Start tasks and follow them on the task dashboard. |
| Schedules | Run Vibe Lanes on a recurring cadence. See Schedules. |
| Vibe Lanes | Browse, create, and edit lanes. |
| Vibes | Manage reusable Vibes. See Vibes & Skills. |
| Skills | Manage Skill packages. See Vibes & Skills. |
⚠️ Note: Automation is an early prototype. Expect its screens and behavior to change between releases.
Explore the Examples
The Overview tab includes an Examples section. Select a scenario under Example scenario to see how Skills, Vibes, a Vibe Lane, and a Schedule combine for that kind of work. The Claude + GPT Review Cycle example shows a loop group: a Claude coding step and a GPT review step repeat until the review is approved, then the change is summarized.
The examples are illustrations. To run similar work, start from a starter lane such as Code and review loop.
Use the title-bar button
You can also use the flowchart button in the title bar. Its behavior depends on the active view:
| Active view | What the button does |
|---|---|
| Terminal Board | Opens Vibe Lanes in a spotlight. Use the pin button in the spotlight header to keep it as a board tile. |
| Detailed | Activates the existing Vibe Lanes tab or opens a new one. |
| Detached board window | Adds a Vibe Lanes tile directly to that window. |
Each board surface can contain one Vibe Lanes tile. In a detached board window, the button is disabled if the board is full or already contains the tile.
Inside Automation, opening a task, lane, Vibe, or a task’s worker or reviewer chat keeps you on the Automation surface instead of opening a VibeSpace pane. Use the back control above the detail view to return to where you came from.
Create or edit a Vibe Lane
You can build and change lanes without an open VibeSpace.
- Open Automation.
- Select Vibe Lanes.
- Select New Vibe Lane, or open an existing lane from the catalog.
- Enter the lane name and description.
- Expand Vibe Lane settings to set the steer limit, which controls how many times the task can ask you to steer an exhausted checkpoint.
- Find a ready Vibe in the Vibe library.
- Select its plus button to add it to the Vibe Lane recipe.
- Select a step and use the left or right controls to set its position.
- Under Contract, add any Required inputs and Produced outputs.
- Enable Ask user for an input when the task should pause and request a missing value from you.
- Expand Stable ID if you need to change the step’s unique key.
- Select Save Vibe Lane.
A step stays pinned to the Vibe version you added. When a step shows Update available, select the step, choose Use latest, review the updated definition, and save the lane.
⚠️ Note: Steps inside a loop group cannot be moved individually across the group boundary. Adjust or remove the group before changing that part of the route.
Understand lane changes and versions
Saving changes to an existing lane creates a new lane version. New tasks use the saved version; running, stopped, and completed tasks keep the exact route and checkpoint definitions from the version on which they started.
Lane changes do not move schedules automatically. A schedule keeps its pinned lane snapshot until you open the schedule and choose Update Vibe Lane. See Schedules for the review flow.
CrispyVibe includes these starter Vibe Lanes:
| Starter lane | What it does |
|---|---|
| Fix a bug | Reproduce, patch minimally, verify, then summarize the handoff. |
| Small feature | Implement a well-scoped feature test-first, then verify the result end to end. |
| Full feature delivery | Align, plan, design interfaces, build test-first, review design, gate on security and quality, then prove acceptance. |
| Code and review loop | A coder step and an independent reviewer step repeat as a loop group until the review is approved, then the change is summarized. |
| Incident response (hotfix) | Reproduce, root-cause from evidence, hotfix, lock a regression test, ship, and write a postmortem. |
| Public library release | Implement, diff the public API, choose a semantic version, write migrations, and dry-run the publish. |
| Product launch | Positioning, key messages, blog, social, a claims review, then a publisher handoff. |
| Research → decision memo | Frame the decision, gather sourced data, analyze, red-team, then write a board memo. |
Code and review loop loops its code and review steps up to 3 times and exits when the reviewer emits review_verdict equal to approved. If the limit is reached, the task asks you whether to advance or stop. Each step keeps its own engine, so you can point the coder and the reviewer at different providers.
On the Vibe Lanes catalog, Restore starters:
- re-adds starter lanes you deleted;
- refreshes unedited starter lanes to their latest shipped versions;
- leaves every starter lane you edited unchanged.
Create and run a task
- Open Automation and select Tasks, or open the Vibe Lanes task surface from the title bar.
- Select New task.
- Under Describe the work, enter the work you want completed.
- Under Choose a route, select a Vibe Lane.
- Under Review run, check the project directory. Select Choose… to pick a different folder, or Use focused project to switch back.
- Review the lane route and the engine summary for each step.
- Select Start task.
Start task stays disabled until you describe the work, select a ready lane, and have a project directory.
Start from a lane card
To run a specific lane, open Vibe Lanes in Automation and select Start task on that lane’s card. The New task screen opens with that lane already selected, and typing the description does not swap it for a suggested lane.
The task begins at the first checkpoint and follows the lane until it is Done, Stopped, or waiting for you.
⚠️ Note: The project directory is fixed when the task starts. Checkpoints, carry-forward values, retries, and reruns cannot move later work to another directory.
⚠️ Note: Every Vibe Lane worker, reviewer, handoff, outcome, and rerun session runs with Full Trust. There is no Standard trust option for lane steps. Review the lane and its assigned skills before starting it.
Understand task states
| State | Meaning |
|---|---|
| Running | The task is working or waiting for execution capacity. |
| Needs you | The task is paused for a Supply, Steer, or Review response. |
| Stopped | The task cannot continue without different work or changes to its setup. |
| Done | The final checkpoint passed and the outcome was recorded. |
Tasks that Need you appear first on the dashboard. CrispyVibe also sends a notification when a task first pauses for your response.
How a task moves through checkpoints
At each checkpoint, a worker performs the authored Work. Verification then compares the actual result with the checkpoint’s done-when definition.
By default, an independent reviewer agent returns PASS or FAIL:
- PASS records the handoff and declared outputs, then advances to the next checkpoint.
- FAIL returns reviewer feedback to the worker for another attempt at the same checkpoint.
- Exhausted bounds stop the task or ask you to steer, according to the Vibe’s limits.
The worker can change files and explain its work, but it cannot declare its own checkpoint complete. The independent reviewer decides whether the result passes. A checkpoint authored as Verified by: You pauses for your decision instead.
Carry-forward
A passed checkpoint writes a handoff and can add named outputs to carry-forward. Later checkpoints receive the paths to earlier handoffs and any required values, including after an app restart or a fresh agent session.
If a required value is missing, the task either asks you to supply it or stops, depending on how the lane was authored. Carry-forward values are context only; they cannot change the task directory or a step’s agent, model, mode, reasoning, or trust.
Respond when a task Needs you
Open the task to see its current request. You can answer it or stop the task.
Supply a missing value
A Supply request appears when a checkpoint needs an input marked ask-user and no earlier checkpoint provided it.
- Open the task.
- Enter the requested value.
- Submit the response.
CrispyVibe stores the value in carry-forward and runs the checkpoint.
Steer an exhausted checkpoint
A Steer request appears when a checkpoint reaches its attempt or time bound and is configured to escalate. The request includes the last reviewer feedback and the exhausted bound.
- Open the task.
- Review the last verification feedback.
- Enter guidance for the worker.
- Submit the response.
The checkpoint receives a fresh bounded attempt window and resumes. If the lane’s steer limit has already been reached, the task stops instead of asking again.
Review work yourself
A Review request appears after the worker finishes a checkpoint authored as Verified by: You.
- Open the task.
- Review the done-when checklist.
- Inspect the project files, diff, or worker chat.
- Choose Approve to pass the checkpoint, or Request changes to fail it.
- Enter feedback when requesting changes.
An approval advances the task. A change request returns your required feedback to the worker for another attempt, after which the checkpoint pauses for your review again. Time spent waiting for your verdict does not consume the checkpoint’s attempt or time budget.
Loop a group of steps
A lane author can repeat two or more contiguous checkpoints as one bounded group. Each step in the group keeps its own Vibe, engine, Skills, and limits, so a coding step and a review step can run on different agents. Each visit keeps its own attempts, handoffs, and history.
- In the Vibe Lane editor, select the first of two adjacent steps.
- Choose Loop selected steps.
- Use the plus or minus controls to adjust the contiguous group.
- Set Maximum iterations to the number of complete group visits allowed.
- Under Exit when, select the Output to check and a Comparison: Equals, Does not equal, or Is set.
- Under At iteration limit, choose Stop, Ask to steer, or Advance.
The final checkpoint in the group must produce the output used by Exit when. Grouped steps cannot be reordered across the group boundary. Lane cards and the step path mark repeating spans, for example loops up to 3x.
When the final checkpoint passes, CrispyVibe evaluates the exit condition. A true result advances beyond the group; a false result starts another visit until the maximum is reached. At the limit:
- Stop stops the task with the reason Loop iteration limit reached.
- Ask to steer pauses the task as Needs you with Loop needs a decision. Choose Advance anyway or Stop task.
- Advance continues past the group.
Follow a task
Open a task to inspect:
- its checkpoint path and current status;
- current activity and attempt history;
- the last verification result and feedback;
- carry-forward inputs and outputs;
- an open Supply, Steer, or Review request;
- worker and reviewer chats.
Select a worker or reviewer chat button to open that chat. In Automation, the chat opens in place; use the back control to return to the task. Elsewhere, such as a Vibe Lanes tab or board tile, the chat opens in its own pane.
Worker and reviewer chats remain readable after a task stops or completes. A finished chat shows Session ended and does not reconnect unless you explicitly rerun the step.
The current checkpoint shows the engine reported by its live session. Completed attempts retain their own engine history, so changing app defaults later does not rewrite what ran.
Rerun one step
You can rerun an attempted checkpoint after a task reaches Done or Stopped.
- Open the task.
- Select a checkpoint with attempt history.
- Select the rerun button.
- Choose the engine for this attempt.
- Select Rerun.
The step receives a fresh bounded attempt window and fresh worker and reviewer processes while keeping the existing readable chat history. Earlier attempts remain intact, the Vibe Lane does not change, and downstream checkpoints do not run again automatically.
After the rerun passes, the task returns to its previous Done or Stopped state.
Run many tasks
Tasks keep independent state. One task stopping or needing your response does not pause or change another task.
CrispyVibe does not isolate each task in a separate workspace. Run code-editing tasks one at a time per project so two workers do not edit the same files concurrently.
For recurring tasks, create a frozen lane schedule in Schedules. To script lanes and tasks, use crispy lane and crispy lane task in the Agent CLI.
Restart behavior
After CrispyVibe restarts:
- Running tasks resume from the last saved checkpoint.
- Needs you tasks remain paused with the same request.
- Done and Stopped tasks remain in their terminal state.
- CrispyVibe refuses to replay invalid or inconsistent saved task state.
Troubleshooting
| Issue | Resolution |
|---|---|
| A task says Needs you | Open it and answer the Supply, Steer, or Review request, or stop the task. |
| A task stopped after missing input | The lane required a value that no earlier checkpoint supplied and did not mark it ask-user. Update the lane before starting different work. |
| A task stopped after repeated Steer requests | The lane reached its steer limit. Review its Work, Verification, and Bounds before starting different work. |
| A task stopped with Loop iteration limit reached | A loop group used all its iterations without meeting Exit when, and its At iteration limit setting is Stop. Check that the final step in the group emits the exit output, or raise Maximum iterations. |
| Start task is disabled | Describe the work, select a lane marked ready, and make sure a project directory is selected. |
| A checkpoint keeps failing | Tighten its Work or Verification, or add an earlier checkpoint that produces the required context. |
| A selected model or mode stops the task | The agent did not offer or apply that saved choice. Edit the lane and select an available option. |
| An agent’s Model list is empty | Wait for engine options to load. If a warning appears, verify that the agent is installed and connects in a regular ACP chat. |
| The Vibe Lanes spotlight remains open after pinning | That board already has a Vibe Lanes tile, or it has reached its tile limit. |
| A task does not resume after restart | Its saved state failed validation and cannot be replayed. |