Communitygithub.com

Plankton Code Quality Skill

Control de calidad de código en tiempo de escritura con Plankton: formato automático, linting y correcciones impulsadas por Claude en cada edición de archivo mediante hooks. Úsalo para configurar formato, linting o correcciones automáticas en el momento de editar archivos.

¿Qué es Plankton Code Quality Skill?

Plankton es un sistema de control de calidad de código en tiempo de escritura diseñado para Claude Code. Se activa mediante hooks PostToolUse que ejecutan formateadores y linters automáticamente cada vez que se edita o escribe un archivo. Su arquitectura de tres fases primero aplica formato silencioso (ruff, biome, shfmt, etc.), luego recolecta violaciones no corregibles en formato JSON y finalmente delega la corrección a subprocesos de Claude con enrutamiento por niveles (Haiku para estilo simple, Sonnet para refactorización, Opus para tipos). Plankton protege activamente los archivos de configuración de linters contra modificaciones maliciosas (por ejemplo, que el agente desactive reglas en lugar de corregir el código), usando hooks PreToolUse, detección de cambios al finalizar la sesión y una lista de archivos protegidos. Se integra con múltiples lenguajes (Python, TypeScript, Shell, YAML, JSON, TOML, Markdown, Dockerfile) y ofrece variables de entorno para saltar fases, ajustar timeouts o depurar. Es complementario a ECC (Enhanced Claude Code) y puede combinarse con él para una cobertura más completa de calidad y seguridad.

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

Preguntar en tu IA favorita

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

Documentación

¿Qué hace Plankton Code Quality Skill?

Referencia de integración para Plankton (crédito: @alxfazio), un sistema de control 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 PostToolUse, y luego lanza subprocesos de Claude para corregir violaciones que el agente no detectó.

Cuándo usarlo

  • Quieres formato y linting automáticos en cada edición de archivo (no solo al hacer commit)
  • Necesitas defensa contra agentes que modifican configuraciones de linters para que el código pase en lugar de corregirlo
  • 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 multi_linter.sh de Plankton se ejecuta tras el uso de la herramienta:

Fase 1: Autoformato (silencioso)
├─ Ejecuta formateadores (ruff format, biome, shfmt, taplo, markdownlint)
├─ Corrige entre 40 y 50 % de los problemas silenciosamente
└─ Sin salida hacia el agente principal

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

Fase 3: Delegar + verificar
├─ Lanza un subproceso de 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 límite 120 s
│   ├─ Sonnet: complejidad, refactorización (C901, códigos PLR) — tiempo límite 300 s
│   └─ Opus: sistema de tipos, razonamiento profundo (unresolved-attribute) — tiempo límite 600 s
├─ Vuelve a ejecutar las fases 1+2 para verificar las correcciones
└─ Salida 0 si está limpio, salida 2 si quedan violaciones (se informa 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 LLMs 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 las ediciones a todos los archivos de configuración de linters antes de que ocurran
  2. Hook Stop — stop_config_guardian.sh detecta cambios en la configuración mediante git diff al finalizar la sesión
  3. Lista de archivos protegidos — .ruff.toml, biome.json, .shellcheckrc, .yamllint, .hadolint.yaml y más

Imposición del gestor de paquetes

Un hook PreToolUse sobre Bash bloquea gestores de paquetes heredados:

  • pip, pip3, poetry, pipenv → Bloqueados (usa uv)
  • npm, yarn, pnpm → Bloqueados (usa 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 instalar.

# 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

Sin comando de instalación, sin configuración de plugin. Los hooks en .claude/settings.json se recogen automáticamente cuando ejecutas 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 linters (.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—

Combinación con ECC

Complementarios, no superpuestos

AspectoECCPlankton
Control 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ónImposición (bloquea gestores heredados)
Integración CI—Hooks de 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 control 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

Evitar conflictos de hooks

Si ejecutas tanto ECC como Plankton:

  • El hook de Prettier de ECC y el formateador biome de Plankton pueden entrar en conflicto en archivos JS/TS
  • Solución: desactiva el hook PostToolUse de Prettier de ECC cuando uses Plankton (biome de Plankton es más completo)
  • Ambos pueden coexistir en diferentes tipos de archivo (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 uses para acelerar los hooks
  • volume_threshold — si las violaciones superan este número, se escala automáticamente a un nivel de modelo superior
  • subprocess_delegation: false — salta la Fase 3 por completo (solo reporta violaciones)

Anulaciones mediante variables de entorno

VariablePropósito
HOOK_SKIP_SUBPROCESS=1Salta la Fase 3, reporta violaciones directamente
HOOK_SUBPROCESS_TIMEOUT=NAnula el tiempo límite del nivel
HOOK_DEBUG_MODEL=1Registra las decisiones de selección de modelo
HOOK_SKIP_PM=1Omite la imposición 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

Configura 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 respaldo
  • Python: Ruff format/check
  • Go: gofmt

Guarda contra manipulación de configuración

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

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

Si se cambia la configuración 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 hooks locales:

  1. ejecutar verificaciones de formato
  2. ejecutar verificaciones de lint/tipos
  3. fallar rápido en modo estricto
  4. publicar resumen de corrección

Métricas de salud

Seguimiento de:

  • ediciones marcadas por puertas
  • tiempo promedio de corrección
  • violaciones repetidas por categoría
  • bloqueos de fusión por fallos de puerta

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.

Skills relacionados