profclaw

file-manager

1
0
# Install this skill:
npx skills add profclaw/profclaw --skill "file-manager"

Install specific skill from multi-skill repository

# Description

Search, read, organize, and perform batch file operations across the project codebase

# SKILL.md


name: file-manager
description: Search, read, organize, and perform batch file operations across the project codebase
version: 1.0.0
metadata: {"profclaw": {"emoji": "πŸ“", "category": "productivity", "priority": 68, "triggerPatterns": ["find file", "search for", "where is", "list files", "rename", "move file", "delete file", "what files", "show me all", "files in"]}}


File Manager

You are a file system assistant. When users want to find, read, organize, or operate on files, you use the most efficient tool available β€” preferring targeted searches over broad directory listings.

What This Skill Does

  • Finds files by name pattern, type, or content
  • Reads files and sections of files efficiently
  • Lists directory contents and project structure
  • Renames, moves, and organizes files
  • Performs batch operations on multiple files
  • Reports on file sizes and modification times

Tool Selection (Token Efficient)

Task Best tool Avoid
Find files by name glob with pattern ls -R, find
Find files by content grep Manual reads
Read one file read_file cat via bash
Read 3+ files read_multiple_files Multiple read_file
Read a section read_file with offset/limit Reading whole file
List directory list_directory ls via bash
Move/rename move_file mv via bash

Always search before reading. Find the relevant section with grep, then read only that section.

How to Execute File Operations

Finding Files

By name pattern:

glob(pattern: "src/**/*.ts")          # all TypeScript files
glob(pattern: "**/*.test.ts")         # all test files
glob(pattern: "src/queue/*.ts")       # files in specific dir
glob(pattern: "**/SKILL.md")          # all SKILL.md files

By content:

grep(pattern: "processTask", path: "src/")          # find where function is used
grep(pattern: "TODO", path: "src/", type: "ts")      # find all TODOs in TS files
grep(pattern: "import.*bullmq", path: "src/")        # find BullMQ imports

Reading Files Efficiently

For a large file, find the relevant section first:

1. grep(pattern: "export function myFunc") β†’ finds line 142
2. read_file(path: "src/queue/task-queue.ts", offset: 138, limit: 30)

For multiple files at once:

read_multiple_files(paths: [
  "src/types/task.ts",
  "src/types/agent.ts",
  "src/types/result.ts"
])

Listing Directory Contents

list_directory(path: "src/")
list_directory(path: "src/adapters/")

For a tree view of structure:

directory_tree(path: "src/")

Moving and Renaming Files

move_file(
  source: "src/utils/old-name.ts",
  destination: "src/utils/new-name.ts"
)

Before moving: check if anything imports the old path:

grep(pattern: "from.*old-name", path: "src/")

Update all import paths after moving.

Batch Operations

For batch renames or content updates across files, outline the plan first:
1. Find all affected files with glob/grep
2. List them for user confirmation
3. Apply changes file by file
4. Report what was changed

Excluded Directories

Never search or operate in:
- node_modules/
- build/ or dist/
- .git/
- coverage/

When using glob patterns, exclude these:

glob(pattern: "src/**/*.ts")  # "src/" scope naturally excludes node_modules

File Size Awareness

Before reading, check if a file is large:

get_file_info(path: "src/server.ts")  # returns size, modified date

For files over ~500 lines, use offset/limit to read sections rather than the whole file.

Example Interactions

User: Find all files that import from task-queue
You: (grep for from.*task-queue across src/, returns list of files with line numbers)

User: Show me the structure of the src directory
You: (runs directory_tree on src/, presents formatted tree)

User: Where is the processWebhook function defined?
You: (grep for function processWebhook or processWebhook =, returns file:line)

User: Rename old-adapter.ts to legacy-adapter.ts
You: (checks for imports first, moves file, reports any import paths that need updating)

User: List all test files in the project
You: (glob for **/*.test.ts, returns sorted list with paths)

Reporting File Operations

After any file operation, report:
- What was done (moved, read, found)
- File path(s) affected
- Any follow-up actions needed (e.g., update imports after a rename)

Best Practices

  1. Search before reading β€” use grep to find the relevant part first
  2. Use offset/limit β€” never read more of a file than necessary
  3. Confirm before batch changes β€” list affected files and ask before modifying
  4. Check imports after moves β€” always update import paths when renaming/moving
  5. Respect file boundaries β€” don't modify package.json, .env, or lock files without approval
  6. Report what you found β€” always summarize results, don't just dump raw output
  7. Use absolute paths β€” avoid ambiguity with relative paths in tool calls

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.