janitor-discover について
janitor-discover は、GitHub でスキルを探し、導入前に候補を評価する Claude Code 向けスキルです。関連度順にリポジトリを表示し、導入済みスキルとの重複や不審な内容を確認します。
主な機能
- 01GitHub でスキルを検索
- 02ローカルスキルの代替候補を比較
- 03導入前に候補を確認
- 04導入済みスキルとの重複を分析
- 05候補内容のセキュリティをスキャン
活用シーン
- 01トピックに合うスキルを検索
- 02導入済みスキルの代替候補を比較
- 03導入前に重複と安全性を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ khendzel/ skills-janitor --skill janitor-discoverインストール後、Claude Code で/janitor-discoverを入力して読み込まれたか確認します。
詳細
スキルの検索とインストール前チェック
GitHub でスキルを探し、インストール前に特定のスキル(URL またはローカルパス)を評価するための統合エントリーポイントです。
概要
v1.2 の /janitor-search と /janitor-precheck の分割を統合します。ディスパッチャーは、引数の形式に応じて適切なモードを選択します。検索結果は関連性で絞り込まれ(リポジトリ名、説明、トピックのいずれかにスキルを示す情報が必要です)、スター数よりも関連性を優先して順位付けされるため、汎用的な巨大リポジトリが実際のスキルを押しのけることはありません。
| 引数 | モード | 実行内容 |
|---|---|---|
seo や n8n workflows などのキーワード | 検索 | search.sh — GitHub で一致するスキルを検索 |
--compare <skill-name> | 比較 | search.sh --compare — ローカルのスキルの代替候補を検索 |
完全な URL:https://github.com/user/skill | インストール前チェック | precheck.sh — インストール前に分析 |
短縮リポジトリ名:user/skill | インストール前チェック | precheck.sh(自動的に URL に展開) |
ローカルパス:~/path/to/skill | インストール前チェック | precheck.sh(ローカルフォルダー) |
インストール前モードでは、1 つではなく2 つのチェックを実行します。インストール済みのスキルとの重複チェックと、(v1.6 以降)候補のセキュリティスキャン(security.sh を使用)です。後者では、インストール済みスキルに /janitor-security が使用するものと同じヒューリスティックを使います。
前提条件
- skills-janitor プラグインをインストールした Claude Code(
scripts/discover.sh、search.sh、precheck.sh、compare.shを提供) - bash 3.2 以降と
curl api.github.comへのネットワークアクセス(匿名でも利用可能。レート制限の引き上げとコード検索にはGITHUB_TOKENを設定してください)
手順
ステップ 1:引数の形式に応じて振り分ける
bash ~/.claude/skills/skills-janitor/scripts/discover.sh <query-or-url> [options]
例:
discover.sh seo— SEO 関連のスキルを検索discover.sh n8n --limit 20— n8n スキルの上位 20 件discover.sh --compare marketing-seo-audit— ローカルのスキルの代替候補discover.sh https://github.com/user/my-skill— インストール前にチェックdiscover.sh user/my-skill— 同じチェックの短縮形式
ステップ 2:モードに応じて結果を提示する
検索モード — GitHub リポジトリを順位付けした一覧。スキル名、説明、スター数、最終更新日、1 行の評価を含みます。
インストール前モード — 2 つのセクション。1 つ目は重複分析です。説明をもとに、ユーザーがすでに持っているスキル(プラグインのスキルを含む)のうち、候補と重複するものと、インストール/スキップ/置き換えの推奨を示します。2 つ目は --- Security (<scope>) --- ブロックです。
セキュリティスキャンの対象範囲は、必ずユーザーに伝えてください。対象範囲はソースによって異なります。
| ソース | スキャン対象 |
|---|---|
| ローカルパス | ディレクトリ全体 — SKILL.md および同梱スクリプト |
URL/user/repo | 取得した SKILL.md のみ — スクリプトはダウンロードされないため、クローン後に再チェックが必要です |
したがって、リモート URL の PASS は「確認できたテキストに不審な点がない」という意味であり、「このリポジトリは安全」という意味ではありません。候補にスクリプトが含まれる場合は、その旨を伝えてください。
出力
検索:番号付きの表(リポジトリ、スター数、更新日、INSTALLED/AVAILABLE の状態)。
インストール前:重複度別の区分(HIGH ≥60%、MODERATE 30–59%、LOW <30%)と、共通キーワード、最終評価の行(HIGH_OVERLAP/MODERATE_OVERLAP/SAFE)を出力します。さらに、No suspicious patterns found.(PASS)、Security scan unavailable.(UNKNOWN)、または VERDICT: REVIEW|RISK の後に検出事項ごとの重要度 + タイトル + 証拠の行を出力するセキュリティブロックも含みます。--json を指定すると、同じデータが security キー(verdict、scope、findings)の下に格納されます。
エラー処理
-
エラー:
GitHub API rate limit exceeded解決方法:GITHUB_TOKEN環境変数を設定して(スコープ不要のクラシックトークンでかまいません)再実行してください。匿名での検索は、1 分あたり数回しかリクエストできません。 -
エラー:
Could not fetch SKILL.md from <url>解決方法:リポジトリ内の SKILL.md が標準外のパスにあります。SKILL.md ファイルへの直接 URL を指定するか、ローカルのクローンパスを指定してください。 -
エラー:有効なトピックで検索しても結果がありません 解決方法:関連性フィルターにより、スキルの兆候がないリポジトリは除外されます。キーワードの範囲を広げる(例:
n8n skill→n8n)か、キャッシュ済みの結果メモを確認してください。結果はdata/search-cache.jsonに 24 時間キャッシュされます。 -
エラー:
Security scan unavailable.(判定UNKNOWN) 解決方法:security.shが失敗したか、解析可能な JSON を返しませんでした。重複チェックの結果は有効ですが、候補をセキュリティチェック済みとして提示しないでください。再実行するか、クローン後に/janitor-securityでスキャンしてください。
例
例 1:トピックからスキルを検索する
入力:「n8n のスキルを探してください。」
出力:discover.sh n8n を実行し、ランキング表を提示して、すでにインストールされている結果があれば明記します。
例 2:インストール前に確認する
入力:「github.com/user/seo-helper はインストールする価値がありますか?」
出力:discover.sh https://github.com/user/seo-helper を実行してから、既存のスキルとの重複、判定(例:「MODERATE_OVERLAP — marketing-skills:seo-audit との重複率 45%」)、セキュリティ判定、および推奨事項を要約します。取得した SKILL.md のみがスキャン対象であることを明記してください。
例 3:候補がセキュリティスキャンで検出された場合
入力:「インストールする前に user/handy-helper を確認してください。」
出力:discover.sh user/handy-helper を実行します。セキュリティブロックで VERDICT: RISK が報告された場合は、重複率より先にそれを伝えてください。検出内容の重大度、タイトル、証拠を引用し、RISK は「信頼する前に内容を確認してください」という意味であり、「マルウェア」という意味ではないことを説明します。また、同梱スクリプトは取得されていないことをユーザーに伝えてください。
リソース
- ディスパッチャー(プラグイン相対パス):
{baseDir}/../../scripts/discover.sh - 検索キャッシュ:
data/search-cache.json(TTL:24 時間) /janitor-security— 同じスキャンを、インストール済みのすべてのスキルに対して実行します/janitor-report— 現在インストールされているスキルのヘルスチェックを行います/janitor-value— 既存のスキルがコンテキストコストに見合っているかを確認します/janitor-fix— インストール済みのスキルの問題を修正します