The rooroo workflow follows a structured lifecycle managed by the Rooroo Navigator, moving through several distinct phases:
Phase 0: Optional Brainstorming
Users can initiate the process using the 💡 Rooroo Idea Sparker.
Phase 1: User Interaction & Task Triage
The Rooroo Navigator receives user input (a goal) and performs triage:
- Complex/Uncertain goals: The Planner creates sub-tasks and
context.md files, which the Navigator then adds to the queue. - Simple/Clear goals: The Navigator creates the task and
context.md for direct execution or queuing. - Ambiguous goals: The Navigator asks the user for clarification.
Phase 2: Queued Task Dispatch
The Navigator checks the .rooroo/queue.jsonl. If tasks exist, the Navigator reads the task and calls the assigned Expert. The Expert executes the task using the provided context.md and produces artifacts.
Phase 3: Expert Report Processing
The Navigator receives a JSON Output Envelope from the Expert:
NeedsClarification: The Navigator asks the user and relays the response to the Expert.Done: The Navigator logs the event and updates the queue. If the queue is not empty, it returns to Phase 2; otherwise, it moves to Phase 4.Failed: The Navigator logs the error and moves to Phase 4.
Phase 4: User Decision Point
The Navigator prompts the user for decisions or next steps, which can loop back to any relevant phase or await new input.
+----------------------------------------------------------------------+ Phase 0: Optional Brainstorming +----------------------------------------------------------------------+
[User Initiates Brainstorming with 💡 Rooroo Idea Sparker]
+----------------------------------------------------------------------+ Phase 1: User Interaction & Task Triage (Navigator) +----------------------------------------------------------------------+
[User Input (Goal)] -> [🧭 Rooroo Navigator] -> {Triage}
|
|--- (Complex/Uncertain) --> [Planner: Sub-tasks & context.md] --> [Navigator: Add to Queue]
|
|--- (Simple, Clear for Dev/Analyzer/Doc) --> [Navigator: Task & context.md] --> [Direct Exec or Queue]
|
|--- (Ambiguous) --> [Navigator: Clarify with User]
|
+--- ("Proceed"/Auto) --> [Phase 2] / (Needs Input) --> [Phase 4]
+----------------------------------------------------------------------+ Phase 2: Queued Task Dispatch (Navigator) +----------------------------------------------------------------------+
[Navigator: Check Queue] --(Not Empty)--> [Navigator: Read Task, Call Expert]
| |
(Empty) --> [Inform User, Phase 4] v
[Expert: Execute (uses context.md, creates artifacts)]
| (Expert returns JSON Output Envelope)
v
[Phase 3]
+----------------------------------------------------------------------+ Phase 3: Expert Report Processing (Navigator) +----------------------------------------------------------------------+
[Navigator: Receives JSON Output Envelope]
|
|--- ("NeedsClarification") --> [Navigator: Ask User] --> [Relay to Expert]
|
|--- ("Done"/"Failed") --> [Log, Update Queue, Inform User]
| |
| +-- (If "Failed") --> [Phase 4]
| +-- (If "Done" & Queue Not Empty) --> [Phase 2]
| +-- (If "Done" & Queue Empty) --> [Phase 4]
+----------------------------------------------------------------------+ Phase 4: User Decision Point (Navigator) +----------------------------------------------------------------------+
[Navigator: Prompts User for Decision/Next Steps] --> [Loop to Relevant Phase or Await New Input]