Skip to content
Back to skills

Drupal Cleanup

BSecurity

List and clean up cloned drupal.org repositories in the local cache (~/.cache/drupal-contrib/). Invoke when user asks to list, remove, or clean up cloned Drupal contrib repos, says \"cleanup drupal repos\", \"remove cloned drupal projects\", or uses /drupal-cleanup. Has side effects: permanently deletes repository clones. Requires user confirmation before deletion.

  • 17 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 28, 2026
ai-agentsgobashgit

Works with

  • claude code
  • claude desktop

Security analysis

B85/100
  • highPerforms destructive filesystem operations

Pro scans all 2 files and shows the line behind each finding

Scanned May 28, 2026

npx -y skills add kanopi/cms-cultivator --skill drupal-cleanup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Drupal Cleanup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Drupal Cleanup
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/kanopi-drupal-cleanup/badge)](https://www.skillsdirectory.com/skills/kanopi-drupal-cleanup)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: drupal-cleanup
description: "List and clean up cloned drupal.org repositories in the local cache (~/.cache/drupal-contrib/). Invoke when user asks to list, remove, or clean up cloned Drupal contrib repos, says \"cleanup drupal repos\", \"remove cloned drupal projects\", or uses /drupal-cleanup. Has side effects: permanently deletes repository clones. Requires user confirmation before deletion."
disable-model-invocation: true
---

# Drupal Cleanup

List and clean up cloned drupal.org repositories in `~/.cache/drupal-contrib/`.

## ⚠️ Side Effect Warning

**Removing a repository permanently deletes the local clone** including:
- All branches not pushed to issue forks
- Any uncommitted changes
- Local-only commits

**The skill checks for uncommitted changes and unpushed branches before deletion and requires explicit user confirmation.** Once deleted, the repository must be re-cloned.

## Usage

- "List my cloned drupal.org repos"
- "Remove the paragraphs repository from my local cache"
- "Clean up all drupal contrib repos"
- `/drupal-cleanup` — List all repos
- `/drupal-cleanup list` — List with details
- `/drupal-cleanup {project}` — Remove specific project
- `/drupal-cleanup --all` — Remove all cloned repos

## Environment Detection

### Tier 1 — Portable (Claude Desktop, Codex, any environment)

When Bash tools are unavailable:

**For listing**:
1. Ask user to run: `ls -la ~/.cache/drupal-contrib/` and share output
2. Provide analysis and recommendations based on shared output
3. Guide cleanup decisions

**For removal (requires Bash in Tier 2)**:
- Provide the exact commands for user to run manually with explanations

### Tier 2 — Claude Code Enhanced

When running in Claude Code with Bash available:

**Listing repos**:
```bash
# Check if cache directory exists
ls -la ~/.cache/drupal-contrib/ 2>/dev/null || echo "No repos cloned yet"

# Get size and details of each project
for dir in ~/.cache/drupal-contrib/*/; do
  project=$(basename "$dir")
  size=$(du -sh "$dir" 2>/dev/null | cut -f1)
  branches=$(cd "$dir" && git branch | wc -l)
  status=$(cd "$dir" && git status --short | wc -l)
  echo "$project | $size | $branches branches | $status modified files"
done
```

**Removing specific project**:
1. Check for uncommitted changes: `cd ~/.cache/drupal-contrib/{project} && git status --short`
2. Check for unpushed branches: `git log --branches --not --remotes --oneline | wc -l`
3. **Present findings to user**
4. **⛔ STOP: Warn about irreversible deletion and require confirmation**:
   ```
   ⚠️ This will permanently delete ~/.cache/drupal-contrib/{project}/
   
   Status: {uncommitted changes / unpushed commits if any}
   
   Reply "yes" to proceed, "no" to cancel.
   ```
5. **After "yes" confirmation only**: `rm -rf ~/.cache/drupal-contrib/{project}/`

**Removing all repos**:
1. Show summary: all projects, total size, any with uncommitted work
2. **⛔ STOP: Require explicit confirmation**:
   ```
   ⚠️ This will permanently delete ALL repos in ~/.cache/drupal-contrib/:
   
   {list of projects with their sizes}
   Total: {X} MB across {N} projects
   
   {Warning if any have uncommitted changes}
   
   Reply "yes, delete all" to proceed, or "no" to cancel.
   ```
3. **After "yes, delete all" confirmation only**: `rm -rf ~/.cache/drupal-contrib/`

## Listing Output Format

```markdown
**Cloned Drupal.org Repositories**
Location: ~/.cache/drupal-contrib/

| Project | Size | Branches | Modified | Status |
|---------|------|----------|----------|--------|
| paragraphs | 45 MB | 3 | 2 days ago | Clean |
| webform | 120 MB | 1 | 1 week ago | Clean |
| easy_lqp | 12 MB | 2 | Today | ⚠️ Modified |

**Total**: 177 MB across 3 projects

**To remove a repo**: Use the drupal-cleanup skill with the project name
**To remove all**: Use the drupal-cleanup skill with --all flag
```

## Safety Checks

Before any deletion, this skill checks:
1. **Uncommitted changes** — Modified files not yet staged
2. **Unstaged files** — New files not tracked by git
3. **Unpushed branches** — Local commits not pushed to issue fork

If any are found, the user is warned before proceeding.

## When to Clean Up

Consider cleaning up when:
- An MR has been merged
- You're done contributing to a project
- Disk space is low
- You want a fresh start

**Before cleanup, ensure**:
- All branches are pushed to issue forks on git.drupalcode.org
- No uncommitted changes exist
- MRs are in stable state

## Re-cloning After Cleanup

```bash
# Via drupal-mr skill (re-clones automatically):
# "Create MR for {project} issue {number}"

# Or manually:
git clone git@git.drupal.org:project/{project}.git ~/.cache/drupal-contrib/{project}
```

## Related Skills

- **drupal-mr** — Create MRs (will re-clone if needed)
- **drupal-issue** — Create issues on drupal.org
- **drupal-contribute** — Full contribution workflow

Files in this skill

  • SKILL.md4.8 KB
  • agents/openai.yaml239 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.