Skip to content
Development
Skill

/drupal-cleanup

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

From plugin
cms-cultivator
1728 skills1 agent

Claude Code

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

SKILL.md

drupal-cleanup.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**:

# 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

**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

# 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
Read more
@kanopi
Ships withcms-cultivator

Specialist agents and auto-invoked skills for Drupal/WordPress development. Works in Claude Code, Claude Desktop, and OpenAI Codex. Full documentation: What changed in 2.0? CMS Cultivator now focuses on CMS development workflows.

1728 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
17
Star history of kanopi/cms-cultivator on GitHub, a chart by star-history.com

Other skills on cms-cultivator.

browser-validator

browser-validator

Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…

coverage-analyzer

coverage-analyzer

Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about…

ddev-docker-cleanup

ddev-docker-cleanup

Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about drupal-cleanup.

Which coding agents can use drupal-cleanup?
drupal-cleanup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.