0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Claude Code】 skill-creatorでスキル作ってみた

0
Posted at

はじめに

今回は、skill-creatorというプラグインを使用して、自作の(エージェント)スキルを作成してみました。
とても簡単にオリジナルのスキルが作れるので、参考にしていただけると幸いです。

skill-creatorとは

skill-creatorとは、Anthropic公式が公開しているSkillを簡単に作るためのSkillです。
自分で一からファイルを書かなくても、自然言語で対話するだけでSKILL.mdファイルを作成してくれます。

SkillsとPluginに関してもっと詳しく知りたい方は

さっそく作ってみた

今回は、以下のようなskillを作成してみようと思います。

  • 引数で指定された(本日の)時刻まで、PCのスリープ・ディスプレイオフを防止するskill(Claude Codeのリモートコントロールで需要あるかも?)
  • 引数のフォーマットはhh:mm(例:18:30)
  • 引数は一つのみで、無効な入力や過去の時刻が指定された場合はエラーメッセージを出力する

skill-creatorをインストールする

まずはClaude Codeを立ち上げ、/pluginコマンドを実行します。

SCR-20260330-kobe.png

下の方にスクロールしていくと、skill-creatorが出てくる(まだインストールされていない場合)ので、Enterを押して詳細画面へ遷移します。

SCR-20260330-kotg.png

インストールする際のスコープ(グローバルかリポジトリ直下かなど)を聞かれるので、使用目的に合わせて選択しインストールします。
もう一度/pluginコマンドを実行し、Installedのタブを確認します。
skill-creatorがenabledとなっていれば準備完了です。

SCR-20260330-krdh.png

skillの作成を依頼する

あとはいつも通りClaude Codeにリクエストするだけです。
以下のようにプロンプトを入力し送信すると、自動的にskill-creatorスキルが発動します。
「スキルを作成して」のようなニュアンスであれば発動されると思いますが、発動されない場合は、明示的に「skill-creatorを使用して」をプロンプトに追加してください。

SCR-20260330-ktyl.png

あとは適宜承認をしていくだけで、あっという間にスキルが完成します。

Claude Codeが判断してスキルの名前や配置場所を決めるため、場合によっては完成後にSKILL.mdファイルの配置場所やスキル名だけ修正する必要があります。

完成したスキルがこちら

~/.claude/skills/awake/SKILL.md
---
name: awake
description: PCのスリープ・ディスプレイオフを指定した時刻まで防止するスキル。ユーザーが「awake 18:30」「awake 23:00」のように時刻を指定してPCを起こしておきたいとき、スリープ防止したいとき、caffeinate を使いたいとき、指定時刻までPCをスリープさせたくないときに必ず使用する。
disable-model-invocation: true
---

# Awake スキル

引数に指定された時刻(`HH:MM` 形式)まで、このMacがスリープ・ディスプレイオフにならないよう `caffeinate` コマンドで防止する。

## 手順

### 1. 引数のバリデーション

`/awake <HH:MM>` の形式でユーザーが指定する。

- 引数が指定されていない場合:
  \```
  エラー: 引数を指定してください。使い方: /awake <HH:MM>(例: /awake 18:30)
  \```
  そこで終了する。

- 引数が複数ある場合:
  \```
  エラー: 引数は1つだけ指定してください。使い方: /awake <HH:MM>
  \```
  そこで終了する。

- `HH:MM` 形式でない場合(正規表現 `^([0-9]{1,2}):([0-9]{2})$` にマッチしない):
  \```
  エラー: HH:MM 形式で指定してください。(例: /awake 18:30)
  \```
  そこで終了する。

- HH が 0〜23 の範囲外、または MM が 0〜59 の範囲外の場合(存在しない時刻):
  \```
  エラー: 存在しない時刻です。HH は 0〜23、MM は 0〜59 で指定してください。
  \```
  そこで終了する。

### 2. 現在時刻の確認

Bash ツールで現在時刻を取得する:

\```bash
date +%s
\```

指定時刻のエポック秒を計算し、現在時刻と比較する。

\```bash
TODAY=$(date +%Y-%m-%d)
TARGET_EPOCH=$(date -j -f "%Y-%m-%d %H:%M:%S" "${TODAY} HH:MM:00" +%s)
CURRENT_EPOCH=$(date +%s)
\```

- `TARGET_EPOCH <= CURRENT_EPOCH` の場合(過去または現在):
  \```
  エラー: 指定された時刻(HH:MM)はすでに過ぎています。未来の時刻を指定してください。
  \```
  そこで終了する。

### 3. caffeinate を実行

\```bash
SECONDS_REMAINING=$((TARGET_EPOCH - CURRENT_EPOCH))
caffeinate -d -i -s -t $SECONDS_REMAINING &
CAFFEINATE_PID=$!
\```

### 4. 確認メッセージを表示

残り時間を分単位(端数切り捨て)で表示する。

\```
PCは HH:MM までスリープ・ディスプレイオフになりません。(残り約XX分)
caffeinate を起動しました(PID: XXXXX)
\```

## 注意事項

- `caffeinate -d` = ディスプレイのスリープを防止
- `caffeinate -i` = システムのアイドルスリープを防止
- `caffeinate -s` = システムスリープを防止(AC電源接続時)
- `-t <秒数>` = 指定秒数後に自動終了
- バックグラウンドで実行(`&`)するので、コマンド実行後すぐに制御が戻る

※マークダウンファイルの仕様で一部[```]の直前に\を挿入しております

最後に、フロントマターリファレンスに以下を追加して、手動実行専用コマンドにしました。(意図しない発動を防止するため)

disable-model-invocation: true

実際に使ってみる

/awakeと入力すると

SCR-20260330-lafw.png

そのまま実行すると

SCR-20260330-lanr.png

過去の時刻を指定すると

SCR-20260330-laun.png

複数の引数を指定すると

SCR-20260330-lbbr.png

無効なフォーマットを引数に指定すると

SCR-20260330-lbia.png

さいごに正しい値で入力すると

SCR-20260330-lbto.png

(その後)問題なく動いていることが確認できました!

0
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?