kernel-metadata について
kernel-metadata は、Kaggle notebook/kernel 用の `kernel-metadata.json` を作成、検証、修復するスキルです。メタデータ項目やソース添付に加え、プライバシーとインターネット設定の確認方法を案内します。
主な機能
- 01`kernel-metadata.json` の作成と修復
- 02ID、コードファイル、言語項目の検証
- 03カーネル種別、公開範囲、ネット設定の確認
- 04Kaggle のデータセットやカーネルソースの設定
- 05非対応のメタデータ項目の特定
活用シーン
- 01Kaggle notebook のプッシュ用メタデータを準備
- 02メタデータとローカルコードファイルの不一致を調査
- 03ソース添付と公開範囲の設定を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill kernel-metadataインストール後、Claude Code で/kernel-metadataを入力して読み込まれたか確認します。
詳細
カーネルのメタデータ
概要
このスキルを使って、Kaggle ノートブック/カーネルのプッシュ用に kernel-metadata.json を作成、検証、または修正します。メタデータは最小限かつ明示的にし、ローカルのコードファイルと整合させてください。
必須フィールドと一般的なフィールド
| フィールド | 用途 |
|---|---|
id | カーネルの完全な ID。通常は <owner>/<slug> です |
id_no | 利用可能な場合の数値 ID |
title | 人が読めるノートブックのタイトル |
code_file | 実行するローカルのソースファイル |
language | python、r、または rmarkdown |
kernel_type | script または notebook |
is_private | デフォルトは true |
enable_gpu | デフォルトは false |
enable_internet | デフォルトは false |
dataset_sources | 添付するデータセットの参照 |
competition_sources | 添付するコンペティションの参照 |
kernel_sources | 添付するノートブック/カーネルの参照 |
model_sources | 添付するモデルの参照 |
検証手順
kernel-metadata.jsonが有効な JSON であることを確認します。idが想定される owner/slug 形式で、対象の Kaggle ノートブックと一致することを確認します。code_fileがkaggle kernels push -p <folder>に渡すフォルダー内にあることを確認します。languageがpython、r、rmarkdownのいずれかであることを確認します。kernel_typeがファイルと実行モードに合っていることを確認します。.ipynbにはnotebook、スクリプトにはscriptを指定します。- プライバシーとインターネットの設定が意図したものであることを確認します。デフォルトの非公開設定とインターネット無効の組み合わせがより安全です。
- ソース配列に有効な公開 Kaggle 参照が含まれ、ローカルファイルシステムのパスが含まれていないことを確認します。
- プッシュまたはプルのワークフローを行う前に、
notebook-lifecycleを読み込みます。
ソースの添付
Kaggle リソースを添付するには、dataset_sources、competition_sources、kernel_sources、model_sources を使用します。利用可能な場合は、正確な owner/slug 参照を優先してください。コンペティションのノートブックでは、コンペティションのソースが添付されていること、および使用するすべてのデータ/モデルソースがルールで許可されていることを確認します。
id とブラウザー URL の構築
id フィールドは、ドキュメントに記載された接尾辞形式 owner/kernel-slug を使って、Kaggle ノートブック/カーネルを識別します。有効な id がある場合、エージェントは人が開くブラウザー URL を導出できます。
https://www.kaggle.com/code/<owner>/<kernel-slug>
導出する前に検証します。id に / がちょうど 1 つ含まれていること、owner と slug が空でないこと、id が完全な URL ではないこと、slug が生成したタイトルから推測したものではなく、実際の id に由来することを確認してください。id_no も指定されている場合、対応する API 操作では安定した数値識別子として扱いますが、id_no だけからブラウザー URL を構築してはいけません。
導出される URL は、ドキュメントに記載された識別子の接尾辞に基づく実用的なブラウザーパスであり、別途ドキュメント化された CLI の戻り値ではありません。非公開ノートブックへのアクセスにはサインインまたは権限が必要な場合があります。また、名前や slug が変更されると、以前に導出した URL が古くなることがあります。
アクセラレーターとメタデータ
enable_gpu は GPU を有効にするための従来の単純なブール値です。一方、CLI のプッシュでは --accelerator <ID> を使ってアクセラレーター ID を指定できます。有効なアクセラレーター ID には、NvidiaTeslaP100、NvidiaTeslaT4、NvidiaTeslaT4Highmem、NvidiaTeslaA100、NvidiaL4、NvidiaL4X1、NvidiaH100、NvidiaRtxPro6000、TpuV38、Tpu1VmV38、TpuV5E8、TpuV6E8 があります。上位クラスのアクセラレーターや長いタイムアウトはクォータを消費する可能性があるため、使用前に警告してください。
安全なデフォルト設定
ユーザーが公開を明示的に求めない限り、is_private: true を維持してください。コンペティションのノートブックでは、ルールと再現性の要件でインターネットが許可される場合を除き、enable_internet: false を維持してください。メタデータやノートブックのソースにシークレットを埋め込まないでください。機密性の高い値には Kaggle Secrets を推奨します。
サポートされていないメタデータフィールド
Kaggle の kernel-metadata.json は、シークレットや任意の環境変数をサポートしていません。secrets、environment、env などの偽のフィールドを追加しないでください。インターネット/GPU トンネルを使うワークロードでは、代わりにサポートされているフィールドを確認してください。
{
"enable_gpu": true,
"enable_internet": true
}
シークレットをメタデータとして扱ってはいけません。CLI でプッシュするコミット済みの実行に認証不要の接続が必要な場合は、シークレットを使わないワークフローに再設計してください。
修正パターン
code_fileがない場合:意図された.ipynb、.py、.R、または.Rmdファイルを特定し、フィールドに明示的に設定します。- 言語が間違っている場合:曖昧なときはユーザーに確認したうえで、拡張子から推測します。
- ソース配列が壊れている場合:ローカルパスを削除し、Kaggle のデータセット、コンペティション、カーネル、またはモデルの参照に置き換えます。
- 公開範囲を変更する場合:非公開から公開に変更する前に、明示的な確認を必須とします。
ソース
- Kaggle カーネルのメタデータに関するドキュメント:https://github.com/Kaggle/kaggle-api/blob/main/docs/kernels_metadata.md
- Kaggle カーネルの CLI:https://github.com/Kaggle/kaggle-api/blob/main/docs/kernels.md