Safely delete and manage files and folders. Uses git rm for git-tracked files, moves other files to .trash directory. Automatically applied when deletion operations are needed.
A skill for safely deleting files and folders. Git-tracked files are removed using git rm for safe version control removal, while non-tracked files are moved to the .trash directory for possible recovery.
git rm for safe deletion (maintains version history).trash/ directory (recoverable)Confirm the paths of files or folders the user wants to delete:
Please provide the paths of files or folders you want to delete.
(e.g., src/old-component.ts, tests/deprecated/, docs/draft.md)
Check if each file/folder is tracked by Git:
# Check if file is tracked by git
git ls-files --error-unmatch <filepath>
# Check git-tracked files in folder
git ls-files <folderpath>
Git-tracked files:
# Delete file (remove from staging area)
git rm <filepath>
# Delete folder (recursively)
git rm -r <folderpath>
Non-tracked files:
# Create .trash directory (if not exists)
mkdir -p .trash
# Move file (avoid path conflicts)
mv <filepath> .trash/
# Move folder
mv <folderpath> .trash/
Report the list of processed files and their locations:
ā
Git-tracked files (deleted with git rm):
- src/old-component.ts
- lib/deprecated/
ā
Non-tracked files (moved to .trash/):
- cache/temp.dat
- logs/old-logs/
š All preserved files: .trash/
# Input: "Delete src/utils/legacy.ts"
# Check git status
$ git ls-files --error-unmatch src/utils/legacy.ts
src/utils/legacy.ts # Git-tracked file confirmed
# Execute deletion
$ git rm src/utils/legacy.ts
rm 'src/utils/legacy.ts'
ā
Removed src/utils/legacy.ts from git.
# Input: "Delete build/ folder and temp.dat file"
# Check git status
$ git ls-files build/
build/index.html # Git-tracked
build/bundle.js # Git-tracked
$ git ls-files --error-unmatch temp.dat
# (No output - non-tracked file)
# Separate handling
$ git rm -r build/
$ mkdir -p .trash
$ mv temp.dat .trash/
ā
Git-tracked files (deleted with git rm):
- build/
ā
Non-tracked files (moved to .trash/):
- temp.dat
git rm need to be committed.trash/ directory is recommended.trash/ will be overwrittenTo empty the .trash directory:
# Completely delete .trash directory
rm -rf .trash/
# Or delete only files older than 30 days
find .trash/ -type f -mtime +30 -delete
git checkout HEAD -- <file>git commit -m "Remove old files".trash/ directory cleaning recommendedReference: This skill is based on Claude Code official Skills documentation. (https://code.claude.com/docs/en/skills)