Skip to content
Development
Skill

/drupal-contribute

Full drupal.org contribution workflow — create an issue and set up a merge request together. Invoke when user wants to contribute to a Drupal module, says \"contribute to drupal.org\", \"create a drupal.org issue and MR\", or uses /drupal-contribute. Requires user interaction at

From plugin
cms-cultivator
1728 skills1 agent

Claude Code

$ npx -y skills add kanopi/cms-cultivator --skill drupal-contribute --agent claude-code

SKILL.md

drupal-contribute.SKILL.md
name: drupal-contribute
description: "Full drupal.org contribution workflow — create an issue and set up a merge request together. Invoke when user wants to contribute to a Drupal module, says \"contribute to drupal.org\", \"create a drupal.org issue and MR\", or uses /drupal-contribute. Requires user interaction at two manual steps (CAPTCHA-protected issue creation and issue fork creation). Has side effects: clones repos to ~/.cache/drupal-contrib/ and creates drupal.org issues."
disable-model-invocation: true

Drupal Contribute

Full drupal.org contribution workflow — create an issue and set up a merge request in one workflow.

⚠️ Side Effect Warning

**This skill has external side effects:**

  • Creates a new issue on drupal.org (publicly visible)
  • Clones the project repository to `~/.cache/drupal-contrib/{project}/`
  • Pushes to an issue fork on git.drupalcode.org

**Two manual interaction points are required** (CAPTCHA protection prevents automation): 1. You paste and submit the issue on drupal.org 2. You click "Create issue fork" on the issue page

Usage

  • "Contribute to the paragraphs module — create an issue and MR"
  • "Start a new drupal.org contribution for the webform module"
  • `/drupal-contribute {project} [issue-number]`

**If issue already exists**: `/drupal-contribute paragraphs 3456789` (skips to MR setup)

Prerequisites

  • drupal.org account (logged in via browser)
  • SSH key added to git.drupalcode.org (for MR setup)
  • Or HTTPS token from git.drupalcode.org (if SSH blocked)

Environment Detection

Tier 1 — Portable (Claude Desktop, Codex, any environment)

When Task() is unavailable:

1. **Gather issue details** — Ask user for: issue type, title, description, Drupal/module version, priority 2. **Generate issue content** — Format using official drupal.org HTML template:

   <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

3. **Display for manual submission** — Show complete formatted content for copy/paste 4. **Provide issue URL** — `https://www.drupal.org/node/add/project-issue/{project}` 5. **⛔ STOP: User pastes content and submits issue, then replies with issue number** 6. **Guide MR setup** — Provide git commands:

   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}

7. **⛔ STOP: User creates issue fork, replies "done"** 8. **Provide push command**:

   git push {project}-{issue_number} {branch_name}
   # Git outputs MR creation URL — open in browser to complete

Tier 2 — Claude Code Enhanced

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.")

Contribution Workflow

New Contribution (Issue + MR)

1. Agent generates issue content and opens browser 2. **You paste and submit** — reply with issue number 3. Agent opens issue page for fork creation 4. **You click "Create issue fork"** — reply "done" 5. Agent sets up branch and remote 6. Make your code changes in `~/.cache/drupal-contrib/{project}/` 7. Commit and push (git outputs MR URL automatically) 8. Open MR URL in browser to complete creation

Existing Issue (MR Only)

Use `/drupal-contribute {project} {issue_number}` to skip issue creation.

Related Skills

  • **drupal-issue** — Issue operations only
  • **drupal-mr** — MR operations only
  • **drupal-cleanup** — Manage cloned repositories
  • **drupalorg-issue-helper** — Issue template guidance
  • **drupalorg-contribution-helper** — Git workflow guidance
Read more
@kanopi
Ships withcms-cultivator

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.

1728 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
17
Star history of kanopi/cms-cultivator on GitHub, a chart by star-history.com

Other skills on cms-cultivator.

browser-validator

browser-validator

Automatically validate implementations in real browsers after code is written or when user says "test this", "test what you built…

coverage-analyzer

coverage-analyzer

Automatically analyze test coverage when user asks which code is tested, mentions coverage gaps, or shows code asking about…

ddev-docker-cleanup

ddev-docker-cleanup

Deterministic cleanup of DDEV and Docker disk usage on OrbStack, Docker Desktop, or any Docker provider. Safely reclaims space by…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about drupal-contribute.

Which coding agents can use drupal-contribute?
drupal-contribute installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.