Skip to content

原文(日本語に翻訳)

プラグインのSKILL.mdの説明がYAML配列やその他の非文字列型の場合に、スラッシュコマンドのオートコンプリートがクラッシュする問題を修正しました。

原文(英語)

Fixed slash command autocomplete crashing when a plugin's SKILL.md description is a YAML array or other non-string type

概要

プラグインの SKILL.md ファイルでdescriptionフィールドにYAML配列や数値等の非文字列型が使用されていた場合、スラッシュコマンドのオートコンプリート機能がクラッシュする問題が修正されました。SKILL.mdの記述方法によっては意図せずYAML配列として解釈されることがあり、その際にClaude Codeが予期しないデータ型を処理できずにクラッシュしていました。v2.1.51以降はこのような非文字列型の記述にも適切に対応します。

基本的な使い方

この修正はバグフィックスです。スラッシュコマンドのオートコンプリートが以前よりも安定して動作するようになります。

bash
# オートコンプリートを使用(以前クラッシュしていた場合も動作するようになった)
claude
# "/sk..." と入力してTabキーでオートコンプリート

実践例

クラッシュが発生していたSKILL.mdの例

以下のような記述がクラッシュを引き起こしていました:

yaml
# SKILL.md(クラッシュを引き起こすパターン)
---
description:
  - タスク管理を支援するスキル
  - ファイル操作とコミットを自動化
name: task-manager
---
yaml
# SKILL.md(別のパターン)
---
# コロンを含むテキストがYAML配列として解析される場合
description: [task management, file operations]
---

正しいSKILL.mdの記述方法

yaml
# SKILL.md(正しい記述 - 文字列として明示)
---
description: "タスク管理を支援し、ファイル操作とコミットを自動化するスキルです"
name: task-manager
---

または:

yaml
---
description: |
  タスク管理を支援するスキルです。
  ファイル操作とgitコミットを自動化します。
name: task-manager
---

カスタムプラグインのSKILL.mdを確認する

既存のプラグインが影響を受けていないか確認する方法:

bash
# プラグインのSKILL.mdを確認
cat ~/.claude/plugins/my-plugin/SKILL.md

# または
cat .claude/plugins/my-plugin/SKILL.md

プラグイン開発でのベストプラクティス

yaml
# ✅ 推奨:文字列として明示的に記述
---
description: "このスキルの説明文"
name: my-skill
---

# ✅ 推奨:ブロックスカラーを使用
---
description: |
  このスキルの説明文(複数行の場合)
name: my-skill
---

# ❌ 避けるべき:YAML配列として解析される可能性がある
---
description:
  - 説明1
  - 説明2
name: my-skill
---

注意点

  • v2.1.51以降は非文字列型のdescriptionにも対応していますが、可読性と互換性のために文字列形式での記述を推奨します。
  • SKILL.mdのdescriptionフィールドは、スラッシュコマンドのオートコンプリートに表示されるテキストに使用されます。
  • プラグイン開発者は、SKILL.mdの記述が正しいYAML形式であることを確認してください。YAMLバリデーターを使用すると便利です。
  • この修正は後方互換性があります。既存のSKILL.mdファイルに変更は必要ありません。

関連情報