Skip to content

原文(日本語に翻訳)

SKILL.mdのフロントマターでスキルの namedescription が数値リテラル(例:name: 3000)の場合にクラッシュする問題を修正しました。値は適切に文字列に変換されるようになりました(anthropics/claude-code#25837)。

原文(英語)

Fixed crash when a skill's name or description in SKILL.md frontmatter is a bare number (e.g., name: 3000) — the value is now properly coerced to a string (anthropics/claude-code#25837)

概要

カスタムスキルの設定ファイル(SKILL.md)のフロントマターで name または description に数値を直接記述した場合(例:name: 3000)、Claude Codeがクラッシュするバグが修正されました。YAMLでは引用符なしの数値はnumber型として解釈されますが、スキルシステムはstring型を期待していたため不整合が生じていました。修正後は数値を自動的に文字列に変換するので、クラッシュしなくなります。

基本的な使い方

yaml
# SKILL.md フロントマターの例(問題のあったケース)
---
name: 3000        # 数値リテラル → 修正前はクラッシュ
description: 2024 # 数値リテラル → 修正前はクラッシュ
---

# 修正後: 自動的に文字列として扱われる
# name: "3000"
# description: "2024"
yaml
# 推奨: 引用符で明示的に文字列として記述
---
name: "3000"
description: "バージョン2024対応のスキル"
---

実践例

ユースケース1: ポート番号をスキル名に使う場合

開発サーバーのポート番号をそのままスキル名に使用したい場合。

yaml
# ~/.claude/skills/3000.md
---
name: 3000
description: ポート3000の開発サーバー操作スキル
---

# 開発サーバーを起動して動作確認を行うスキル
## Instructions
ポート3000で動いている開発サーバーの状態を確認し、
必要に応じて再起動や設定の調整を行ってください。
bash
# 修正前: Claude Code 起動時にクラッシュ
# 修正後: 正常に起動し /3000 コマンドが使用可能
claude
> /3000

ユースケース2: 年号をスキル名に使う場合

年次処理スキルを年号で管理する場合。

yaml
# ~/.claude/skills/2024.md
---
name: 2024
description: 2024年度のレポート生成スキル
---

# 2024年度の各種レポートを生成するスキル
## Instructions
2024年度のデータを使って月次・四半期・年次レポートを
生成してください。
bash
# 修正後: 正常に動作する
> /2024
# 2024年度レポート生成スキルが起動する

ユースケース3: バージョン番号をスキルに使う場合

APIバージョンやライブラリバージョンをスキル名に使用する場合。

yaml
# ~/.claude/skills/v3.md(文字列なので問題なし)
---
name: "v3"
description: "API v3 操作スキル"
---

# バージョン番号のみの場合(修正の恩恵を受けるケース)
# ~/.claude/skills/v2-api.md
---
name: 3  # この数値が自動的に "3" に変換される
description: API バージョン3の操作
---

注意点

  • 修正は自動的な型変換(coercion)であるため、意図せず数値を設定した場合も動作します
  • ただし、スキル名に数値を使うと /3000 のようなコマンドになるため、可読性のために文字列(name: "server-3000"など)を推奨します
  • YAMLフロントマターでは、引用符なしの数値は常にnumber型として解釈されます。明示的に文字列にしたい場合は必ず引用符を付けてください
  • description フィールドも同様に数値が自動変換されます

関連情報