レッスン1とレッスン2の演習で決めたタスクを取り上げ、それ向けの完全な SKILL.md を作りましょう。
レベル1: 自分だけの最初のスキルを作る要件:
- ディレクトリ構造を作る
- 完全なフロントマターを書く(name + description)
- 少なくとも次をカバーする指示を書く: 入力フォーマット、処理ステップ、出力フォーマット
- ファイルを保存する
- Claude Code で一度呼び出す
学習目標:
- スキルのディレクトリ構造を作る
- SKILL.md をゼロから丸ごと書き上げる
- 段階的開示(progressive disclosure)の原則を理解する
- 自分のスキルを初めて呼び出す
このレッスンでは、何もないところから実際に使えるスキルを作ります。テーマはタスク整理ツールです。
何をするものか:
なぜこれを選ぶのか:
ターミナルを開いて、次を実行します。
ここまでで、ディレクトリ構造はこうなっています:
お好みのテキストエディタ(VS Code、Cursor、何でも構いません)で SKILL.md を開きます。
まずはファイル冒頭のメタデータから始めます。1
チェックリスト:
name は小文字でハイフンつなぎになっているdescription は、何をするか(to-doを整理する)、何を受け取るか(雑然としたリスト)、いつ使うか(会議のアクションアイテム、プロジェクトのバックログ)をカバーしているfrontmatterの後ろに、見出しを足します。
タイトルと導入をわざわざ書く理由:
description に収まりきらなかった細部を補いますどんな入力を受け付けるかをClaudeに伝えます。2
このセクションが果たす役割:
ここが指示の心臓部で、具体的に書き込む必要があります。2
ここまで細かく書く理由:
Claude は人間ではないので、「言いたいことを察してくれる」わけではありません。「優先度を割り当てる」とだけ書いても、どんな基準で判断すればいいのか見当がつきません。「'urgent' を含む → Urgent」と書けば、推測の余地はもう残りません。3
結果がどんな見た目になるべきかを Claude に伝えます。
例を示すことで得られるもの:
いったん Claude が例を目にすれば、レイアウト、記号、書式が確定します。絵文字をどこに置くのか、時刻はタスクの前なのか後なのか、といった迷いがなくなります。
変わったケースの扱い方を明示しておきます。
これで、あなたの SKILL.md はこうなっているはずです。
ファイルを保存します。
Claude Codeを開いて、次のように入力します。
Claude は次のように返してくれるはずです。
出力が思いどおりでなくても、慌てないでください。 次のレッスンはまるごとデバッグの話です。
このスキルが、他のタスクに依存するタスクや、別々の担当者に割り当てられたタスクについて何も語っていないことに、気づいたかもしれません。3 2
これは意図的です。
段階的開示(progressive disclosure): 一度に全部を押しつけるのではなく、Claude に今この瞬間に必要なものだけを渡す。3
最初のバージョンは、核となる仕事だけをして、それ以上はやりません。抽出し、分類し、並べ替える。数日使ってみて、タスクの担当者割り当てが本当に必要だと分かったら、そのとき足せばいいのです。
そこから得られるもの:
まずバージョン1を動かし、それから反復する。良いスキルはどれも、このやり方で作られていきます。3
/skill-name に続けて入力を渡す次のレッスンでは、スキルのテストとデバッグを扱います。「動く」から「正しく動く」へと進めていきましょう。
Claude Code 公式ドキュメント: Extend Claude Code with skills — https://code.claude.com/docs/en/skills ↩
Claude Skills 徹底解説(第一原理の視点) — https://leehanchung.github.io/blogs/2025/10/26/claude-skills-deep-dive/ ↩ ↩2 ↩3
Anthropic プラットフォームドキュメント: Agent Skills overview — https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview ↩ ↩2 ↩3 ↩4
要件:
何が出力されるかを見て、書き留めておきます。その結果を、次のレッスンのデバッグ練習で使います。
# 個人用の skills ディレクトリを作る(まだ無ければ)
mkdir -p ~/.claude/skills
# スキル用のディレクトリを作る
mkdir ~/.claude/skills/task-organizer
# SKILL.md ファイルを作る
touch ~/.claude/skills/task-organizer/SKILL.md
~/.claude/skills/└── task-organizer/ └── SKILL.md---
name: task-organizer
description: To-doアイテムを整理し、優先度と期日でグループ分けします。雑然としたタスクリスト、会議のアクションアイテム、プロジェクトのバックログに使用します
---
# タスク整理ツール
非構造化テキストからタスクを抽出し、優先度と期日で構造化されたリストに整理します。
## 入力フォーマット
以下のいずれかの形式のタスクリストを受け付けます:
- プレーンテキストリスト(1行1タスク)
- Markdownチェックリスト(`- [ ] タスク内容`)
- 時間マーカー付きのメッセージ(「明日までにXが必要」)
- 会議メモに埋もれたアクションアイテム
**入力例:**
```
四半期レポートを完成させる
- [ ] PR #234をレビュー
明日ログインバグを修正する必要あり
金曜までにデモを準備
ドキュメントを更新
```
## 処理ステップ
以下を順番に実行します:
1. **タスクを抽出**
- 各行または各リストアイテムが1つのタスク
- チェックボックスマーカー(`- [ ]` または `- [x]`)を除去
- タスクの核となる説明を保持
2. **時間情報を識別**
- 日付を表す語を探す: 今日、明日、今週、曜日名(月曜、金曜)、明示的な日付(2024-01-15)
- 期限を表す表現を探す: 「Xまでに」「期限X」「Xより前」
- 明示的な時間がない場合は「期限なし」とマーク
3. **優先度を割り当て**
- 「緊急」「ASAP」「すぐに」「即座に」を含む → 緊急
- 「重要」「優先」「クリティカル」を含む → 重要
- 今日または明日が期限 → 緊急
- 今週中が期限 → 重要
- その他すべて → 通常
4. **ソート**
- 優先度レベル内で、期日順にソート(最も近いものが先)
- 期限のないタスクはそのレベル内の最後に配置
## 出力フォーマット
この構造を使用し、emojiを優先度マーカーとします:
### 🔴 緊急(今日または明日)
- [タスク] - 期限
### 🟡 重要(今週中)
- [タスク] - 期限
### ⚪ 通常
- [タスク] - 期限(ある場合)
**出力例:**
### 🔴 緊急
- ログインバグを修正 - 明日
- 四半期レポートを完成させる - 今日
### 🟡 重要
- PR #234をレビュー - 金曜
- デモを準備 - 金曜
### ⚪ 通常
- ドキュメントを更新 - 期限なし
## 注意事項
- 入力が空、またはタスクが識別できない場合は「有効なタスクが見つかりません」と出力
- タスクのいずれにも時間情報がない場合は、すべて通常カテゴリに配置
- タスクの説明が長い場合(100文字超)、最初の80文字を保持し「...」を付加
- 既に完了マークのあるタスク(`[x]`)はスキップ
---
name: task-organizer
description: To-doアイテムを整理し、優先度と期日でグループ分けします。雑然としたタスクリスト、会議のアクションアイテム、プロジェクトのバックログに使用します
---
# タスク整理ツール
非構造化テキストからタスクを抽出し、優先度と期日で構造化されたリストに整理します。
## 入力フォーマット
以下のいずれかの形式のタスクリストを受け付けます:
- プレーンテキストリスト(1行1タスク)
- Markdownチェックリスト(`- [ ] タスク内容`)
- 時間マーカー付きのメッセージ(「明日までにXが必要」)
- 会議メモに埋もれたアクションアイテム
## 処理ステップ
以下を順番に実行します:
1. **タスクを抽出**
- 各行または各リストアイテムが1つのタスク
- チェックボックスマーカーを除去
- タスクの核となる説明を保持
2. **時間情報を識別**
- 日付を表す語を探す: 今日、明日、今週、曜日名、明示的な日付
- 期限を表す表現を探す: 「Xまでに」「期限X」
- 明示的な時間がない場合は「期限なし」とマーク
3. **優先度を割り当て**
- 「緊急」「ASAP」「すぐに」を含む、または今日/明日が期限 → 緊急
- 「重要」「優先」を含む、または今週中が期限 → 重要
- その他すべて → 通常
4. **ソート**
- 優先度レベル内で、期日順にソート(最も近いものが先)
## 出力フォーマット
### 🔴 緊急(今日または明日)
- [タスク] - 期限
### 🟡 重要(今週中)
- [タスク] - 期限
### ⚪ 通常
- [タスク] - 期限(ある場合)
## 注意事項
- 入力が空の場合は「有効なタスクが見つかりません」と出力
- タスクのいずれにも時間情報がない場合は、すべて通常カテゴリに配置
- タスクの説明が長い場合(100文字超)、最初の80文字を保持し「...」を付加
- 既に完了マークのあるタスク(`[x]`)はスキップ
/task-organizer
四半期レポートを完成させるPR #234をレビュー、金曜までに明日ログインバグを修正ドキュメントを更新緊急: 顧客から報告された支払い問題### 🔴 緊急- ログインバグを修正 - 明日- 顧客から報告された支払い問題 - 期限なし
### 🟡 重要- PR #234をレビュー - 金曜
### ⚪ 通常- 四半期レポートを完成させる - 期限なし- ドキュメントを更新 - 期限なし