Jev GitHub Issue Triage
Paste an issue. Jev classifies it, estimates severity, and suggests the maintainer’s next step.
Advanced
Local Jev Playground demo policy, not TypeSafe recommendations or production-calibrated thresholds. Display only · no new request.
Priority review takes precedence. Otherwise category and next-action probabilities and confidence control human triage. Category and next-action signals determine human-triage status. Missing information is advisory and is surfaced in the main result only when the suggested next action is Ask author. Severity confidence is not an execution gate.
Implementation
Jev judges; your application decides whether and how to act. This workbench sends exactly five questions in one evaluation to the existing public endpoint. It has no GitHub client.
Exact State · current input
{"repository_context":"Public JavaScript SDK for a hosted API. Bug reports are most useful when they include the package version, environment, reproduction steps, expected behavior, and actual behavior.","issue":{"title":"PDF export crashes in Safari 18","body":"Package version: 4.8.1\nEnvironment: Safari 18 on macOS 15\n\nSteps to reproduce:\n1. Open Reports.\n2. Select a monthly report.\n3. Choose Export → PDF.\n\nActual behavior:\nThe page reloads and the PDF is not downloaded.\n\nExpected behavior:\nThe PDF should download.\n\nWorkaround:\nCSV export still works.\n\nConsole:\nTypeError: Cannot read properties of undefined"}}Five question shapes
{
"category": {
"type": "choice",
"instructions": "What kind of GitHub issue is this?",
"criteria": {
"bug": "Existing behavior is broken, incorrect, or fails unexpectedly.",
"feature": "Requests new behavior or a new capability that does not currently exist.",
"question": "Primarily asks how something works or how to use it.",
"documentation": "Reports missing, incorrect, confusing, or outdated documentation.",
"performance": "Reports latency, resource usage, throughput, or efficiency problems.",
"security": "Reports a possible vulnerability, unsafe behavior, credential exposure, or security weakness.",
"maintenance": "Repository maintenance, dependency, build, CI, tooling, or housekeeping work.",
"other": "None of the categories clearly fits."
}
},
"severity": {
"type": "score",
"instructions": "How severe is the reported impact?",
"criteria": [
"Cosmetic, informational, or minor inconvenience; normal use is not materially affected.",
"A feature is degraded or inconvenient, but a practical workaround exists.",
"An important workflow is blocked or materially broken and no practical workaround is stated.",
"Reports an outage, data loss, serious security exposure, or similarly critical impact."
]
},
"next_action": {
"type": "choice",
"instructions": "What should a maintainer do next based only on the supplied issue?",
"criteria": {
"ask_author": "Ask the reporter for missing information before substantive work can start.",
"answer": "The issue can primarily be resolved by answering or clarifying something for the reporter.",
"investigate": "A maintainer or engineer should reproduce, inspect, diagnose, or verify the reported behavior.",
"decide": "The report needs a product, design, policy, or maintainer decision rather than immediate implementation.",
"accept": "The request appears sufficiently defined to accept into the backlog or implementation workflow.",
"close": "The supplied issue appears inappropriate to keep open, such as clearly unsupported, invalid, or already resolved from the supplied information.",
"wait": "There is not enough basis for another listed action, or the issue should remain pending without a new action."
}
},
"missing_information": {
"type": "choice",
"instructions": "Suppose a maintainer is deciding whether they have enough information for the issue’s likely next action. What single missing piece, if any, would block that next action?",
"criteria": {
"none": "Nothing important is missing; the issue is complete enough for its likely next action.",
"reproduction_steps": "Clear reproduction steps are missing and are needed before the likely next action can proceed.",
"environment_version": "Relevant software version, operating system, browser, runtime, device, or environment details are missing and are needed before the likely next action can proceed.",
"expected_vs_actual": "Expected behavior versus actual behavior is not clear enough for the likely next action to proceed.",
"logs_error": "A specific error message, stack trace, or relevant diagnostic logs are missing and are needed before the likely next action can proceed.",
"minimal_example": "A minimal reproducible example or reduced test case is missing and is needed before the likely next action can proceed.",
"acceptance_criteria": "The requested behavior or completion conditions are not defined well enough for the likely next action to proceed.",
"other": "Some other specific information is missing and is needed before the likely next action can proceed."
}
},
"needs_immediate_attention": {
"type": "boolean",
"instructions": "Does this issue require immediate maintainer attention because it reports an outage, data loss, an active security exposure, or a currently blocked critical workflow?",
"criteria": {
"true": "The supplied issue explicitly describes one of those high-impact conditions.",
"false": "The supplied issue does not clearly describe one of those conditions."
}
}
}TypeScript integration · this site’s public endpoint
// In a same-origin browser application; no provider key in the browser.
const response = await fetch("/api/evaluate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
state: JSON.stringify({ repository_context, issue: { title, body } }),
questions: issueQuestions(), // the five definitions shown above
}),
});
if (!response.ok) throw new Error("Triage request failed");
const result = parseIssueResponse(await response.json());
const suggestion = issueReview(result.signals);
// Inspect suggestion; GitHub actions require separate application code.A next step for a maintainer to inspect
Classify one issue, read its suggested action, then edit the report and run again. Jev returns judgments; your application’s rules decide what to do. This tool makes suggestions only and never changes an issue.
Limits & privacy
This page does not connect to GitHub, fetch a repository or URL, execute code, access private GitHub data, apply labels, assign maintainers, close issues, or post comments. It does not need OAuth or a GitHub token.
Duplicate detection requires candidate retrieval and is intentionally out of scope. Without retrieving possible duplicate issues, this page cannot offer a reliable duplicate candidate set.
Submitted issue text travels through this site’s server to its configured Jev provider. Remove secrets and private repository data first. Inputs and results stay in this page’s memory rather than a saved account history; see the Privacy Policy for server and provider boundaries.
Missing-information selection is speculative. “None needed” means that option was selected, not that every possible detail is present. Probabilities and confidence are not correctness guarantees. Production thresholds require labeled validation. This new scenario has not received real-model semantic validation here.
Sources
Question contracts and implementation patterns
The five-question contract follows TypeSafe’s Choice, Score, Noul, Confidence, and State documentation. Choice probability describes the option distribution; confidence is shown separately. Noul returns a Yes probability without separate confidence.
- jev-triage demonstrates repository synchronization, structured maintainer judgments, and human corrections in a shared dashboard.
- hush demonstrates issue labeling with abstention and retrieved duplicate candidates.
- model-clis/jev demonstrates typed judgments exposed through a command-line interface.
- jev-action demonstrates a GitHub Actions boundary around judgments and separate label application.
These are external architecture patterns, not features connected to this demo. No upstream code or dependency is installed here.