PASS Open-source Claude Code plugins

Make AI output
actually good.

Forcing functions for Claude Code that make it look, verify, and stay in scope — so the model ships work that holds up, not work that merely compiles.

install
# add the marketplace once
$ claude plugin marketplace add logicleap-labs/claude-plugins
# then install any plugin
$ claude plugin install visual-quality

Most AI coding failures aren’t capability failures — they’re looking, verification, and scope failures. The model can spot the blank sidebar item, the untested handler, the “while I’m here” refactor — it just doesn’t check. These plugins add the forcing functions that make it check.

Eight plugins. One discipline.

Each adds a hook-backed gate that won’t let a turn end until the work is checked. Silent until you opt in, fails open, kill switch on every one.

visual-quality

A hard quality gate for anything with pixels.

Replaces compile → screenshot → “looks good” → done with a forced, written review. You don’t get to judge a screen until you’ve transcribed it — then a 12-class defect sweep, fix, and re-screenshot. A Stop hook blocks the turn if UI changed but was never reviewed.

$ claude plugin install visual-quality

verify-before-done

A clean compile is not verification.

Forces evidence before “done” on any code change. Pick the smallest proof, run it, record the output. A Stop hook blocks end-of-turn when code was edited but nothing was actually run — no test, no build, no smoke, no sentinel. “Updated the handler” stops being good enough.

$ claude plugin install verify-before-done

scope-guard

The most expensive edits are the ones nobody asked for.

Keeps an agent in its lane. Declare the narrowest set of files a task may touch, and a PreToolUse hook blocks any edit outside it — before it happens. No “while I’m here” refactors, no clobbering another agent’s files on a shared tree. Silent no-op until you opt in.

$ claude plugin install scope-guard

no-stub

Half-written code is not done.

Blocks the turn when an edit leaves placeholders behind — TODO, NotImplementedError, empty ... bodies, “your code here”. Finish the path, or declare an intentional stub out loud. Only flags markers in code you just added, and dodges false positives like spreads and type-hint ellipses.

$ claude plugin install no-stub

secret-guard

A secret in source is a secret that’s already leaked.

A PreToolUse hook scans every edit and blocks the write — before it happens — when it carries a real-looking credential (AKIA…, sk-ant-…, sk_live_…, private-key blocks) into a tracked source file. .env files, env reads, and placeholders pass straight through.

$ claude plugin install secret-guard

no-slop

“Delve into” is not writing.

The prose complement to no-stub. A Stop hook catches AI-tell slop — “delve into”, “a testament to”, em-dash pile-ups — in the .md/.txt the model just wrote. Blocks only on 2+ distinct tells, never on a single stray word, and ignores code.

$ claude plugin install no-slop

no-debug

A console.log in prod is a bug you shipped.

A Stop hook blocks “done” when code you just wrote still has leftover debug noise — console.log, debugger, pdb.set_trace, binding.pry, dd(). Strip it or promote it to a real logger; console.error/warn and real loggers are left alone.

$ claude plugin install no-debug

no-swallow

A swallowed error is a bug with the lights off.

A Stop hook blocks “done” when code you just wrote swallows an error silently — except: pass, an empty catch {}, .catch(() => {}). Handlers that log, re-raise, or return a real fallback are left alone.

$ claude plugin install no-swallow

Add the marketplace once with claude plugin marketplace add logicleap-labs/claude-plugins, then restart Claude Code so the hooks load. Disable any time with claude plugin disable <name>.

Open source. MIT. Yours to read.

The start of a longer project — open-sourcing the tools and techniques behind how I actually use AI to build production software. More plugins and write-ups coming.