Communitygithub.com

plankton-code-quality

Refuerzo de calidad de código en tiempo de escritura usando Plankton: formato automático, linting y correcciones asistidas por Claude en cada edición de archivo mediante hooks.

¿Qué es plankton-code-quality?

Plankton es un sistema de refuerzo de calidad de código en tiempo de escritura diseñado para integrarse con Claude Code. A diferencia de las herramientas tradicionales que solo verifican la calidad en el momento del commit, Plankton ejecuta formateadores y linters en cada edición de archivo mediante hooks de PostToolUse. Si encuentra violaciones que el agente no corrigió, delega la corrección a subprocesos de Claude con enrutamiento automático por nivel de modelo: Haiku para problemas de estilo simples, Sonnet para refactorización lógica y Opus para análisis profundo de tipos. Además, incluye protección contra modificaciones maliciosas de archivos de configuración por parte del agente, bloqueo de gestores de paquetes heredados y soporte para múltiples lenguajes (Python, TypeScript, Shell, YAML, JSON, TOML, Markdown, Dockerfile). Es ideal para equipos que desean mantener una calidad de código constante y automática sin depender de correcciones manuales ni de la buena voluntad del agente.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/plankton-code-quality

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Habilidad de Calidad de Código Plankton

Referencia de integración para Plankton (crédito: @alxfazio), un sistema de refuerzo de calidad de código en tiempo de escritura para Claude Code. Plankton ejecuta formateadores y linters en cada edición de archivo mediante hooks de PostToolUse, luego genera subprocesos de Claude para corregir violaciones que el agente no detectó.

Cuándo Usarlo

  • Deseas formato y linting automáticos en cada edición de archivo (no solo al hacer commit)
  • Necesitas defensa contra agentes que modifican configuraciones de linter para pasar pruebas en lugar de corregir código
  • Quieres enrutamiento por niveles de modelo para correcciones (Haiku para estilo simple, Sonnet para lógica, Opus para tipos)
  • Trabajas con múltiples lenguajes (Python, TypeScript, Shell, YAML, JSON, TOML, Markdown, Dockerfile)

Cómo Funciona

Arquitectura de Tres Fases

Cada vez que Claude Code edita o escribe un archivo, el hook PostToolUse multi_linter.sh de Plankton se ejecuta:

Fase 1: Autoformato (Silencioso)
├─ Ejecuta formateadores (ruff format, biome, shfmt, taplo, markdownlint)
├─ Corrige 40-50% de los problemas silenciosamente
└─ Sin salida al agente principal

Fase 2: Recopilar Violaciones (JSON)
├─ Ejecuta linters y recopila violaciones no corregibles
├─ Devuelve JSON estructurado: {line, column, code, message, linter}
└─ Aún sin salida al agente principal

Fase 3: Delegar + Verificar
├─ Genera subproceso claude -p con el JSON de violaciones
├─ Enruta al nivel de modelo según la complejidad de la violación:
│   ├─ Haiku: formato, imports, estilo (códigos E/W/F) — tiempo de espera 120s
│   ├─ Sonnet: complejidad, refactorización (códigos C901, PLR) — tiempo de espera 300s
│   └─ Opus: sistema de tipos, razonamiento profundo (unresolved-attribute) — tiempo de espera 600s
├─ Vuelve a ejecutar Fase 1+2 para verificar correcciones
└─ Salida 0 si está limpio, Salida 2 si quedan violaciones (reportado al agente principal)

Lo Que Ve el Agente Principal

EscenarioEl agente veSalida del hook
Sin violacionesNada0
Todo corregido por subprocesoNada0
Quedan violaciones tras subproceso[hook] N violation(s) remain2
Aviso (duplicados, herramientas antiguas)[hook:advisory] ...0

El agente principal solo ve problemas que el subproceso no pudo corregir. La mayoría de los problemas de calidad se resuelven de forma transparente.

Protección de Configuración (Defensa Contra Manipulación de Reglas)

Los LLM modificarán .ruff.toml o biome.json para desactivar reglas en lugar de corregir el código. Plankton lo bloquea con tres capas:

  1. Hook PreToolUse — protect_linter_configs.sh bloquea ediciones a todas las configuraciones de linter antes de que ocurran
  2. Hook Stop — stop_config_guardian.sh detecta cambios de configuración mediante git diff al final de la sesión
  3. Lista de archivos protegidos — .ruff.toml, biome.json, .shellcheckrc, .yamllint, .hadolint.yaml y más

Refuerzo de Gestor de Paquetes

Un hook PreToolUse en Bash bloquea gestores de paquetes heredados:

  • pip, pip3, poetry, pipenv → Bloqueados (usar uv)
  • npm, yarn, pnpm → Bloqueados (usar bun)
  • Excepciones permitidas: npm audit, npm view, npm publish

Configuración

Inicio Rápido

Nota: Plankton requiere instalación manual desde su repositorio. Revisa el código antes de instalarlo.

# Instalar dependencias principales
brew install jaq ruff uv

# Instalar linters de Python
uv sync --all-extras

# Iniciar Claude Code — los hooks se activan automáticamente
claude

No necesita comando de instalación ni configuración de plugin. Los hooks en .claude/settings.json se recogen automáticamente al ejecutar Claude Code en el directorio de Plankton.

Integración por Proyecto

Para usar los hooks de Plankton en tu propio proyecto:

  1. Copia el directorio .claude/hooks/ a tu proyecto
  2. Copia la configuración de hooks de .claude/settings.json
  3. Copia los archivos de configuración de linter (.ruff.toml, biome.json, etc.)
  4. Instala los linters para tus lenguajes

Dependencias por Lenguaje

LenguajeRequeridoOpcional
Pythonruff, uvty (tipos), vulture (código muerto), bandit (seguridad)
TypeScript/JSbiomeoxlint, semgrep, knip (exportaciones muertas)
Shellshellcheck, shfmt—
YAMLyamllint—
Markdownmarkdownlint-cli2—
Dockerfilehadolint (>= 2.12.0)—
TOMLtaplo—
JSONjaq—

Emparejamiento con ECC

Complementarios, No Superpuestos

AspectoECCPlankton
Refuerzo de calidad de códigoHooks PostToolUse (Prettier, tsc)Hooks PostToolUse (20+ linters + correcciones con subprocesos)
Escaneo de seguridadAgentShield, agente security-reviewerBandit (Python), Semgrep (TypeScript)
Protección de configuración—Bloqueos PreToolUse + detección con hook Stop
Gestor de paquetesDetección + configuraciónRefuerzo (bloquea PMs heredados)
Integración CI—Hooks pre-commit para git
Enrutamiento de modelosManual (/model opus)Automático (complejidad de violación → nivel)

Combinación Recomendada

  1. Instala ECC como tu plugin (agentes, habilidades, comandos, reglas)
  2. Añade los hooks de Plankton para refuerzo de calidad en tiempo de escritura
  3. Usa AgentShield para auditorías de seguridad
  4. Usa el bucle de verificación de ECC como puerta final antes de PRs

Evitando Conflictos de Hooks

Si ejecutas ambos hooks (ECC y Plankton):

  • El hook Prettier de ECC y el formateador biome de Plankton pueden entrar en conflicto en archivos JS/TS
  • Resolución: desactiva el hook PostToolUse de Prettier de ECC al usar Plankton (biome de Plankton es más completo)
  • Ambos pueden coexistir en diferentes tipos de archivos (ECC maneja lo que Plankton no cubre)

Referencia de Configuración

El archivo .claude/hooks/config.json de Plankton controla todo el comportamiento:

{
  "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
  }
}

Configuraciones clave:

  • Desactiva los lenguajes que no usas para acelerar los hooks
  • volume_threshold — violaciones > este número se escalan automáticamente a un nivel de modelo superior
  • subprocess_delegation: false — saltar la Fase 3 por completo (solo reportar violaciones)

Sobrescrituras de Entorno

VariablePropósito
HOOK_SKIP_SUBPROCESS=1Saltar Fase 3, reportar violaciones directamente
HOOK_SUBPROCESS_TIMEOUT=NSobrescribir tiempo de espera del nivel
HOOK_DEBUG_MODEL=1Registrar decisiones de selección de modelo
HOOK_SKIP_PM=1Omitir el refuerzo del gestor de paquetes

Referencias

  • Plankton (crédito: @alxfazio)
  • Plankton REFERENCE.md — Documentación completa de la arquitectura (crédito: @alxfazio)
  • Plankton SETUP.md — Guía de instalación detallada (crédito: @alxfazio)

Adiciones de ECC v1.8

Perfil de Hook Copiable

Establece un comportamiento de calidad estricto:

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

Tabla de Puertas de Lenguaje

  • TypeScript/JavaScript: Biome preferido, Prettier como alternativa
  • Python: Ruff format/check
  • Go: gofmt

Guardián de Manipulación de Configuración

Durante el refuerzo de calidad, marca cambios en archivos de configuración en la misma iteración:

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

Si la configuración se cambia para suprimir violaciones, se requiere revisión explícita antes de fusionar.

Patrón de Integración CI

Usa los mismos comandos en CI que en los hooks locales:

  1. ejecutar comprobaciones de formateo
  2. ejecutar comprobaciones de lint/tipos
  3. fallar rápidamente en modo estricto
  4. publicar resumen de remediación

Métricas de Salud

Seguimiento de:

  • ediciones marcadas por puertas
  • tiempo promedio de remediación
  • violaciones repetidas por categoría
  • bloqueos de fusión debido a fallos en puertas

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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills relacionados