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 issue templates, formatting, contributing patches, and best practices. Invoke when user asks "how do I write a bug report?", "drupal.org issue template", "issue formatting", "I have a patch", "contribute back", "submit my fix", "I fixed a bug in a
$ npx -y skills add kanopi/cms-cultivator --skill drupalorg-issue-helper --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/drupalorg-issue-helperContext preview
The summary Claude sees to decide when to auto-load this skill.
Quick help with drupal.org issue templates, formatting, contributing patches, and best practices. Invoke when user asks "how do I write a bug report?", "drupal.org issue template", "issue formatting", "I have a patch", "contribute back", "submit my fix", "I fixed a bug in a
name: drupalorg-issue-helper description: Quick help with drupal.org issue templates, formatting, contributing patches, and best practices. Invoke when user asks "how do I write a bug report?", "drupal.org issue template", "issue formatting", "I have a patch", "contribute back", "submit my fix", "I fixed a bug in a module", or needs help structuring issue descriptions or contributing code to drupal.org projects.
Quick assistance with drupal.org issue templates, formatting, contributing patches/fixes, and best practices for effective bug reports and feature requests.
Activate this skill when the user:
**drupal.org has no write API** - issue creation requires the web UI.
Use `/drupal-issue create {project}` for a guided workflow that: 1. Generates properly formatted HTML content 2. Copies title to clipboard 3. Opens browser to the issue form 4. Guides you through submission
Or manually create issues at: `https://www.drupal.org/node/add/project-issue/{project}`
If you've already created a fix locally and want to contribute it back, here's the workflow:
Before submitting code, you need an issue on drupal.org: 1. Search existing issues to avoid duplicates 2. Use `/drupal-issue create {project}` to create a new issue 3. Note the issue number (e.g., `3569261`)
Use `/drupal-mr {project} {issue_number}` which will: 1. Clone the project to `~/.cache/drupal-contrib/{project}/` 2. Guide you to create an issue fork on drupal.org 3. Set up the branch `{issue_number}-{description}` 4. Push your changes and provide the MR URL
If your fix is in a different location (e.g., your project's `vendor/` or `web/modules/contrib/`):
# Option A: Copy changed files
cp /path/to/your/fix/SomeClass.php ~/.cache/drupal-contrib/{project}/src/
# Option B: Create a patch from your changes and apply it
cd /path/to/your/project
git diff web/modules/contrib/{module} > ~/fix.patch
cd ~/.cache/drupal-contrib/{project}
git apply ~/fix.patch
# Option C: Cherry-pick if you committed locally
git format-patch -1 HEAD --stdout > ~/fix.patch
cd ~/.cache/drupal-contrib/{project}
git am ~/fix.patchcd ~/.cache/drupal-contrib/{project}
git add .
git commit -m "Issue #{issue_number}: Description of fix"
git push {project}-{issue_number} {branch_name}For a complete guided workflow that handles issue + MR together:
/drupal-contribute {project}User: "I fixed a bug in the paragraphs module where nested items weren't saving correctly. How do I contribute this back?" Workflow: 1. /drupal-issue create paragraphs → Creates issue, returns #3569999 2. /drupal-mr paragraphs 3569999 → Sets up branch, you copy your fix, push 3. Complete MR in browser 4. Update issue status to "Needs review"
drupal.org expects issue descriptions in **HTML format** with specific headings. Use this exact structure:
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
{problem_description}
<h4 id="summary-steps-reproduce">Steps to reproduce</h4>
{steps_if_bug}
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
{proposed_solution}
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
{remaining_tasks_checklist}
<h3 id="summary-ui-changes">User interface changes</h3>
{ui_changes_or_none}
<h3 id="summary-api-changes">API changes</h3>
{api_changes_or_none}
<h3 id="summary-data-model-changes">Data model changes</h3>
{data_model_changes_or_none}| Category | When to Use | |----------|-------------| | **Bug report** | Something doesn't work as expected | | **Feature request** | New functionality needed | | **Task** | Work item that's not a bug or feature | | **Support request** | Need help using the module | | **Plan** | Strategic planning for the project |
| Priority | Definition | |----------|------------| | **Critical** | Data loss, security issue, or complete breakage with no workaround | | **Major** | Significant impact but workaround exists | | **Normal** | Standard priority for most issues | | **Minor** | Nice to have, cosmetic issues, minor improvements |
Use this complete template for bug reports:
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
{Clearly describe what's wrong. What did you expect to happen vs. what actually happened?}
<h4 id="summary-steps-reproduce">Steps to reproduce</h4>
1. {First step - be specific}
2. {Second step}
3. {Third step}
4. {Observe the bug}
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
{How should this be fixed?}
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
- [ ] Confirm the bug can be reproduced
- [ ] Write the fix
- [ ] Add test coverage
- [ ] Review and merge
<h3 id="summary-ui-changes">User interface changes</h3>
None
<h3 id="summary-api-changes">API changes</h3>
None
<h3 id="summary-data-model-changes">Data model changes</h3>
None1. **Be specific** - "The form doesn't work" is unhelpful; "Clicking Save on the settings form shows a WSOD" is useful 2. **Include versions** - Always mention Drupal core, module, and PHP versi
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…