browser-validator
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built in the browser", "check it in…
Quick help with drupal.org contribution workflows including git commands, branch naming, issue fork setup, and merge request creation. Invoke when user asks "how do I contribute to drupal.org?", "drupal.org git workflow", "issue fork", "drupal merge request", or needs help with
$ npx -y skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/drupalorg-contribution-helperContext preview
The summary Claude sees to decide when to auto-load this skill.
Quick help with drupal.org contribution workflows including git commands, branch naming, issue fork setup, and merge request creation. Invoke when user asks "how do I contribute to drupal.org?", "drupal.org git workflow", "issue fork", "drupal merge request", or needs help with
name: drupalorg-contribution-helper description: Quick help with drupal.org contribution workflows including git commands, branch naming, issue fork setup, and merge request creation. Invoke when user asks "how do I contribute to drupal.org?", "drupal.org git workflow", "issue fork", "drupal merge request", or needs help with git.drupalcode.org commands.
Quick assistance with drupal.org contribution workflows, git commands, and merge request creation.
Activate this skill when the user:
The `drupalorg-cli` package provides helpful shortcuts for drupal.org contribution:
# Install curl -LO https://github.com/mglaman/drupalorg-cli/releases/latest/download/drupalorg.phar chmod +x drupalorg.phar sudo mv drupalorg.phar /usr/local/bin/drupalorg # Create branch for issue (inside project directory) drupalorg issue:branch 3456789 # Apply latest patch from issue drupalorg issue:apply 3456789 # Generate patch from local changes drupalorg issue:patch # List project issues drupalorg project:issues paragraphs # Open issue in browser drupalorg issue:link 3456789
# Clone any drupal.org project
git clone git@git.drupal.org:project/{project_name}.git
# Examples
git clone git@git.drupal.org:project/paragraphs.git
git clone git@git.drupal.org:project/webform.git
git clone git@git.drupal.org:project/easy_lqp.git{issue_number}-{description-slug}
Examples:
3456789-fix-validation-error
3456789-add-ckeditor5-support
3456789-update-documentation**Rules**:
Remote naming follows `{project}-{issue}` convention to allow multiple issue forks per project:
# Add issue fork remote
git remote add {project}-{issue_number} git@git.drupal.org:issue/{project}-{issue_number}.git
# Examples
git remote add paragraphs-3456789 git@git.drupal.org:issue/paragraphs-3456789.git
git remote add easy_lqp-3456790 git@git.drupal.org:issue/easy_lqp-3456790.git
# Fetch from issue fork
git fetch {project}-{issue_number}
# Verify remotes
git remote -vIssue #{issue_number}: {description}
Example:
Issue #3456789: Fix validation error in configuration form# Push branch to issue fork
git push {project}-{issue_number} {branch_name}
# Example
git push paragraphs-3456789 3456789-fix-validation-error# Clone to isolated location (recommended)
mkdir -p ~/.cache/drupal-contrib
git clone git@git.drupal.org:project/{project}.git ~/.cache/drupal-contrib/{project}
cd ~/.cache/drupal-contrib/{project}Issue forks must be created via the drupal.org web UI. This cannot be automated due to CAPTCHA protection.
1. Go to: `https://www.drupal.org/project/{project}/issues/{issue_number}` 2. Click **"Create issue fork"** in the right sidebar 3. Wait for confirmation message (~10 seconds)
**Note**: This step cannot be done via command line or API.
git remote add {project}-{issue_number} git@git.drupal.org:issue/{project}-{issue_number}.git
git fetch {project}-{issue_number}# If branch already exists on fork, checkout tracking it:
git checkout -b '{issue_number}-{description}' --track {project}-{issue_number}/'{issue_number}-{description}'
# If creating new branch:
git checkout -b {issue_number}-{description}# Make your code changes
# ...
# Stage and commit
git add .
git commit -m "Issue #{issue_number}: {description}"git push {project}-{issue_number} {branch_name}When you push, git outputs the MR creation URL:
remote: To create a merge request for {branch}, visit:
remote: https://git.drupalcode.org/issue/{project}-{issue}/-/merge_requests/new?...Open that URL in your browser to complete MR creation.
**Alternative: Via Web UI** 1. Go to issue page on drupal.org 2. Click "Compare" button 3. Follow MR creation flow
ls -la ~/.ssh/id_*.pub
ssh-keygen -t ed25519 -C "your-email@example.com"
1. Go to: https://git.drupalcode.org/-/user_settings/ssh_keys 2. Copy your public key: `cat ~/.ssh/id_ed25519.pub` 3. Paste and save
ssh -T git@git.drupal.org
If your network blocks SSH port 22, use HTTPS with a personal access token:
# Create token at: https://git.drupalcode.org/-/user_settings/personal_access_tokens
# Required scopes: read_repository, write_repository
# For clone:
git clone https://{username}:{token}@git.drupalcode.org/project/{project}.git
# For issue fork remote:
git remote add {project}-{issue} \
"https://{username}:{token}@git.drupalcode.org/issue/{project}-{issue}.git"1. Verify SSH key is added to git.drupalcode.org:
2. Verify issue fork exists:
3. Verify remote is correct:
git remote -v
# Should show: {project}-{issue} git@git.drupal.org:issue/{project}-{issue}.gitYou mus
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.
Repo: kanopi/cms-cultivator
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built in the browser", "check it in…
Run the right linting, formatting, and static-analysis commands after changing code, and check it against PHPCS, ESLint, WordPress Coding Standards, or Drupal…
Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and status to create properly…
Generate and maintain patches for Composer-installed packages (Drupal contrib modules, WordPress packages, PHP libraries) using cweagans/composer-patches.…
Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about testing. Identifies untested code…
Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by removing orphaned Docker…