Skip to content

Plugin authors and maintainers

wporg-forum-triage

Sorts a plugin's WordPress.org support threads into bugs, how-to questions, feature requests, conflicts, praise and spam, and lists the ones awaiting a reply.

Kind
Open-source tool
Language
JavaScript
License
MIT
Status
First release
  • cli
  • jev
  • support
  • triage
  • typesafe
  • wordpress
  • wordpress-plugin

Crash reports and thank-you notes in one list

A plugin's support forum puts crash reports, setup questions, feature requests, thank-you notes and spam in one list, and WordPress.org shows only whether a topic is resolved and how many replies it has. Finding the unanswered bug reports means opening every thread. A search for words such as "error" misses bug reports that describe the problem in other words, and finds how-to questions that quote an error message. wporg-forum-triage reads the forum for you and lists the threads that are waiting for the plugin's author, grouped by kind.

Three questions per thread

Jev, TypeSafe AI's System One model, answers typed questions with probabilities and writes no text. It sees each thread as its title and its first post, nothing else, in groups of up to five threads per request, and gets three questions about each:

  • What kind of topic is it: bug, how-to, feature request, conflict with another plugin, praise, spam or other?
  • Does it need a reply from the people who make the plugin?
  • Does it say its problem is solved or its question answered, for example in an edit to the post?

Bug, how-to and conflict are easy to confuse, so their descriptions also say what they are not for, and "other" takes threads that fit none of the six (pricing, licences, "is this still maintained?") instead of forcing them into one.

Code turns the answers into a status with one threshold, 0.8 by default. A topic marked resolved on the forum is counted, not listed. The rest are "looks resolved", "no reply needed", "unanswered", "N replies" or unclear, and a thread goes to the review list when its status is unclear or its kind falls below the threshold, while keeping a clear status: an unanswered thread whose kind is unclear still counts as unanswered. The report lists bugs first, the unanswered ones first in each group, the oldest first within a status.

What the forum feeds allow

The tool reads the feeds WordPress.org publishes for every plugin forum: the newest topics by default, or the newest topics not marked resolved with --unresolved. When the tool was written, on 2026-09-26, each feed listed the 30 newest topics, and WordPress.org answered a request for page two with the first page again. The tool stops at the first page that brings no new thread and says so. To reach older open threads, the unresolved feed goes further back because it leaves resolved topics out. Sticky topics are never in the feeds.

It only reads

It sends GET requests to wordpress.org, two seconds apart, follows redirects only within wordpress.org, and never posts, replies, marks topics resolved or signs in. TypeSafe receives the title and first post of each thread and the fixed question text; thread addresses, dates, reply counts, resolved markers and the plugin's slug are not sent, and user names are not read from the feed at all. The exit code is 1 when a thread is unanswered, so a scheduled job can alert you.

Limits

  • The feed has each thread's first post and its reply count, not the replies. "N replies" means someone replied: you, another user, or the person who asked.
  • Only the English forums at wordpress.org are read; localized forums are not. Jev is also most accurate in English.
  • Anyone can post in a support forum, and text written to steer a model, such as a post that describes itself as praise, can move Jev's answers.
  • Each thread gets one kind. A post that reports a bug and asks for a feature gets the likelier one, and the probabilities show the other.
  • The example report in the repository reads a made-up feed for a made-up plugin, with twelve threads and hand-written probabilities: it shows the format, not a live run.

Install and run

It needs Node.js 20 or later and has no dependencies. The slug is the part after /plugins/ in the plugin's WordPress.org address.

npm install -g github:hamzaahmadaslam/wporg-forum-triage
export TYPESAFE_API_KEY=<your-key>
wporg-forum-triage hello-dolly --dry-run
wporg-forum-triage hello-dolly --unresolved

Related