はじめに
Claude Code の Skills 機能は、定型業務をスキル化して再利用できる強力な仕組みです。ただ「とりあえずスキル化する」と、後で逆にメンテコストが上がります。
この記事では、実務で20以上のスキルを運用してきた経験から、スキル化すべき業務の判断基準 と 実装パターン10選 を紹介します。
スキル化の判断基準: 3つの問い
スキルを書く前に、まず以下を問います。
- 週1回以上、同じ作業を繰り返しているか? → 月1回未満なら CLAUDE.md のメモで十分
- 手順が言語化できるか? → 暗黙知ベースなら言語化が先
- 失敗時のリトライが安全か? → 破壊的操作(DB書き込み等)は最初は手動運用が安全
3つすべてYESなら、スキル化の価値があります。
パターン1: オーケストレーションスキル(複数スキルを順序実行)
例: デイリータスク全体を1コマンドで回すスキル。
---
name: daily-tasks
description: 毎日のタスクを順番に実行
---
1. STEP 1: check-replies スキルを実行
2. STEP 2: send-proposals スキルを実行
3. STEP 3: update-revenue スキルを実行
ポイント: 各STEPは別スキルとして独立させ、単体実行も可能にする。失敗箇所からの再開がしやすくなります。
パターン2: ブラウザ操作スキル
ブラウザ自動化は cmux などのツールに統一して、毎回 surface-health で番号確認を強制します。
SURFACE = subprocess.run(
["cmux", "surface-health"], capture_output=True, text=True
).stdout
# type=browser の surface番号をパース
落とし穴: surface番号をハードコードすると別セッションで壊れます。
パターン3: API送信スキル(Qiita / Slack / GitHub等)
外部APIを叩くスキルは、環境変数で認証を分離します。
TOKEN = os.environ.get("QIITA_TOKEN", "")
if not TOKEN:
raise SystemExit("QIITA_TOKEN not set")
落とし穴: トークンをスキル本文にハードコードしないこと。settings.jsonで管理。
パターン4: 進捗追跡スキル(途中再開可能)
セッションが切れても再開できるよう、進捗ファイルを使います。
## 2026-04-23
- [x] STEP 1: 完了
- [ ] STEP 2: 未完了
ポイント: 各STEP完了後に即座にファイルを更新する。バッチで最後にまとめて書くと中断時に進捗が消えます。
パターン5: トレンド収集スキル(並列WebFetch)
複数ソースを順番にFetchすると遅いので、並列実行します。
# 1メッセージ内で複数Fetchを並列発行
fetch_hatena = WebFetch(url=HATENA_RSS, prompt=PROMPT)
fetch_zenn = WebFetch(url=ZENN_FEED, prompt=PROMPT)
fetch_qiita = WebFetch(url=QIITA_TOP, prompt=PROMPT)
落とし穴: シーケンシャル実行は3倍遅くなります。
パターン6: 履歴チェックスキル(重複防止)
過去の投稿履歴と照合して重複テーマを避けます。
with open("投稿履歴.md") as f:
past_titles = re.findall(r'\| .+ \| (.+?) \|', f.read())
if any(similar(new_title, t) for t in past_titles):
raise SystemExit("重複テーマ")
ポイント: 完全一致だけでなく、類似度でチェック。
パターン7: テンプレート使い分けスキル
条件分岐でテンプレートを切り替える例(営業メッセージ)。
def select_template(募集内容):
if "初心者" in 募集内容 and "Web" in 募集内容:
return TEMPLATE_BEGINNER
elif "AI" in 募集内容:
return TEMPLATE_AI
else:
return TEMPLATE_NORMAL
落とし穴: テンプレを多くしすぎると判定が複雑化。3〜4種類に絞ります。
パターン8: 失敗時の挙動を明示するスキル
API レート制限などで失敗したとき、リトライするかスキップするかを スキル定義に書きます。
## ⚠️ 失敗時の挙動
- 1回失敗したらリトライしない
- バックグラウンド待機も禁止
- 翌日のデイリーで通常通り再試行
ポイント: 自動リトライを無制限にすると、429が永遠に解消しないループに入ります。
パターン9: スキル間の依存関係を分離するスキル
スキルAがスキルBを呼ぶ設計より、オーケストレーションスキルから両方を呼ぶほうが疎結合になります。
NG: A → B
OK: orchestrator → A
→ B
ポイント: 単体テスト・部分実行が可能になり、デバッグが楽。
パターン10: 実行記録を残すスキル
スキル実行の結果を毎回ログに残し、後で振り返れるようにします。
with open("メトリクス日次.md", "a") as f:
f.write(f"| {date} | {result} | {memo} |\n")
ポイント: 数値の推移が見えると、スキルの効果を判断できます。
まとめ
スキル化は強力ですが、**「やみくもに作らない」**のが鉄則です。
- 週1回以上の繰り返し業務だけスキル化
- 進捗追跡で途中再開可能にする
- 失敗時の挙動を明示する
- 並列化できる箇所は並列化する
- 実行ログを残して効果を測る
これらを意識すると、スキル群が 「メンテコスト < 削減コスト」 の状態を保てます。
Claude Code を使った開発・学習のサポートを MENTA で提供しています。→ https://menta.work/plan/20251
YouTubeでもAI×プログラミングの情報を発信中 → https://www.youtube.com/channel/UC1rXVD9WYsQPQEWZyd-A1KA/