# Roo Modes Enhancement Project: Current Context This document serves as a scratchpad and progress tracker for defining and refining Roo Code modes. ## Mode Development To-Do List ### Default Modes to Enhance: - [x] Code Mode - [x] Ask Mode - [x] Debug Mode - [x] Orchestrator Mode ### New Custom Modes to Create: - [x] QA Tester Mode - [x] Enhanced Planning Mode - [x] Deep Research Mode - [x] Deep Thinker Mode - [x] Code Reviewer Mode - [x] ReScript Master Mode - [x] Haskell God Mode ## Initial Analysis & Findings from `roo.md` * **Core Customization Mechanisms:** * **Custom Modes:** Defined via `slug`, `name`, `roleDefinition`, `groups` (tool access + `fileRegex`), `whenToUse`, `customInstructions`. Can be global (`custom_modes.json`) or project-specific (`.roomodes`). * **Custom Instructions:** Applied globally, per-workspace, or per-mode. File-based instructions (`.roo/rules/`, `.roo/rules-{mode-slug}/`, `.roorules`, `.roorules-{mode-slug}`) offer structured ways to manage these. Precedence matters. * **System Prompt Override (`.roo/system-prompt-{mode-slug}`):** Advanced "footgun" feature for complete control over a mode's system prompt. * **Key Features to Leverage for Modes:** * **Tools:** Access controlled by `groups` in mode definition. Understanding available tools ([`read_file`](roo.md:915), [`search_files`](roo.md:921), [`list_files`](roo.md:927), [`list_code_definition_names`](roo.md:933), [`apply_diff`](roo.md:941), [`insert_content`](roo.md:947), [`search_and_replace`](roo.md:954), [`write_to_file`](roo.md:966), [`execute_command`](roo.md:984), [`browser_action`](roo.md:973), MCP tools like [`use_mcp_tool`](roo.md:991) and [`access_mcp_resource`](roo.md:998), workflow tools like [`ask_followup_question`](roo.md:1008), [`attempt_completion`](roo.md:1014), [`switch_mode`](roo.md:1022), [`new_task`](roo.md:1028)) is crucial. * **MCP (Model Context Protocol):** Essential for modes requiring external data or actions (Deep Research, ReScript Master, Haskell God). Servers like Context7 and Playwright are mentioned. Roo can also create MCP servers ([`roo.md:409`](roo.md:409)). * **Context Mentions (`@`):** Useful for providing specific context to modes (e.g., `@problems`, `@/path/to/file.ts`). * **Shell Integration:** For modes that need to run commands. * **Sticky Models:** Each mode remembers its last used AI model. * **Boomerang Tasks (`new_task` tool):** Orchestrator mode uses this to delegate. Could be relevant for complex modes breaking down their own work. * **User's Specific Mode Requirements (Summary):** * **QA Tester:** Memory bank, code/test case analysis, test execution/writing. * **Enhanced Planning:** Triggered by repeated failures; CoT, ToT, research, step-by-step planning. * **Deep Research:** In-depth research using MCPs (Context7, Playwright). * **Deep Thinker:** Thought-oriented analysis, precursor to Enhanced Planning. * **Code Reviewer:** Understand project (memory bank), iterative file review, `review.md` for notes. * **ReScript Master:** Assist with large ReScript monorepo, grep/code search, use `rescript-llm-full.txt`. * **Haskell God:** Assist with large Haskell repo, robust file reading, grep search. ## General Notes & Research Topics * Prompt engineering best practices for AI assistants/agents. * Examples of system prompts for similar specialized AI roles (e.g., from GitHub, articles). * How to effectively use "HIGHEST PRIORITY" or similar emphasis in prompts. * Optimal `fileRegex` patterns for different modes. * Interaction patterns between modes (e.g., Deep Thinker -> Enhanced Planning). * Sequential thinking MCP tool usage for planning/analysis modes.