skills/drupal-cleanup/SKILL.md
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.
npx skillsauth add kanopi/cms-cultivator drupal-cleanupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
List and clean up cloned drupal.org repositories in ~/.cache/drupal-contrib/.
Removing a repository permanently deletes the local clone including:
The skill checks for uncommitted changes and unpushed branches before deletion and requires explicit user confirmation. Once deleted, the repository must be re-cloned.
/drupal-cleanup — List all repos/drupal-cleanup list — List with details/drupal-cleanup {project} — Remove specific project/drupal-cleanup --all — Remove all cloned reposWhen Bash tools are unavailable:
For listing:
ls -la ~/.cache/drupal-contrib/ and share outputFor removal (requires Bash in Tier 2):
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:
cd ~/.cache/drupal-contrib/{project} && git status --shortgit log --branches --not --remotes --oneline | wc -l⚠️ This will permanently delete ~/.cache/drupal-contrib/{project}/
Status: {uncommitted changes / unpushed commits if any}
Reply "yes" to proceed, "no" to cancel.
rm -rf ~/.cache/drupal-contrib/{project}/Removing all repos:
⚠️ 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.
rm -rf ~/.cache/drupal-contrib/**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
Before any deletion, this skill checks:
If any are found, the user is warned before proceeding.
Consider cleaning up when:
Before cleanup, ensure:
# Via drupal-mr skill (re-clones automatically):
# "Create MR for {project} issue {number}"
# Or manually:
git clone [email protected]:project/{project}.git ~/.cache/drupal-contrib/{project}
tools
Strategist-focused site audit for discovery and pre-discovery. Given a site URL and optional qualitative research data, navigates the site via CoWork, audits against all 21 UX Laws from lawsofux.com, reviews content hierarchy, synthesises qualitative data, runs Lighthouse, and produces two deliverables — a Project Knowledge Summary (Markdown for Claude Desktop Projects) and a polished, iterable HTML Artifact for client sharing. Use when a strategist, UX lead, or PM asks for a discovery audit, UX laws audit, content hierarchy review, pre-discovery site review, "audit this site for strategy", "strategist audit", "UX audit", or pastes a site URL with discovery context. Not for developer audits — use accessibility-audit, performance-audit, or live-site-audit for those.
development
Provide story point estimation guidance with hour calculations for software development tasks. Uses Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34+) and converts story points to hours. Includes platform-specific adjustments and velocity calculations.
tools
Perform a full QA review of a Teamwork task by reading the task and all its comments for context, extracting the multi-dev URL, generating dynamic validation steps tailored to the task type, and using CoWork browser automation to execute those steps on the multi-dev environment. Produces a structured validation report with pass/fail per step, screenshots, internal notes, and a client-facing summary — all shown in chat. Use this skill whenever the user asks to QA, test, validate, or review a Teamwork task or multi-dev environment — even if they just say "can you QA this?" or paste a Teamwork link. Also triggers for phrases like "run QA on", "check the multi-dev", "validate this task", "test the dev link", or "review the ticket". Works across Drupal/CMS updates, WordPress/plugin updates, bug fixes, new feature development, and general web development tasks.
tools
Generate a client-facing project heartbeat / status update message for a Kanopi project, ready to be posted as a Teamwork message. Use this skill whenever the user asks to write, draft, generate, or send a project update, heartbeat, status update, or progress report to a client. Also triggers when the user says things like "time for a project update", "draft the heartbeat", "write up the update for [project]", or "it's been two weeks, let's send an update". Always use this skill — even if the user doesn't say "heartbeat" — whenever the intent is to summarise recent project activity for a client audience.