mcpField
A
anti-slop

anti-slop

github.com/b4r7xテスト・品質079 回インストール12 週間前に更新
リポジトリ

anti-slop について

Anti-Slopは、AI生成コードに見られるパターンを検出するコード監査スキルです。対応するソースファイルをパターンカタログに沿って確認し、箇所、重要度、修正案を含む定型レポートを作成します。

主な機能

  1. 01対応ソースファイルの監査
  2. 027種類のコードパターンを確認
  3. 03行と重要度を報告
  4. 04簡潔な修正案を提示
  5. 05長いファイルの部分監査を明記

活用シーン

  1. 01不要な複雑さの確認
  2. 02デッドコードや型回避の特定
  3. 03複数ファイル間の重複ユーティリティ確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/b4r7x/agent-skills --skill anti-slop

インストール後、Claude Code で/anti-slopを入力して読み込まれたか確認します。

同梱ファイルreferences/slop-code-patterns.md

詳細

Anti-Slop

ソースコードを監査して、AI 生成コードにありがちな問題パターンを検出し、構造化されたレポートを出力します。

ワークフロー

ステップ 1 — ファイルを特定する

引数をファイルパスまたは glob パターンとして解析します。glob を展開して、具体的なファイル一覧を作成します。

# If argument is a glob like "src/**/*.ts", expand it
# If argument is a file path, use it directly
# If multiple paths/globs, expand all

対応する拡張子: .ts、.tsx、.js、.jsx、.py、.go、.rs、.java、.rb、.php、.swift、.kt

1000 行を超えるファイルは最初の 500 行のみを監査し、そのファイルのレポート項目に partial — first 500 of N lines と記載します。部分的な監査を完全な監査として提示してはいけません。

引数が指定されていない場合は、ユーザーに次のように尋ねます。

"どのファイルを監査しますか?ファイルパスまたは glob パターンを渡してください(例:src/**/*.ts)。"

ステップ 2 — パターンカタログを読む

references/slop-code-patterns.md を読み、すべての検出ルールと重大度ガイドを確認します。

ステップ 3 — 各ファイルを監査する

各ファイルについて:

  1. ファイルの内容を読み取ります

  2. 次の 7 カテゴリーすべてにわたってパターンをスキャンします。

    • カテゴリー 1:不要なコメント — コードの言い換え、明白な JSDoc、曖昧な TODO、セクション区切り、「削除済み」マーカー
    • カテゴリー 2:過剰な設計 — 時期尚早な抽象化、不要なファクトリー、ハードコード値のための設定、処理を転送するだけのラッパー、一度しか使わないインターフェース
    • カテゴリー 3:過剰に防御的なコーディング — null 非許容型への null チェック、失敗しない処理への try-catch、return 後の冗長な else、冗長なエラーメッセージ、バグを隠すフォールバック
    • カテゴリー 4:AI らしい文体 — "enhanced/optimized/improved" を使った命名、"ensure/robust/graceful" を使ったコメント、制御フローの説明、謝罪するようなコメント
    • カテゴリー 5:デッドコード — 未使用の import、代入後に読み取られない変数、到達不能なコード、後方互換性のための再エクスポート
    • カテゴリー 6:型の回避策 — as any、説明のない @ts-ignore、不要な型アサーション
    • カテゴリー 7:冗長なパターン — ?? に置き換えられる三項演算子、冗長な真偽値処理、不要な async/await、無意味なスプレッド構文
  3. 見つかった問題ごとに、次の項目を記録します。

    • 行番号
    • カテゴリー(1~7)
    • パターン(例:「1a:コードの言い換え」)
    • 重大度(高/中/低)
    • 問題のあるコード(1~3 行)
    • 修正案(簡潔に。完全な書き換えではなく、何をすべきかを示します)
ステップ 4 — ファイル横断チェック

各ファイルの監査後、ファイル横断のパターンを確認します。

  • 1 つのファイルからしか呼び出されていない関数 — 時期尚早な抽象化の可能性があります(カテゴリー 2a)
  • ほかのファイルから import されていないエクスポート済みシンボル — デッドコードの可能性があります(カテゴリー 5d)
  • 複数のファイルに重複するユーティリティ関数 — AI は同じヘルパーを複数の場所に作成することがあります

これらのチェックは、3 ファイル以上を監査する場合にのみ実行します。grep を使って、コードベース全体で関数やエクスポートの使用状況を検索します。

ステップ 5 — レポートを出力する

次の形式でレポートを作成します。

## Anti-Slop Audit Report

**Files audited:** N
**Issues found:** N (H high, M medium, L low)

---

### `path/to/file.ts`

| Line | Severity | Category | Pattern | Issue |
|------|----------|----------|---------|-------|
| 12 | medium | Unnecessary comment | 1a: restating code | `// set the name` above `this.name = name` |
| 45-52 | medium | Over-engineering | 2a: premature abstraction | `formatDate()` called once, body is one line |
| 89 | high | Type workaround | 6a: `as any` | `response.data as any` — fix the response type |

**Suggested fixes:**
- L12: Delete the comment
- L45-52: Inline `formatDate()` at L78
- L89: Type `response.data` as `ApiResponse` based on the fetch call at L85

---

### `path/to/other-file.ts`
...

---

### Cross-File Issues

- `formatSlug()` defined in `utils.ts:34` is only imported by `page.ts:2` — consider inlining
- `UserDTO` exported from `types.ts:12` is not imported anywhere

---

### Summary by Category

| Category | Count |
|----------|-------|
| 1. Unnecessary comments | N |
| 2. Over-engineering | N |
| 3. Defensive over-coding | N |
| 4. AI voice | N |
| 5. Dead code | N |
| 6. Type workarounds | N |
| 7. Verbose patterns | N |

問題が 1 件も見つからなかった場合は、次を出力します。

## Anti-Slop Audit Report

**Files audited:** N
**Issues found:** 0

Clean. No slop detected.

コメント