jev-pr-labeler
Labels GitHub pull requests with Jev via OpenRouter: type, area, platform, attention and a size based on conceptual scope.
Overview
Jev PR Labeler applies semantic labels to GitHub pull requests using Jev through OpenRouter's Decisions API. Its key idea is that size means conceptual scope, not lines changed: a small protocol change can be broader than a large mechanical rename. Labels cover one primary type (bug, feature, refactor, docs, performance, maintenance), multiple areas, a platform only when specific, attention labels (breaking-change, security) only on positive evidence, and size from XS (trivial correction) to XL (architectural redesign). The model can only select from the taxonomy, never invent names.
It runs locally as a dry run that reports per-question choice, confidence and cost, or applies labels explicitly. As a GitHub Action it triggers after a Greptile review completes, validates the app and PR head, and never checks out PR code, downloads artefacts or executes PR text. The README recommends pinning the action to a full commit SHA and using a dedicated, spend-capped key on a fresh hosted runner.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What is the primary type of this PR? | bug · feature · refactor · docs · performance · maintenance |
| Choice | What is the conceptual size of this PR? | XS · S · M · L · XL |
| Yes / no | Is this a breaking change? | yes · no |
How it works
- Fetch PR metadata and diff without checking out code
- Ask Jev typed questions for each label group
- Select labels from the fixed taxonomy
- Dry-run report, or apply labels and create missing ones
Strengths
- Size reflects scope, not line counts
- Cannot invent label names
- Careful CI security posture
- No runtime dependencies
Caveats
- Taxonomy tailored to the Jcode project; needs adapting
- Dry runs still make paid calls
- Action workflow depends on Greptile completion events
Getting started
export OPENROUTER_API_KEY=..., authenticate gh, then python3 -m jev_labeler --repo owner/repo --pr 123At a glance
- Type
- Project
- Status
- beta
- Language
- Python
- Runtime
- CLI and GitHub Action
- Has code
- yes
Use cases and integrations
How curated lists describe it
Semantic GitHub PR labels using Jev's typed decisions, with conceptual scope instead of line counts.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
PR type, areas, platform, attention flags and conceptual size from a fixed taxonomy.
Does it run PR code?
No. The workflow never checks out PR code or executes PR text.
Which provider does it use?
OpenRouter's Decisions API with an OpenRouter key.
Related projects
Glue that turns one Linux machine into a team of coding agents, with Jev making typed calls like who builds a task and whether it may merge.
ProjectbetaTypeScriptSmall Python framework and GitHub Action for Jev-powered workflows, with issue triage and PR screening built as examples.
ProjectbetaPythonConfigurable GitHub Action where Jev reviews catalog submissions or classifies PRs under a JSON policy and updates one templated comment.
ProjectbetaTypeScriptLocal software factory running YAML pipelines of coding agents and shell steps, with a typesafe step for typed Jev judgments.
ProjectbetaPythonConfig-driven IMAP inbox classifier with a terminal UI where Jev answers yes/no per category to tag, move, flag or notify.
ProjectbetaPythonAgent harness for long-running jobs that survive across sessions; listed for a Jev-backed table that routes requests to models.
ProjectbetaTypeScript