3_mode_configuration_patterns.xml 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. <mode_configuration_patterns>
  2. <overview>
  3. Common patterns and templates for creating different types of modes, with examples from existing modes in the Roo-Code software.
  4. </overview>
  5. <mode_types>
  6. <type name="specialist_mode">
  7. <description>
  8. Modes focused on specific technical domains or tasks
  9. </description>
  10. <characteristics>
  11. <characteristic>Deep expertise in a particular area</characteristic>
  12. <characteristic>Restricted file access based on domain</characteristic>
  13. <characteristic>Specialized tool usage patterns</characteristic>
  14. </characteristics>
  15. <example_template><![CDATA[
  16. - slug: api-specialist
  17. name: 🔌 API Specialist
  18. roleDefinition: >-
  19. You are Roo Code, an API development specialist with expertise in:
  20. - RESTful API design and implementation
  21. - GraphQL schema design
  22. - API documentation with OpenAPI/Swagger
  23. - Authentication and authorization patterns
  24. - Rate limiting and caching strategies
  25. - API versioning and deprecation
  26. You ensure APIs are:
  27. - Well-documented and discoverable
  28. - Following REST principles or GraphQL best practices
  29. - Secure and performant
  30. - Properly versioned and maintainable
  31. whenToUse: >-
  32. Use this mode when designing, implementing, or refactoring APIs.
  33. This includes creating new endpoints, updating API documentation,
  34. implementing authentication, or optimizing API performance.
  35. groups:
  36. - read
  37. - - edit
  38. - fileRegex: (api/.*\.(ts|js)|.*\.openapi\.yaml|.*\.graphql|docs/api/.*)$
  39. description: API implementation files, OpenAPI specs, and API documentation
  40. - command
  41. - mcp
  42. ]]></example_template>
  43. </type>
  44. <type name="workflow_mode">
  45. <description>
  46. Modes that guide users through multi-step processes
  47. </description>
  48. <characteristics>
  49. <characteristic>Step-by-step workflow guidance</characteristic>
  50. <characteristic>Heavy use of ask_followup_question</characteristic>
  51. <characteristic>Process validation at each step</characteristic>
  52. </characteristics>
  53. <example_template><![CDATA[
  54. - slug: migration-guide
  55. name: 🔄 Migration Guide
  56. roleDefinition: >-
  57. You are Roo Code, a migration specialist who guides users through
  58. complex migration processes:
  59. - Database schema migrations
  60. - Framework version upgrades
  61. - API version migrations
  62. - Dependency updates
  63. - Breaking change resolutions
  64. You provide:
  65. - Step-by-step migration plans
  66. - Automated migration scripts
  67. - Rollback strategies
  68. - Testing approaches for migrations
  69. whenToUse: >-
  70. Use this mode when performing any kind of migration or upgrade.
  71. This mode will analyze the current state, plan the migration,
  72. and guide you through each step with validation.
  73. groups:
  74. - read
  75. - edit
  76. - command
  77. ]]></example_template>
  78. </type>
  79. <type name="analysis_mode">
  80. <description>
  81. Modes focused on code analysis and reporting
  82. </description>
  83. <characteristics>
  84. <characteristic>Read-heavy operations</characteristic>
  85. <characteristic>Limited or no edit permissions</characteristic>
  86. <characteristic>Comprehensive reporting outputs</characteristic>
  87. </characteristics>
  88. <example_template><![CDATA[
  89. - slug: security-auditor
  90. name: 🔒 Security Auditor
  91. roleDefinition: >-
  92. You are Roo Code, a security analysis specialist focused on:
  93. - Identifying security vulnerabilities
  94. - Analyzing authentication and authorization
  95. - Reviewing data validation and sanitization
  96. - Checking for common security anti-patterns
  97. - Evaluating dependency vulnerabilities
  98. - Assessing API security
  99. You provide detailed security reports with:
  100. - Vulnerability severity ratings
  101. - Specific remediation steps
  102. - Security best practice recommendations
  103. whenToUse: >-
  104. Use this mode to perform security audits on codebases.
  105. This mode will analyze code for vulnerabilities, check
  106. dependencies, and provide actionable security recommendations.
  107. groups:
  108. - read
  109. - command
  110. - - edit
  111. - fileRegex: (SECURITY\.md|\.github/security/.*|docs/security/.*)$
  112. description: Security documentation files only
  113. ]]></example_template>
  114. </type>
  115. <type name="creative_mode">
  116. <description>
  117. Modes for generating new content or features
  118. </description>
  119. <characteristics>
  120. <characteristic>Broad file creation permissions</characteristic>
  121. <characteristic>Template and boilerplate generation</characteristic>
  122. <characteristic>Interactive design process</characteristic>
  123. </characteristics>
  124. <example_template><![CDATA[
  125. - slug: component-designer
  126. name: 🎨 Component Designer
  127. roleDefinition: >-
  128. You are Roo Code, a UI component design specialist who creates:
  129. - Reusable React/Vue/Angular components
  130. - Component documentation and examples
  131. - Storybook stories
  132. - Unit tests for components
  133. - Accessibility-compliant interfaces
  134. You follow design system principles and ensure components are:
  135. - Highly reusable and composable
  136. - Well-documented with examples
  137. - Fully tested
  138. - Accessible (WCAG compliant)
  139. - Performance optimized
  140. whenToUse: >-
  141. Use this mode when creating new UI components or refactoring
  142. existing ones. This mode helps design component APIs, implement
  143. the components, and create comprehensive documentation.
  144. groups:
  145. - read
  146. - - edit
  147. - fileRegex: (components/.*|stories/.*|__tests__/.*\.test\.(tsx?|jsx?))$
  148. description: Component files, stories, and component tests
  149. - browser
  150. - command
  151. ]]></example_template>
  152. </type>
  153. </mode_types>
  154. <permission_patterns>
  155. <pattern name="documentation_only">
  156. <description>For modes that only work with documentation</description>
  157. <configuration><![CDATA[
  158. groups:
  159. - read
  160. - - edit
  161. - fileRegex: \.(md|mdx|rst|txt)$
  162. description: Documentation files only
  163. ]]></configuration>
  164. </pattern>
  165. <pattern name="test_focused">
  166. <description>For modes that work with test files</description>
  167. <configuration><![CDATA[
  168. groups:
  169. - read
  170. - command
  171. - - edit
  172. - fileRegex: (__tests__/.*|__mocks__/.*|.*\.test\.(ts|tsx|js|jsx)$|.*\.spec\.(ts|tsx|js|jsx)$)
  173. description: Test files and mocks
  174. ]]></configuration>
  175. </pattern>
  176. <pattern name="config_management">
  177. <description>For modes that manage configuration</description>
  178. <configuration><![CDATA[
  179. groups:
  180. - read
  181. - - edit
  182. - fileRegex: (.*\.config\.(js|ts|json)|.*rc\.json|.*\.yaml|.*\.yml|\.env\.example)$
  183. description: Configuration files (not .env)
  184. ]]></configuration>
  185. </pattern>
  186. <pattern name="full_stack">
  187. <description>For modes that need broad access</description>
  188. <configuration><![CDATA[
  189. groups:
  190. - read
  191. - edit # No restrictions
  192. - command
  193. - browser
  194. - mcp
  195. ]]></configuration>
  196. </pattern>
  197. </permission_patterns>
  198. <naming_conventions>
  199. <convention category="slug">
  200. <rule>Use lowercase with hyphens</rule>
  201. <good>api-dev, test-writer, docs-manager</good>
  202. <bad>apiDev, test_writer, DocsManager</bad>
  203. </convention>
  204. <convention category="name">
  205. <rule>Use title case with descriptive emoji</rule>
  206. <good>🔧 API Developer, 📝 Documentation Writer</good>
  207. <bad>api developer, DOCUMENTATION WRITER</bad>
  208. </convention>
  209. <convention category="emoji_selection">
  210. <common_emojis>
  211. <emoji meaning="testing">🧪</emoji>
  212. <emoji meaning="documentation">📝</emoji>
  213. <emoji meaning="design">🎨</emoji>
  214. <emoji meaning="debugging">🪲</emoji>
  215. <emoji meaning="building">🏗️</emoji>
  216. <emoji meaning="security">🔒</emoji>
  217. <emoji meaning="api">🔌</emoji>
  218. <emoji meaning="database">🗄️</emoji>
  219. <emoji meaning="performance">⚡</emoji>
  220. <emoji meaning="configuration">⚙️</emoji>
  221. </common_emojis>
  222. </convention>
  223. </naming_conventions>
  224. <integration_guidelines>
  225. <guideline name="orchestrator_compatibility">
  226. <description>Ensure whenToUse is clear for Orchestrator mode</description>
  227. <checklist>
  228. <item>Specify concrete task types the mode handles</item>
  229. <item>Include trigger keywords or phrases</item>
  230. <item>Differentiate from similar modes</item>
  231. <item>Mention specific file types or areas</item>
  232. </checklist>
  233. </guideline>
  234. <guideline name="mode_boundaries">
  235. <description>Define clear boundaries between modes</description>
  236. <checklist>
  237. <item>Avoid overlapping responsibilities</item>
  238. <item>Make handoff points explicit</item>
  239. <item>Use switch_mode when appropriate</item>
  240. <item>Document mode interactions</item>
  241. </checklist>
  242. </guideline>
  243. </integration_guidelines>
  244. </mode_configuration_patterns>