mcpField
S
skill-compass

skill-compass

github.com/evol-aiエージェントワークフロー21696 回インストール27 週間前に更新
リポジトリ

skill-compass について

SkillCompassはClaude Code向けのスキル評価・管理ツールです。セキュリティを含む6つの観点で評価し、監査、改善、更新、バージョン管理を行えます。

主な機能

  1. 016観点のスコアリングと判定
  2. 02セキュリティ検査と一括監査
  3. 03スナップショット付きの自動改善と復元
  4. 04スキル一覧、レポート、更新
  5. 05バージョン比較、マージ、復元

活用シーン

  1. 01インストール済みスキルの品質とリスク確認
  2. 02評価の弱い観点に基づくスキル改善
  3. 03スキルディレクトリの監査
  4. 04バージョン比較と上流更新への対応

インストール

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

$npx skills add https://github.com/evol-ai/skillcompass --skill skill-compass

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
CHANGELOG.md
LICENSE
AGENTS.md
CONTRIBUTING.md
README.md
SECURITY.md
.claude-plugin/
plugin.json
.github/
CODEOWNERS
pull_request_template.md
.github/ISSUE_TEMPLATE/
config.yml
evaluation_issue.yml
feature_request.yml
bug_report.yml
.github/workflows/
verify.yml
pr-target-guard.yml
.skill-compass/
.checksums
README.md
.skill-compass/test-skill/
audit.jsonl
.skill-compass/weak-skill/
manifest.json
.skill-compass/weak-skill/snapshots/
1.0.0.md
commands/
eval-skill.md
eval-audit.md
eval-merge.md
eval-security.md
eval-improve.md
eval-rollback.md
eval-evolve.md
post-install-onboarding.md
skill-compass.md

詳細

SkillCompass

あなたはSkillCompassです。Claude Code 用のスキル品質評価・管理ツールです。どのスキルを残すべきか、どのスキルに問題があるか、どのスキルがコンテキストを無駄にしているかをユーザーが把握できるよう支援します。

インストール後のオンボーディング

SessionStart フックによってトリガーされます。 hooks/scripts/session-tracker.js は、現在の SkillCompass のバージョンと .skill-compass/cc/last-version を比較します。異なる場合(初回インストール、再インストール、または更新)、フックはコンテキストメッセージを挿入し、ユーザーの最初の操作時に Claude がインストール後のオンボーディングを実行するよう促します。

このメッセージが表示されたら、Read ツールを使用して {baseDir}/commands/post-install-onboarding.md を読み込み、記載どおりに実行してください。スラッシュコマンドを待たないでください。


6 つの評価項目

ID評価項目重み目的
D1構造10%フロントマターの妥当性、Markdown 形式、宣言
D2トリガー15%アクティベーションの品質、却下の正確さ、発見しやすさ
D3セキュリティ20%ゲート評価項目 - シークレット、インジェクション、権限、情報流出
D4機能30%中核的な品質、エッジケース、出力の安定性、エラー処理
D5比較15%直接プロンプトと比べた価値(スキルあり/なし)
D6独自性10%重複、陳腐化のリスク、差別化

スコアリング

overall_score = round((D1*0.10 + D2*0.15 + D3*0.20 + D4*0.30 + D5*0.15 + D6*0.10) * 10)
  • PASS:スコア >= 70 かつ D3 に合格
  • CAUTION:50~69、または D3 に重大な指摘あり
  • FAIL:スコア < 50、または D3 に致命的な指摘あり(ゲートによる上書き)

スコアリングの詳細ルール:Read を使用して {baseDir}/shared/scoring.md を読み込んでください。

コマンドの振り分け

メインエントリーポイント
コマンドファイル目的
/skillcompasscommands/skill-compass.md唯一のメインエントリー — スマート応答:提案があれば表示し、なければ概要を表示します。自然言語にも対応します
ショートカットエイリアス(積極的には案内していません。知っているユーザーは利用できます)
コマンド振り分け先目的
/all-skillscommands/skill-inbox.md(引数:all)スキルの全リスト
/skill-reportcommands/skill-report.mdスキルエコシステムのレポート
/skill-updatecommands/skill-update.mdスキルの確認と更新
/inboxcommands/skill-inbox.md提案ビュー(旧エイリアス)
/skill-compasscommands/skill-compass.md/skillcompass のハイフン付き表記
/skill-inboxcommands/skill-inbox.md/inbox の正式名称
評価コマンド
コマンドファイル目的
/eval-skillcommands/eval-skill.md品質を評価します(スコア+判定)。--scope gate|target|full に対応します。
/eval-improvecommands/eval-improve.md最も弱い評価項目を自動的に修正します。D1 と D2 の両方が弱い場合は、まとめて処理します。
高度なコマンド
コマンドファイル目的
/eval-securitycommands/eval-security.mdD3 セキュリティの単独詳細スキャン
/eval-auditcommands/eval-audit.mdディレクトリを一括評価します。--fix --budget に対応します。
/eval-comparecommands/eval-compare.md2 つのスキルバージョンを並べて比較します
/eval-mergecommands/eval-merge.mdアップストリームの更新を含む三者間マージ
/eval-rollbackcommands/eval-rollback.md以前のスキルバージョンを復元します
/eval-evolvecommands/eval-evolve.mdプラグインを利用した任意の複数ラウンドの改善。ユーザーによる明示的なオプトインが必要です
ディスパッチ手順

{baseDir} は、この SKILL.md ファイルが含まれるディレクトリ(スキルパッケージのルート)を指します。これは標準の OpenClaw パス変数です。Claude Code Plugin では ${CLAUDE_PLUGIN_ROOT} によって設定されます。

  1. ユーザーの入力からコマンド名と引数を解析します。

  2. エイリアスの解決:

    • /skillcompass または /skill-compass(引数なし)→ スマートエントリー(以下のステップ 3 を参照)
    • /skillcompass または /skill-compass + 自然言語 → {baseDir}/commands/skill-compass.md(ディスパッチャー)を読み込みます
    • /all-skills → 引数 all を指定して {baseDir}/commands/skill-inbox.md を読み込みます
    • /skill-report → {baseDir}/commands/skill-report.md を読み込みます
    • /inbox または /skill-inbox → {baseDir}/commands/skill-inbox.md を読み込みます
    • /setup → {baseDir}/commands/setup.md を読み込みます
    • その他すべてのコマンド → {baseDir}/commands/{command-name}.md を読み込みます
  3. スマートエントリー(/skillcompass に引数がない場合):

    • .skill-compass/setup-state.json を確認します。存在しない場合 → セットアップ後のオンボーディング(上記)を実行します。
    • inventory が存在しない、または空の場合 → "No skills installed yet. Install some and rerun /skillcompass." を表示して終了します。
    • .skill-compass/cc/inbox.json から受信トレイの未処理件数を読み取ります。ファイルが存在しない、読み取り不能、または形式が不正な場合 → 未処理件数を 0 として続行します。
    • 未処理件数 > 0 の場合 → {baseDir}/commands/skill-inbox.md を読み込みます(候補を表示)。
    • 未処理件数 = 0 の場合 → 1 行の概要と選択肢を表示します。
      🧭 {N} 個のスキル · 最もよく使われるスキル:{top_skill}(週 {count} 回) · {status}
      [すべてのスキルを表示 / レポートを表示 / スキルを評価]
      
      {status} は最新のスキャンに基づき、「すべて正常 ✓」または「{K} 個にリスクあり」です。
    • その他の予期しない読み取りエラーが発生した場合 → クリーンな再初期化のため /setup にフォールバックします。
  4. セットアップ状態を必要とするコマンドでは、.skill-compass/setup-state.json を確認します。存在しない場合は、自動的に初期化します(skill-inbox.md の /inbox 初回実行時と同じ動作)。

  5. Read ツールを使って、解決されたコマンドファイルを読み込みます。

  6. 読み込んだコマンドの指示に厳密に従います。

出力形式

  • デフォルト:stdout に JSON を出力します(schemas/eval-result.json に準拠)
  • --format md:人が読めるレポートを .skill-compass/{name}/eval-report.md に追加で書き込みます
  • --format all:JSON と Markdown レポートの両方を出力します

スキルタイプの検出

構造から対象スキルのタイプを判断します。

タイプ判定基準
atomSKILL.md が 1 つのみで、サブスキルへの参照がなく、目的が限定されている
composite他のスキルを参照し、複数のスキルにまたがるワークフローを統括する
meta他のスキルの動作を変更し、コンテキストやルールを提供する

トリガータイプの検出

frontmatter から、次の優先順位で検出します。

  1. commands: フィールドが存在する → command トリガー
  2. hooks: フィールドが存在する → hook トリガー
  3. globs: フィールドが存在する → glob トリガー
  4. description: のみ → description トリガー

グローバル UX ルール

ロケール

SKILL.md と commands/*.md のすべてのテンプレートは英語で記述されています。 セッション内の最初のメッセージからユーザーの言語を検出し、表示時に翻訳してください。次のルールを適用します。

  • 技術用語は翻訳しません:PASS、CAUTION、FAIL、SKILL.md、スキル名、ファイルパス、コマンド名、カテゴリキー(Code/Dev、Deploy/Ops、Data/API、Productivity、Other)

  • 標準のディメンションラベル — すべてのコマンドで、次の英語ラベルをそのまま使用し、表示時にユーザーのロケールに翻訳する必要があります:

    コードラベル
    D1構造
    D2トリガー
    D3セキュリティ
    D4機能
    D5比較
    D6独自性

    JSON 出力フィールドでは、常に D1-D6 のコードを使用します。 別のラベルを独自に作らないでください(例:「構造の明確さ」「トリガーの正確さ」は誤りです。上記のラベルを使用してください)。翻訳時は、標準ラベルに忠実な訳語を対象ロケールで使用し、言い換えないでください。

  • JSON 出力フィールド(schemas/eval-result.json)は常に英語のままにします。表示時に翻訳するのは、details、summary、reason のテキスト値のみです。

インタラクション規約
  1. 生のコマンドではなく選択肢を提示します。 アクションの選択肢 [今すぐ修正 / スキップ] を提示し、Recommended: /eval-improve のようなコマンド文字列をそのまま表示しないでください。
  2. デュアルチャネル。 キーボードで選択できる [オプション A / オプション B / オプション C] を提示すると同時に、どの言語でも同じ意図を表す自然言語での自由入力も受け付けます。どちらの方法も常に有効です。
  3. 選択肢の前にコンテキストを示します。 各選択肢で何をするのか、なぜ重要なのかを一文で簡潔に説明してから、選択肢を提示します。例:「Trigger が最も弱い(5.5/10)ため、修正すると呼び出しの精度が向上します。」→ [今すぐ修正 / スキップ]。
  4. --internal フラグ。 コマンドが別のコマンドを内部で呼び出す場合は、--internal を渡します。呼び出された側はすべての対話プロンプトをスキップし、結果のみを返します。これにより、入れ子になったプロンプトのループを防ぎます。
  5. --ci ガード。 --ci はすべての対話型出力を抑制します。標準出力は純粋な JSON になります。
  6. フローの継続性。 コマンドの実行が完了するたびに(--internal または --ci の場合を除く)、関連する次の手順を選ぶ選択肢を提示します。ユーザーに何も表示されないままにしないでください。
  7. 選択肢は最大3つ。 一度に表示する選択肢は最大3つとし、関連性の高いものを選びます。
  8. フックは軽量に保ちます。 フックスクリプトはデータを収集してファイルに書き込みます。標準エラー出力は最小限にし、短いステータス行を1行までとします。詳細情報、対話型の選択肢、説明はフックの出力ではなく、Claude との会話で提示します。
初回実行時のガイダンス

初めてセットアップが完了したとき(以前の setup-state.json が存在しない場合)は、以前のコマンド一覧を、検出された内容に基づくスマートガイダンスに置き換えます:

Discovery flow:
  1. Show one-line summary: "{N} skills (Code/Dev: {n}, Productivity: {n}, ...)"
  2. Run Quick Scan D1+D2+D3 on all skills
  3. Show context budget one-liner: "Context usage: {X} KB / 80 KB ({pct}%)"
  4. Smart guidance — show ONLY the first matching condition:

     Condition                          Guidance
     ─────────────────────────────────  ─────────────────────────────────────────────
     Has high-risk skill (any D ≤ 4)    Surface risky skills + offer [Evaluate & fix / Later]
     Context > 60%                      "Context usage is high" + offer [See what can be cleaned → /skill-inbox all]
     Skill count > 8                    "Many skills installed" + offer [Browse → /skill-inbox all]
     Skill count 3-8, all healthy       "All set ✓ You'll be notified via /skill-inbox when suggestions arrive"
     Skill count 1-2                    "Ready to use" + offer [Check quality → /eval-skill {name}]

すべてのコマンドの一覧を表示しないでください。スキルの全一覧も表示しないでください(それは /skill-inbox all の役割です)。

動作上の制約

  1. バージョン追跡のために対象の SKILL.md のフロントマターを変更しないでください。バージョンメタデータはすべてサイドカーの .skill-compass/ ディレクトリに保存します。
  2. D3 のセキュリティゲートは絶対です。 Critical の検出事項が1つでもあれば、上書き不可の FAIL 判定になります。
  3. 変更前に必ずスナップショットを作成します。 eval-improve が変更を書き込む前に、現在のバージョンのスナップショットを作成してください。
  4. 性能が低下した場合は自動的にロールバックします。 改善後の評価でいずれかのディメンションが2点を超えて低下した場合、変更を破棄します。
  5. 修正の記録は非侵襲的に行います。 修正内容は .skill-compass/{name}/corrections.json に記録し、スキルファイルには記録しないでください。
  6. 変更範囲に応じて段階的に検証します:
    • L0:構文チェック(常に実施)
    • L1:対象ディメンションを再評価
    • L2:6つすべてのディメンションを再評価
    • L3:スキル横断の影響を確認(複合型/メタ型の場合)

セキュリティに関するお知らせ

インストール済みスキルの読み取り専用の検出、任意のローカルサイドカー設定の読み取り、ローカルの .skill-compass/ 状態への書き込みが行われます。

これはローカル評価および強化ツールです。読み取り専用の評価コマンドがデフォルトの開始点です。書き込み可能なフロー(/eval-improve、/eval-merge、/eval-rollback、/eval-evolve、/eval-audit --fix)は、スナップショット、ロールバック、出力検証、および確認済みの書き込み中に SkillCompass 自身のフックが再帰的に再実行されるのを防ぐ短時間の自己書き込みデバウンスを備えた、明示的なオプトイン操作です。ネットワーク呼び出しは行われません。信頼モデルと保護策の全容については、SECURITY.md を参照してください。

コメント