This workflow guides you through creating a new custom mode to be used in the Roo Code Software,
from initial requirements gathering to final implementation.
Gather Requirements
Understand what the user wants the mode to accomplish
Ask about the mode's primary purpose and use casesIdentify what types of tasks the mode should handleDetermine what tools and file access the mode needsClarify any special behaviors or restrictionsWhat is the primary purpose of this new mode? What types of tasks should it handle?A mode for writing and maintaining documentationA mode for database schema design and migrationsA mode for API endpoint development and testingA mode for performance optimization and profilingDesign Mode Configuration
Create the mode definition with all required fields
Unique identifier (lowercase, hyphens allowed)Keep it short and descriptive (e.g., "api-dev", "docs-writer")Display name with optional emojiUse an emoji that represents the mode's purposeDetailed description of the mode's role and expertise
Start with "You are Roo Code, a [specialist type]..."
List specific areas of expertise
Mention key technologies or methodologies
Tool groups the mode can accessClear description for the OrchestratorExplain specific scenarios and task types
Do not include customInstructions in the .roomodes configuration.
All detailed instructions should be placed in XML files within
the .roo/rules-[mode-slug]/ directory instead.
Implement File Restrictions
Configure appropriate file access permissions
Restrict edit access to specific file types
groups:
- read
- - edit
- fileRegex: \.(md|txt|rst)$
description: Documentation files only
- command
Use regex patterns to limit file editing scopeProvide clear descriptions for restrictionsConsider the principle of least privilegeCreate XML Instruction Files
Design structured instruction files in .roo/rules-[mode-slug]/
Main workflow and step-by-step processesGuidelines and conventionsReusable code patterns and examplesSpecific tool usage instructionsComplete workflow examplesUse semantic tag names that describe contentNest tags hierarchically for better organizationInclude code examples in CDATA sections when neededAdd comments to explain complex sectionsTest and Refine
Verify the mode works as intended
Mode appears in the mode listFile restrictions work correctlyInstructions are clear and actionableMode integrates well with OrchestratorAll examples are accurate and helpfulCreate mode in .roomodes for project-specific modesCreate mode in global custom_modes.yaml for system-wide modesUse list_files to verify .roo folder structureTest file regex patterns with search_files