-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Description
[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
ModeFamiliesManagerclass for family CRUD operations - Design storage schema using VS Code extension context global state
- Integrate with existing
CustomModesManagerfor mode filtering
Phase 2: Frontend Integration
- Create
ModeFamiliesSettingscomponent 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]
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
Labels
Type
Projects
Status