Help us improve
Share bugs, ideas, or general feedback.
From cms-cultivator
Guides through the full drupal.org contribution workflow: creating an issue and setting up a merge request together. Requires manual steps for CAPTCHA-protected issue creation and issue fork creation.
npx claudepluginhub kanopi/claude-toolbox --plugin cms-cultivatorHow this skill is triggered — by the user, by Claude, or both
Slash command
/cms-cultivator:drupal-contributeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Full drupal.org contribution workflow — create an issue and set up a merge request in one workflow.
Creates and lists merge requests for Drupal.org projects via git.drupalcode.org. Automates cloning, branching, and pushing for issue-based MRs.
Open-source issue creation: bug reports, feature requests, and structured contribution communication. Invoke whenever task involves any interaction with issues in external repositories — filing bugs, proposing features, reporting problems, or preparing issue content for open-source projects.
Resolves GitHub issues via 8-phase workflow: fetch details, analyze requirements, implement solutions, verify correctness, code review, commit changes, create PRs. Activates on resolve, implement, fix requests or issue references.
Share bugs, ideas, or general feedback.
Full drupal.org contribution workflow — create an issue and set up a merge request in one workflow.
This skill has external side effects:
~/.cache/drupal-contrib/{project}/Two manual interaction points are required (CAPTCHA protection prevents automation):
/drupal-contribute {project} [issue-number]If issue already exists: /drupal-contribute paragraphs 3456789 (skips to MR setup)
When Task() is unavailable:
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
{description}
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
{resolution}
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
- [ ] Confirm the bug
- [ ] Write fix
- [ ] Add tests
https://www.drupal.org/node/add/project-issue/{project}git clone git@git.drupal.org:project/{project}.git ~/.cache/drupal-contrib/{project}
cd ~/.cache/drupal-contrib/{project}
# User creates issue fork at: https://www.drupal.org/project/{project}/issues/{issue_number}
git remote add {project}-{issue} git@git.drupal.org:issue/{project}-{issue_number}.git
git fetch {project}-{issue_number}
git checkout -b {issue_number}-{description-slug}
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 available:
Phase 1 — Issue Creation:
Task(cms-cultivator:drupalorg-issue-specialist:drupalorg-issue-specialist,
prompt="Create a new issue for {project}. Generate issue content using drupal.org HTML templates, copy title to clipboard, open browser, guide user through submission, and return the issue number.")
Phase 2 — MR Setup (after user provides issue number):
Task(cms-cultivator:drupalorg-mr-specialist:drupalorg-mr-specialist,
prompt="Create a merge request for {project} issue #{issue_number}. Clone repo, guide user through manual fork creation, set up branch, push changes, and provide MR creation URL.")
~/.cache/drupal-contrib/{project}/Use /drupal-contribute {project} {issue_number} to skip issue creation.