BS Meter

Detect information quality — not AI provenance.

30 signals · 5 domains · 200 samples · 0 LLM · 22ms · Macro F1 0.926

Live Demo

Click to score. No server tricks.

Results computed via the API — same engine, same weights.

AI-generated blog postEXPECT: SUSPECT

In this comprehensive guide, we will explore the transformative power of artificial intelligence and how it can leverage cutting-edge soluti

Clean PR descriptionEXPECT: CLEAN

Fixed the authentication timeout by adding token expiry validation. The previous implementation only checked token length, which let expired

Over-engineered PREXPECT: SUSPECT

This PR introduces a more scalable architecture for the request pipeline using dependency injection and the strategy pattern: ```typescript

How It Works

4 layers. 29 signals. One score.

TEXT
input
──►
Utility
20%
entropy · density · compression
──►
Quality
20%
hedging · specificity · circular ref
──►
Style
35%
template · burstiness · uniformity
──►
Domain
25%
code smell · keywords · clickbait
──►
SCORE
0 – 100
$ bsmeter --explain
Layer 1: Utility (20%) → compression · entropy · idea_density · ai_vocabulary
Layer 2: Quality (20%) → subjectivity · hedging · specificity · circular_ref
Layer 3: Style (35%) → template_rate · burstiness · punctuation · uniformity · +10 more
Layer 4: Domain (25%) → code_smell · over_engineering · keyword_stuffing · headline_scan
→ Composite: weighted sum → 0-100 → clean / suspect / BS

Benchmarks

200 samples. 5 domains. No cherry-picking.

0.974
Code Review
40 samples · 0 FP · 1 FN
0.947
Social & News
40 samples · 0 FP · 2 FN
0.884
Content & SEO
40 samples · 4 FP · 1 FN
0.826
Docs & KBs
40 samples · 7 FP · 1 FN
1.000
Marketing
40 samples · perfect
⚠ Honest numbers

Docs & KBs is our hardest domain. Technical documentation sometimes reads like slop — thorough, formulaic, predictable. Our 7 false positives are well-written technical posts that use jargon our vocabulary signals mistake for slop. Every failure is documented. Read HONEST_NUMBERS.md →

Code Smell Detection

We read your code blocks

The first slop detector that analyzes code embedded in PR descriptions. Paste a PR and we flag the patterns.

❌ WRAPPER CLASSpass-through delegation
class RequestHandlerManager {
  constructor(
    private handler: RequestHandler
  ) {}
  handle(req: Request) {
    return this.handler.handle(req); // ← just delegates
  }
}
❌ SINGLE-IMPL INTERFACEpointless abstraction
interface IUserService {
  getUser(id: string): User;
  saveUser(user: User): void;
}

// The only implementation — ever
class UserServiceImpl
  implements IUserService { ... }
▶ Try it — paste your own PRpre-loaded with the over-engineered example above

Try It

Score text

CLI

Use it in your terminal

# install and run
$ npx bsmeter scan "Your text here"
# score a file
$ bsmeter file ./README.md --domain content-seo
# batch score
$ bsmeter batch ./docs/ --json | jq '.verdict'
# API
$ curl -X POST https://bsmeter-submit.vercel.app/api/score \
  -d '{"text":"...","domain":"marketing-copy"}'