Version: v0.6.3 | Changelog | v0.6.0 Details | v0.5.0 Details
rooroo
is a minimalist AI orchestration framework for VS Code, designed to streamline software development using a team of specialized Rooroo agents. It emphasizes a clear, Navigator-led workflow, efficient task management, and robust communication, all while incorporating advanced prompting techniques for enhanced reliability.
Inspired by Buddhist philosophy, "ε¦ε¦" (rΓΊ rΓΊ) or "Thusness" reflects the idea of an underlying, consistent nature. This informs rooroo
's minimalist approach, focusing on the essential, specialized role of each agent.
- Navigator-Led Orchestration: The π§ Rooroo Navigator is your central guide, managing task flows, user interactions, and expert agent coordination with concise communication.
- Specialized Agent Team: A lean team of focused AI agents:
- ποΈ Rooroo Planner: Decomposes complex goals.
- π§βπ» Rooroo Developer: Crafts code and UIs.
- π Rooroo Analyzer: Investigates and delivers insights.
- βοΈ Rooroo Documenter: Creates clear documentation.
- π‘ Rooroo Idea Sparker: Acts as a Strategic Foresight Facilitator, guiding users through a structured process to explore problems, evaluate solutions, and produce a detailed Handoff Document. This document serves as a comprehensive blueprint, ready for delegation to execution agents. Its outputs are stored in
.rooroo/brainstorming/
.
- Structured Workflow & Communication:
- Task Management: Uses
.rooroo/queue.jsonl
for pending tasks. - Detailed Briefings: Tasks are detailed in
.rooroo/tasks/TASK_ID/context.md
, prioritizing links over embedded content. - Organized Artifacts: Outputs are stored in
.rooroo/tasks/TASK_ID/
. - Clear Reporting: Agents use a structured JSON "Output Envelope" to report to the Navigator.
- Event Logging: Key events are logged with severity in
.rooroo/logs/activity.jsonl
.
- Task Management: Uses
- Key Operational Guidelines:
- Minimalism & Specialization: Focused roles for clarity.
- Concise Context (Link, Don't Embed): Efficient briefings.
- Principle of Least Assumption: Agents clarify ambiguities, don't guess.
- Consistent Task IDs:
ROO#
prefixes for easy tracking. - Cost-Effectiveness: Uses appropriate LLM tiers per agent.
- Workspace-Relative Paths: Simplifies file referencing.
- Customizable Agent Behavior (Optional): Utilize the
.roo/rules/
directory for workspace-wide custom instructions to tailor agent behavior, aligning with Roo Code best practices for organization and potential performance improvements.
Using rooroo
involves these main steps:
- Setup: Install Roo Code VS Code extension.
- Load your
.roomodes
file.- For Roo Code v3.18.0 and later: You can use the YAML format for
.roomodes
. - For Roo Code versions earlier than v3.18.0: You must use the JSON format for
.roomodes
(e.g.,.roomodes.json
).
- For Roo Code v3.18.0 and later: You can use the YAML format for
- Reload VS Code.
- (Optional: For advanced customization, create a
.roo/rules/
directory and add custom instruction files to tailor agent behavior across your workspace.)
- Load your
- Initiate: Select π§ Rooroo Navigator and state your goal.
- Navigator Triage: The Navigator assesses your request:
- For complex/uncertain tasks, it engages the ποΈ Rooroo Planner to break it down into sub-tasks with
context.md
briefings. These go into the.rooroo/queue.jsonl
. - For simple, clear single-expert tasks (Developer, Analyzer, Documenter only), it prepares
context.md
and may execute directly or queue the task. - If ambiguous, it asks you for clarification.
- For complex/uncertain tasks, it engages the ποΈ Rooroo Planner to break it down into sub-tasks with
- Execution: The Navigator dispatches tasks from the queue to the assigned Rooroo expert. The expert uses its
context.md
and stores outputs in.rooroo/tasks/TASK_ID/
. - Reporting: The expert returns a JSON Output Envelope (status, message, artifacts) to the Navigator.
- Processing & Iteration: The Navigator parses the envelope:
NeedsClarification
: Relays question to you.Done
/Failed
: Logs event, updates queue, informs you. Auto-proceeds with plans if applicable.
- Monitor: Track progress via
.rooroo/queue.jsonl
and.rooroo/logs/activity.jsonl
.
(Refer to the Workflow Diagram below for a visual representation.)
Each Rooroo agent adheres to core principles like the Principle of Least Assumption and Concise Context File Preparation (linking over embedding).
- π§ Rooroo Navigator (β‘ Cheap/Fast Recommended): Your primary interface. Manages interactions, triages tasks, dispatches from the queue, processes expert reports, and logs events. Prioritizes concise communication.
- ποΈ Rooroo Planner (π§ Smart/Expensive Recommended): Decomposes complex goals into sub-tasks for the Developer, Analyzer, or Documenter. Creates their
context.md
briefings and can flag ambiguous expert choices for the Navigator to resolve. - π§βπ» Rooroo Developer (Custom / Varies): Executes coding tasks based on
context.md
. Stores outputs in its task folder or modifies project files. - π Rooroo Analyzer (β‘ Cheap/Fast Recommended): Performs analysis based on
context.md
. Generates reports in its task folder. - βοΈ Rooroo Documenter (β‘ Cheap/Fast Recommended): Creates/updates documentation based on
context.md
. Stores outputs in its task folder. - π‘ Rooroo Idea Sparker (π§ Smart/Expensive Recommended): Acts as a Strategic Foresight Facilitator, guiding users through a structured process to explore problems, evaluate solutions, and produce a detailed Handoff Document. This document serves as a comprehensive blueprint, ready for delegation to execution agents. Its outputs are stored in
.rooroo/brainstorming/
.
Balance LLM tiers per agent for optimal cost and capability.
rooroo
uses a clear, workspace-relative structure under the .rooroo/
directory for all its operations and artifacts.
<Project Root>/
βββ .rooroo/ # Core rooroo operational directory
β βββ queue.jsonl # Pending Tasks (JSON objects, one per line, ROO# IDs, strictly parsable)
β βββ logs/
β β βββ activity.jsonl # Activity Log (JSON objects, one per line, written by Navigator with escaped JSON)
β βββ rules/ # Optional: Workspace-wide custom instruction files (e.g., 01-general.md)
β βββ tasks/ # Directory for all task-specific data
β β βββ ROO#PLAN_20240101120000_initial_project/ # Example Planner Task Directory
β β β βββ context.md # Briefing FOR the Planner (concise, uses links)
β β βββ ROO#SUB_initial_project_S001/ # Example Sub-Task Directory (ROO#SUB_... ID from Planner)
β β β βββ context.md # Task briefing FOR the expert (Created by Planner, concise, uses links)
β β β βββ feature_component.py # Example artifact directly in task folder
β β β βββ data_analysis_report.md # Another example artifact
β β βββ ROO#TASK_20240101130000_fix_login/ # Example Direct Task Directory (ROO#TASK_... ID from Navigator)
β β β βββ context.md # Task briefing FOR the expert (Created by Navigator, concise, uses links)
β β β βββ login_fix.diff # Example artifact directly in task folder
β β βββ ...
β βββ plans/ # Optional: High-level plan overview documents from Rooroo Planner
β β βββ ROO#PLAN_20240101120000_initial_project_plan_overview.md
β βββ brainstorming/ # Optional: Summaries from Rooroo Idea Sparker sessions
β βββ brainstorm_summary_ROO#IDEA_20240101140000.md
β
βββ src/ # Example source code directory (Potentially modified by Rooroo Developer)
βββ ...
Key files driving rooroo
operations:
.rooroo/queue.jsonl
: Ordered list of tasks (JSON objects per line).- Defines: What needs to be done, by which expert, with what goal and context.
- Example Task:
{"taskId": "ROO#SUB_...", "suggested_mode": "rooroo-developer", "context_file_path": ".rooroo/tasks/ROO#SUB_.../context.md", "goal_for_expert": "Build feature X..."}
.rooroo/logs/activity.jsonl
: Append-only log of key events with severity (INFO, ERROR, etc.).- Tracks: What actions agents take and their outcomes.
- Example Log:
{"timestamp": "...", "agent_slug": "rooroo-navigator", "severity": "INFO", "task_id": "ROO#...", "event_type": "EXPERT_REPORT", "details": {"status": "Done"}}
.rooroo/tasks/TASK_ID/context.md
: The comprehensive Markdown briefing for an assigned agent.- Provides: Detailed goals, requirements, and links to relevant files/artifacts (prioritizing links over embedding content).
- Output Artifacts: Generated by experts (code, reports, docs) are stored directly in their respective task folders:
.rooroo/tasks/TASK_ID/
(e.g.,output.py
,analysis_report.md
).
+----------------------------------------------------------------------+ 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]