plankton-code-quality
Planktonを使用したコード品質の自動管理スキルで、ファイル編集のたびにフック経由で自動フォーマット・Lint・Claudeによる修正を実行します。
description の原文を見る
使用Plankton进行编写时代码质量强制执行——通过钩子在每次文件编辑时自动格式化、代码检查和Claude驱动的修复。
SKILL.md 本文
Plankton コード品質スキル
Plankton(作者:@alxfazio)の統合リファレンスです。Plankton は Claude Code 用の執筆時コード品質強制執行システムです。PostToolUse フックを通じて、各ファイル編集時にフォーマッタと linter を実行し、その後 Claude サブプロセスを生成して、エージェントが検出できなかった違反を修正します。
使用時期
- ファイル編集のたびに自動フォーマットと検査を行いたい(コミット時だけでなく)
- エージェントが linter 設定を修正する代わりに変更して検査をパスするのを防ぎたい
- 修正用の階層化モデルルーティングが必要(簡単なスタイルは Haiku、ロジックは Sonnet、型システムは Opus)
- 複数の言語を使用している(Python、TypeScript、Shell、YAML、JSON、TOML、Markdown、Dockerfile)
仕組み
3段階アーキテクチャ
Claude Code がファイルを編集または書き込むたびに、Plankton の multi_linter.sh PostToolUse フックが実行されます:
段階 1:自動フォーマット(サイレント)
├─ フォーマッタツールを実行(ruff format、biome、shfmt、taplo、markdownlint)
├─ 40~50% の問題をサイレント修正
└─ メインエージェントに出力なし
段階 2:違反を収集(JSON)
├─ linter を実行し、修正不可能な違反を収集
├─ 構造化 JSON を返す:{line, column, code, message, linter}
└─ メインエージェントに出力なし
段階 3:委任 + 検証
├─ 違反 JSON を含む claude -p サブプロセスを生成
├─ 違反の複雑さに応じてモデル階層にルーティング:
│ ├─ Haiku:フォーマット、インポート、スタイル(E/W/F コード)—— 120 秒タイムアウト
│ ├─ Sonnet:複雑度、リファクタリング(C901、PLR コード)—— 300 秒タイムアウト
│ └─ Opus:型システム、深い推論(unresolved-attribute)—— 600 秒タイムアウト
├─ 修正を検証するため段階 1+2 を再実行
└─ クリアされた場合は終了コード 0、違反が残る場合は終了コード 2(メインエージェントに報告)
メインエージェントが見るもの
| シナリオ | エージェントが見る | フック終了コード |
|---|---|---|
| 違反なし | なし | 0 |
| サブプロセスが全て修正 | なし | 0 |
| サブプロセス後も違反残存 | [hook] N violation(s) remain | 2 |
| 勧告的警告(重複、古いツール) | [hook:advisory] ... | 0 |
メインエージェントはサブプロセスが修正できなかった問題だけを見ます。ほとんどの品質問題は透過的に解決されます。
設定保護(ルール迂回対策)
LLM は .ruff.toml や biome.json を変更してルールを無効化することで、コードを修正する代わりにチェックを通そうとします。Plankton は 3 層の防御でこの動作を防止します:
- PreToolUse フック —
protect_linter_configs.shが編集発生前に全 linter 設定への変更をブロック - Stop フック —
stop_config_guardian.shが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
セットアップ
クイックスタート
# Clone Plankton into your project (or a shared location)
# Note: Plankton is by @alxfazio
git clone https://github.com/alexfazio/plankton.git
cd plankton
# Install core dependencies
brew install jaq ruff uv
# Install Python linters
uv sync --all-extras
# Start Claude Code — hooks activate automatically
claude
インストールコマンドは不要で、プラグイン設定も不要です。Claude Code を実行すると、Plankton ディレクトリの .claude/settings.json 内のフックが自動的に拾われます。
プロジェクト単位の統合
独自のプロジェクトで Plankton フックを使用する場合:
.claude/hooks/ディレクトリをプロジェクトにコピー.claude/settings.jsonフック設定をコピー- linter 設定ファイル(
.ruff.toml,biome.jsonなど)をコピー - 使用する言語用に linter をインストール
言語別依存関係
| 言語 | 必須 | オプション |
|---|---|---|
| Python | ruff, uv | ty(型), vulture(死コード), bandit(セキュリティ) |
| TypeScript/JS | biome | oxlint, semgrep, knip(死エクスポート) |
| Shell | shellcheck, shfmt | — |
| YAML | yamllint | — |
| Markdown | markdownlint-cli2 | — |
| Dockerfile | hadolint (>= 2.12.0) | — |
| TOML | taplo | — |
| JSON | jaq | — |
ECC と組み合わせて使用
重複ではなく相補的
| 関心事 | ECC | Plankton |
|---|---|---|
| コード品質強制執行 | PostToolUse フック (Prettier, tsc) | PostToolUse フック (20+ linter + サブプロセス修正) |
| セキュリティスキャン | AgentShield, security-reviewer エージェント | Bandit (Python), Semgrep (TypeScript) |
| 設定保護 | — | PreToolUse ブロック + Stop フック検出 |
| パッケージマネージャ | 検出 + セットアップ | 強制執行(レガシーパッケージマネージャをブロック) |
| CI 統合 | — | git 用 pre-commit フック |
| モデルルーティング | 手動 (/model opus) | 自動(違反複雑度 → 階層) |
推奨される組み合わせ
- ECC をプラグインとしてインストール(エージェント、スキル、コマンド、ルール)
- Plankton フックを追加して執筆時品質強制執行を実現
- セキュリティ監査に AgentShield を使用
- PR 前に ECC の verification-loop を最終ゲートとして使用
フックの競合を避ける
ECC と Plankton フックを同時に実行する場合:
- ECC の Prettier フックと Plankton の biome フォーマッタが JS/TS ファイルで競合する可能性
- 解決策:Plankton 使用時に ECC の Prettier PostToolUse フックを無効化(Plankton の biome がより包括的)
- 異なるファイルタイプでは共存可能(ECC が Plankton 未対応部分を処理)
設定リファレンス
Plankton の .claude/hooks/config.json が全動作を制御します:
{
"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
}
}
主要設定:
- 使用していない言語を無効化してフック高速化
volume_threshold— 違反数がこの値を超えた場合、自動的に高いモデル階層にアップグレードsubprocess_delegation: false— 段階 3 をスキップ(違反のみ報告)
環境変数オーバーライド
| 変数 | 用途 |
|---|---|
HOOK_SKIP_SUBPROCESS=1 | 段階 3 をスキップして違反を直接報告 |
HOOK_SUBPROCESS_TIMEOUT=N | 階層タイムアウトをオーバーライド |
HOOK_DEBUG_MODEL=1 | モデル選択決定をログ出力 |
HOOK_SKIP_PM=1 | パッケージマネージャ強制執行を回避 |
参考
- Plankton(作者:@alxfazio)
- Plankton REFERENCE.md — 完全なアーキテクチャドキュメント(作者:@alxfazio)
- Plankton SETUP.md — 詳細なインストールガイド(作者:@alxfazio)
ECC v1.8 の新機能
再現可能なフック設定プロファイル
厳格な品質動作を設定:
export ECC_HOOK_PROFILE=strict
export ECC_QUALITY_GATE_FIX=true
export ECC_QUALITY_GATE_STRICT=true
言語ティアテーブル
- TypeScript/JavaScript:Biome 優先、Prettier は フォールバック
- Python:Ruff format/check
- Go:gofmt
設定改ざん保護
品質強制執行中に、同じイテレーション内の設定ファイル変更をフラグ:
biome.json,.eslintrc*,prettier.config*,tsconfig.json,pyproject.toml
設定が違反を抑制するために変更された場合、マージ前に明示的レビューを要求。
CI 統合パターン
CI では本地フックと同じコマンドを使用:
- フォーマッタチェックを実行
- lint/型チェックを実行
- 厳格モードで速く失敗
- 修正サマリーを発行
ヘルスメトリクス
以下を追跡:
- ゲートによってフラグされた編集
- 平均修正時間
- カテゴリ別の反復違反
- ゲート失敗による マージブロック
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- affaan-m
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/affaan-m/everything-claude-code / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。