πŸ”₯ RoastMyPR
$Initializing Roast Engine...
Scored by JevTypeSafe decision model

YOUR PRDOESN'T NEEDA REVIEW.

IT NEEDSEMOTIONALDAMAGE.

01 Diff→02 Claude→03 Jev→04 GitHub
πŸ”₯Roast My PR

Diff in. Claude writes. Jev scores. Insert on GitHub.

See the Jev pipeline ↓

The Jev pipeline

CLAUDE WRITES THE ROAST.
JEV DECIDES IF IT SHIPS.

Jev is TypeSafe's decision model. It does not generate jokes. It answers structured questions about the roast versus the actual git diff β€” then we let you drop it on GitHub. Scored, not guessed.

01

READ THE DIFF

The extension pulls the GitHub PR β€” title, body, files, the actual patch.

02

CLAUDE WRITES

One punchline, a roast level, an archetype, GIF searches. Comedy, not a linter dump.

03

JEV SCORES IT

Eight typed questions vs the diff. Yes/no, pick-one, rate-it. One call. ~200ms. Parallel.

04

YOU INSERT

If Jev fails hard, Claude rewrites once. Then the roast hits the GitHub comment box.

One API call Β· eight questions Β· parallel

What Jev actually asks

PASSED Β· 187ms

YES / NO

Roast the code, not the person?

βœ“ noul 0.94

YES / NO

Grounded in THIS diff β€” no invented files?

βœ“ noul 0.91

YES / NO

Safe to post as a public GitHub comment?

βœ“ noul 0.89

YES / NO

Light review, not a linter essay?

βœ“ noul 0.93

YES / NO

Did it clock the obvious (size, leftover logs)?

βœ“ noul 0.88

PICK ONE

Tone: funny-constructive, bland, or mean?

βœ“ funny_constructive

RATE IT

How specific is the joke to this PR?

βœ“ score 2.4 / 3

YES / NO

Short punchline, archetype actually fits?

βœ“ pass

Hard misses (personal attack, invented files, linter essay) retry Claude once. Soft misses still insert β€” we log them. If Jev is down, the roast still ships. Fail-open, on purpose.

PRS THAT SHOULD'VE STAYED LOCAL.

Anonymous confessions from the trenches.

β€œChanged one CSS property.”

47 files changed.

β€” Anonymous

β€œForgot to remove console.log.”

Production.

β€” Full Stack Developer

β€œRenamed one variable.”

Opened a 14-file PR.

β€” Anonymous

β€œTests passed.”

Nobody knows why.

β€” DevOps

β€œ"quick fix"”

+932 lines

β€” Backend Engineer

β€œ"temporary workaround"”

Created: 2024. Still here: 2026.

β€” Anonymous

β€œ"works locally"”

Production: πŸ’€

β€” Senior Developer

β€œ"should be easy"”

Famous last words.

β€” Tech Lead

CHOOSE YOUR VIOLENCE

🌱

Friendly Fire

β€œCute PR. A little suspicious though.”

KIND 🌱UNHINGED ☠️

EVERY PR HAS A PERSONALITY.

🧨 The 2AM Hotfix

Current Time
2:47 AM
coffee
sleep
productionπŸ”₯πŸ”₯πŸ”₯πŸ”₯

β€œWorks on my machine.” β€” Famous last words

πŸ“¦ The Copy-Paste Special

CTRL+C
CTRL+V
CTRL+C
CTRL+V
CTRL+V
CTRL+PRAYπŸ™

πŸ›’ The Kitchen Sink

βœ“CSS
βœ“Auth
βœ“Database
βœ“Docker
βœ“README
βœ“Unrelated Kubernetes change
Why???

πŸ—οΈ The Overengineer

Requirement
function check() {
return true;
}
Implementation
API→
Kafka→
Redis→
GraphQL→
Microservice→
Event Bus→
Kubernetes
↳ return true;

EVERY ROAST DESERVES A REACTION.

Real footage of developers receiving feedback.

← swipe for more β†’

The reviewer

The reviewer

opening your 847-line PR

GIF
Your confidence

Your confidence

after reading the roast

GIF
The team

The team

when tests actually pass

GIF
Production

Production

Friday at 4:59 PM

GIF
Your tech lead

Your tech lead

reading the PR description

GIF
You

You

explaining why it's 47 files

GIF
The intern

The intern

force pushing to main

GIF
The senior dev

The senior dev

who wrote the code you're 'refactoring'

GIF

try: β€œwhen your PR gets merged on the first try”

WHEN THE PR
GETS REVIEWED.

Autoplays muted when you scroll here. Tap the corner button for sound.

reaction_clip_1.mp4

You after approving a 3,000-line PR

without reading it

reaction_clip_2.mp4

Our AI reviewing your spaghetti code

it's RAW

reaction_clip_3.mp4

What senior devs see

when they open your PR

reaction_clip_4.mp4

Our deepest technical suggestion

have you tried turning it off and on again?

reaction_clip_5.mp4

The code review meeting

going exactly as planned

reaction_clip_6.mp4

Your reviewer opening line 847

oh.

THINGS YOUR REVIEWER IS THINKING.

A real-time look inside the approval process.

β€œI have a meeting in 4 minutes.”

↓

opens your 1,947-line PR

β€œSeems simple.”

↓

47 files changed

β€œLet me just quickly review this.”

↓

3 hours later...

β€œ"LGTM"”

↓

(They did not look at it.)

Normal Code Review

❌ Potential null reference.
❌ Cyclomatic complexity too high.
❌ Missing test coverage.
❌ Consider refactoring.
VS

RoastMyPR

πŸ”₯ "Bro trusted production to catch this."
πŸ”₯ "This function has more responsibilities than your entire engineering team."
πŸ”₯ "You called this a refactor?"

Jev Β· checked against the diff

One gives feedback.

The other gives character development.

IT'S EMBARRASSINGLY SIMPLE.

01

OPEN A PR

Open literally any GitHub pull request.

github.com/you/repo/pull/847
OpenPull Request #847

"small cleanup, I promise"

+1,842βˆ’17
02

PRESS THE BUTTON

The big scary one that says πŸ”₯

03

JEV SCORES THE JOKE

Claude writes the roast. Jev checks it against the actual diff β€” yes/no, pick-one, rate-it β€” before anything hits GitHub.

JevPASSED Β· 187ms
βœ“about the code, not the person
βœ“funny-constructive
βœ“specific to THIS diff
04

RECEIVE EMOTIONAL DAMAGE

Insert a scored roast, archetype, and reaction GIF. Career therapy still not included.

πŸ’€Roast Level: 5/5

β€œThis PR has more red flags than a Soviet parade.”

🧨The Kitchen Sinkβ„’
Jev Β· checked
😭
πŸ”₯ RoastMyPRClaude writes it. Jev scores it. GitHub suffers.

Decisions by Jev. Comedy by us.

Β© 2026 RoastMyPR Β· No PRs were permanently harmed. Β· Privacy