Help us improve
Share bugs, ideas, or general feedback.
From cms-cultivator
Creates and lists merge requests for Drupal.org projects via git.drupalcode.org. Automates cloning, branching, and pushing for issue-based MRs.
npx claudepluginhub kanopi/claude-toolbox --plugin cms-cultivatorHow this skill is triggered — by the user, by Claude, or both
Slash command
/cms-cultivator:drupal-mrThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create and manage merge requests for drupal.org projects via git.drupalcode.org.
Guides users through drupal.org contribution workflows: git clone, branch naming, issue fork setup, commit messages, and merge request creation.
Manages GitLab merge requests via glab: create from commits, list/view/checkout, merge with auto-handling, block MRs, handle reviews/discussions/stacks.
Automates the full GitCode open-source contribution workflow: local commit, push, issue creation, PR, pipeline checks, code review with /lgtm and /approve, and merge.
Share bugs, ideas, or general feedback.
Create and manage merge requests for drupal.org projects via git.drupalcode.org.
This skill has external side effects:
~/.cache/drupal-contrib/{project}/One manual interaction required — Issue fork creation must be done via the drupal.org web UI (CAPTCHA-protected).
/drupal-mr {project} {issue_number} — Create MR/drupal-mr list [{project}] — List MRsSSH key added to git.drupalcode.org:
~/.ssh/id_ed25519.pub)ssh -T git@git.drupal.orgHTTPS fallback (if SSH port 22 is blocked):
read_repository, write_repositoryWhen Task() is unavailable:
ssh -T git@git.drupal.orggit clone git@git.drupal.org:project/{project}.git ~/.cache/drupal-contrib/{project}
cd ~/.cache/drupal-contrib/{project}
https://www.drupal.org/project/{project}/issues/{issue_number}git remote add {project}-{issue_number} git@git.drupal.org:issue/{project}-{issue_number}.git
git fetch {project}-{issue_number}
git checkout -b {issue_number}-{description-slug}
git add .
git commit -m "Issue #{issue_number}: {description}"
git push {project}-{issue_number} {branch_name}
# Git outputs MR creation URL — open in browser to complete
When running in Claude Code with Task() and git/ssh available:
Task(cms-cultivator:drupalorg-mr-specialist:drupalorg-mr-specialist,
prompt="Execute the drupal-mr command with arguments: {arguments}. Check prerequisites (SSH key), clone project to ~/.cache/drupal-contrib/ if needed, guide user through manual issue fork creation, set up branch, push changes, and provide MR creation URL. Return MR URL and next steps.")
The agent handles git operations automatically, pausing for the one required manual step (issue fork creation).
{issue_number}-{description-slug}
Examples:
3456789-fix-validation-error
3456789-add-ckeditor5-support
All drupal.org projects clone to ~/.cache/drupal-contrib/:
~/.cache/drupal-contrib/
├── paragraphs/
├── webform/
└── easy_lqp/
This location persists across sessions and avoids conflicts with your main projects.
cd ~/.cache/drupal-contrib/{project}
git fetch --all
git checkout {branch_name}
# Make changes
git add . && git commit -m "Issue #{issue}: additional fixes"
git push {project}-{issue_number} {branch_name}
# MR updates automatically
**Merge Request Ready**
**Project**: paragraphs
**Issue**: #3456789
**Branch**: 3456789-fix-validation-error
**Local repo**: ~/.cache/drupal-contrib/paragraphs/
**Next Steps**:
1. Complete MR creation via the URL in git push output
2. Update drupal.org issue status to "Needs review"
3. Respond to review feedback