skills/drupalorg-issue-search/SKILL.md
Search for Drupal.org issues by keyword. Combines CLI API search, Drupal.org issue queue scraping, and web search, then deduplicates and presents a unified summary.
npx skillsauth add mglaman/drupalorg-cli drupalorg-issue-searchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/drupalorg-issue-search <query> [--project=<project>] [--status=all] [--skip=web_search,api_search,drupalorg_scrape]
Parse inputs: Extract the search query and optional flags:
--project: project machine name--status: issue status filter (default: all)--skip: comma-separated list of channels to skip. Valid values: api_search, drupalorg_scrape, web_search. For example --skip=web_search skips the web search, --skip=api_search,web_search runs only the Drupal.org scrape.Detect project and issue queue type: If --project is not provided, try to infer the project machine name from the current git remote:
git config --get remote.origin.url
Extract the project name from the URL (pattern: */project-name.git). If detection fails, proceed without a project filter.
Once the project name is known, check whether it uses GitLab work items:
drupalorg project:issues <project> --limit=1 --format=json
If the output contains a "gitlab_issues" key or the command prints
"Project uses GitLab work items" to stderr, the project has migrated.
In that case:
api_search and drupalorg_scrape channels (they search the D.o issue queue, which is empty for this project).web_search, target site:git.drupalcode.org/project/<project>/-/issues instead.Run enabled searches in parallel (skip any channel listed in --skip):
a. API search (channel: api_search) — run the CLI command:
php drupalorg issue:search <query> --status=<status> --format=json
If a project is known, include it as the first argument:
php drupalorg issue:search <project> <query> --status=<status> --format=json
b. Drupal.org issue queue scrape (channel: drupalorg_scrape) — if a project is known, fetch the project's issue search page directly using WebFetch:
URL: https://www.drupal.org/project/issues/<project>?text=<query words joined by +>&status=All
Prompt: Extract all issue NIDs (numeric IDs from URLs like /node/XXXX or /issues/XXXX), titles, and statuses from this page. Return as a compact list.
Replace spaces in the query with + for the URL parameter. This channel searches issue titles and bodies server-side, so it can find older and closed issues that the API search misses.
If no project is known, skip this channel.
c. Web search (channel: web_search) — search the web:
<query> site:https://www.drupal.org/project/issues/<project><query> site:https://www.drupal.org/project/issues/Extract NIDs: Parse NIDs from all active sources:
/issues/{nid} or /node/{nid} where {nid} is a numeric IDDeduplicate: Collect all unique NIDs from all sources.
Enrich results without details: For any NIDs found via web search (but NOT in the API or scrape results which already have titles), fetch details:
drupalorg issue:show <nid> --format=llm
Present results: Output a combined summary table with columns:
https://www.drupal.org/node/{nid})Group results by source if helpful (API results first, then scrape results, then web-only results).
testing
Agentic workflow for contributing to a Drupal.org issue via GitLab MR. Orchestrates fork verification, directory alignment, remote setup, branch checkout, and the fix/push/pipeline loop.
documentation
Fetches a Drupal.org issue with all its comments and analyses whether the "Proposed resolution" in the issue summary matches the current discussion consensus. Drafts an updated summary for the user to paste back.
tools
Search for Drupal.org issues by keyword. Combines CLI API search, Drupal.org issue queue scraping, and web search, then deduplicates and presents a unified summary.
tools
CLI for Drupal.org issue lifecycle management. Use when fetching issue details, generating patches/interdiffs, listing project or maintainer issues, looking up releases, or working with GitLab merge requests on issue forks. Also supports projects that have migrated to GitLab work items. Pass --format=llm to every read command for structured XML output optimised for agent consumption.