Skip to content

1.0.0 — one gate, every agent

Choose a tag to compare

@smixs smixs released this 23 Sep 03:52
· 54 commits to main since this release

code-quality is now a plugin, not only a skill. One repository installs into Claude Code, Codex, Grok, pi, omp and opencode; the agent hooks run without the model having to remember the skill.

What's new

  • Plugin packaging: .claude-plugin/ (Claude Code, Grok, omp), .codex-plugin/ + marketplace (Codex), pi/omp package, opencode plugin (V1 and V2). The skill lives in skills/code-quality/.
  • Stop hook in every harness: the agent is sent back once with the gate's reasons.
  • Bypass guard: git commit --no-verify / -n (also FOO=1 git …, bundled -nm), -c core.hooksPath=… and git config core.hooksPath are refused in repositories with .quality.toml. Switch: [hooks] block_bypass = false.
  • Inline suppressions no longer hide gate rules: eslint-disable complexity, # noqa: C901, //nolint:gocyclo and friends are ignored by the analyzers, and a new suppression in the diff is itself a tamper finding.
  • Git hooks install into a stable shim (~/.local/share/code-quality, override with CODE_QUALITY_HOME), so plugin updates don't break them.
  • Grok 1.0.40 does not run plugin hooks yet: bun scripts/quality.ts install-grok-hooks wires them globally.

Verified live: Claude Code, Codex and Grok (stop, bypass refusal, switch). pi fully, omp partly, opencode via adapter handlers. 218 tests.

Breaking: SKILL.md moved to skills/code-quality/, git hooks moved from hooks/ to git-hooks/; rerun install-hooks in your repositories.