SuperAPI AI 工具集

plankton-code-quality

编程与开发

查看项目

更新于 10-16 07:23

技能介绍

用途:Plankton 是面向 Claude Code 的编写时代码质量强制执行系统。通过工具调用后钩子(PostToolUse hooks)在每次文件编辑时运行格式化程序与 Linter,随后启动 Claude 子进程修复智能体未捕捉到的违规项,而非等到提交时才检查。

主要能力:三阶段架构。阶段一自动格式化,静默运行 ruff format、biome、shfmt、taplo、markdownlint,可解决约四至五成问题;阶段二收集无法自动修复的违规项,返回结构化 JSON;阶段三以 claude -p 子进程处理违规 JSON,并按复杂性分级路由模型:Haiku 处理格式化/导入/样式(E/W/F 代码,120s 超时),Sonnet 处理复杂性与重构(C901、PLR,300s),Opus 处理类型系统与深度推理(600s),之后重跑阶段一、二验证。若无违规、或子进程修复完所有问题,钩子退出码为 0,主智能体无感知;若仍有违规则以退出码 2 报回主智能体。另含配置保护(PreToolUse 钩子阻止修改 Linter 配置,Stop 钩子以 git diff 检测会话结束时的配置改动)与包管理器强制执行(阻止 pip、poetry、npm、yarn 等,改用 uv、bun,例外含 npm audit/view/publish)。

使用方式:克隆 Plankton 仓库并安装依赖,如 brew install jaq ruff uv、uv sync --all-extras,随后在 Plankton 目录启动 claude,钩子会由 .claude/settings.json 自动加载。单项目集成需复制 .claude/hooks/、settings.json 中钩子配置及 Linter 配置文件,并安装对应语言依赖。支持 Python、TypeScript/JS、Shell、YAML、Markdown、Dockerfile、TOML、JSON。可通过 .claude/hooks/config.json 控制语言开关、阶段与子进程超时、volume_threshold(违规数超过该值自动升级模型)等;环境变量如 HOOK_SKIP_SUBPROCESS=1、HOOK_SUBPROCESS_TIMEOUT、HOOK_DEBUG_MODEL、HOOK_SKIP_PM 可覆盖行为。与 ECC 配合时,注意禁用 ECC 的 Prettier 钩子以避免与 biome 在 JS/TS 上冲突。

限制:需自行安装相应 Linter 与依赖;模型路由超时与分级为资料所述默认值,实际效果因项目而异;其余未提供信息暂未说明。