mcpField
S
skill-test

skill-test

github.com/databricks-solutionsテスト・品質2.0k71 回インストール1 日前に更新
リポジトリ

skill-test について

skill-test は Databricks スキル向けのオフライン評価フレームワークで、YAML を中心にテスト実行とテストケースの改善を行う対話型 CLI を備えています。回帰比較、トレース評価、任意の MLflow と LLM による評価に対応します。

主な機能

  1. 01YAML による評価と正解データ
  2. 02対話形式のテストケース作成とレビュー
  3. 03保存済みベースラインとの回帰チェック
  4. 04トレース評価
  5. 05LLM 判定を使った MLflow 評価
  6. 06スコアラーと品質ゲートの設定

活用シーン

  1. 01正解データに基づく Databricks スキルの評価
  2. 02保存済みベースラインとの結果比較
  3. 03スキルのテストケース作成とレビュー
  4. 04期待値に沿った実行トレースの評価

MCP 対応

コマンド実行前に MCP ツールを含む CLIContext を作成するよう記載されています。クライアントに公開する MCP サーバー機能については説明されていません。

インストール

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

$npx skills add https://github.com/databricks-solutions/ai-dev-kit --skill skill-test

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

同梱ファイル

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

CUSTOMIZATION_GUIDE.md
install_skill_test.sh
pyproject.toml
README.md
baselines/databricks-agent-bricks/
baseline.yaml
baselines/databricks-aibi-dashboards/
baseline.yaml
baselines/databricks-apps-python/
baseline.yaml
baselines/databricks-bundles/
baseline.yaml
baselines/databricks-genie/
baseline.yaml
baselines/databricks-model-serving/
baseline.yaml
baselines/databricks-python-sdk/
baseline.yaml
baselines/databricks-spark-declarative-pipelines/
baseline.yaml
baselines/databricks-synthetic-data-gen/
baseline.yaml
baselines/databricks-zerobus-ingest/
baseline.yaml
eval-criteria/sql-correctness/references/
DATABRICKS_SQL_PATTERNS.md
eval-criteria/tool-selection/references/
MCP_TOOL_GUIDE.md
notebooks/
gepa_skill_optimization_demo.ipynb
references/
python-api.md
scorers.md
trace-eval.md
workflows.md
yaml-schemas.md
scripts/
_common.py
add_example.py
add.py
baseline.py
generate_examples.py
generate_ground_truth.py
init_skill.py
list_traces.py

詳細

Databricks Skills Testing Framework

人間がレビューに参加し、スキルを対話的に改善できる、オフラインでの YAML ファーストな評価です。

クイックリファレンス

/skill-test コマンド

/skill-test コマンドは、Databricks 上で実際に実行して Databricks スキルをテストするための、対話型 CLI を提供します。

基本的な使い方
/skill-test <skill-name> [subcommand]
サブコマンド
サブコマンド説明
runグラウンドトゥルースに対して評価を実行します(デフォルト)
regression現在の結果をベースラインと比較します
init新しいスキルのテスト用スキャフォールディングを初期化します
add対話形式:プロンプト -> スキルを呼び出す -> テスト -> 保存
add --traceトレース評価を含むテストケースを追加します
review保留中の候補を対話形式でレビューします
review --batch保留中の候補をすべて一括で承認します
baseline現在の結果を回帰テストのベースラインとして保存します
mlflowLLM ジャッジを使って MLflow 評価を完全に実行します
trace-evalスキルの期待値に照らしてトレースを評価します
list-traces利用可能なトレースを一覧表示します(MLflow またはローカル)
scorersスキルに設定されたスコアラーを一覧表示します
scorers updateスコアラーの追加・削除、またはデフォルトのガイドラインの更新を行います
syncYAML を Unity Catalog に同期します(フェーズ 2)
クイック例
/skill-test databricks-spark-declarative-pipelines run
/skill-test databricks-spark-declarative-pipelines add --trace
/skill-test databricks-spark-declarative-pipelines review --batch --filter-success
/skill-test my-new-skill init

各サブコマンドの詳しい例については、ワークフローを参照してください。

実行手順

環境のセットアップ
uv pip install -e .test/

Databricks MLflow 用の環境変数:

  • DATABRICKS_CONFIG_PROFILE - Databricks CLI のプロファイル(デフォルト:"DEFAULT")
  • MLFLOW_TRACKING_URI - Databricks MLflow の場合は "databricks" に設定します
  • MLFLOW_EXPERIMENT_NAME - 実験のパス(例:"/Users/{user}/skill-test")
スクリプトの実行

すべてのサブコマンドに、.test/scripts/ 内の対応するスクリプトがあります:

uv run python .test/scripts/{subcommand}.py {skill_name} [options]
サブコマンドスクリプト
runrun_eval.py
regressionregression.py
initinit_skill.py
addadd.py
reviewreview.py
baselinebaseline.py
mlflowmlflow_eval.py
scorersscorers.py
scorers updatescorers_update.py
syncsync.py
trace-evaltrace_eval.py
list-traceslist_traces.py
_routing mlflowrouting_eval.py

利用可能なオプションを確認するには、各スクリプトで --help を使用してください。

コマンドハンドラー

/skill-test が呼び出されたら、引数を解析して適切なコマンドを実行します。

引数の解析
  • args[0] = skill_name(必須)
  • args[1] = subcommand(省略可能。デフォルト:"run")
サブコマンドのルーティング
サブコマンドアクション
runrun(skill_name, ctx) を実行して結果を表示します
regressionregression(skill_name, ctx) を実行して比較結果を表示します
initinit(skill_name, ctx) を実行してスキャフォールディングを作成します
addテスト入力を求め、スキルを呼び出し、interactive() を実行します
reviewreview(skill_name, ctx) を実行して保留中の候補をレビューします
baselinebaseline(skill_name, ctx) を実行して回帰テストのベースラインとして保存します
mlflowmlflow_eval(skill_name, ctx) を MLflow ロギングとともに実行します
scorersscorers(skill_name, ctx) を実行して設定済みのスコアラーを一覧表示します
scorers updatescorers_update(skill_name, ctx, ...) を実行してスコアラーを変更します
init の動作

/skill-test <skill-name> init を実行すると、次の処理が行われます。

  1. スキルの目的を理解するため、スキルの SKILL.md を読み取ります
  2. 適切なスコアラーと trace_expectations を含む manifest.yaml を作成します
  3. 空の ground_truth.yaml と candidates.yaml のテンプレートを作成します
  4. ドキュメントの例に基づいて、テスト用のプロンプトを推奨します

推奨されたプロンプトを使って、続けて /skill-test <skill-name> add を実行してください。

コンテキストのセットアップ

コマンドを呼び出す前に、MCP ツールを含む CLIContext を作成してください。詳しくはPython APIを参照してください。

ファイルの場所

重要: すべてのテストファイルは、スキルのディレクトリを基準とするのではなく、リポジトリのルートに保存されます。

ファイルの種類パス
正解データ{repo_root}/.test/skills/{skill-name}/ground_truth.yaml
候補{repo_root}/.test/skills/{skill-name}/candidates.yaml
マニフェスト{repo_root}/.test/skills/{skill-name}/manifest.yaml
ルーティングテスト{repo_root}/.test/skills/_routing/ground_truth.yaml
ベースライン{repo_root}/.test/baselines/{skill-name}/baseline.yaml

たとえば、このリポジトリで databricks-spark-declarative-pipelines をテストする場合:

/Users/.../ai-dev-kit/.test/skills/databricks-spark-declarative-pipelines/ground_truth.yaml

スキル定義を基準にするのではありません:

/Users/.../ai-dev-kit/.claude/skills/skill-test/skills/...  # WRONG

ディレクトリ構成

.test/                          # At REPOSITORY ROOT (not skill directory)
├── pyproject.toml              # Package config (pip install -e ".test/")
├── README.md                   # Contributor documentation
├── SKILL.md                    # Source of truth (synced to .claude/skills/)
├── install_skill_test.sh       # Sync script
├── scripts/                    # Wrapper scripts
│   ├── _common.py              # Shared utilities
│   ├── run_eval.py
│   ├── regression.py
│   ├── init_skill.py
│   ├── add.py
│   ├── baseline.py
│   ├── mlflow_eval.py
│   ├── routing_eval.py
│   ├── trace_eval.py           # Trace evaluation
│   ├── list_traces.py          # List available traces
│   ├── scorers.py
│   ├── scorers_update.py
│   └── sync.py
├── src/
│   └── skill_test/             # Python package
│       ├── cli/                # CLI commands module
│       ├── fixtures/           # Test fixture setup
│       ├── scorers/            # Evaluation scorers
│       ├── grp/                # Generate-Review-Promote pipeline
│       └── runners/            # Evaluation runners
├── skills/                     # Per-skill test definitions
│   ├── _routing/               # Routing test cases
│   └── {skill-name}/           # Skill-specific tests
│       ├── ground_truth.yaml
│       ├── candidates.yaml
│       └── manifest.yaml
├── tests/                      # Unit tests
├── references/                 # Documentation references
└── baselines/                  # Regression baselines

参考資料

コメント