How JSystems Moderator works: Discord bug reports read first by Jev
Short answer
JSystems Moderator is our Discord bot for bug reports. A report starts with a button and a form, opens a private ticket, and is read first by Jev 1.13, a decision model that answers typed questions with probabilities and never writes text. Staff see every probability and answer in the ticket. It is coming soon as open source you can self-host.
JSystems Moderator is the Discord bot that runs bug reports for JSystems apps. We wrote about how to report a bug from the reporter's side. This post is the inside view: how the bot is built, what the Jev model does with each report, and what you will be able to run yourself once it is open source.
The flow in one paragraph
You join the server from the Report a bug page and press Report a bug in #bug-reports. A form asks for a title, what happened, the steps, and the app version. The bot saves the report, opens a private thread with you and our staff, and replies with your reference, like JS-0042. Jev reads the report in the background. Staff then answer you in the thread.
Jev reads every report first
Jev 1.13 (typesafe/jev-1.13 on OpenRouter) is a decision model. It doesn't chat and it never writes text. You give it the report and a list of typed questions, and it answers each one with probabilities:
- Yes or no questions get one probability.
- Choice questions get a probability for every option.
- Score questions get a number on a scale, plus a probability for each step.
Each report is one call with these questions:
| Question | Type | What we do with it |
|---|---|---|
| Is it spam, abuse, or gibberish? | Yes or no | 90% or more moves a new report to Spam |
| Is it a software defect? | Yes or no | Shown to staff |
| Which category fits? | Choice of 11 | Crash, freeze, recording, audio, saving and files, interface glitch, install or update, website, feature request, question, other |
| How severe is it? | Score 0 to 3 | Cosmetic, minor, major, critical |
| Which app is it about? | Choice | Reporters don't have to pick, so Jev does |
| Which sentence states the problem best? | Choice | Picked from the report's own sentences |
Our first real report cost $0.000048 (1,139 tokens in, 238 out).
The summary is built, not written
Because Jev never writes text, the summary staff see is assembled from its answers and the reporter's own words. Severity and category make the start, the app name comes next, and the sentence Jev picked finishes it. A real one:
Cosmetic interface glitch issue in Simple Recorder: midnight theme does not work last update it did and in the new update it does not
Nothing in it is invented. Every word is either a label we wrote or a sentence the reporter typed.
Staff see every probability
The support desk doesn't just show the winning answer. It shows every option Jev weighed. For the report above:
| Question | Jev's answer |
|---|---|
| Category | Interface glitch 100%, crash 0%, audio 0%, and the rest 0% |
| Severity | Cosmetic 86%, minor 7%, major 7%, critical 0% |
| App | Simple Recorder 100%, website 0% |
| Software defect | 95% |
| Spam | 5% |
That makes it easy to tell when Jev is sure and when it is split between two answers, so staff know how much to trust a label.
If a call fails, the report waits and tries again after 1, 5, and 30 minutes. The report itself is saved first, so nothing is lost when Jev is down, and staff can run Jev again from the desk.
Tickets
Every report gets a private Discord thread with the reporter and staff in it. The report itself is the first message.
- Staff answer in Discord or from the support desk. The desk reads the thread live from Discord, shows the chat next to Jev's answers, and marks tickets with a reply nobody on the team has read yet. A reply sent from the desk is posted by the bot with the staff member's name and pings the reporter.
- Closing a ticket locks the thread. The reporter can still read it but can't write in it. Staff can reopen it.
- Only staff can delete a ticket. The first message has a Delete ticket button. It only works for members with Administrator, Manage Server, or Manage Threads, and it asks for a confirm. Deleting removes the report, the thread, and every message in it.
How we designed the bot
- No gateway, no extra process. The bot uses Discord's HTTP interactions. Discord sends each button press and form to our server as a signed request. We check the Ed25519 signature and refuse requests older than 5 minutes. There is no always-on connection to keep alive.
- A locked channel. In #bug-reports, members can't post, react, start threads, or use commands. They can press Report a bug and write in their own ticket, nothing else.
- A limit per person. Each person can send 2 reports in any 24 hours.
- It sets up the server. One press of Set up server creates the Admin, Moderator, and Support roles with fixed permissions, gives the owner Admin, locks the channel, pins the guide and rules, and raises Discord's safety settings. It shows every change before it makes it. The only thing it deletes is an empty leftover category, never a channel.
- Secrets stay on the server. The Discord bot token and the OpenRouter key are stored encrypted on our server. No page in the browser ever gets either of them.
Coming soon: open source and self-hosted
JSystems Moderator will be open source. You will be able to run it on your own server for your own Discord community, with your own OpenRouter key for Jev. It isn't released yet. We will announce it here on the blog when it is ready.
Common questions
What is JSystems Moderator?
The Discord bot that runs bug reports for JSystems apps. It turns a button press and a short form into a private ticket, and has Jev read every report first.
What is Jev?
Jev 1.13 is a decision model on OpenRouter. It answers typed questions with probabilities and never writes text. We use it to label each report with spam, defect, category, severity, app, and the sentence that states the problem best.
Does an AI answer my bug report?
No. Jev only labels the report. A person from our team reads it and answers you in your ticket.
Can I self-host JSystems Moderator?
Not yet. It is coming soon as open source software you can run on your own server for your own Discord server.
Is JSystems Moderator open source?
It will be. The code isn't public yet, and we will announce it on this blog when it is.