用途:Plankton 是面向 Claude Code 的写入时代码质量强制系统,在每次文件编辑时运行格式化与 lint,并调用 Claude 子进程修复代理未处理的违规,而非等到提交阶段。
主要能力:采用三阶段架构。阶段一静默运行格式化器(ruff format、biome、shfmt、taplo、markdownlint),修复约 40-50% 问题;阶段二运行 linter 并以 JSON 收集无法自动修复的违规;阶段三启动 claude -p 子进程,按违规复杂度路由模型层级:Haiku 处理格式、导入、风格(120 秒超时),Sonnet 处理复杂度与重构(300 秒),Opus 处理类型系统与深度推理(600 秒),随后重跑前两阶段验证。主代理只看到子进程无法修复的问题。
配置保护:通过 PreToolUse 钩子阻止修改 linter 配置,Stop 钩子在会话结束时用 git diff 检测配置变更,并维护受保护文件列表(.ruff.toml、biome.json、.shellcheckrc、.yamllint、.hadolint.yaml 等)。包管理器强制:Bash 的 PreToolUse 钩子阻止 pip、pip3、poetry、pipenv(改用 uv)以及 npm、yarn、pnpm(改用 bun),例外为 npm audit、npm view、npm publish。
使用方式:需从其仓库手动安装并先审查代码。核心依赖安装命令为 brew install jaq ruff uv,Python linter 用 uv sync --all-extras,随后在 Plankton 目录运行 claude,钩子自动生效。接入自有项目需复制 .claude/hooks/ 目录、.claude/settings.json 钩子配置与 linter 配置文件,并安装对应语言 linter。支持 Python、TypeScript/JS、Shell、YAML、Markdown、Dockerfile、TOML、JSON。
限制:需手动安装,无插件配置;与 ECC 的 Prettier 钩子在 JS/TS 上可能冲突,建议禁用 ECC 的 Prettier PostToolUse 钩子。oxlint 复杂度规则需 oxlint >= 1.37.0 并手动启用,初始上限应基于实测最差复杂度而非默认 20。具体收费与平台支持暂未提供。