1+ <mode_creation_workflow >
2+ <overview >
3+ This workflow guides you through creating a new custom mode to be used in the Roo Code Software,
4+ from initial requirements gathering to final implementation.
5+ </overview >
6+
7+ <detailed_steps >
8+ <step number =" 1" >
9+ <title >Gather Requirements</title >
10+ <description >
11+ Understand what the user wants the mode to accomplish
12+ </description >
13+ <actions >
14+ <action >Ask about the mode's primary purpose and use cases</action >
15+ <action >Identify what types of tasks the mode should handle</action >
16+ <action >Determine what tools and file access the mode needs</action >
17+ <action >Clarify any special behaviors or restrictions</action >
18+ </actions >
19+ <example >
20+ <ask_followup_question >
21+ <question >What is the primary purpose of this new mode? What types of tasks should it handle?</question >
22+ <follow_up >
23+ <suggest >A mode for writing and maintaining documentation</suggest >
24+ <suggest >A mode for database schema design and migrations</suggest >
25+ <suggest >A mode for API endpoint development and testing</suggest >
26+ <suggest >A mode for performance optimization and profiling</suggest >
27+ </follow_up >
28+ </ask_followup_question >
29+ </example >
30+ </step >
31+
32+ <step number =" 2" >
33+ <title >Design Mode Configuration</title >
34+ <description >
35+ Create the mode definition with all required fields
36+ </description >
37+ <required_fields >
38+ <field name =" slug" >
39+ <description >Unique identifier (lowercase, hyphens allowed)</description >
40+ <best_practice >Keep it short and descriptive (e.g., "api-dev", "docs-writer")</best_practice >
41+ </field >
42+ <field name =" name" >
43+ <description >Display name with optional emoji</description >
44+ <best_practice >Use an emoji that represents the mode's purpose</best_practice >
45+ </field >
46+ <field name =" roleDefinition" >
47+ <description >Detailed description of the mode's role and expertise</description >
48+ <best_practice >
49+ Start with "You are Roo Code, a [specialist type]..."
50+ List specific areas of expertise
51+ Mention key technologies or methodologies
52+ </best_practice >
53+ </field >
54+ <field name =" groups" >
55+ <description >Tool groups the mode can access</description >
56+ <options >
57+ <option name =" read" >File reading and searching tools</option >
58+ <option name =" edit" >File editing tools (can be restricted by regex)</option >
59+ <option name =" command" >Command execution tools</option >
60+ <option name =" browser" >Browser interaction tools</option >
61+ <option name =" mcp" >MCP server tools</option >
62+ </options >
63+ </field >
64+ </required_fields >
65+ <recommended_fields >
66+ <field name =" whenToUse" >
67+ <description >Clear description for the Orchestrator</description >
68+ <best_practice >Explain specific scenarios and task types</best_practice >
69+ </field >
70+ </recommended_fields >
71+ <important_note >
72+ Do not include customInstructions in the .roomodes configuration.
73+ All detailed instructions should be placed in XML files within
74+ the .roo/rules-[mode-slug]/ directory instead.
75+ </important_note >
76+ </step >
77+
78+ <step number =" 3" >
79+ <title >Implement File Restrictions</title >
80+ <description >
81+ Configure appropriate file access permissions
82+ </description >
83+ <example >
84+ <comment >Restrict edit access to specific file types</comment >
85+ <code >
86+ groups:
87+ - read
88+ - - edit
89+ - fileRegex: \.(md|txt|rst)$
90+ description: Documentation files only
91+ - command
92+ </code >
93+ </example >
94+ <guidelines >
95+ <guideline >Use regex patterns to limit file editing scope</guideline >
96+ <guideline >Provide clear descriptions for restrictions</guideline >
97+ <guideline >Consider the principle of least privilege</guideline >
98+ </guidelines >
99+ </step >
100+
101+ <step number =" 4" >
102+ <title >Create XML Instruction Files</title >
103+ <description >
104+ Design structured instruction files in .roo/rules-[mode-slug]/
105+ </description >
106+ <file_structure >
107+ <file name =" 1_workflow.xml" >Main workflow and step-by-step processes</file >
108+ <file name =" 2_best_practices.xml" >Guidelines and conventions</file >
109+ <file name =" 3_common_patterns.xml" >Reusable code patterns and examples</file >
110+ <file name =" 4_tool_usage.xml" >Specific tool usage instructions</file >
111+ <file name =" 5_examples.xml" >Complete workflow examples</file >
112+ </file_structure >
113+ <xml_best_practices >
114+ <practice >Use semantic tag names that describe content</practice >
115+ <practice >Nest tags hierarchically for better organization</practice >
116+ <practice >Include code examples in CDATA sections when needed</practice >
117+ <practice >Add comments to explain complex sections</practice >
118+ </xml_best_practices >
119+ </step >
120+
121+ <step number =" 5" >
122+ <title >Test and Refine</title >
123+ <description >
124+ Verify the mode works as intended
125+ </description >
126+ <checklist >
127+ <item >Mode appears in the mode list</item >
128+ <item >File restrictions work correctly</item >
129+ <item >Instructions are clear and actionable</item >
130+ <item >Mode integrates well with Orchestrator</item >
131+ <item >All examples are accurate and helpful</item >
132+ </checklist >
133+ </step >
134+ </detailed_steps >
135+
136+ <quick_reference >
137+ <command >Create mode in .roomodes for project-specific modes</command >
138+ <command >Create mode in global custom_modes.yaml for system-wide modes</command >
139+ <command >Use list_files to verify .roo folder structure</command >
140+ <command >Test file regex patterns with search_files</command >
141+ </quick_reference >
142+ </mode_creation_workflow >
0 commit comments