advanced-file-management
Advanced file management tools. Includes batch folder creation, batch file moving, file listing, and HTML author extraction.
What this skill does
# Advanced File Management Skill
This skill provides tools for desktop file management:
1. **Folder creation**: Create multiple folders under a target directory
2. **Move files**: Move multiple files to a target directory
3. **List all files**: Recursively list all files under a directory
4. **Extract authors**: Extract authors from HTML papers
## Important Notes
- **Do not use other bash commands**: Do not attempt to use general bash commands or shell operations like cat, ls.
- **Use relative paths**: Use paths relative to the working directory (e.g., `./folder/file.txt` or `folder/file.txt`).
- **Do not create scripts**: Do not use `write_file` to create any scripts.
## I. Skills
### 1. Create Multiple Folders
Creates multiple folders under a target directory.
### Features
- Creates multiple folders with specified names
- Supports any number of folder names as arguments
### Example
```bash
# Create 3 folders
python create_folders.py . folder1 folder2 folder3
# Create folders with specific names
python create_folders.py ./projects experiments learning personal
```
### 2. Move Multiple Files
Move multiple files to a target directory in a single operation.
### Features
- Move multiple files at once
- Supports files from different directories
- Reports success and failure for each file
### Example
```bash
# Move 3 files to archive folder
python move_files.py ./archive file1.txt file2.txt file3.txt
# Move files from different directories
python move_files.py ./backup ./data/log1.txt ./data/log2.txt ./temp/cache.dat
```
### 3. List All Files
Recursively list all files under a given directory path. Useful for quickly understanding project directory structure.
### Features
- Recursively traverse all subdirectories
- Option to exclude hidden files (like .DS_Store)
- Output one file path per line, including both path and filename (relative to input directory)
### Example
```bash
# List all files (excluding hidden)
python list_all_files.py .
# Include hidden files
python list_all_files.py ./data --include-hidden
```
---
### 4. Extract Authors
Extract authors from all HTML papers in a directory using `<meta name="citation_author">` tags.
### Features
- Automatically scan all HTML files in directory
- Extract author names from citation_author meta tags
- Support multiple authors per paper
- Returns list of dicts with filename and authors
### Example
```bash
# Extract and print authors from all HTML files
python extract_authors.py ./papers
# Save to file
python extract_authors.py ./papers --output authors.txt
```
---
## II. Basic Tools (FileSystemTools)
Below are the basic tool functions. These are atomic operations for flexible combination.
**Prefer Skills over Basic Tools**: When a task matches one of the Skills above (e.g., creating multiple folders), use the corresponding Skill instead of Basic Tools. Skills are more efficient because they can perform batch operations in a single call.
**Prefer List All Files over list_directory/list_files**: When you need to list files in a directory, prefer using the `list_all_files.py` skill instead of `list_directory` or `list_files` basic tools. The skill provides recursive listing with better output formatting.
**Note**: Code should be written without line breaks.
### How to Run
```bash
# Standard format
python run_fs_ops.py -c "await fs.read_text_file('./file.txt')"
```
---
### File Reading Tools
#### `read_text_file(path, head=None, tail=None)`
**Use Cases**:
- Read complete file contents
- Read first N lines (head) or last N lines (tail)
**Example**:
```bash
python run_fs_ops.py -c "await fs.read_text_file('./data/file.txt')"
```
---
#### `read_multiple_files(paths)`
**Use Cases**:
- Read multiple files simultaneously
- Use when reading a large number of files (e.g., multiple paper html pages)
**Example**:
```bash
python run_fs_ops.py -c "await fs.read_multiple_files(['./a.txt', './b.txt'])"
```
---
### File Writing Tools
#### `write_file(path, content)`
**Use Cases**:
- Create new files
- Overwrite existing files
**⚠️ Warning**: Do NOT include triple backticks (` ``` `) in the content, as this will break command parsing.
**Example**:
```bash
python run_fs_ops.py -c "await fs.write_file('./new.txt', 'Hello World')"
```
---
#### `edit_file(path, edits)`
**Use Cases**:
- Make line-based edits to existing files
**Example**:
```bash
python run_fs_ops.py -c "await fs.edit_file('./file.txt', [{'oldText': 'foo', 'newText': 'bar'}])"
```
---
### Directory Tools
#### `create_directory(path)`
**Use Cases**:
- Create new directories (supports recursive creation)
**Example**:
```bash
python run_fs_ops.py -c "await fs.create_directory('./new/nested/dir')"
```
---
#### `list_directory(path)`
**Use Cases**:
- List all files and directories in a path
**Example**:
```bash
python run_fs_ops.py -c "await fs.list_directory('.')"
```
---
#### `list_files(path=None, exclude_hidden=True)`
**Use Cases**:
- List only files in a directory
**Example**:
```bash
python run_fs_ops.py -c "await fs.list_files('./data')"
```
---
### File Operations
#### `move_file(source, destination)`
**Use Cases**:
- Move or rename files/directories
**Example**:
```bash
python run_fs_ops.py -c "await fs.move_file('./old.txt', './new.txt')"
```
---
#### `search_files(pattern, base_path=None)`
**Use Cases**:
- Search for files matching a glob pattern
**Example**:
```bash
python run_fs_ops.py -c "await fs.search_files('*.txt')"
```
---
### File Information
#### `get_file_info(path)`
**Use Cases**:
- Get detailed metadata (size, created, modified, etc.)
**Example**:
```bash
python run_fs_ops.py -c "await fs.get_file_info('./file.txt')"
```
---
#### `get_file_size(path)`
**Use Cases**:
- Get file size in bytes
**Example**:
```bash
python run_fs_ops.py -c "await fs.get_file_size('./file.txt')"
```
---
#### `get_file_ctime(path)` / `get_file_mtime(path)`
**Use Cases**:
- Get file creation/modification time
**Example**:
```bash
python run_fs_ops.py -c "await fs.get_file_mtime('./file.txt')"
```
---
#### `get_files_info_batch(filenames, base_path=None)`
**Use Cases**:
- Get file information for multiple files in parallel
**Example**:
```bash
python run_fs_ops.py -c "await fs.get_files_info_batch(['a.txt', 'b.txt'], './data')"
```
Related in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4→v5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.