plankton-code-quality

Enforces write-time code quality via PostToolUse hooks running formatters, linters, and model-tiered fix subprocesses.

Updated Apr 18, 2026
One-click install
npx skills add https://github.com/JohnRebellion/.claude-public --skill plankton-code-quality-johnrebellion
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: plankton-code-quality
Source: https://github.com/JohnRebellion/.claude-public/tree/main/claude/skills/plankton-code-quality
Command: npx skills add https://github.com/JohnRebellion/.claude-public --skill plankton-code-quality-johnrebellion

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Code quality issues are often caught only at commit or CI time, and AI agents may bypass linters by editing config files instead of fixing code. This Skill documents Plankton, a hook-based system that formats, lints, and auto-fixes every file edit in Claude Code. ## Core Features & Use Cases - Three-Phase Enforcement: Auto-format silently, collect violations as JSON, then delegate fixes to Claude subprocesses routed by complexity (Haiku for style, Sonnet for logic, Opus for types). - Config Protection: PreToolUse and Stop hooks block edits to linter configs like .ruff.toml and biome.json, preventing rule-gaming by agents. - Package Manager Enforcement: Blocks legacy package managers (pip, npm, yarn) in favor of uv and bun via Bash hooks. - Use Case: A team working across Python, TypeScript, Shell, YAML, and Dockerfile projects installs Plankton hooks so every AI-assisted edit is automatically formatted and linted, with only unresolvable violations surfaced to the main agent. ## Quick Start Set up Plankton by cloning the repository, installing ruff, uv, and jaq, then start Claude Code in that directory so the hooks activate automatically.

Frequently Asked Questions about plankton-code-quality

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up automatic linting on every Claude Code file edit?▼

Clone the Plankton repository, install core dependencies like ruff, uv, and jaq, then run Claude Code in that directory. The PostToolUse hooks in .claude/settings.json activate automatically and run formatters and linters on every edit.

How does Plankton route lint fixes to different Claude models?▼

Plankton routes violations by complexity: Haiku handles formatting and style codes with a 120s timeout, Sonnet handles complexity and refactoring with 300s, and Opus handles type system issues with 600s. Violations above the volume threshold auto-escalate to a higher tier.

Can Plankton prevent AI agents from modifying linter config files?▼

Yes, Plankton uses three layers of config protection: a PreToolUse hook blocks edits to files like .ruff.toml and biome.json, a Stop hook detects config changes via git diff at session end, and a protected files list covers shellcheck, yamllint, and hadolint configs.

Does Plankton work alongside ECC hooks without conflicts?▼

Plankton and ECC can coexist, but ECC's Prettier hook may conflict with Plankton's biome formatter on JS/TS files. The recommended resolution is to disable ECC's Prettier PostToolUse hook since Plankton's biome coverage is more comprehensive.

How do I skip the subprocess fix phase in Plankton hooks?▼

Set the environment variable HOOK_SKIP_SUBPROCESS=1 to skip Phase 3 delegation and report violations directly. You can also set subprocess_delegation to false in .claude/hooks/config.json for a persistent change.