skill-tester について
skill-testerは、リポジトリ内の対話型スキルを検証するスキルです。Anthropicのクイック検証とプロジェクト固有のチェックを行い、スキルを変更せずに結果を報告します。
主な機能
- 01Anthropic仕様の検証
- 02プロジェクト規約のチェック
- 03指示ファイルの検証
- 04フックスクリプトのチェック
- 05プラグインスキルの検証
活用シーン
- 01スキルの追加・変更後の確認
- 02コミット前のスキル検証
- 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.mdAGENTS.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 の回帰テストフレームワークの代わりにはなりません。これはスキルの構造をテストするものであり、昇格されたルールをテストするものではありません