Workflows
End-to-end walkthroughs showing how Plan0 fits into your development process.
1. Plan a new feature and hand it off to an agent
Goal: Build a canvas that describes a new feature, then pass it to Claude Code (or another agent) to generate an implementation plan.
Setup
- A Plan0 project with the Application Development template applied.
- Claude Code (or another MCP-capable agent) connected via MCP.
Steps
-
Sketch the UI layer.
Press
Aon the canvas. Add a Group with typePage. Inside it, add:- A
FormComponent named "Sign-up form". - Three
Form FieldItems: "Email", "Password", "Confirm password".
- A
-
Sketch the backend.
Add a
Backend ServiceGroup. Inside it, add:- An
EndpointComponent named "POST /auth/register". - An
EntityComponent named "User".
- An
-
Connect them.
Draw a Connection from the
FormComponent to theEndpointComponent — this expresses the dependency. -
Mark them ready.
Select all the blocks you want the agent to work on. Right-click → Set status → Ready for implementation.
-
Hand off to the agent.
Open your agent and send the following prompt (or trigger it via Quick Prompts):
Connect to Plan0 via MCP. Call
list-connected-projects, thenget-project-settingsandget-current-canvas-building-blockswithdetailLevel: "skeleton". Generate a prioritized implementation plan for all building blocks marked "Ready for implementation".
What the agent sees
// list-connected-projects{"projectName": "My App","versions": ["Main", "v2 — serverless"],"activeVersionName": "Main"}// get-project-settings{"componentTypes": [...],"statuses": [...],"prompts": [...]}// get-current-canvas-building-blocks (detailLevel: "skeleton"){"buildingBlocks": [ { "id": "shape:abc", "name": "Sign-up form", "structuralType": "component", "semanticType": "form", "status": "ready-for-implementation" }, { "id": "shape:def", "name": "POST /auth/register", "structuralType": "component", "semanticType": "endpoint-component", "status": "ready-for-implementation" }]}The agent uses this context to generate a plan scoped to exactly what you've described on the canvas — no guessing about the scope or structure.
2. Iterate with Versions to compare two approaches
Goal: Explore an alternative architecture in a separate Version without touching the current plan.
Setup
- An existing project on Main with a working canvas.
Steps
-
Create a new version.
Open the version switcher (bottom toolbar) → New version → name it "v2 — serverless".
-
Sketch the alternative.
In this version, replace the
Backend ServiceGroup with anInfrastructureGroup. Add aCron JobandWebhooksComponent instead of a traditional service layer. -
Let the agent explore it.
Ask the agent to switch to the new version and evaluate the approach:
Switch to the "v2 — serverless" version of this project and describe the trade-offs of this architecture compared to the current Main version.
The agent will call
switch-versionand thenget-current-canvas-building-blockswithdetailLevel: "skeleton"to compare. -
Compare and decide.
Switch back to Main manually (version switcher). Review both versions.
-
Promote the winner.
If v2 is better: open the version switcher → … on Main → Replace with → choose "v2 — serverless".
Main now contains the new approach.
What the agent sees
// switch-version{"versionId": "page:abc","projectName": "My App"}// get-current-canvas-building-blocks (detailLevel: "skeleton"){"buildingBlocks": [ { "id": "shape:ghi", "name": "Cron Job", "structuralType": "component", "semanticType": "cron-component", "status": "not-implemented" }, { "id": "shape:jkl", "name": "Webhooks", "structuralType": "component", "semanticType": "webhooks-component", "status": "not-implemented" }]}Since version switching is per-user, your collaborators stay on Main while you explore.
3. Track implementation with Statuses and Suggestions
Goal: Use statuses and template-driven suggestions to track implementation progress and catch structural gaps.
Setup
- A project with the Application Development template.
- Building blocks already on the canvas from a planning session.
Steps
-
Triage blocks.
Go through each Component on the canvas:
- Blocks that need more detail → Refinement required (amber)
- Blocks fully specified → Ready for implementation (blue)
-
Generate an implementation plan for ready blocks.
Open the Quick Prompts panel and trigger "Create implementation plan for ready building blocks" (global scope).
This prompt asks your agent to generate a prioritized plan for every block with the "Ready for implementation" status.
-
Act on Suggestions.
Look for orange Suggestion badges on Components. A common example: an
InfrastructureComponent without aSecurityItem.Click the badge to see the advisory, then add the missing Item or dismiss the suggestion if it doesn't apply.
-
Update statuses as work progresses.
As your agent or team implements blocks, update their status:
- Work started → Work in progress (violet)
- Done → Done (green)
-
Use "Grill me on this" to refine unclear blocks.
Right-click a block that's still fuzzy → Quick Prompts → Grill me on this.
The interpolated prompt includes the block's name, type, description, and status — the agent will ask targeted questions to help you sharpen it.
What the agent sees
When triggered via get-current-canvas-building-blocks, the agent gets the status of every block and can filter to only those that are actionable:
// get-current-canvas-building-blocks (detailLevel: "skeleton"){"buildingBlocks": [ { "id": "shape:mno", "name": "POST /auth/register", "structuralType": "component", "semanticType": "endpoint-component", "status": "ready-for-implementation" }]}This loop — plan → status → agent → update → plan — keeps the canvas and the codebase in sync throughout the project.