jev-triage
Probot GitHub app that classifies, scores, checks completeness and dedupes issues and PRs with Jev, routing uncertain ones to humans.
Overview
jev-triage is an automated issue and pull-request triage app for open-source maintainers. Each incoming item is classified as bug, feature request, question, documentation, spam or other; scored on a four-level impact rubric to derive severity; checked for reproduction steps, version, environment and expected behaviour; and compared against open items for duplicates using a local lexical prefilter plus one Jev Noul per candidate. It then applies labels and leaves a single comment that it updates on re-runs, and can notify Slack, Discord or Telegram about critical or spam findings.
A Probot app verifies webhook signatures and routes events; a decision engine combines a composite spam risk with confidence gates to plan actions, and every uncertain decision goes to a human. Predictions, actions and maintainer corrections are stored in SQLite, so overrides become ground truth for an accuracy report. The README argues triage is a closed-set problem suited to typed answers rather than coercing an LLM into JSON, and writes all questions in English deliberately.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What kind of item is this? | bug · feature_request · question · documentation · spam · other |
| Score | What is the impact of this issue (four levels)? | — |
| Yes / no | Does the issue include reproduction steps / version / environment / expected behaviour? | — |
| Yes / no | Is this item a duplicate of this candidate? | — |
How it works
- Webhook arrives; Probot verifies and routes it
- Jev fan-out 1: category, impact, completeness, spam signals, needs-human-review
- Lexical prefilter then Jev fan-out 2: one duplicate Noul per candidate
- Decision engine applies confidence gates; label, comment, notify; store for accuracy reports
Strengths
- Uncertain decisions go to humans instead of guesses
- Learns from maintainer corrections for accuracy reporting
- Single updatable comment avoids noise
- CI and strict TypeScript
Caveats
- Requires hosting a Probot app and a TypeSafe key
- English-only questions by design
At a glance
- Type
- Project
- Status
- beta
- Language
- TypeScript
- Runtime
- Probot GitHub app
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Automated issue & PR triage for open-source maintainers, powered by Jev (TypeSafe AI).
logicrw/awesome-jev-projects
Frequently asked questions
What does it do with uncertain cases?
Routes them to a human rather than guessing.
How are duplicates found?
A local lexical prefilter picks candidates, then Jev scores each with a yes/no duplicate question.
Does it measure its own accuracy?
Yes, maintainer overrides are stored as ground truth for an accuracy report.
Related projects
GitHub Action that triages issues with Jev, applying label, spam, needs-info and duplicate tags only above set thresholds.
ProjectbetaTypeScriptOne YAML task to classify, route, score or verify text with rules, Jev, NanoJev or an OpenAI-compatible model, with cost records.
CLIbetaPythonSmall Python framework and GitHub Action for Jev-powered workflows, with issue triage and PR screening built as examples.
ProjectbetaPythonR&D repo with three Jev pipelines (ticket triage, alert triage, deploy-risk gate) built from four reusable patterns.
ProjectresearchPythonThree Spanish-language demos where Jev decides and Claude reasons: Jira triage, code pre-flight and a PR review router.
AppprototypeTypeScriptCLI, MCP server and Claude Code plugin for closed-form yes/no, choice, score and rank decisions via Jev, OpenAI Decisions or Claude.
MCP serverbetaTypeScript