Appearance
Plankton Code Quality Skill 是 Claude Code 的写时代码质量守护方案。它通过 PostToolUse Hook,在每次文件编辑后自动运行格式化与 Lint 工具,并针对未能自动修复的代码问题,调用 Claude 多模型分级修复,极大提升了多语言项目的代码一致性和安全性。Plankton 还内置配置防篡改机制,防止 AI 通过修改 Linter 配置“蒙混过关”,为 AI 辅助编程提供了生产级的质量底座。
Everything Claude Code Plankton Code Quality Skill:每次文件编辑时通过 Hook 自动 Lint 并 Claude 修复
在 AI 辅助编程时代,代码质量控制不能只依赖开发者自觉或提交前的人工检查。Plankton Code Quality Skill 正是为 Claude Code 这类 AI 编程助手量身打造的“写时自动质量守护”能力。它通过自动化 Hook,将格式化、Lint、AI 修复与配置保护无缝集成到每一次文件编辑流程,极大降低了技术债和低质量代码混入主干的风险。
Plankton Code Quality Skill 能解决什么问题?
传统的 Lint/格式化方案通常只在 commit、push 或 CI 阶段生效,AI 助手生成代码时很容易绕过质量门控,甚至通过修改 Linter 配置文件(如 .ruff.toml、biome.json)来“消灭”报错而不是修复代码本身。这会导致:
- 低质量/不规范代码无声混入主干
- 配置被 AI 篡改,规则失效
- 多语言项目难以统一质量标准
- Lint/格式化问题只能靠人工补救
Plankton Skill 通过三重机制解决上述痛点:
- 写时自动格式化与 Lint:每次文件编辑后即刻运行多语言格式化+Lint,第一时间发现问题。
- Claude 分级自动修复:未能自动修复的复杂问题,自动调用 Claude 子进程,按问题复杂度路由到 Haiku/Sonnet/Opus 等模型分级修复。
- 配置防篡改保护:多层 Hook 防止 AI 修改 Linter 配置文件,杜绝“规则游戏”。
触发条件与自动化流程
Plankton Skill 依赖于 Everything Claude Code 的 Hook 体系,主要通过 PostToolUse、PreToolUse、Stop 三类事件自动触发。具体流程如下:
1. 文件编辑后自动触发(PostToolUse Hook)
每当 Claude Code 编辑或写入文件时,Plankton 的 multi_linter.sh 会自动执行三阶段流程:
Phase 1:静默自动格式化
- 运行
ruff format、biome、shfmt、taplo、markdownlint等格式化工具 - 能自动修复的问题直接修复,无需人工介入
Phase 2:收集未修复的 Lint 违规
- 运行各类 Linter,收集无法自动修复的违规项
- 以结构化 JSON 输出(包含行号、列号、错误码、信息、Linter 名称)
Phase 3:Claude 分级修复
- 生成违规 JSON,自动调用 Claude 子进程
- 根据问题复杂度,自动分配到不同模型:
- Haiku:简单格式/风格/导入问题(如 E/W/F 类)——120 秒超时
- Sonnet:复杂逻辑/重构问题(如 C901、PLR 类)——300 秒超时
- Opus:类型系统/深层推理(如 unresolved-attribute)——600 秒超时
- 修复后自动回到 Phase 1+2 验证,直至无违规或超时
输出示例
- 全部修复:主 Agent 无感知,流程静默通过
- 部分未修复:主 Agent 收到
[hook] N violation(s) remain - 配置被篡改:主 Agent 收到
[hook:advisory] 配置文件被修改,需人工审核
2. 配置文件保护(PreToolUse & Stop Hook)
- PreToolUse:
protect_linter_configs.sh阻止对.ruff.toml、biome.json等 Linter 配置的编辑 - Stop:
stop_config_guardian.sh检查整个会话期间配置文件是否被修改,若有变更则阻断合并
3. 包管理器强制(PreToolUse)
- 阻止使用传统包管理器(如 pip、npm、yarn),强制使用 uv/bun 等现代工具,避免依赖污染和安全隐患
实际项目中的使用流程(Step by Step)
快速上手
- 安装依赖(以 macOS 为例):bash
brew install jaq ruff uv uv sync --all-extras - 启动 Claude Code(在 Plankton 目录下):bash
claudePlankton 的 Hook 会自动激活,无需额外配置。
集成到自有项目
- 复制
.claude/hooks/目录到你的项目 - 复制
.claude/settings.json(Hook 配置) - 复制各语言 Linter 配置文件(如
.ruff.toml、biome.json) - 安装各语言 Linter 工具(见下表)
| 语言 | 必需工具 | 可选工具(增强) |
|---|---|---|
| Python | ruff, uv | ty, vulture, bandit |
| TypeScript | biome | oxlint, semgrep, knip |
| Shell | shellcheck, shfmt | |
| YAML | yamllint | |
| Markdown | markdownlint-cli2 | |
| Dockerfile | hadolint (>=2.12.0) | |
| TOML | taplo | |
| JSON | jaq |
配置与定制
Plankton 的 .claude/hooks/config.json 支持灵活定制:
json
{
"languages": {
"python": true,
"typescript": { "enabled": true, "biome_nursery": "warn" },
...
},
"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
}
}- 关闭不需要的语言可加速 Hook
volume_threshold控制违规数量大于多少时自动升级模型subprocess_delegation: false可跳过 AI 修复,仅报告违规
典型输出示例
1. 全部自动修复
# Agent 无输出,流程静默通过2. 仍有未修复违规
[hook] 3 violation(s) remain3. 检测到配置文件被修改
[hook:advisory] biome.json 被修改,需人工审核常见配套 Agent 与 Skill 协作
- 与 ECC 体系协作:Plankton 作为写时质量门控,与 Everything Claude Code Verification Loop 形成“写时 + 合并前”双重质量保障。推荐搭配 AgentShield 安全审计。
- 与 Code Reviewer Agent:Plankton 负责自动修复和基础质量,复杂架构/安全/业务规则建议由 Code Reviewer Agent 补充。
- 与 Rules 体系:Plankton 强制执行 ECC 规则体系 中的编码规范,防止 AI 绕规则。
与其他 Hook/Skill 的协作与冲突
- 与 ECC Prettier Hook:Plankton 的 biome 格式化能力覆盖更广,建议关闭 ECC 的 Prettier PostToolUse Hook,避免 JS/TS 文件重复格式化。
- 多语言项目:Plankton 可与 ECC 并行运行,ECC 处理 Plankton 未覆盖的文件类型。
- CI 集成:本地 Hook 与 CI 可共用同一套格式化/Lint/修复流程,保证一致性。
进阶用法与环境变量
HOOK_SKIP_SUBPROCESS=1:跳过 AI 修复,直接报告违规HOOK_SUBPROCESS_TIMEOUT=N:自定义子进程超时时间HOOK_DEBUG_MODEL=1:输出模型分级决策日志HOOK_SKIP_PM=1:跳过包管理器强制
健康度与质量度量
Plankton 支持统计:
- 被质量门控拦截的编辑次数
- 平均修复耗时
- 违规类型分布与重复率
- 因质量门控阻断的合并次数
推荐最佳实践
- 先安装 Everything Claude Code 插件,激活 Agent/Skill/Rules 体系
- 集成 Plankton Hook,获得写时自动质量守护
- 结合 Verification Loop 作为 PR 前最终质量关卡
- 开启配置防篡改和包管理器强制,提升团队协作安全性
FAQ
Q: Plankton Skill 会影响 AI 生成代码的速度吗?
A: 写时自动格式化和 Lint 会带来极小延迟,大部分问题可静默修复,仅遇到复杂违规时才调用 Claude 子进程,整体体验流畅。
Q: 可以只用 Plankton 的部分功能吗?
A: 可以。你可在配置文件中关闭某些语言、禁用 AI 子进程修复,仅保留格式化或 Lint 功能,按需裁剪。
Q: 如何防止 AI 篡改 Linter 配置文件?
A: Plankton 通过 PreToolUse 和 Stop Hook 双重机制阻止和检测配置文件变更,发现违规会阻断流程并提示人工审核。