Last updated: Sep 1, 2025, 01:10 PM UTC

File Classification System

Status: Complete
Last Updated: 2025-08-23

Overview

Sasha Studio features an intelligent file classification system that automatically categorizes markdown files based on their directory structure, providing visual badges and organized navigation.

Classification Categories

Primary Categories

Category Color Directory Description
Specialist Purple specialists/ AI specialist configuration files
Guide Green guides/ Implementation guides and tutorials
Prompt Orange prompts/ Instructions and AI prompts
Tutorial Teal getting-started/ Learning resources
Case Study Violet case-studies/ Real-world examples
Policy Red policies/ Standards and policies

Special Categories

Category Color Trigger Description
System Gray Files starting with "CLAUDE" System configuration files
Uploaded Amber uploads/ directory User uploaded documents
Converted Indigo converted/ directory Processed/converted files
Knowledge Blue local/ directory Organizational knowledge

Default Classification

  • Research (Sky Blue): Default for all other markdown files, especially app-created content

Technical Implementation

Path-Segment Mapping

The system uses an elegant path-segment approach:

const getFileTypeInfo = (filePath, fileName) => {
  // Special case: Files starting with "CLAUDE" are system files
  if (fileName.toUpperCase().startsWith('CLAUDE')) {
    return { label: 'System', className: '...', tooltip: '...' };
  }
  
  // Split path and check each segment
  const segments = filePath.split('/');
  
  for (const segment of segments) {
    if (TYPE_MAP[segment]) {
      return TYPE_MAP[segment];
    }
  }
  
  // Default to Research
  return { label: 'Research', ... };
};

Benefits

  1. Path-Agnostic: Works regardless of full path format

    • specialists/file.md
    • docs/specialists/file.md
    • /home/nodejs/all-project-files/docs/specialists/file.md
  2. Maintainable: Single source of truth in TYPE_MAP object

  3. Extensible: Easy to add new categories without code changes

  4. Consistent: Works in both Docker and local development

UI Integration

File Tree Display

  • Files show colored badges next to their names
  • Tooltips provide additional context
  • Categories are counted and displayed in intelligence banner

Intelligence Banner

Shows breakdown of file types:

πŸ“š Sasha's Intelligence System (43 files)
[7 Specialists] [15 Guides] [8 Prompts] [3 Uploaded] [1 System] [9 Research]

Migration Notes

Changes from Previous System

  1. Path Matching: Changed from string inclusion (includes('/specialists/')) to segment matching
  2. Default Category: Changed from "Knowledge" to "Research"
  3. New Categories: Added Uploaded, Converted, and System classifications
  4. Filename-Based: Added special handling for CLAUDE configuration files

Backward Compatibility

  • All existing files maintain their classifications
  • No data migration required
  • Existing directory structures work without changes

File Location

Implementation: claudecodeui/src/components/FileTree.jsx lines 875-950

Key Functions:

  • getFileTypeInfo() - Main classification logic
  • countFilesByType() - Category counting for UI
  • Classification display in intelligence banner

Future Enhancements

  1. Custom Categories: Allow users to define custom directory-based categories
  2. Tag-Based: Support metadata-based classification beyond directories
  3. Smart Suggestions: Suggest appropriate directories for new files
  4. Bulk Operations: Actions based on file categories (e.g., "Convert all Uploaded files")