Skip to content

[ENHANCEMENT] Mode Families: Organize Custom Modes into Grouped Collections #8494

@James-Cherished

Description

@James-Cherished

[ENHANCEMENT] Mode Families: Organize Custom Modes into Grouped Collections

Problem (one or two sentences)

Users with many custom modes struggle to manage and switch between different mode collections for various workflows, leading to cluttered mode lists and difficulty finding the right mode for specific tasks.

Context (who is affected and when)

This affects power users and teams who have created multiple specialized custom modes for different types of development work (e.g., frontend development, backend APIs, documentation, testing, DevOps tasks). The problem becomes more pronounced as the number of custom modes grows beyond 5-10 modes, making it hard to quickly find and switch to the appropriate mode for the current task.

Desired behavior (conceptual, not technical)

Users should be able to create "families" or "groups" of modes that represent different workflows or contexts (e.g., "Frontend Development", "API Development", "Documentation"). When a family is selected, only the modes in that family should be available for selection, while other modes remain stored but hidden from the active session. This allows users to focus on relevant modes for their current work while maintaining access to all their custom modes.

Constraints / preferences (optional)

  • Should work globally across all workspaces, not be workspace-specific
  • Built-in modes (Code, Architect, Ask, Debug) should be includable in families
  • Family configurations should be stored in VS Code settings (global)
  • Should maintain backward compatibility with existing mode configurations
  • UI should integrate seamlessly with existing modes management interface

Request checklist

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

Acceptance criteria (optional)

Given a user has multiple custom modes for different workflows
When they create a mode family for "Frontend Development" containing relevant modes
Then only those modes should be visible when the family is active
And other modes should remain stored but not interfere with the current session
And users should be able to quickly switch between different families

Given a user switches to a different mode family
When the family contains modes that don't exist in current configuration
Then those modes should be gracefully ignored with appropriate validation feedback
But the family should still function with available modes

Proposed approach (optional)

Implement a three-phase approach:

Phase 1: Backend Foundation

  • Create ModeFamiliesManager class for family CRUD operations
  • Design storage schema using VS Code extension context global state
  • Integrate with existing CustomModesManager for mode filtering

Phase 2: Frontend Integration

  • Create ModeFamiliesSettings component for family management
  • Integrate family selector into existing modes management interface
  • Add visual indicators for family membership in mode listings

Phase 3: User Experience Enhancement

  • Auto-create "All Modes" family on first run
  • Add validation for mode conflicts and missing modes
  • Implement intuitive family switching interface

Architecture Overview

graph TB
    A[ModeFamiliesManager] --> B[VS Code Settings Storage]
    A --> C[CustomModesManager]
    C --> D[Mode Filtering Logic]
    D --> E[Active Modes List]
    E --> F[UI Mode Selection]
Loading

Data Structure

interface ModeFamily {
    id: string
    name: string
    description?: string
    enabledModeSlugs: string[]  // Only these modes are active
    isDefault?: boolean
    createdAt: number
    updatedAt: number
}

Trade-offs / risks (optional)

Benefits:

  • Reduces cognitive load for users with many modes
  • Improves mode discovery and organization
  • Maintains all existing functionality
  • Scales well as mode collections grow

Potential Risks:

  • Added complexity to mode management
  • Learning curve for existing users
  • Storage overhead for family configurations
  • Potential for confusion if families become too restrictive

Migration Strategy:

  • Auto-create "All Modes" family on first run
  • Include all existing modes in default family
  • Maintain full backward compatibility

This enhancement would significantly improve the mode management experience for users with extensive custom mode collections while maintaining the simplicity for users who prefer the current approach.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue/PR - TriageNew issue. Needs quick review to confirm validity and assign labels.enhancementNew feature or request

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions