browser-validator
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…
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
Claude Code
$ npx -y skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper --agent claude-code
Codex
$ npx skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper -a codex -y
Cursor
$ npx skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper -a cursor -y
Gemini CLI
$ npx skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper -a gemini-cli -y
GitHub Copilot
$ npx skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper -a github-copilot -y
OpenCode
$ npx skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper -a opencode -y
Windsurf
$ npx skills add kanopi/cms-cultivator --skill drupalorg-contribution-helper -a windsurf -y
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.
Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…
Run the right linting, formatting, and static-analysis commands after changing code, and check it against PHPCS, ESLint,…
Automatically generate conventional commit messages when user has staged changes and mentions committing. Analyzes git diff and…
Generate and maintain patches for Composer-installed packages (Drupal contrib modules, WordPress packages, PHP libraries) using…
Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about…
Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.