safe-project-organizer by ananddtyagi
Safely analyze and reorganize project structure with multi-stage validation, dry-run previews, and explicit user confirmation. Use when projects need cleanup, standardization, or better organization.
Content & Writing
649 Stars
58 Forks
Updated Dec 25, 2025, 07:21 AM
Why Use This
This skill provides specialized capabilities for ananddtyagi's codebase.
Use Cases
- Developing new features in the ananddtyagi repository
- Refactoring existing code to follow ananddtyagi standards
- Understanding and working with ananddtyagi's codebase structure
Install Guide
2 steps- 1
Skip this step if Ananke is already installed.
- 2
Skill Snapshot
Auto scan of skill assets. Informational only.
Valid SKILL.md
Checks against SKILL.md specification
Source & Community
Skill Stats
SKILL.md 459 Lines
Total Files 2
Total Size 13.0 KB
License NOASSERTION
---
name: safe-project-organizer
description: Safely analyze and reorganize project structure with multi-stage validation, dry-run previews, and explicit user confirmation. Use when projects need cleanup, standardization, or better organization.
---
# Safe Project Organizer
## Overview
This skill enables Claude Code to analyze project structure and suggest safe organizational improvements like moving files, removing unused directories, and restructuring folders. It prioritizes safety through multi-stage validation, dry-run previews, and explicit user confirmation.
## Core Safety Principles
### 1. Read-Only Analysis Phase
- All analysis operations are read-only
- No modifications occur during scanning
- Complete project snapshot before any changes
### 2. Dry-Run Validation
- All operations preview changes before execution
- Show exact file paths being affected
- Calculate impact metrics (files moved, deleted, created)
### 3. Explicit User Confirmation
- Require confirmation for each operation category
- Display detailed change summary
- Allow selective approval of suggestions
### 4. Atomic Operations with Rollback
- Each operation is reversible
- Create backup references before modifications
- Maintain operation log for audit trail
### 5. Protected File Patterns
Never modify files matching these patterns:
- `.git/`, `.svn/`, `.hg/` (version control)
- `node_modules/`, `vendor/`, `venv/`, `.venv/` (dependencies)
- `.env*`, `secrets.*`, `credentials.*` (sensitive data)
- `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml` (lock files)
- `dist/`, `build/`, `.next/`, `.nuxt/` (build artifacts)
## When to Use This Skill
Use this skill when you encounter any of these scenarios:
**Project Cleanup:**
- "My project root is messy with too many files"
- "I have empty directories that should be cleaned up"
- "Documentation files are scattered everywhere"
**Standardization:**
- "This project doesn't follow standard directory structure"
- "Source files are mixed with config files in root"
- "I need to organize files by type for better maintainability"
**Migration Preparation:**
- "I'm about to hand off this project and need to clean it up"
- "This codebase needs better organization before adding new features"
- "I want to standardize the project structure"
**Safety Concerns:**
- "I'm nervous about accidentally breaking something"
- "I need to see exactly what will change before making changes"
- "I want a safe way to reorganize without losing data"
## Safe Usage Workflow
### Step 1: Initial Scan (Read-Only)
Execute the project organizer script with `--scan` flag:
```bash
python3 scripts/project_organizer.py /path/to/project --scan
```
**What it does:**
- Scans entire project structure
- Identifies file types, counts, sizes
- Detects empty directories
- Lists protected files
- **No modifications made**
**Example Output:**
```
🔍 Scanning project: /path/to/project
📋 This is a READ-ONLY scan. No changes will be made.
✅ Scan complete!
📁 Directories: 24
📄 Files: 156
🔒 Protected items: 42
📂 Empty directories: 3
```
### Step 2: Generate Suggestions (Still Read-Only)
Use `--analyze` flag to generate organizational suggestions:
```bash
python3 scripts/project_organizer.py /path/to/project --analyze
```
**What it does:**
- Performs full analysis
- Generates organizational suggestions
- Displays suggestion count
- **Still no modifications**
### Step 3: Preview Changes (Detailed Review)
Use `--preview` flag to see exactly what will change:
```bash
python3 scripts/project_organizer.py /path/to/project --preview
```
**What it does:**
- Shows detailed preview of ALL suggestions
- Groups by action type (move, delete, create)
- Displays risk levels (🟢 low, 🟡 medium, 🔴 high)
- Shows safety checks for each operation
- Lists exact file paths affected
- **Zero modifications**
**Example Preview Output:**
```
📋 PREVIEW MODE - No changes will be made
============================================================
📊 Total Suggestions: 8
🎯 By Action:
MOVE: 5
DELETE: 2
CREATE_DIR: 1
⚠️ By Risk Level:
🟢 LOW: 6
🟡 MEDIUM: 2
📝 Detailed Suggestions:
MOVE Operations (5):
1. 🟢 Documentation/config files organized in docs/ directory
FROM: CONTRIBUTING.md
TO: docs/CONTRIBUTING.md
Safety Checks:
✓ File is not a primary config
✓ No imports reference this file path
✓ Not in protected patterns
DELETE Operations (2):
1. 🟢 Empty directory with no files or subdirectories
PATH: old_backup/temp
Safety Checks:
✓ Directory is empty
✓ Not a protected path
✓ No version control markers
```
### Step 4: Dry Run (Simulation Only)
Use `--execute` flag for dry-run simulation:
```bash
python3 scripts/project_organizer.py /path/to/project --execute
```
**What it does:**
- Simulates ALL operations
- Shows what WOULD happen
- Validates all safety checks
- Reports success/failure/skipped
- **No actual changes made**
### Step 5: Real Execution (Requires Confirmation)
Use `--execute-real` flag only after thorough review:
```bash
python3 scripts/project_organizer.py /path/to/project --execute-real
```
**What it does:**
- Prompts for explicit confirmation
- Executes approved changes
- Creates audit log (`.project_organizer.log`)
- Shows real-time progress
- **Actually modifies project**
**Confirmation Prompt:**
```
⚠️ WARNING: This will make REAL changes. Type 'yes' to confirm: yes
```
## Operation Types and Safety
### Move Operations
**Low Risk (🟢):**
- Moving documentation files to `docs/`
- Moving config files to `config/`
- Moving scripts to `scripts/`
**Medium Risk (🟡):**
- Grouping source files by type
- Creating organizational directories
**Safety Checks Performed:**
- Source file exists and is accessible
- Source is not in protected patterns
- Destination doesn't already exist
- Parent directories can be created safely
### Delete Operations
**Low Risk (🟢):**
- Removing truly empty directories
- Deleting temporary files
**Safety Checks Performed:**
- Target exists
- Directory is completely empty
- Not a protected path
- No version control markers
### Create Directory Operations
**Low Risk (🟢):**
- Creating standard directories (`src/`, `docs/`, `tests/`)
- Creating organizational structure
**Safety Checks Performed:**
- Target doesn't already exist
- No naming conflicts
- Standard directory pattern
- Parent directories can be created
## Protected File Patterns
The skill automatically protects these paths from modification:
### Version Control
- `.git/`, `.git/**`
- `.svn/`, `.svn/**`
- `.hg/`, `.hg/**`
### Dependencies
- `node_modules/`, `node_modules/**`
- `vendor/`, `vendor/**`
- `venv/`, `venv/**`
- `.venv/`, `.venv/**`
### Build Artifacts
- `dist/`, `dist/**`
- `build/`, `build/**`
- `.next/`, `.next/**`
- `.nuxt/`, `.nuxt/**`
- `out/`, `out/**`
### Sensitive Data
- `.env*`
- `secrets.*`
- `credentials.*`
### Lock Files
- `package-lock.json`
- `yarn.lock`
- `pnpm-lock.yaml`
- `Gemfile.lock`
- `Pipfile.lock`
- `poetry.lock`
### Cache Files
- `__pycache__/`, `__pycache__/**`
## Best Practices
### Before Running the Skill
1. **Commit Changes**: Ensure all current work is committed to version control
2. **Backup Important Files**: Have a recent backup or git stash available
3. **Review Project**: Understand what files and directories are important
4. **Test Access**: Verify you have necessary permissions
### During Execution
1. **Always Start with Scan**: Begin with `--scan` to understand the project
2. **Review Suggestions Carefully**: Look through all generated suggestions
3. **Use Preview Mode**: Always use `--preview` before any execution
4. **Test with Dry Run**: Use `--execute` to simulate changes safely
### After Execution
1. **Verify Project Works**: Test that your project still builds/runs correctly
2. **Review Operation Log**: Check `.project_organizer.log` for what was changed
3. **Commit Separately**: Commit organizational changes separately from functional changes
4. **Update Documentation**: Update any documentation that references old file paths
### Safety Checklist
Before using `--execute-real`, verify:
- [ ] Project is committed to version control
- [ ] All suggestions reviewed in preview mode
- [ ] Dry run completed successfully
- [ ] No critical files are being moved
- [ ] Build/test processes still work
- [ ] Team members notified if shared project
## Error Handling and Troubleshooting
### Common Issues
**Permission Denied:**
- Ensure you have write permissions
- Check file ownership
- May need appropriate privileges
**Path Protected:**
- Review protected patterns
- Confirm the path should be modified
- Adjust patterns if needed
**Changes Not Appearing:**
- Verify you used `--execute-real` (not just `--execute`)
- Check the operation log
- Confirm "yes" was entered at confirmation prompt
### Recovery Options
**Git Recovery:**
```bash
git status # See what changed
git checkout -- . # Restore all changes
git reset --hard HEAD # Full reset to last commit
```
**Operation Log Review:**
```bash
cat .project_organizer.log # Review detailed operation log
```
## Customization
### Adding Custom Protected Patterns
Edit the `PROTECTED_PATTERNS` list in the script:
```python
PROTECTED_PATTERNS = [
# Existing patterns...
'my_important_dir/**', # Custom protection
'*.critical', # Protect critical files
]
```
### Custom Organization Rules
Edit `MOVABLE_ROOT_FILES` dictionary:
```python
MOVABLE_ROOT_FILES = {
'assets': ['*.png', '*.jpg', '*.svg'], # Move images to assets/
'data': ['*.csv', '*.json', '*.xml'], # Move data files
}
```
### Custom Safety Validators
Extend the `SafeProjectOrganizer` class:
```python
def _custom_safety_check(self, path: Path) -> bool:
"""Your custom safety logic"""
# Return True if safe, False if should be protected
return True
```
## Integration with Claude Code
### As a Skill Tool
This skill integrates naturally with Claude Code's workflow:
1. **User Request**: "Organize my project structure"
2. **Skill Activation**: Safe Project Organizer loads
3. **Sequential Execution**: Follows the 5-step workflow automatically
4. **User Confirmation**: Confirms each step before proceeding
5. **Safety Validation**: All operations include safety checks
### Example User Interactions
**Simple Cleanup:**
```
User: "My project root is messy, can you help organize it?"
Claude: [Uses skill to scan and suggest safe improvements]
```
**Targeted Organization:**
```
User: "I have too many documentation files scattered around"
Claude: [Uses skill to identify and suggest grouping docs/ folder]
```
**Pre-Migration Cleanup:**
```
User: "I need to clean up before handing this project to another team"
Claude: [Uses skill for comprehensive safe reorganization]
```
## Resources
### scripts/
- `project_organizer.py` - The main safe project organizer script with comprehensive safety features
The script includes:
- Multi-phase analysis and execution
- Protected pattern detection
- Risk level classification
- Comprehensive safety checks
- Audit trail generation
- Rollback information preservation
This script can be executed independently of Claude Code for manual project organization tasks.
---
**Safety Guarantee**: This skill never modifies files without explicit confirmation, always previews changes, and includes comprehensive safety checks to protect important project data.
---
## MANDATORY USER VERIFICATION REQUIREMENT
### Policy: No Fix Claims Without User Confirmation
**CRITICAL**: Before claiming ANY issue, bug, or problem is "fixed", "resolved", "working", or "complete", the following verification protocol is MANDATORY:
#### Step 1: Technical Verification
- Run all relevant tests (build, type-check, unit tests)
- Verify no console errors
- Take screenshots/evidence of the fix
#### Step 2: User Verification Request
**REQUIRED**: Use the `AskUserQuestion` tool to explicitly ask the user to verify the fix:
```
"I've implemented [description of fix]. Before I mark this as complete, please verify:
1. [Specific thing to check #1]
2. [Specific thing to check #2]
3. Does this fix the issue you were experiencing?
Please confirm the fix works as expected, or let me know what's still not working."
```
#### Step 3: Wait for User Confirmation
- **DO NOT** proceed with claims of success until user responds
- **DO NOT** mark tasks as "completed" without user confirmation
- **DO NOT** use phrases like "fixed", "resolved", "working" without user verification
#### Step 4: Handle User Feedback
- If user confirms: Document the fix and mark as complete
- If user reports issues: Continue debugging, repeat verification cycle
### Prohibited Actions (Without User Verification)
- Claiming a bug is "fixed"
- Stating functionality is "working"
- Marking issues as "resolved"
- Declaring features as "complete"
- Any success claims about fixes
### Required Evidence Before User Verification Request
1. Technical tests passing
2. Visual confirmation via Playwright/screenshots
3. Specific test scenarios executed
4. Clear description of what was changed
**Remember: The user is the final authority on whether something is fixed. No exceptions.**
Name Size