affaan-m avatar

Plankton Code Quality

Automated code quality enforcement that runs formatters and linters on every file edit through PostToolUse hooks, then spawns Claude subprocesses to fix violations the main agent missed. It catches agents trying to game linter configs instead of fixing code with three layers of protection (PreToolUse blocks, Stop hooks, protected file lists). Routes fixes by complexity: Haiku for style issues, Sonnet for refactoring, Opus for type system problems. Supports Python, TypeScript, Shell, YAML and more. The main agent only sees violations that couldn't be auto-fixed, so most quality issues resolve transparently. Works alongside ECC but you'll want to disable ECC's Prettier hook to avoid formatter conflicts on JS/TS files.

skills.sh installs
5.4K
GitHub stars
300.3K
last updated
Aug 21, 2026

Install

$ npx -y skills add affaan-m/ecc --skill plankton-code-quality --agent claude-code

Installs into .claude/skills of the current project.

Files

Plankton Code Quality Skill

Integration reference for Plankton (credit: @alxfazio), a write-time code quality enforcement system for Claude Code. Plankton runs formatters and linters on every file edit via PostToolUse hooks, then spawns Claude subprocesses to fix violations the agent didn't catch.

When to Use

  • You want automatic formatting and linting on every file edit (not just at commit time)
  • You need defense against agents modifying linter configs to pass instead of fixing code
  • You want tiered model routing for fixes (Haiku for simple style, Sonnet for logic, Opus for types)
  • You work with multiple languages (Python, TypeScript, Shell, YAML, JSON, TOML, Markdown, Dockerfile)

How It Works

Three-Phase Architecture

Every time Claude Code edits or writes a file, Plankton's multi_linter.sh PostToolUse hook runs:

Phase 1: Auto-Format (Silent)
├─ Runs formatters (ruff format, biome, shfmt, taplo, markdownlint)
├─ Fixes 40-50% of issues silently
└─ No output to main agent

Phase 2: Collect Violations (JSON)
├─ Runs linters and collects unfixable violations
├─ Returns structured JSON: {line, column, code, message, linter}
└─ Still no output to main agent

Sponsors

Details

Repository
github.com/affaan-m/ecc
Categories
Frontend Development, Code Review & Quality
First seen
Jul 14, 2026

More from affaan-m/ecc

All 263
1affaan-m avatarunified-notifications-opsaffaan-m/eccOperate notifications as one ECC-native workflow across GitHub, Linear, desktop alerts, hooks, and connected communication surfaces. Use when the real problem i5.4Kskills.sh installs
2grafana avataralloygrafana/skillsBuild a unified telemetry pipeline with Grafana Alloy — one OpenTelemetry-compatible binary that collects metrics, logs, traces, and profiles and ships to Grafa5.4Kskills.sh installs
3samber avatarcopywriting-prose-creatorsamber/cc-skillsCodifies how someone or a brand writes — prose mechanics (lexicon, syntax, rhythm, structure, signature moves) independent of emotional tone. Output: PROSE.md. 5.3Kskills.sh installs
4jeffallan avatarshopify-expertjeffallan/claude-skillsBuilds and debugs Shopify themes (.liquid files, theme.json, sections), develops custom Shopify apps (shopify.app.toml, OAuth, webhooks), and implements Storefr5.3Kskills.sh installs
5assistant-ui avatarcloudassistant-ui/skillsSets up assistant-ui Cloud persistence and authorization with the assistant-cloud package and AssistantCloud client. Use when adding cross-session thread/messag5.2Kskills.sh installs
6lobehub avatartypescriptlobehub/lobehubLobeHub TypeScript style and type-safety guide. Use when editing TS/TSX/MTS, fixing types, choosing interface vs type, avoiding any/object, import type, async f5.2Kskills.sh installs