Quality evaluator harness for Claude Code
npx claudepluginhub hir4ta/qultQuality evaluator harness — enforces lint, typecheck, test, and review gates via hooks + MCP
Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.
Production-ready workflow orchestration with 79 focused plugins, 184 specialized agents, and 150 skills - optimized for granular installation and minimal token usage
Browser automation for AI agents
Quality by Structure, Not by Promise. A harness engineering tool that enforces code quality through walls, not words.
Prompts are suggestions. Hooks are enforcement. qult uses 7 hooks + MCP server + 4-stage independent review to block quality regressions with exit 2 (DENY), not advisory messages. Distributed as a Claude Code Plugin. Install with
/plugin install.
AI coding agents are powerful but unreliable at self-regulation.
Anthropic's Harness Design article identifies two root causes: context coherence loss (models degrade as context fills) and self-evaluation bias (agents praise their own mediocre work). The solution: separate generation from evaluation, and enforce quality structurally.
The broader discipline of harness engineering, formalized by Martin Fowler, frames this as:
Agent = Model + Harness. Enforce invariants, don't micromanage implementations.
Research validates this approach:
qult implements this architecture:
Deterministic gates (lint, typecheck) → Executable specifications (test) → AI review (residual only)
| Approach | Mechanism | Guarantee |
|---|---|---|
| Prompt-based (superpowers, etc.) | Persuasive skill prose | None. Model may skip steps |
| Structure-based (qult) | Hook exit 2 (DENY) | Structural. Cannot be bypassed by the model |
In Fowler's taxonomy: qult's hooks are sensors (feedback controls that observe and correct), while skills and CLAUDE.md are guides (feedforward controls that steer before action). Both are necessary; qult provides both.
Quality by Structure, Not by Promise.
1. The Wall doesn't negotiate.
Prompts are suggestions. Hooks are enforcement. Quality is not left to promises.
2. The architect designs, the agent implements.
Humans decide what to build. AI decides how to build it.
Ambiguity is resolved by asking, never by guessing.
3. Proof or Block.
"Done" is not evidence. Tests pass, review passes — then it's done.
Claims without evidence are structurally blocked.
4. fail-open — cult of quality, humble about ourselves.
qult's own failures never block Claude. Break? Open the gate.
Fanatical about quality. Humble about our tools.
[!NOTE] You may see
SessionStart:startup hook errororStop hook errorat session start. This is not a qult bug. It's a known Claude Code UI bug that misreports hook success/failure (#12671, #21643, #10463). Hooks are working correctly.
[!WARNING] PreToolUse DENY may be ignored. qult correctly returns
exit 2, but Claude Code sometimes executes the tool anyway (#21988, #4669, #24327). Waiting for a Claude Code fix.
Japanese README / README.ja.md
flowchart LR
Edit["Edit / Write"] --> Gate{"Gate\n(lint, type)"}
Gate -- pass --> OK["Continue"]
Gate -- fail --> PF["pending-fixes"]
PF --> Next["Try to Edit\nanother file"]
Next --> DENY["The Wall\n(DENY exit 2)"]
DENY --> Fix["Fix the\nsame file"]
Fix --> Gate
style DENY fill:#e67e80,color:#2d353b,stroke:#e67e80
style OK fill:#a7c080,color:#2d353b,stroke:#a7c080
style PF fill:#dbbc7f,color:#2d353b,stroke:#dbbc7f
Operates on the Generator-Evaluator pattern from Anthropic's Harness Design article: