Agent Skills by ALSEL
汎用ソフトウェア開発⭐ リポ 9品質スコア 70/100

plankton-code-quality

Planktonを使用したWrite-time(執筆時)のコード品質管理 — ファイル編集時にフックを経由して、自動フォーマット、リント、およびClaude搭載の修正機能を毎回実行します。

description の原文を見る

Write-time code quality enforcement using Plankton — auto-formatting, linting, and Claude-powered fixes on every file edit via hooks.

SKILL.md 本文

Plankton Code Quality スキル

Plankton(クレジット: @alxfazio)の統合リファレンスです。Plankton は Claude Code のための書き込み時コード品質強制システムです。PostToolUse フックを通じてすべてのファイル編集時にフォーマッターとリンターを実行し、エージェントが検出できなかった違反を修正するために Claude サブプロセスを生成します。

使用時機

  • ファイル編集時に自動フォーマットとリントを実行したい(コミット時だけでなく)
  • エージェントがリンター設定を変更してコードを修正する代わりに合格させることに対する防御が必要
  • 修正のための段階的なモデルルーティングが必要(Haiku for シンプルスタイル、Sonnet for ロジック、Opus for 型)
  • 複数言語で作業している(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)
├─ リンターを実行して修正不可能な違反を収集
├─ 構造化 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 を再実行して修正を検証
└─ クリーンなら Exit 0、違反が残れば Exit 2(メインエージェントに報告)

メインエージェントに表示される内容

シナリオエージェントに表示フック終了コード
違反なしなし0
サブプロセスにより全て修正なし0
サブプロセス後も違反が残る[hook] N violation(s) remain2
アドバイザリ(重複、旧ツール)[hook:advisory] ...0

メインエージェントには、サブプロセスが修正できなかった問題のみが表示されます。ほとんどの品質問題は透過的に解決されます。

設定保護(ルール操作に対する防御)

LLM は .ruff.toml または biome.json を変更してコードを修正する代わりにルールを無効化しようとします。Plankton は 3 つのレイヤーでこれをブロックします:

  1. PreToolUse フックprotect_linter_configs.sh はすべてのリンター設定への編集が発生する前にブロック
  2. Stop フックstop_config_guardian.sh はセッション終了時に git diff 経由で設定変更を検出
  3. 保護ファイル一覧.ruff.tomlbiome.json.shellcheckrc.yamllint.hadolint.yaml など

パッケージマネージャー強制

Bash の PreToolUse フックがレガシーパッケージマネージャーをブロック:

  • pippip3poetrypipenv → ブロック(uv を使用)
  • npmyarnpnpm → ブロック(bun を使用)
  • 許可される例外: npm auditnpm viewnpm publish

セットアップ

クイックスタート

# Plankton をプロジェクト(または共有場所)にクローン
# 注: Plankton は @alxfazio によるもの
git clone https://github.com/alexfazio/plankton.git
cd plankton

# コア依存関係をインストール
brew install jaq ruff uv

# Python リンターをインストール
uv sync --all-extras

# Claude Code を起動 — フックは自動的にアクティベート
claude

インストールコマンドはなく、プラグイン設定も不要です。.claude/settings.json のフックは Plankton ディレクトリで Claude Code を実行すると自動的に読み込まれます。

プロジェクトごとの統合

Plankton フックを自分のプロジェクトで使用するには:

  1. .claude/hooks/ ディレクトリをプロジェクトにコピー
  2. .claude/settings.json フック設定をコピー
  3. リンター設定ファイル(.ruff.tomlbiome.json など)をコピー
  4. 言語用のリンターをインストール

言語別の依存関係

言語必須オプション
Pythonruffuvty(型)、vulture(デッドコード)、bandit(セキュリティ)
TypeScript/JSbiomeoxlintsemgrepknip(デッドエクスポート)
Shellshellcheckshfmt
YAMLyamllint
Markdownmarkdownlint-cli2
Dockerfilehadolint(>= 2.12.0)
TOMLtaplo
JSONjaq

clarc との組み合わせ

補完的で、重複しない

関心事clarcPlankton
コード品質強制PostToolUse フック(Prettier、tsc)PostToolUse フック(20 以上のリンター + サブプロセス修正)
セキュリティスキャンAgentShield、security-reviewer エージェントBandit(Python)、Semgrep(TypeScript)
設定保護PreToolUse ブロック + Stop フック検出
パッケージマネージャー検出 + セットアップ強制(レガシー PM をブロック)
CI 統合Git 用の pre-commit フック
モデルルーティング手動(/model opus自動(違反複雑さ → 階層)

推奨される組み合わせ

  1. clarc をプラグインとしてインストール(エージェント、スキル、コマンド、ルール)
  2. 書き込み時品質強制用に Plankton フックを追加
  3. セキュリティ監査に AgentShield を使用
  4. PR 前の最終ゲートとして clarc の検証ループを使用

フック競合の回避

clarc と Plankton の両方のフックを実行する場合:

  • clarc の Prettier フックと Plankton の biome フォーマッターは JS/TS ファイルで競合する可能性があります
  • 解決策: Plankton を使用する場合は clarc の Prettier PostToolUse フックを無効化(Plankton の biome がより包括的)
  • 両方は異なるファイルタイプで共存可能(clarc が 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)

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
marvinrichter
リポジトリ
marvinrichter/clarc
ライセンス
MIT
最終更新
2026/4/27

Source: https://github.com/marvinrichter/clarc / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: marvinrichter · marvinrichter/clarc · ライセンス: MIT