quality·vibes
ai code review that catches the slop
quality·vibes is the review layer for AI-written code. Connect a GitHub repo and it reads each pull request the way a careful senior reviewer would — but tuned to the specific habits of coding agents: comments that narrate the obvious, the same block pasted four times, `any` where a type belongs, names that drift from the rest of the codebase, and structural deviations that quietly bend the architecture.
Every finding lands on the exact file and line with a severity, a plain-English why, and a concrete fix you accept or dismiss in a click. A per-PR slop score and a quality-trend dashboard tell you whether the codebase is getting tidier or messier over time — so humans spend their review time on judgment, not de-slopping.
async function charge(order: any) { // Loop through retries and try again on failure // We retry up to 3 times here for (let i = 0; i < 3; i++) {two comments narrate what the code already says, and the hand-rolled retry loop is the model's default — not your codebase's pattern.
return withRetry(() => gateway.charge(order), { tries: 3 }) try { return await gateway.charge(order); } }how it works
- 01
connect your github
Link a repository and quality·vibes pulls in its open pull requests and diffs. Sign in with GitHub — nothing is written back to your repo.
- 02
review the pr
AI slop and architectural inconsistencies are flagged inline on the diff, each ranked by severity with a file, a line, and a suggested fix.
- 03
accept or dismiss
Take the fixes that fit in a click, dismiss the ones that don't, and watch the slop score climb on the trends dashboard.
a look inside
a few of the screens you'll actually use.
- ai slop flagged on the diff
- 0–100 slop score per pr
- accept-or-dismiss fixes
async function charge(order: any) { // Loop through retries and try again on failure // We retry up to 3 times here for (let i = 0; i < 3; i++) {two comments narrate what the code already says, and the hand-rolled retry loop is the model's default — not your codebase's pattern.
return withRetry(() => gateway.charge(order), { tries: 3 }) try { return await gateway.charge(order); } }quality·vibes guides
Ways to use quality·vibes, and how it compares.
- use caseAI code review overhead is the new review tax — here's where it goes, and how to cut itAI tools ship more code, so reviewers spend longer de-slopping verbose comments and pasted blocks. How a specialized AI reviewer cuts PR review time.
- how toHow to keep AI-generated code quality high: a practical workflow for teams shipping with agentsManage AI-generated code quality with a clear workflow: set standards, scope PRs small, flag slop on the diff, keep humans on judgment. A step-by-step guide.
- comparisonquality·vibes vs linters and static analysis: different tools for the AI-slop problemLinters catch syntax and rule violations; they pass AI slop that's syntactically perfect. How quality·vibes differs, and why you want both for AI-generated code.
- use casePreventing architectural drift: keeping a codebase coherent when agents write most of itAI agents optimize for the local change, not the system's shape, so architecture drifts PR by PR. How to catch structural deviations on the diff with quality·vibes.