Skip to content

SKILL.mdのYAML frontmatterが壊れていても空メタデータでスキル本体を読み込む

原文(日本語に翻訳)

不正な SKILL.md のYAML frontmatterの処理を改善しました:サイレントに失敗する代わりに、空のメタデータでスキル本体を読み込むようになりました。

原文(英語)

Improved malformed SKILL.md YAML frontmatter handling: loads the skill body with empty metadata instead of failing silently

概要

SKILL.md ファイルのYAML frontmatter(ファイル先頭の --- で囲まれたメタデータ部分)に構文エラーがあった場合、以前はスキル全体が「サイレントに」失敗(読み込まれずにエラーも表示されない)していました。この改善により、frontmatterに問題があっても空のメタデータとしてスキル本体を読み込み、スキルが機能し続けるようになりました。

基本的な使い方

特別な操作は不要です。壊れたfrontmatterがあっても、スキル本体は自動的に読み込まれます。

問題のあるfrontmatterの例

yaml
---
name: my-skill
description: "説明:(コロン後にスペースなし)
invalid-yaml: [unclosed
---

# スキルの内容
スキルの本体はここに記載...

以前の動作:スキル全体が読み込まれない(サイレント失敗) 改善後の動作:frontmatterを無視して本体を読み込み(空のメタデータで動作)

実践例

YAMLエラーのデバッグ

スキルが期待通りに動作しない場合、frontmatterの構文を確認します:

yaml
# 問題のある記法
---
description: "これは問題:コロン後のスペースなし"
tags: [tag1, tag2
---

# 正しい記法
---
description: "これは正しい: コロン後にスペース"
tags: [tag1, tag2]
---

壊れたfrontmatterの修正

/plugin の Installed タブでスキルが表示されているがメタデータが空の場合は、SKILL.md のfrontmatterを確認・修正します:

  1. スキルファイルを開く
  2. --- で囲まれたYAMLを確認
  3. 構文エラーを修正
  4. 保存するとスキルが自動的に再読み込みされる

よくあるYAML構文エラー

yaml
# 問題1: 引用符の不一致
name: "my skill'  # ← 開き閉じの引用符が違う

# 問題2: インデントエラー
metadata:
key: value   # ← インデントが必要

# 問題3: 特殊文字のエスケープ漏れ
description: "コロン: 付きの説明"  # ← これは実は有効
description: コロン: 付きの説明  # ← これは無効(引用符なしでコロン後スペース)

注意点

  • frontmatterが壊れている場合、スキルは「名前なし」「説明なし」などの空のメタデータで動作します
  • /plugin ビューでスキルのメタデータが空の場合は、frontmatterに構文エラーがある可能性があります
  • スキルの本体(Markdown内容)が正しければ、スキルの機能自体は動作します
  • 本来は正しいfrontmatterを持つことが推奨されます。空メタデータはフォールバックです

関連情報

  • スキルのfrontmatter確認: /plugin の Installed タブ
  • YAML構文チェック: オンラインのYAML バリデーターを利用
  • Claude Code スキルシステム