File Arrangement

L3
ModelContextProtocolFilesystemDesktop Template

Classify and organize desktop files into appropriate categories following specified classification rules and naming convention standards.

Created by Lingjun Chen
2025-08-14
File Organization

Model Ranking

Click on the dots to view the trajectory of each task run
Model
Run Results
Pass@4
Pass^4
Avg Time
Avg Turns
Input Tokens
Output Tokens
Total Tokens
OpenAI
gpt-5-medium
3
/4
376.2s
14.8
104,251
19,176
123,427
Claude
claude-sonnet-4
1
/4
355.3s
41.3
440,419
6,891
447,310
Claude
claude-sonnet-4-low
1
/4
156.8s
32.3
273,586
5,565
279,151
Grok
grok-4
1
/4
218.4s
11.0
101,620
9,284
110,904
Grok
grok-code-fast-1
1
/4
86.7s
44.5
407,005
3,998
414,611
Claude
claude-opus-4-1
0
/1
--
581.3s
53.0
587,381
9,091
596,472
Claude
claude-sonnet-4-high
0
/4
140.3s
32.8
281,868
5,721
287,590
DeepSeek
deepseek-chat
0
/4
568.4s
68.0
543,102
5,640
548,742
Gemini
gemini-2-5-flash
0
/4
35.0s
9.3
32,723
4,443
37,166
Gemini
gemini-2-5-pro
0
/4
133.8s
44.0
426,213
4,474
430,687
Z.ai
glm-4-5
0
/4
175.8s
40.3
253,208
6,375
259,583
OpenAI
gpt-4-1
0
/4
44.6s
12.3
47,410
2,682
50,092
OpenAI
gpt-4-1-mini
0
/4
53.4s
12.5
44,654
2,222
46,876
OpenAI
gpt-4-1-nano
0
/4
32.6s
18.5
72,466
1,659
74,125
OpenAI
gpt-5-high
0
/4
661.0s
10.3
66,709
24,453
91,162
OpenAI
gpt-5-low
0
/4
344.9s
12.5
84,432
20,353
104,784
OpenAI
gpt-5-mini-high
0
/4
158.0s
44.0
473,148
13,589
486,737
OpenAI
gpt-5-mini-low
0
/4
65.5s
18.8
245,441
4,085
249,526
OpenAI
gpt-5-mini-medium
0
/4
89.6s
26.0
190,717
7,390
198,107
OpenAI
gpt-5-nano-high
0
/4
205.0s
54.8
923,763
29,066
952,829
OpenAI
gpt-5-nano-low
0
/4
136.2s
33.3
348,825
19,648
368,472
OpenAI
gpt-5-nano-medium
0
/4
155.6s
31.8
315,003
25,629
340,632
OpenAI
gpt-oss-120b
0
/4
2.6s
1.3
1,315
53
1,367
MoonshotAI
kimi-k2-0711
0
/4
311.3s
46.0
291,054
3,998
295,052
MoonshotAI
kimi-k2-0905
0
/4
233.4s
29.5
156,320
2,389
158,709
OpenAI
o3
0
/4
226.2s
44.0
300,173
15,815
315,988
OpenAI
o4-mini
0
/4
313.1s
46.3
228,727
25,172
253,899
Qwen
qwen-3-coder-plus
0
/4
113.3s
58.3
470,363
5,278
475,641
Qwen
qwen-3-max
0
/4
74.8s
30.8
154,971
2,336
157,307

Task State

Task Initial State Files
Download ZIP package to view the complete file structure
desktop_template/ ├── Archives/ │ ├── backup_contacts.csv │ └── tax_documents_2022.csv ├── Desktop/ │ └── contacts.csv ├── Documents/ │ ├── Personal/ │ │ └── tax_info_2023.csv │ ├── Projects/ │ │ └── budget_tracker.csv │ ├── Work/ │ │ ├── client_list.csv │ │ └── timesheet.csv │ ├── budget.csv │ └── important_dates.csv ├── Downloads/ │ ├── expenses.csv │ ├── fitness_log.csv │ └── price_comparisons.csv ├── Temp/ │ └── test_data.csv ├── book_list.txt ├── bookmark_export.txt ├── calculations.txt ├── correspondence_2023.txt ├── draft_letter.txt ├── emergency_contacts.txt ├── example.txt └── experiment_results.txt

Instruction

Please use FileSystem tools to finish the following task:

Task Description

You are tasked with organizing files on an AI researcher's desktop into a structured folder system. You need to create specific folders and move files to their designated locations according to the provided organization scheme.

Task Objectives

  1. Create the following folder structure in the main directory:

    • work/ - for work, research and projects related files
    • life/ - for personal life related files
    • archives/ - for archived files or files with past dates in its file names
    • temp/ - for temporary files, drafts
    • others/ - for files that cannot be classified elsewhere

Important Notes

  • All files must be moved from their current locations to the specified folders
  • The others/ folder is for files that don't fit the other categories
  • Do not modify the contents of any files, only move them to the correct locations
  • If you are not sure about which folder it should belongs to, you can read the context in the files before making decisions
  • Do not change files' name


Verify

*.py
Python
#!/usr/bin/env python3
"""
Verification script for Desktop File Organization Task
"""

import sys
from pathlib import Path
import os

def get_test_directory() -> Path:
    """Get the test directory from FILESYSTEM_TEST_DIR env var."""
    test_root = os.environ.get("FILESYSTEM_TEST_DIR")
    if not test_root:
        raise ValueError("FILESYSTEM_TEST_DIR environment variable is required")
    return Path(test_root)

def verify_folder_structure(test_dir: Path) -> bool:
    """Verify that all required folders exist."""
    required_folders = ["work", "life", "archives", "temp", "others"]
    missing_folders = []
    
    for folder in required_folders:
        folder_path = test_dir / folder
        if not folder_path.exists() or not folder_path.is_dir():
            missing_folders.append(folder)
    
    if missing_folders:
        print(f"❌ Missing required folders: {missing_folders}")
        return False
    
    print("✅ All required folders exist")
    return True

def verify_work_folder_files(test_dir: Path) -> bool:
    """Verify that work folder contains the required files."""
    work_dir = test_dir / "work"
    required_files = [
        "client_list.csv",
        "timesheet.csv", 
        "experiment_results.txt",
        "budget_tracker.csv"
    ]
    
    missing_files = []
    for file_name in required_files:
        file_path = work_dir / file_name
        if not file_path.exists():
            missing_files.append(file_name)
    
    if missing_files:
        print(f"❌ Missing required files in work/ folder: {missing_files}")
        return False
    
    # Count total files in work folder for info
    total_files = len([f for f in work_dir.iterdir() if f.is_file()])
    print(f"✅ All required files found in work/ folder (total: {total_files} files)")
    return True

def verify_life_folder_files(test_dir: Path) -> bool:
    """Verify that life folder contains the required files."""
    life_dir = test_dir / "life"
    required_files = [
        "contacts.csv",
        "budget.csv",
        "important_dates.csv",
        "expenses.csv",
        "fitness_log.csv",
        "price_comparisons.csv",
        "book_list.txt",
        "bookmark_export.txt",
        "emergency_contacts.txt"
    ]
    
    missing_files = []
    for file_name in required_files:
        file_path = life_dir / file_name
        if not file_path.exists():
            missing_files.append(file_name)
    
    if missing_files:
        print(f"❌ Missing required files in life/ folder: {missing_files}")
        return False
    
    # Count total files in life folder for info
    total_files = len([f for f in life_dir.iterdir() if f.is_file()])
    print(f"✅ All required files found in life/ folder (total: {total_files} files)")
    return True

def verify_archives_folder_files(test_dir: Path) -> bool:
    """Verify that archives folder contains the required files."""
    archives_dir = test_dir / "archives"
    required_files = [
        "backup_contacts.csv",
        "tax_documents_2022.csv",
        "correspondence_2023.txt",
        "tax_info_2023.csv"
    ]
    
    missing_files = []
    for file_name in required_files:
        file_path = archives_dir / file_name
        if not file_path.exists():
            missing_files.append(file_name)
    
    if missing_files:
        print(f"❌ Missing required files in archives/ folder: {missing_files}")
        return False
    
    # Count total files in archives folder for info
    total_files = len([f for f in archives_dir.iterdir() if f.is_file()])
    print(f"✅ All required files found in archives/ folder (total: {total_files} files)")
    return True

def verify_temp_folder_files(test_dir: Path) -> bool:
    """Verify that temp folder contains the required files."""
    temp_dir = test_dir / "temp"
    required_files = [
        "test_data.csv",
        "draft_letter.txt"
    ]
    
    missing_files = []
    for file_name in required_files:
        file_path = temp_dir / file_name
        if not file_path.exists():
            missing_files.append(file_name)
    
    if missing_files:
        print(f"❌ Missing required files in temp/ folder: {missing_files}")
        return False
    
    # Count total files in temp folder for info
    total_files = len([f for f in temp_dir.iterdir() if f.is_file()])
    print(f"✅ All required files found in temp/ folder (total: {total_files} files)")
    return True

def verify_others_folder_files(test_dir: Path) -> bool:
    """Verify that others folder exists and can contain any files."""
    others_dir = test_dir / "others"
    
    if not others_dir.exists() or not others_dir.is_dir():
        print("❌ others/ folder not found")
        return False
    
    # Count files in others folder for info
    total_files = len([f for f in others_dir.iterdir() if f.is_file()])
    print(f"✅ others/ folder exists (contains {total_files} files)")
    return True

def verify_required_files_in_correct_folders(test_dir: Path) -> bool:
    """Verify that all 19 required files are in their correct designated folders."""
    # Define the mapping of required files to their correct folders
    required_file_mapping = {
        "work": [
            "client_list.csv",
            "timesheet.csv", 
            "experiment_results.txt",
            "budget_tracker.csv"
        ],
        "life": [
            "contacts.csv",
            "budget.csv",
            "important_dates.csv",
            "expenses.csv",
            "fitness_log.csv",
            "price_comparisons.csv",
            "book_list.txt",
            "bookmark_export.txt",
            "emergency_contacts.txt"
        ],
        "archives": [
            "backup_contacts.csv",
            "tax_documents_2022.csv",
            "correspondence_2023.txt",
            "tax_info_2023.csv"
        ],
        "temp": [
            "test_data.csv",
            "draft_letter.txt"
        ]
    }
    
    missing_files = []
    
    # Check each required file is in its correct folder
    for folder, files in required_file_mapping.items():
        folder_path = test_dir / folder
        for file_name in files:
            file_path = folder_path / file_name
            if not file_path.exists():
                missing_files.append(f"{folder}/{file_name}")
    
    if missing_files:
        print(f"❌ Missing required files: {missing_files}")
        return False
    
    print("✅ All 19 required files are in their correct designated folders")
    return True

def verify_no_duplicate_required_files(test_dir: Path) -> bool:
    """Verify that the 19 required files are not duplicated across folders."""
    required_files = [
        "client_list.csv", "timesheet.csv", "experiment_results.txt", "budget_tracker.csv",
        "contacts.csv", "budget.csv", "important_dates.csv", "expenses.csv", "fitness_log.csv",
        "price_comparisons.csv", "book_list.txt", "bookmark_export.txt", "emergency_contacts.txt",
        "backup_contacts.csv", "tax_documents_2022.csv", "correspondence_2023.txt", "tax_info_2023.csv",
        "test_data.csv", "draft_letter.txt"
    ]
    
    # Check for duplicates of required files
    file_locations = {}
    duplicates = []
    
    for folder in ["work", "life", "archives", "temp", "others"]:
        folder_path = test_dir / folder
        if folder_path.exists() and folder_path.is_dir():
            for file_path in folder_path.iterdir():
                if file_path.is_file() and file_path.name in required_files:
                    if file_path.name in file_locations:
                        duplicates.append(f"{file_path.name} (in {file_locations[file_path.name]} and {folder}/)")
                    else:
                        file_locations[file_path.name] = f"{folder}/"
    
    if duplicates:
        print(f"❌ Duplicate required files found: {duplicates}")
        return False
    
    print("✅ No duplicate required files found")
    return True

def main():
    """Main verification function."""
    test_dir = get_test_directory()
    print("🔍 Verifying Desktop File Organization Task...")
    
    # Define verification steps
    verification_steps = [
        ("Folder Structure", verify_folder_structure),
        ("Required Files in Work Folder", verify_work_folder_files),
        ("Required Files in Life Folder", verify_life_folder_files),
        ("Required Files in Archives Folder", verify_archives_folder_files),
        ("Required Files in Temp Folder", verify_temp_folder_files),
        ("Others Folder Exists", verify_others_folder_files),
        ("All Required Files in Correct Folders", verify_required_files_in_correct_folders),
        ("No Duplicate Required Files", verify_no_duplicate_required_files),
    ]
    
    # Run all verification steps
    all_passed = True
    for step_name, verify_func in verification_steps:
        print(f"\n--- {step_name} ---")
        if not verify_func(test_dir):
            all_passed = False
    
    # Final result
    print("\n" + "="*50)
    if all_passed:
        print("✅ Desktop file organization task completed successfully!")
        print("🎉 All 19 required files are correctly placed in their designated folders")
        print("📊 Summary:")
        print("   - work/ folder: 4 required files")
        print("   - life/ folder: 9 required files") 
        print("   - archives/ folder: 4 required files")
        print("   - temp/ folder: 2 required files")
        print("   - others/ folder: can contain any files")
        print("   - Total required files: 19")
        print("   - Note: Other files can be placed in any folder")
        sys.exit(0)
    else:
        print("❌ Desktop file organization task verification: FAIL")
        print("Please check the errors above and ensure all 19 required files are in their correct locations")
        sys.exit(1)

if __name__ == "__main__":
    main()