The user opens a conversation in the context of a project and sends natural language messages to the AI Product Manager. The PM processes messages, orchestrates Claude Code CLI agents, and responds with updates, questions, or progress reports. The conversation remains ACTIVE until the user closes it or starts a new one.
stateDiagram-v2
[*] --> ACTIVE: User starts a new conversation
ACTIVE --> PROCESSING: User sends a message → PM is responding
PROCESSING --> ACTIVE: PM response delivered → user can send next message
PROCESSING --> ERROR: Agent execution failed
ERROR --> ACTIVE: User retries or continues conversation
ACTIVE --> CLOSED: User closes the conversation
CLOSED --> [*]
States
| State | Description | Transitions |
|---|---|---|
| ACTIVE | Conversation is open; user can send messages | → PROCESSING (send message), → CLOSED |
| PROCESSING | PM is processing the last message (CLI agents running) | → ACTIVE (response ready), → ERROR |
| ERROR | Agent execution encountered an error | → ACTIVE (user continues) |
| CLOSED | Conversation is finished; read-only history preserved | → [end] |
Message Roles
| Role | Description |
|---|---|
| USER | Message sent by the human user |
| PM | Response from the AI Product Manager |
| SYSTEM | Internal system messages (e.g., agent progress updates, errors) |
Business Rules
- A project can have multiple conversations (one active at a time in MVP)
- Starting a new conversation on a project automatically closes the previous one
- All messages are persisted regardless of state
- SYSTEM messages are shown as progress indicators (e.g., “Backend developer is implementing…”)
- The user can ask the PM to create a version at any point during an ACTIVE conversation
- Closing a project (ARCHIVED) prevents new conversations from being started
Was this page helpful?
Thanks for the feedback.