Core concepts
Build, Debug and Optimize
The three things a run can be asked to do, and how you switch between them.
Every run answers one of three questions about a design: write it, explain why it is wrong, or make it cost less. That choice is separate from Agent or Plan mode and from scratch or project, and it is the axis that decides which panel opens on the right and what you get at the end.
The three things a run can do
| Intent | What comes back |
|---|---|
| Build | New or changed RTL, with whatever verification you asked for. The default, and everything the rest of these docs describes unless it says otherwise. |
| Debug | A diagnosis of a failure: root cause, evidence, and a fix you can accept or turn down. Nothing is written to your files by the run itself. |
| Optimize | A rewrite that measurably costs less, with a proof that behaviour is unchanged. Also a proposal rather than an applied edit. |
- Debug mode for a design that already exists and behaves wrongly.
- Optimize mode for a design that is correct and expensive.
Choosing on a new chat
The New chat screen flattens the two axes into the four things people actually arrive wanting to do. Debugging or optimising from a cold start means bringing the code with you, so those two tabs sit on top of the same project upload.
| Tab | What it sets up |
|---|---|
| From scratch | A Build run with an empty workspace. Describe the module and go. |
| Existing project | A Build run inside a project you upload; the agent edits your files in place. |
| Debug | A Debug run on a project you upload. |
| Optimize | An Optimize run on a project you upload. |
Switching inside a chat
Once a chat has produced code, Debug and Optimize toggles appear next to the composer. You do not need a new chat and you do not re-upload anything; the code from the most recent turn that produced any is carried into a workspace for you and stays there.
The toggles only appear once there is something to work on. On an empty chat there would be nothing to debug, so offering the choice would only produce an error one round trip later.
Intent belongs to the turn
Building a module, debugging it, then going back to adding features is one conversation. Each turn carries its own intent, so the panel on the right follows the latest turn: a diagnosis while you are debugging, the code panel again when you go back to building.
Note
Workspace mode works the other way round; once a chat is a project chat it stays one, even for a turn that is just a question. That difference is deliberate, and it is why a debug turn in the middle of a project conversation does not permanently change what the chat is.
What each intent requires
| Rule | Applies to |
|---|---|
| Agent mode only | Debug and Optimize. The Agent / Plan switch is replaced by a fixed label rather than offering a combination that would be refused. |
| Verilog only | Debug and Optimize. VHDL is supported for Build runs. |
| Tool switches do not apply | Debug and Optimize choose their own tools, so the Tools switches are disabled with the reason shown. |
| A higher minimum balance | Debug and Optimize. Both spend real work establishing the starting position before they can try anything, so starting one on a nearly empty wallet guarantees it stops halfway. |
These are checked before the run is dispatched, so an unsupported combination is refused up front rather than being quietly downgraded into something you did not ask for.