Refine project scope and modify tickets through conversational AI
Every project includes a collapsible chat panel where you can refine scope, add new tickets, update existing ones, or remove tickets you don’t need — all through natural conversation with AI.
Once you have tickets, the chat becomes a refinement tool:
Add tickets
Update tickets
Remove tickets
You: "Add a ticket for user testing"AI: "I'll add a user testing ticket. What should it cover?"You: "Test the new onboarding flow with 10 users"AI: [Calls generateTickets to create new ticket] "Added a user testing ticket. Check the board."
You: "Make the design ticket P0 priority"AI: [Calls listTickets to find "design" ticket] [Calls updateTickets with id and priority: "P0"] "Updated the design ticket to P0 priority."
You: "Remove the documentation ticket"AI: [Calls listTickets to find "documentation" ticket] [Calls removeTickets with that ticket's ID] "Removed the documentation ticket."
When the AI asks clarifying questions, they appear in a structured card:
┌─────────────────────────────────────────────┐│ Clarifying questions ││ ││ Question 1 of 3 ││ ││ What's your primary success metric? ││ ││ ○ User activation rate ││ ○ Time to first action ││ ○ Completion rate ││ ○ Other ││ ││ [Additional details (optional)] ││ ┌─────────────────────────────────────┐ ││ │ │ ││ └─────────────────────────────────────┘ ││ ││ [Continue] [Skip this question] │└─────────────────────────────────────────────┘
Features:
Progress indicator — “Question 1 of 3” shows your position
Multiple choice — Radio buttons for predefined options
Freeform text — Optional text area for additional context
Navigation — Continue to next question or skip
Skip all — Button to jump directly to ticket generation
Questions are tailored to your project type. A marketing campaign gets questions about audience and channels; an event gets questions about date and scale.
The chat uses a specialized system prompt after tickets are generated:
const PROJECT_CHAT_SYSTEM_PROMPT = `You are an expert project manager assistant.The user has ALREADY SUBMITTED their project idea. Do NOT ask them to describe it again.YOUR WORKFLOW:1. Start by asking 2-4 clarifying questions tailored to this project. Call setClarifyingQuestions tool FIRST, then send your message.2. Wait for responses. After answers, you may ask follow-ups or call generateTickets.3. If user says "skip", "generate tickets now", or similar, call generateTickets IMMEDIATELY.4. After calling generateTickets, tell the user clearly that tickets are generated and invite them to check the board or ask for changes.After tickets exist, the user can ask you to:- Add more (generateTickets)- Remove some (listTickets then removeTickets)- Change tickets (listTickets then updateTickets)Match ticket references by title when they say things like "remove the onboarding ticket" or "make ticket X higher priority".`
listTickets — Finds tickets by title for updates/removals
updateTickets — Modifies ticket fields
removeTickets — Deletes tickets by ID
When you reference a ticket by name (“the onboarding ticket”), the AI automatically calls listTickets to find the matching ID, then performs the requested operation.
<ConversationEmptyState title="Clarifying questions" description="We'll ask a few questions to refine your project, then generate tickets."> <Button onClick={sendSkip}>Skip to ticket generation</Button></ConversationEmptyState>