mcpField
S
skill-tester

skill-tester

github.com/pskoettテスト・品質32652 回インストール3 日前に更新
リポジトリ

skill-tester について

skill-testerは、リポジトリ内の対話型スキルを検証するスキルです。Anthropicのクイック検証とプロジェクト固有のチェックを行い、スキルを変更せずに結果を報告します。

主な機能

  1. 01Anthropic仕様の検証
  2. 02プロジェクト規約のチェック
  3. 03指示ファイルの検証
  4. 04フックスクリプトのチェック
  5. 05プラグインスキルの検証

活用シーン

  1. 01スキルの追加・変更後の確認
  2. 02コミット前のスキル検証
  3. 03Anthropicレビュー前のプラグイン準備

インストール

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

$npx skills add https://github.com/pskoett/pskoett-ai-skills --skill skill-tester

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

同梱ファイルscripts/run-tests.sh

詳細

スキルテスター

このリポジトリ内のすべての対話型(CI 以外の)スキルを検証します。Anthropic の skill-creator に含まれる quick_validate.py に加え、プロジェクト固有のチェックを実行します。

使用するタイミング

  • スキルを追加または変更した後
  • 変更をコミットする前
  • Anthropic のレビューにプラグインを提出する前
  • eval-creator がスキルの品質を確認するための外側のループの一環として

チェック項目

1. Anthropic 仕様の検証

-ci バリアントを除き、skills/ 内のすべてのスキルに対して quick_validate.py を実行します。

for d in skills/*/; do
  skill=$(basename "$d")
  [[ "$skill" == *-ci ]] && continue
  python3 .claude/skills/skill-creator/scripts/quick_validate.py "$d"
done

合格基準: すべてのスキルで終了コードが 0 であること。フロントマターに許可されたキー(name、description、license、allowed-tools、metadata、compatibility)のみが含まれていること。名前がケバブケースで、最大 64 文字であること。説明が最大 1024 文字で、山括弧を含まないこと。

2. プロジェクト規約のチェック

各スキルディレクトリで確認します。

チェックルール重大度
名前とフォルダー名の一致フロントマターの name == ディレクトリ名エラー
行数制限SKILL.md が 600 行以下であることエラー
README.md がないことスキルフォルダーに README.md が含まれていないことエラー
スクリプトの実行権限scripts/ 内のすべての .sh ファイルに実行権限があることエラー
参照先の存在SKILL.md 本文で参照されているファイルが実際に references/ に存在すること(エージェントが実施。run-tests.sh の対象外)警告
説明が空でないことDescription フィールドが存在し、空でないことエラー
3. 指示ファイルの検証

次の有限な指示ファイルセットを検証します。

  • CLAUDE.md
  • AGENTS.md
  • .github/copilot-instructions.md

AGENTS.md と CLAUDE.md はバイト単位で同一である必要があります。Copilot ファイルではプロバイダー固有の表現を使用できますが、永続的な原則は同じ内容を保持する必要があります。

指示ファイルにすべてのスキルを列挙することは求めないでください。こうした一覧は古くなり、リポジトリの指示ファイル規約と矛盾します。 ワークフローの文章における、意図的なスキル参照のみを検証します。名前付きのスキルが参照されている場合は、その正式なディレクトリが存在する必要があります。README.md の公開カタログは管理されており、エージェントの指示とは別に検証されます。

4. フックスクリプトのテスト

scripts/ ディレクトリがある各スキルで実行します。

# Syntax check
bash -n scripts/*.sh

# Verify bash shebang (either form used in this repo)
head -1 scripts/*.sh | grep -qE "^#!(/bin/bash|/usr/bin/env bash)"

# Verify executable
test -x scripts/*.sh
5. プラグインスキルの検証(エージェントが実施。run-tests.sh の対象外)

skills/ と plugin/skills/ の両方に存在するスキルについて確認します。

チェックルール
プラグインのフロントマターキー仕様で定められたキーに加えて、Claude Code 固有のキー(hooks、user-invocable、argument-hint)のみを追加すること
コンテンツの整合性本文の内容が一致するか、プラグイン側で参照先が抽出されていること
ベータマーカーの一貫性skills/ 側のコピーに [Beta] がある場合、プラグイン側のコピーにもあること
6. ポータブルエージェントプラグインの検証(エージェントが実施。run-tests.sh の対象外)

./scripts/sync-plugin.sh で再生成した後、次を実行します。

python3 scripts/test-sync-plugin.py
uv run --with jsonschema==4.25.1 --with PyYAML==6.0.3 \
  python3 scripts/validate-agent-plugin.py

これにより、同梱されている公式 Agent Plugins 1.0.0 スキーマに照らしてポータブルマニフェストを検証し、厳選されたスキルの登録状況を確認し、ポータブルでないフロントマターを拒否し、正規のバイト列と実行権限を検証して、リリースバージョンの整合性を強制します。生成された agent-plugin/skills/* の形式を独立して確認するには、Agent Skills のリファレンス CLI を使用してください。

出力形式

## Skill Test Results

**Date:** YYYY-MM-DD
**Skills tested:** N
**Passed:** N
**Warnings:** N
**Failed:** N
**Instruction files:** passed|failed

### Failures
- [skill-name]: [check]: [error message]

### Warnings
- [skill-name]: [check]: [warning message]

### Passed
- [list of clean skills]

実行方法

手動で呼び出します。

/skill-tester

または、スクリプトを直接実行します。

bash skills/skill-tester/scripts/run-tests.sh

カバレッジに関する注記:run-tests.sh はチェック 1~4 を自動化します(チェック 2 の「参照先の存在」と、チェック 3 のプロバイダー固有の意味的な比較を除く)。チェック 5~6、およびこれらの意味・参照に関するチェックは、/skill-tester の呼び出し時にエージェントが実施します。スクリプトが成功しただけでは、これらのチェックに合格したことにはなりません。

このスキルで行わないこと

  • CI スキルはテストしません(該当する場合は skill-tester-ci を使用してください)
  • スキルは変更せず、検出結果のみを報告します
  • 動作評価(トリガーテスト)は実行しません。その場合は skill-creator の run_eval.py を使用してください
  • eval-creator の回帰テストフレームワークの代わりにはなりません。これはスキルの構造をテストするものであり、昇格されたルールをテストするものではありません

コメント