file-classification-manager

Automation

Manages synchronized dual directories per project, automatically classifying and routing files into permanent outputs and temporary intermediates based on ty...

Install

openclaw skills install file-classification-manager

File Classification Manager Skill

Description

Dual-purpose intelligent file classification system that manages BOTH project outputs AND temporary files with synchronized directory structures. Automatically organizes files into proper projects/ and temp/ directories based on content type, purpose, and project context. Prevents file clutter in workspace root by enforcing structured dual-storage.

Key Principle: Synchronized Dual Storage

Every project has TWO corresponding directories:

  • projects/{project_name}/ - For permanent, valuable outputs (reports, final documents, deliverables)
  • temp/{project_name}/ - For temporary, intermediate files (scripts, extracted data, cache, working files)

Both directories are automatically created together and share the same project name to maintain clear association between final outputs and their supporting temporary files.

Capabilities

  • Dual Directory Management: Simultaneously manages projects/ (outputs) and temp/ (intermediate files) directories
  • Synchronized Project Naming: Ensures identical project names across both storage areas for clear association
  • Purpose-Based Classification: Automatically determines whether a file belongs in outputs vs intermediate based on content and file patterns
  • Project Detection: Identifies project context from user input or file content
  • Automatic Structure Creation: Creates standardized dual directory structure for any new project
  • Smart File Routing: Routes files to correct subdirectories in the appropriate storage area (projects vs temp)
  • Legacy File Cleanup: Migrates existing misplaced files to proper dual-storage locations
  • Cross-Agent Compatibility: Works with subagents and ACP coding sessions

Usage Scenarios

  • When generating new files (reports, scripts, data)
  • When processing files via other skills (PDF Extract, Summarize Pro, etc.)
  • When organizing existing workspace clutter
  • When working with multiple concurrent projects

API Functions

classify_and_route_file(filepath, project_context)

Routes a file to the appropriate directory based on its type and project context.

Parameters:

  • filepath: Path to the file to be classified
  • project_context: Project name or context object

Returns: Final destination path

ensure_project_structure(project_name)

Creates the standard directory structure for a project if it doesn't exist.

Parameters:

  • project_name: Name of the project (alphanumeric + underscores only)

Directory Structure Created:

projects/{project_name}/
├── outputs/
└── assets/
temp/{project_name}/
├── intermediate/
└── cache/

detect_project_from_content(content)

Analyzes file content to determine likely project association.

Parameters:

  • content: File content or metadata to analyze

Returns: Suggested project name or null

cleanup_workspace_root()

Scans workspace root for misplaced files and routes them appropriately.

Returns: Migration report

File Type Classification Rules

Files are automatically routed to the CORRECT storage area based on their purpose:

🎯 Projects Storage (Permanent Outputs)

File PatternDestinationPurpose
*_review.md, *_literature.mdprojects/{project}/outputs/Literature reviews and analyses
final_*.md, comprehensive_*.mdprojects/{project}/outputs/Final reports and deliverables
summary_*.md, conclusion_*.mdprojects/{project}/outputs/Executive summaries and conclusions

⚡ Temp Storage (Temporary Files)

File PatternDestinationPurpose
*.py, *.js, *.mtemp/{project}/intermediate/Analysis and processing scripts
*_content.txt, *_extract.txttemp/{project}/intermediate/Extracted raw content
*.pdf, *.docxtemp/{project}/intermediate/Source documents for processing
*.mat, *.csv, *.jsontemp/{project}/intermediate/Intermediate data files
*.png, *.jpg, *.giftemp/{project}/intermediate/Generated or processed images
cache_*, temp_*temp/{project}/cache/Cached API responses and temporary data

Key Rule: The system maintains synchronized project names - if a file goes to projects/dipleg_review/outputs/, its supporting files go to temp/dipleg_review/intermediate/.

Integration Guidelines

For Other Skills:

When developing skills that generate files, import this skill and use:

const fcm = require('file-classification-manager');
const outputPath = fcm.classify_and_route_file(filename, projectContext);

For Subagents:

Pass project context when spawning subagents:

sessions_spawn({
  task: "Process documents",
  runtime: "subagent",
  attachments: [{name: "fcm_config.json", content: JSON.stringify({project: "my_project"})}]
})

Safety Rules

  • Never delete files without confirmation
  • Always backup before moving critical files
  • Preserve original file timestamps and metadata
  • Log all file operations to memory/YYYY-MM-DD.md

Error Handling

  • If project context is ambiguous, prompt user for clarification
  • If file type is unrecognized, place in temp/general/intermediate/
  • If directory creation fails, fall back to safe temporary location

Examples

Basic Usage:

// Classify a literature review file
const result = classify_and_route_file("brain_dipleg_review.md", "dipleg_research");
// Result: "projects/dipleg_research/outputs/brain_dipleg_review.md"

Project Setup:

// Ensure project structure exists
ensure_project_structure("pv_topology_analysis");
// Creates projects/pv_topology_analysis/ and temp/pv_topology_analysis/ directories

Workspace Cleanup:

// Clean up misplaced files
const report = cleanup_workspace_root();
console.log(report.movedFiles); // Array of successfully moved files

Version

1.0.0

Author

OpenClaw Assistant

License

MIT