Skip to content

[Feature Request] Restore system-prompt-{mode-slug} Override Capability for Custom Modes #11793

@StellaHermes

Description

@StellaHermes

Problem (one or two sentences)

Summary

Request to restore the system-prompt-{mode-slug} file override mechanism that was removed in recent versions, or provide an alternative way to completely replace the system prompt for custom modes.

Context (who is affected and when)

Background

In previous versions of Roo Code, users could create system-prompt-{mode-slug} files in the .roo/ directory to completely override the system prompt for custom modes. This functionality has been removed in recent updates, replaced with roleDefinition and customInstructions which only append to the base system prompt rather than replacing it.

Use Case

I have developed a sophisticated multi-mode academic research workflow with 4 custom modes:

  • 🕯️ Disputer (Academic Dialogue)
  • 🏛️ Weaver (Academic Writing)
  • 🌫️ Lector (Literature Review)
  • 🏔️ Polisher (Academic Refinement)

Each mode has a carefully crafted system prompt (1,300-2,300 lines) that defines:

  • Specific persona and behavioral patterns
  • Domain-specific methodologies (legal research methods)
  • Complex interaction protocols (e.g., Disputatio dialogue format)
  • Strict output formatting rules

The current append-only mechanism causes issues:

  1. Prompt pollution: The base system prompt conflicts with my custom instructions
  2. Behavioral inconsistency: AI receives mixed signals from base + custom prompts
  3. Loss of control: Cannot ensure AI follows only my carefully designed instructions
  4. Token waste: Base prompt consumes tokens unnecessarily

Why This Matters

Many advanced users (researchers, specialized domains) need complete control over the system prompt to:

  • Implement domain-specific AI behaviors
  • Ensure consistency with established workflows
  • Maintain precise control over AI output format
  • Avoid conflicts between base and custom instructions

Desired behavior (conceptual, not technical)

Proposed Solutions

Option 1: Restore system-prompt-{mode-slug} Override (Preferred)

Bring back the ability to completely replace the system prompt via files in .roo/system-prompt-{mode-slug}

Option 2: Add Configuration Flag

Add a configuration option in .roomodes:

customModes:
  - slug: my-mode
    name: My Mode
    overrideSystemPrompt: true  # New flag
    roleDefinition: [complete custom prompt]

Option 3: Separate "Advanced Mode" Setting

Add a global setting: "roo.advancedMode.allowSystemPromptOverride": true

  • Default: false (current behavior)
  • When enabled: roleDefinition completely replaces base prompt

Impact

  • Backward compatibility: Users who don't need this feature are unaffected
  • Power users: Regain full control over AI behavior
  • Use cases: Academic research, specialized domains, complex workflows

Current Workaround

I've had to rollback to an older version of Roo Code, which:

  • ❌ Misses new features and bug fixes
  • ❌ May have compatibility issues with future VS Code updates
  • ❌ Requires manual version management

Community Support

I believe many advanced users would benefit from this feature. I'm happy to:

  • Provide detailed documentation of my use case
  • Test beta implementations
  • Contribute to documentation

Related

This is similar to how Cursor handles .cursorrules - while it appends to base prompt, the priority is high enough that it effectively overrides base behavior in most cases.


Thank you for considering this request! Roo Code is an excellent tool, and restoring this capability would make it perfect for advanced, specialized workflows.

Constraints / preferences (optional)

No response

Request checklist

  • I've searched existing Issues and Discussions for duplicates
  • This describes a specific problem with clear context and impact

Roo Code Task Links (optional)

No response

Acceptance criteria (optional)

No response

Proposed approach (optional)

No response

Trade-offs / risks (optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions