Eight critique skills. One router. Zero generic reviews.

ACIDMIND

Stop asking AI coding agents for generic reviews. AcidMind routes every critique to the one specialist that can answer the actual question β€” then hands it back with a hardening plan.

8 skills1 routerMIT3 verdicts
Every report ends mechanically.Gate: SHIP | FIX FIRST | DO NOT SHIP

The skill family

Pick the lens, not the vibe.

Each specialist owns a separate critique axis, cites the rule that produced the finding, and stays read-only unless you explicitly ask for implementation.

AcidMind.md router

review request --> decision tree --> skills/ruthless-critic/SKILL.md

persona: The acid test β€” three registers: ROAST, AUTOPSY, HONEST.

question: Where does this artifact break, specifically?

scope: Default lens for any review, argument, or plan. Whole-repo autopsy on demand.

finding

[RC-04] Vague praise is not a finding.

Gate: FIX FIRST

Β§ mechanism

One router. Exactly one lens per request.

AcidMind.md holds no rules β€” only a decision tree that points your agent at exactly one skills/<name>/SKILL.md. Skills load on demand, so a review costs one skill's worth of context, not eight.

AcidMind neon flask emblem
read-only Β· gate-locked
routing table β€” liveauto-cycling
review request
AcidMind.md
router Β· decision tree
πŸ§ͺruthless-critic
🧠design-critic
πŸ”ͺfeature-critic
πŸ’»badass-critic
😠πŸ₯·security-critic
🎭autocritic-skill
🧩unified-critic
🧩unified-critic (all lenses)
output→Gate: SHIP | FIX FIRST | DO NOT SHIP
01
Read-only by default.

Skills diagnose and prescribe fixes. None rewrites unless you ask.

02
Scoped, not overlapping.

Each skill names what it does not cover and which sibling does.

03
Purpose-gated, not style-gated.

Technique is fine. Technique without a purpose is a finding.

Live router

Type it. Watch it route.

The same signal matching the decision tree uses β€” deterministic, no model call. Every routing is written to Postgres and replayed below.

review requestidle
⌘/Ctrl + ⏎0/600
routed report

review request --> decision tree --> awaiting input

the router picks exactly one lens, never a committee.

Gate: _

recent routings β€” persisted0 rows

Nothing routed yet. Be the first.

Quick start

Run from GitHub. Start small.

No clone, no global install, no npm account. The default core edition installs the daily lenses plus the automatic secondthought critic.

01

npx github:ragajatsuma-cmd/acidmind init

02

Ask for a review, roast, pentest, feature audit, or full panel.

03

Receive findings with cited rules and one mechanical gate.

npx github:ragajatsuma-cmd/acidmind init --edition security
npx github:ragajatsuma-cmd/acidmind init --all
npx github:ragajatsuma-cmd/acidmind add security-critic
coredefault

ruthless Β· design Β· feature Β· badass Β· secondthought

Daily review

security

core + security-critic

Production teams

full

all eight skills

Pre-launch audits

Why it works

Scoped critics beat soft paragraphs.

Read-only by default. Skills diagnose and prescribe fixes. They do not rewrite code unless you ask.

Scoped, not overlapping. The router picks one lens, so eight installed skills do not become eight duplicate opinions.

Purpose-gated, not style-gated. Technique is allowed when it has a reason. Technique without purpose becomes a finding.