Communitygithub.com

Plankton Code Quality

Erzwingt Code-Qualität während des Schreibens mit Plankton – automatische Formatierung, Linting und KI-gestützte Korrekturen bei jeder Dateiänderung via Hooks. Verwende dies zur Einrichtung von Write-Time-Formatierungs-, Linting- oder Auto-Fix-Hooks.

Was ist Plankton Code Quality?

Plankton Code Quality ist ein System zur Durchsetzung von Code-Qualität während des Schreibens, das speziell für Claude Code entwickelt wurde. Es führt bei jeder Dateiänderung automatisch Formatierer und Linter aus und behebt verbleibende Verstöße mittels Claude-Subprozessen. Das Tool schützt Linter-Konfigurationen vor Manipulation durch KI-Agenten und unterstützt mehrere Sprachen (Python, TypeScript, Shell, YAML, JSON, TOML, Markdown, Dockerfile). Plankton ergänzt das ECC-Plugin und bietet automatische Modell-Routing (Haiku für Style, Sonnet für Refactoring, Opus für Typsystemfehler). Es ist besonders nützlich, wenn Qualitätsprüfungen nicht erst beim Commit, sondern bereits beim Editieren erfolgen sollen.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/plankton-code-quality

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Plankton Code Quality Skill

Integrationsreferenz für Plankton (Credit: @alxfazio), ein System zur Durchsetzung von Codequalität während des Schreibens für Claude Code. Plankton führt Formatierer und Linter bei jeder Dateiänderung über PostToolUse-Hooks aus und startet dann Claude-Subprozesse, um Verstöße zu beheben, die der Agent nicht erkannt hat.

Wann verwenden

  • Du wünschst automatische Formatierung und Linting bei jeder Dateiänderung (nicht nur beim Commit)
  • Du benötigst Schutz vor Agenten, die Linter-Konfigurationen ändern, um Tests zu bestehen, anstatt Code zu korrigieren
  • Du möchtest abgestuftes Modell-Routing für Korrekturen (Haiku für einfache Stil, Sonnet für Logik, Opus für Typen)
  • Du arbeitest mit mehreren Sprachen (Python, TypeScript, Shell, YAML, JSON, TOML, Markdown, Dockerfile)

Funktionsweise

Drei-Phasen-Architektur

Jedes Mal, wenn Claude Code eine Datei bearbeitet oder schreibt, wird der PostToolUse-Hook multi_linter.sh von Plankton ausgeführt:

Phase 1: Auto-Format (Leise)
├─ Führt Formatierer aus (ruff format, biome, shfmt, taplo, markdownlint)
├─ Behebt 40-50% der Probleme leise
└─ Keine Ausgabe an den Hauptagenten

Phase 2: Verstöße sammeln (JSON)
├─ Führt Linter aus und sammelt nicht behebbare Verstöße
├─ Gibt strukturiertes JSON zurück: {line, column, code, message, linter}
└─ Immer noch keine Ausgabe an den Hauptagenten

Phase 3: Delegieren + Verifizieren
├─ Startet claude -p Subprozess mit Verstößen als JSON
├─ Leitet basierend auf der Komplexität des Verstoßes an die entsprechende Modellstufe:
│   ├─ Haiku: Formatierung, Imports, Stil (E/W/F-Codes) — 120s Timeout
│   ├─ Sonnet: Komplexität, Refactoring (C901, PLR-Codes) — 300s Timeout
│   └─ Opus: Typsystem, tiefes Reasoning (unresolved-attribute) — 600s Timeout
├─ Führt Phase 1+2 erneut aus, um Korrekturen zu verifizieren
└─ Exit 0 wenn sauber, Exit 2 wenn Verstöße verbleiben (dem Hauptagenten gemeldet)

Was der Hauptagent sieht

SzenarioAgent siehtHook-Exit
Keine VerstößeNichts0
Alle durch Subprozess behobenNichts0
Verstöße verbleiben nach Subprozess[hook] N Verstoß(e) verbleiben2
Hinweis (Duplikate, alte Tools)[hook:advisory] ...0

Der Hauptagent sieht nur Probleme, die der Subprozess nicht beheben konnte. Die meisten Qualitätsprobleme werden transparent gelöst.

Konfigurationsschutz (Schutz vor Regel-Manipulation)

LLMs werden .ruff.toml oder biome.json ändern, um Regeln zu deaktivieren, anstatt Code zu korrigieren. Plankton blockiert dies mit drei Ebenen:

  1. PreToolUse-Hook — protect_linter_configs.sh blockiert Änderungen an Linter-Konfigurationen, bevor sie stattfinden
  2. Stop-Hook — stop_config_guardian.sh erkennt Konfigurationsänderungen über git diff am Session-Ende
  3. Geschützte Dateien — .ruff.toml, biome.json, .shellcheckrc, .yamllint, .hadolint.yaml und weitere

Paketmanager-Durchsetzung

Ein PreToolUse-Hook auf Bash blockiert Legacy-Paketmanager:

  • pip, pip3, poetry, pipenv → Blockiert (verwende uv)
  • npm, yarn, pnpm → Blockiert (verwende bun)
  • Erlaubte Ausnahmen: npm audit, npm view, npm publish

Einrichtung

Schnellstart

Hinweis: Plankton erfordert eine manuelle Installation aus dem Repository. Überprüfe den Code vor der Installation.

# Installiere Kernabhängigkeiten
brew install jaq ruff uv

# Installiere Python-Linter
uv sync --all-extras

# Starte Claude Code — Hooks aktivieren automatisch
claude

Kein Installationsbefehl, keine Plugin-Konfiguration. Die Hooks in .claude/settings.json werden automatisch erkannt, wenn du Claude Code im Plankton-Verzeichnis ausführst.

Integration in eigene Projekte

Um Plankton-Hooks in deinem eigenen Projekt zu verwenden:

  1. Kopiere das Verzeichnis .claude/hooks/ in dein Projekt
  2. Kopiere die Hook-Konfiguration aus .claude/settings.json
  3. Kopiere Linter-Konfigurationsdateien (.ruff.toml, biome.json, etc.)
  4. Installiere die Linter für deine Sprachen

Sprachspezifische Abhängigkeiten

SpracheErforderlichOptional
Pythonruff, uvty (Typen), vulture (toter Code), bandit (Sicherheit)
TypeScript/JSbiomeoxlint, semgrep, knip (tote Exporte)
Shellshellcheck, shfmt—
YAMLyamllint—
Markdownmarkdownlint-cli2—
Dockerfilehadolint (>= 2.12.0)—
TOMLtaplo—
JSONjaq—

Kombination mit ECC

Komplementär, nicht überlappend

AspektECCPlankton
Code-QualitätsdurchsetzungPostToolUse-Hooks (Prettier, tsc)PostToolUse-Hooks (20+ Linter + Subprozess-Korrekturen)
Sicherheits-ScanningAgentShield, security-reviewer-AgentBandit (Python), Semgrep (TypeScript)
Konfigurationsschutz—PreToolUse-Blockierung + Stop-Hook-Erkennung
PaketmanagerErkennung + EinrichtungDurchsetzung (Blockiert Legacy-PMs)
CI-Integration—Pre-Commit-Hooks für Git
Modell-RoutingManuell (/model opus)Automatisch (Verstoß-Komplexität → Stufe)

Empfohlene Kombination

  1. Installiere ECC als Plugin (Agenten, Skills, Befehle, Regeln)
  2. Füge Plankton-Hooks für Write-Time-Qualitätsdurchsetzung hinzu
  3. Verwende AgentShield für Sicherheitsaudits
  4. Nutze ECCs Verifizierungsschleife als letzte Hürde vor PRs

Vermeidung von Hook-Konflikten

Wenn sowohl ECC- als auch Plankton-Hooks laufen:

  • ECCs Prettier-Hook und Planktons biome-Formatierer können bei JS/TS-Dateien in Konflikt geraten
  • Lösung: Deaktiviere ECCs Prettier-PostToolUse-Hook bei Verwendung von Plankton (Planktons biome ist umfassender)
  • Beide können nebeneinander für verschiedene Dateitypen existieren (ECC behandelt, was Plankton nicht abdeckt)

Konfigurationsreferenz

Planktons .claude/hooks/config.json steuert das gesamte Verhalten:

{
  "languages": {
    "python": true,
    "shell": true,
    "yaml": true,
    "json": true,
    "toml": true,
    "dockerfile": true,
    "markdown": true,
    "typescript": {
      "enabled": true,
      "js_runtime": "auto",
      "biome_nursery": "warn",
      "semgrep": true
    }
  },
  "phases": {
    "auto_format": true,
    "subprocess_delegation": true
  },
  "subprocess": {
    "tiers": {
      "haiku":  { "timeout": 120, "max_turns": 10 },
      "sonnet": { "timeout": 300, "max_turns": 10 },
      "opus":   { "timeout": 600, "max_turns": 15 }
    },
    "volume_threshold": 5
  }
}

Wichtige Einstellungen:

  • Deaktiviere Sprachen, die du nicht verwendest, um Hooks zu beschleunigen
  • volume_threshold — Verstöße über dieser Anzahl werden automatisch an eine höhere Modellstufe eskaliert
  • subprocess_delegation: false — Phase 3 komplett überspringen (nur Verstöße melden)

Umgebungsüberschreibungen

VariableZweck
HOOK_SKIP_SUBPROCESS=1Phase 3 überspringen, Verstöße direkt melden
HOOK_SUBPROCESS_TIMEOUT=NTimeout der Stufe überschreiben
HOOK_DEBUG_MODEL=1Modell-Auswahlentscheidungen protokollieren
HOOK_SKIP_PM=1Paketmanager-Durchsetzung umgehen

Referenzen

  • Plankton (Credit: @alxfazio)
  • Plankton REFERENCE.md — Vollständige Architekturdokumentation (Credit: @alxfazio)
  • Plankton SETUP.md — Detaillierte Installationsanleitung (Credit: @alxfazio)

ECC v1.8 Ergänzungen

Kopierbares Hook-Profil

Strenges Qualitätsverhalten einstellen:

export ECC_HOOK_PROFILE=strict
export ECC_QUALITY_GATE_FIX=true
export ECC_QUALITY_GATE_STRICT=true

Sprach-Gate-Tabelle

  • TypeScript/JavaScript: Biome bevorzugt, Prettier als Fallback
  • Python: Ruff format/check
  • Go: gofmt

Konfigurations-Manipulationsschutz

Während der Qualitätsdurchsetzung Änderungen an Konfigurationsdateien im selben Durchlauf kennzeichnen:

  • biome.json, .eslintrc*, prettier.config*, tsconfig.json, pyproject.toml

Wird eine Konfiguration geändert, um Verstöße zu unterdrücken, ist eine explizite Überprüfung vor dem Merge erforderlich.

CI-Integrationsmuster

Verwende in CI dieselben Befehle wie in lokalen Hooks:

  1. Formatierer-Prüfungen ausführen
  2. Lint-/Typ-Prüfungen ausführen
  3. Bei Fehlern im Strict-Mode sofort abbrechen
  4. Zusammenfassung der Korrekturen veröffentlichen

Gesundheitsmetriken

Verfolge:

  • durch Gates markierte Bearbeitungen
  • durchschnittliche Korrekturzeit
  • wiederholte Verstöße nach Kategorie
  • Merge-Blockaden aufgrund von Gate-Fehlern

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Verwandte Skills