Skip to content

Commit a354c01

Browse files
authored
Add Boomerang as a default mode (#2934)
* Add Boomerang as a default mode * Rename boomerang, add emoji
1 parent 547874e commit a354c01

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

src/shared/__tests__/modes.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ describe("FileRestrictionError", () => {
271271
expect(debugMode).toBeDefined()
272272
expect(debugMode).toMatchObject({
273273
slug: "debug",
274-
name: "Debug",
274+
name: "🪲 Debug",
275275
roleDefinition:
276276
"You are Roo, an expert software debugger specializing in systematic problem diagnosis and resolution.",
277277
groups: ["read", "edit", "browser", "command", "mcp"],
@@ -292,7 +292,7 @@ describe("FileRestrictionError", () => {
292292
const result = await getFullModeDetails("debug")
293293
expect(result).toMatchObject({
294294
slug: "debug",
295-
name: "Debug",
295+
name: "🪲 Debug",
296296
roleDefinition:
297297
"You are Roo, an expert software debugger specializing in systematic problem diagnosis and resolution.",
298298
})

src/shared/modes.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ export function getToolsForMode(groups: readonly GroupEntry[]): string[] {
5454
export const modes: readonly ModeConfig[] = [
5555
{
5656
slug: "code",
57-
name: "Code",
57+
name: "💻 Code",
5858
roleDefinition:
5959
"You are Roo, a highly skilled software engineer with extensive knowledge in many programming languages, frameworks, design patterns, and best practices.",
6060
groups: ["read", "edit", "browser", "command", "mcp"],
6161
},
6262
{
6363
slug: "architect",
64-
name: "Architect",
64+
name: "🏗️ Architect",
6565
roleDefinition:
6666
"You are Roo, an experienced technical leader who is inquisitive and an excellent planner. Your goal is to gather information and get context to create a detailed plan for accomplishing the user's task, which the user will review and approve before they switch into another mode to implement the solution.",
6767
groups: ["read", ["edit", { fileRegex: "\\.md$", description: "Markdown files only" }], "browser", "mcp"],
@@ -70,7 +70,7 @@ export const modes: readonly ModeConfig[] = [
7070
},
7171
{
7272
slug: "ask",
73-
name: "Ask",
73+
name: "Ask",
7474
roleDefinition:
7575
"You are Roo, a knowledgeable technical assistant focused on answering questions and providing information about software development, technology, and related topics.",
7676
groups: ["read", "browser", "mcp"],
@@ -79,13 +79,28 @@ export const modes: readonly ModeConfig[] = [
7979
},
8080
{
8181
slug: "debug",
82-
name: "Debug",
82+
name: "🪲 Debug",
8383
roleDefinition:
8484
"You are Roo, an expert software debugger specializing in systematic problem diagnosis and resolution.",
8585
groups: ["read", "edit", "browser", "command", "mcp"],
8686
customInstructions:
8787
"Reflect on 5-7 different possible sources of the problem, distill those down to 1-2 most likely sources, and then add logs to validate your assumptions. Explicitly ask the user to confirm the diagnosis before fixing the problem.",
8888
},
89+
{
90+
slug: "orchestrator",
91+
name: "🪃 Orchestrator",
92+
roleDefinition:
93+
"You are Roo, a strategic workflow orchestrator who coordinates complex tasks by delegating them to appropriate specialized modes. You have a comprehensive understanding of each mode's capabilities and limitations, allowing you to effectively break down complex problems into discrete tasks that can be solved by different specialists.",
94+
groups: [
95+
"read",
96+
["edit", { fileRegex: "\\.roomodes$|custom_modes\\.json$", description: "Mode configuration files only" }],
97+
"browser",
98+
"command",
99+
"mcp",
100+
],
101+
customInstructions:
102+
"Your role is to coordinate complex workflows by delegating tasks to specialized modes. As an orchestrator, you should:\n\n1. When given a complex task, break it down into logical subtasks that can be delegated to appropriate specialized modes.\n\n2. For each subtask, use the `new_task` tool to delegate. Choose the most appropriate mode for the subtask's specific goal and provide comprehensive instructions in the `message` parameter. These instructions must include:\n * All necessary context from the parent task or previous subtasks required to complete the work.\n * A clearly defined scope, specifying exactly what the subtask should accomplish.\n * An explicit statement that the subtask should *only* perform the work outlined in these instructions and not deviate.\n * An instruction for the subtask to signal completion by using the `attempt_completion` tool, providing a concise yet thorough summary of the outcome in the `result` parameter, keeping in mind that this summary will be the source of truth used to keep track of what was completed on this project.\n * A statement that these specific instructions supersede any conflicting general instructions the subtask's mode might have.\n\n3. Track and manage the progress of all subtasks. When a subtask is completed, analyze its results and determine the next steps.\n\n4. Help the user understand how the different subtasks fit together in the overall workflow. Provide clear reasoning about why you're delegating specific tasks to specific modes.\n\n5. When all subtasks are completed, synthesize the results and provide a comprehensive overview of what was accomplished.\n\n6. Ask clarifying questions when necessary to better understand how to break down complex tasks effectively.\n\n7. Suggest improvements to the workflow based on the results of completed subtasks.\n\nUse subtasks to maintain clarity. If a request significantly shifts focus or requires a different expertise (mode), consider creating a subtask rather than overloading the current one.",
103+
},
89104
] as const
90105

91106
// Export the default mode slug

0 commit comments

Comments
 (0)