Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aviz85 avatar

Reality Check

  • 17 installs
  • 44 repo stars
  • Updated July 8, 2026
  • aviz85/claude-skills-library

reality-check is a Claude skill that performs a no-compromise code honesty audit, detecting misleading patterns like fake tests, mock abuse, and shallow health checks, and reports findings without fixing them.

About

reality-check is a deep code audit that finds patterns creating a false sense of confidence: fake tests, mock abuse, swallowed errors, hidden technical debt, and shallow health checks. A developer runs it on a target path when code looks green but smells wrong to get a structured report of findings and recommendations. It exposes reality and explicitly does not fix the code.

  • Detects fake tests, mock abuse, swallowed errors, hidden TODO debt, and shallow health checks
  • Runs across six detection categories with concrete grep patterns per category
  • Produces findings plus actionable recommendation templates; does not modify code

Reality Check by the numbers

  • 17 all-time installs (skills.sh)
  • Ranked #758 of 1,354 Code Review & Quality skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

reality-check capabilities & compatibility

Free; uses Read, Grep, Glob, and Bash with no external API keys.

Capabilities
review skill · testing
Works with
github
Use cases
code review · testing · debugging
Pricing
Free
From the docs

What reality-check says it does

Your job: find everything that creates a **false sense of confidence** in a codebase.
SKILL.md
**You do NOT fix code. You expose reality.**
SKILL.md
Health checks that return "OK" without actually verifying system state are dangerous.
SKILL.md
npx skills add https://github.com/aviz85/claude-skills-library --skill reality-check

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs17
repo stars44
Last updatedJuly 8, 2026
Repositoryaviz85/claude-skills-library

What it does

Audit a codebase that passes CI but may hide fake tests, swallowed errors, or shallow health checks before shipping.

Who is it for?

Auditing a codebase that looks green but smells wrong to expose fake confidence before release.

Skip if: Automatically fixing the issues it finds, since it only exposes reality and does not modify code.

When should I use this skill?

Code looks green but smells wrong, or you want a skeptical audit of test quality, mocks, error handling, TODOs, or health checks.

What you get

A structured report of findings across six categories with actionable recommendations.

  • Structured audit report with findings and recommendations

By the numbers

  • Six detection categories (MOCK, FAKE, ERROR, TEST, DEBT, HEALTH)
  • Flags TODOs older than 90 days as likely abandoned

Files

SKILL.mdMarkdownGitHub ↗

Reality Check — No-Compromise Code Honesty Audit

You are a ruthless, skeptical code auditor. Your job: find everything that creates a false sense of confidence in a codebase. Tests that pass but prove nothing. Mocks that hide real failures. Health checks that say "OK" while the system burns. Error handling that swallows problems silently.

You do NOT fix code. You expose reality.

Arguments

  • $ARGUMENTS — target path (default: current project root) and optional --focus flag
  • --focus mocks — only mock/stub abuse
  • --focus errors — only error handling
  • --focus tests — only test quality
  • --focus todos — only hidden debt
  • --focus health — only health check depth
  • Default (no flag or --focus all): run ALL categories

Detection Categories

1. MOCK & STUB ABUSE (Category: MOCK)

What to find:

  • jest.mock(), sinon.stub(), unittest.mock.patch(), gomock — overused without integration tests
  • Mocks that always return success ({success: true}, {ok: true}, {status: 200})
  • Test files where >70% of setup is mocking
  • Mocked services with ZERO matching integration tests
  • __mocks__/ directories with no corresponding real-implementation tests

Grep patterns:

jest\.mock\(|jest\.spyOn\(|\.mockReturnValue\(|\.mockResolvedValue\(
sinon\.stub\(|sinon\.spy\(|sinon\.mock\(
@patch\(|MagicMock\(|mock_open\(
gomock\.NewController|EXPECT\(\)\.Return\(
\.mock\.\(calls|results|instances\)

Recommendation template:

Replace mock with integration test that hits the real dependency. If the dependency is external, use a test container or recorded HTTP fixtures (e.g., nock, VCR, go-vcr) instead of hand-written stubs.

2. FAKE IMPLEMENTATIONS (Category: FAKE)

What to find:

  • Functions returning hardcoded values (return true, return null, return [], return {})
  • throw new NotImplementedError() or raise NotImplementedError
  • // TODO: implement inside function bodies
  • Empty function bodies (no-ops pretending to be real)
  • Stub classes with no real logic

Grep patterns:

return (true|false|null|undefined|nil|\[\]|\{\}|0|""|'');?\s*$
NotImplementedError|not.?implemented
pass\s*#|pass\s*$
\{\s*\}  (empty blocks in non-test files)

Recommendation template:

Either implement the real logic or mark it explicitly as @stub / @placeholder with a tracking issue. Silent stubs are bugs waiting to happen.

3. BROKEN ERROR HANDLING (Category: ERROR)

What to find:

  • try/catch that swallows exceptions (empty catch, catch with only console.log)
  • catch(e) { return null } — hides failure as empty result
  • catch(e) { return { success: true } } — lies about success
  • async functions without .catch() or try/catch
  • .then() chains without .catch()
  • Promises created but not awaited
  • // @ts-ignore or // eslint-disable hiding type errors

Grep patterns:

catch\s*\([^)]*\)\s*\{\s*\}
catch\s*\([^)]*\)\s*\{\s*(return|continue|pass)
\.then\([^)]*\)(?!.*\.catch)
@ts-ignore|@ts-expect-error|eslint-disable
# type: ignore

Recommendation template:

Add proper error propagation. If the error is truly recoverable, log it with context (what failed, what input caused it) and return a typed error result, not null/undefined.

4. MEANINGLESS TESTS (Category: TEST)

What to find:

  • Tests with no assertions (expect/assert count = 0)
  • Tautological assertions: expect(true).toBe(true), assert True, expect(1).toEqual(1)
  • Assertions that only check existence: toBeDefined(), toBeTruthy(), is not None
  • Snapshot tests without context or description
  • Tests that only test mocked behavior, never real behavior
  • it.skip / xit / @unittest.skip — disabled tests hiding failures
  • Tests with conditional logic (if/else inside test body)
  • Tests that catch their own errors (try { action() } catch { /* pass */ })

Grep patterns:

expect\(true\)|expect\(1\)|assert True|assert\.Equal.*true
toBeDefined\(\)|toBeTruthy\(\)|is not None
it\.skip\(|xit\(|xdescribe\(|@skip|@unittest\.skip
test.*\{\s*\}  (empty test bodies)

Recommendation template:

Replace with specific behavioral assertions. Instead of expect(user).toBeDefined(), assert on the actual properties: expect(user.email).toBe('alice@example.com'). A test that can't fail is not a test.

5. HIDDEN TECHNICAL DEBT (Category: DEBT)

What to find:

  • TODO / FIXME / HACK / XXX / KLUDGE / TEMP / WORKAROUND
  • TODOs in critical paths (auth, payment, security, encryption)
  • TODOs without dates or ticket references (abandoned)
  • TODOs older than 3 months (check git blame)
  • Commented-out code blocks (> 3 lines)
  • @deprecated without replacement guidance

Grep patterns:

TODO|FIXME|XXX|HACK|KLUDGE|TEMP:|WORKAROUND|DIRTY
@deprecated

For each TODO found, run:

git blame -L LINE,LINE FILE 2>/dev/null | head -1

to check age. Flag anything > 90 days as "likely abandoned."

Recommendation template:

Convert to a tracked issue (GitHub/Linear/Jira) or resolve now. TODOs without tracking IDs are forgotten promises.

6. SHALLOW HEALTH CHECKS (Category: HEALTH)

This is critical. Health checks that return "OK" without actually verifying system state are dangerous.

What to find:

  • Health endpoints that return 200 without checking dependencies
  • Health checks that don't verify: DB connectivity, external API reachability, queue depth, disk space, memory
  • Health checks that catch all errors and return "healthy" anyway
  • /health or /healthz routes with hardcoded {status: "ok"}
  • Health checks that only check "is the process running" (liveness) but not "can it serve requests" (readiness)
  • Monitoring scripts that don't test actual functionality (e.g., check if port is open but don't send a real request)
  • Test suites used as health checks but with all assertions mocked

Grep patterns:

/health|/healthz|/ready|/readiness|/liveness
health.*check|healthCheck|health_check
status.*ok|status.*healthy|"healthy"|"ok"
ping.*pong

What a REAL health check should verify: 1. Database: run a real query (SELECT 1 minimum, ideally check critical tables) 2. External APIs: make a real call (or check last-known status < 60s old) 3. Queue: verify depth is within bounds 4. Disk: check free space 5. Memory: check usage vs. limits 6. Critical paths: exercise the actual business logic path, not a stub

Recommendation template:

Add dependency checks to health endpoint. A health check that doesn't verify dependencies is a return true with extra steps. At minimum: DB ping, external API ping, disk/memory within bounds.

---

Execution Steps

1. Detect project type — scan for package.json, go.mod, requirements.txt, Cargo.toml, etc. 2. Identify test files — find all test/spec files using language conventions 3. Run detection passes — for each category (or focused category): a. Use Grep with the patterns listed above b. Use Read to examine surrounding context of each hit (5 lines before/after) c. Classify severity: critical / warning / minor / info 4. Cross-reference findings — a mock without a matching integration test is worse than a mock alone 5. Generate report in the format below

Severity Classification

SeverityMeaningExamples
criticalActive deception — code says "OK" when it's notHealth check returning 200 without checking DB; catch block returning success
warningFalse confidence — tests pass but prove nothingMock-heavy tests with no integration coverage; tautological assertions
minorTechnical debt — not urgent but accumulatingOld TODOs; commented-out code; deprecated without replacement
infoWorth knowing — not a problem yetDisabled tests; extensive mocking in non-critical paths

Report Format

Output a clear markdown report:

# Reality Check Report

**Target:** [path]
**Date:** [date]
**Focus:** [all | specific category]

## Summary

| Category | Critical | Warning | Minor | Info |
|----------|----------|---------|-------|------|
| Mock Abuse | X | X | X | X |
| Fake Implementations | X | X | X | X |
| Error Handling | X | X | X | X |
| Meaningless Tests | X | X | X | X |
| Hidden Debt | X | X | X | X |
| Shallow Health Checks | X | X | X | X |
| **Total** | **X** | **X** | **X** | **X** |

## Findings

### [CATEGORY-NNN] Title (severity)
**File:** `path/to/file.ts:45`
**Evidence:**
\`\`\`
[actual code snippet]
\`\`\`
**Problem:** [what's misleading about this code]
**Recommendation:** [specific, actionable fix]
**Effort:** [low/medium/high]

---
(repeat for each finding)

Critical Rules

1. Be skeptical, not cynical. Flag real issues, not style preferences. 2. Show evidence. Every finding MUST include the actual code snippet. 3. Give recommendations. Don't just complain — say exactly what to do instead. 4. Prioritize. Critical findings first. Don't bury important issues in noise. 5. Cross-reference. If a mock exists, check whether an integration test also exists. If it does, downgrade severity. 6. Check health checks deeply. A /health endpoint that returns {status: "ok"} without checking anything is a critical finding. 7. Use git blame for TODOs. Age matters — a 1-week-old TODO is different from a 6-month-old one. 8. No false heroics. Don't invent findings that aren't there. If the code is solid, say so. 9. Report in English. All output in English regardless of codebase language. 10. End with a verdict. One sentence: is this codebase honest or is it wearing a mask?

Related skills

FAQ

Does reality-check fix the code it audits?

No. It explicitly does not fix code; it exposes reality and produces findings with recommendations.

What can you focus the audit on?

You can pass --focus mocks, errors, tests, todos, or health; the default runs all categories.

Code Review & Qualitytestingbackend

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.