Claude Codeで遊び心を加えた通知演出Skillの作り方ガイド

  • URLをコピーしました!
目次

Claude Code ユーザーが日常でぶつかる悩み

Claude Code を使っていると、集中したいタイミングや真面目な作業の最中に、ふと気が抜けてしまう瞬間が訪れるものです。特に長時間の AI coding workflow では、リポジトリの構造や context、directory の path 管理に頭を使い続けるため、気づかぬうちに疲労やマンネリ感が蓄積しがちです。そんなとき、ちょっとした「遊び心」や「意外性」が入ることで、作業空間の雰囲気が和らぎ、再び集中力を取り戻せる場面も多いでしょう。

  • Claude Code がいつの間にか違う directory を見始めて、想定外のファイルを読みに行く
  • monorepo で package を跨いだ瞬間、Claude Code が repo 構造を忘れる
  • session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
  • 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
  • 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる

こうした「真面目な作業空間」に、突如として現れるユーモラスな通知や演出が、ちょうどよいリフレッシュやアイスブレイクになることも。特に通知・演出・OS連携系の Skill で、あえて現実には絶対起こらない“ネタ警告”が出てくると、思わず笑ってしまうユーザーも多いはずです。

この Skill が一言でいうと何を解決するか

一言サマリ: このスキルは、作業中の緊張感やマンネリを和らげる“デジタル・カフェイン事故”通知をランダムに発動し、Claude Code のワークフローに遊び心をプラスします。

もう少し具体化すると、このSkillを入れることで以下のような状態になる:

  • 長時間の repository understanding や path management の合間に、思いがけないコーヒー系ジョーク通知が飛び、作業空間が和む
  • monorepo での directory 跨ぎや session 再開時に、AI coding workflow に軽快なリズムが生まれる
  • onboarding 時や routineな作業の中で、context の切り替えに“ネタ警告”が混じることで、コミュニケーションのきっかけやチームの雰囲気づくりにもつながる
  • 毎回違うメッセージが表示されるので、飽きずに楽しめる
  • Skill の発動は作業に支障を来さないタイミングで行われるため、生産性を損なわず気分転換できる
QUICK INSTALL
このSkillをすぐ試す

GitHub から degit でコマンド1行、Claude Code の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。

npx degit aazutaku/ai-note/claude-code/random-os-fake-coffee-overflow-alert .claude/skills/random-os-fake-coffee-overflow-alert

実行したらこうなる (3つの利用シーン)

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。

シーン1: session 開始時 (CLAUDE.md と組み合わせて)


# /random-os-fake-coffee-overflow-alert
> プロジェクトの初期セットアップを開始

[OS通知] 重大:コーヒーカップが満杯です。新たなコードの注入は一時停止されます。
[OS通知] 処理継続には一時的なコーヒー断ちが必要です。
[Claude Code] repository understanding を進めています…
[OS通知] 警告:OSのカフェイン値が限界突破。directory /src/utils/ で過剰摂取を検出。

シーン2: monorepo / package 跨ぎ作業時


> packages/core/ から packages/api/ へ移動

[OS通知] 注意:この directory でコーヒーのスプラッシュが発生しました。
[OS通知] コーヒーフィルターの交換を推奨します。
[Claude Code] context を packages/api/ に切り替えました。
[OS通知] 警告:カフェインの流出により repository understanding に影響が出る可能性があります。

シーン3: お遊び的な使い方


> /random-os-fake-coffee-overflow-alert

[OS通知] 重大:コーヒーがキーボード上でオーバーフローしました!
[OS通知] 作業継続には一杯分の休憩を推奨します。
[Claude Code] path management を一時停止します。
[OS通知] コーヒーこぼしログを references/coffee-spill.log に記録しました。

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Claude Code が自動で context を復元、最小プロンプトで再開+コーヒー警告で場が和む
monorepo 移動 違う package のコードを参照しがち directory boundary を意識しつつ、コーヒーネタで気分転換
長時間 workflow long context で重要箇所が薄まる 適度なタイミングで通知が入り、集中力をリセット

発動方式

明示呼び出し (/random-os-fake-coffee-overflow-alert) と暗黙発動 (コーヒーやカフェイン、休憩などの description マッチ) の両方に対応。

Skill の中身を全部見せる

.claude/skills/random-os-fake-coffee-overflow-alert/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。

.claude/skills/random-os-fake-coffee-overflow-alert/
├── SKILL.md
├── scripts/
│   └── coffee_overflow_alert.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/coffee_overflow_alert.py OSコーヒーあふれ警告スキル
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-coffee-overflow-alert
description: このSkillは、作業中や長時間のコーディングセッション時、または「コーヒー」「集中」「警告」などのキーワードが会話やコードに現れたタイミングで発動します。明示的な /random-os-fake-coffee-overflow-alert コマンドでも実行可能です。
---

# 機能概要
このSkillは、作業中や集中したコーディング環境に突如“OSコーヒーあふれ警告”をデスクトップ通知として表示します。通知メッセージは毎回ランダムで、「重大:コーヒーカップが満杯です」「警告:OSのカフェイン値が限界突破」など、実際には起こりえない“デジタル・カフェイン事故”を演出。まじめな作業空間にユーモアを差し込むことで、集中力が途切れがちな場面でもリラックスでき、チーム内のコミュニケーションにも一役買います。

# 使い方
- 明示呼び出し: `/random-os-fake-coffee-overflow-alert` を実行すると即座に通知が発生します。
- 暗黙発動: 「コーヒー」「集中」「眠い」「警告」「OS」「カフェイン」などのキーワードが会話やコードに出現した際、自動的に通知が発火します。
- CLIからも `python coffee_overflow_alert.py --alert` で手動発火できます。

# 出力例
```
[通知] 重大:コーヒーカップが満杯です。OSのカフェイン値が臨界点に到達しました。
[通知] 警告:OSのカフェインメモリが溢れています。コーヒー断ち推奨。
[通知] 注意:仮想マシンのカフェインプールがリーク中。今すぐリフレッシュを!
[通知] エラー:コーヒー過剰摂取によりプロセスが一時停止。
[通知] 情報:カフェイン・バッファが自動クリアされました。
```

# 注意点
- 本Skillは実用的な警告ではなく、完全なジョーク通知です。
- 通知はローカル端末のOS通知機能を利用します(Windows/macOS/Linux対応)。
- 通知履歴は保存されません。繰り返し発火も可能です。
- 長時間の連続発火や通知の多用は、逆に集中力を削ぐ場合があるためご注意ください。

# 参考資料
- 参考: [plyer公式ドキュメント](https://plyer.readthedocs.io/en/latest/)
- references/design_notes.md も参照してください。

scripts/coffee_overflow_alert.py

import random
import argparse
import sys
import time
from plyer import notification

COFFEE_ALERTS = [
    "重大:コーヒーカップが満杯です。OSのカフェイン値が臨界点に到達しました。",
    "警告:OSのカフェインメモリが溢れています。コーヒー断ち推奨。",
    "注意:仮想マシンのカフェインプールがリーク中。今すぐリフレッシュを!",
    "エラー:コーヒー過剰摂取によりプロセスが一時停止。",
    "情報:カフェイン・バッファが自動クリアされました。",
    "警告:カフェイン・スレッドがデッドロックしています。コーヒーブレイクを挿入してください。",
    "重大:コーヒー・スタックオーバーフロー。リスタートが必要です。",
    "注意:OSのカフェイン・ガーベジコレクションが追いついていません。",
    "エラー:カフェイン・ドライバがクラッシュしました。新しい豆を挿入してください。",
    "情報:コーヒー・バッファが自動的にリフレッシュされました。"
]

TRIGGER_KEYWORDS = [
    "コーヒー", "集中", "眠い", "警告", "OS", "カフェイン"
]

def send_coffee_alert():
    alert = random.choice(COFFEE_ALERTS)
    notification.notify(
        title="Coffee Overflow Alert",
        message=alert,
        timeout=7
    )
    print(f"[通知] {alert}")

def listen_stdin_for_keywords():
    print("[Skill] 標準入力からキーワードを監視します。Ctrl+Cで終了。\n")
    try:
        while True:
            line = sys.stdin.readline()
            if not line:
                break
            for keyword in TRIGGER_KEYWORDS:
                if keyword in line:
                    send_coffee_alert()
                    break
    except KeyboardInterrupt:
        print("\n[Skill] 終了します。")

def alert_loop(interval):
    print(f"[Skill] {interval}秒ごとにコーヒー警告を発火します。Ctrl+Cで停止。\n")
    try:
        while True:
            send_coffee_alert()
            time.sleep(interval)
    except KeyboardInterrupt:
        print("\n[Skill] ループを終了します。\n")

def main():
    parser = argparse.ArgumentParser(description="OSコーヒーあふれ警告スキル")
    subparsers = parser.add_subparsers(dest="command")

    parser_alert = subparsers.add_parser("alert", help="即座にコーヒー警告を発火")
    parser_listen = subparsers.add_parser("listen", help="標準入力からキーワードを監視して発火")
    parser_loop = subparsers.add_parser("loop", help="定期的に警告を発火")
    parser_loop.add_argument("--interval", type=int, default=900, help="警告間隔(秒, デフォルト15分)")

    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(0)

    args = parser.parse_args()

    if args.command == "alert":
        send_coffee_alert()
    elif args.command == "listen":
        listen_stdin_for_keywords()
    elif args.command == "loop":
        alert_loop(args.interval)
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
本Skillは、作業中のユーザーに対して、実際には存在しない“コーヒー関連OS警告”をデスクトップ通知で表示するジョーク系演出ツールです。真面目な作業環境に遊び心を加え、チームの雰囲気を和らげることを目的としています。

# 公式ドキュメント抜粋
通知には plyer の notification API を利用しています。plyerはクロスプラットフォームで、Windows/macOS/LinuxのOS通知に対応しています。

# 利用例
- 長時間のコーディングや会議中に、定期的にコーヒー警告を発火させてリフレッシュを促す。
- チーム内のSlackやチャットで「コーヒー」などの単語が出た際に自動発火。
- CLIから明示的にジョーク通知を送り、場を和ませる。

# 注意点
- 通知は実用的な警告ではありません。業務フローや監視用途には使用しないでください。
- plyerの通知は一部Linux環境で追加パッケージが必要な場合があります。

# 設計方針
- 実在するAPIのみを使用し、依存関係を最小限に抑えています。
- キーワード監視・定期発火・明示呼び出しの3パターンで柔軟に利用可能です。

導入手順

このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Claude Code はファイル配置後に再起動するだけで自動認識します。

1. 前提

  • Node.js v16 以上 (degit 実行に必要)
  • Claude Code がローカルで動いていること

2. degit でフォルダ取得

プロジェクトのルートで以下のコマンドを実行します。

npx degit aazutaku/ai-note/claude-code/random-os-fake-coffee-overflow-alert .claude/skills/random-os-fake-coffee-overflow-alert

.claude/skills/random-os-fake-coffee-overflow-alert の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .claude/skills/random-os-fake-coffee-overflow-alert
# SKILL.md, scripts/, references/, README.md があればOK

4. Claude Code を再起動 (or Skill 自動検出を待つ)

新しいSkillが自動で認識されます。リスト確認したい場合は /random-os-fake-coffee-overflow-alert と Skill 名で出てきます。

5. 動作確認

/random-os-fake-coffee-overflow-alert で呼び出すか、自然言語で発動条件にマッチする指示を出すと Skill が動きます。期待される出力イメージは「実行したらこうなる」セクションを参照してください。

こんな瞬間に便利

  • session 開始時: 前回までの repo 把握を Claude Code に一発で復元させたい
  • monorepo 移動時: packages を跨いだ瞬間に context を切り替えたい
  • onboarding 時: 新しい repo を Claude Code に把握させ、こちらが path を全部指定する手間を省きたい
  • session 再開時: long context が切れた後でも、必要な path と directory 構造だけ素早く戻したい
  • package 跨ぎ作業時: directory boundary を Skill 側で管理して、irrelevant な path 混入を防ぎたい
  • long-running workflow 前: long context で重要箇所が薄まる前に snapshot を取りたい
  • ちょっとしたリフレッシュが欲しい時: 作業の合間に笑いが欲しい、場の空気を変えたいとき

気になるポイント (壊れそうな箇所)

実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:

  • stale context 問題: 長時間 workflow で Skill 出力が古くなり、現状と乖離する可能性
  • directory 増えすぎ問題: 大規模 repo で全 directory を網羅すると出力が肥大化して context window を圧迫
  • monorepo 肥大化: packages が多い構成では出力が雑になり、結局 path 指定し直しになる懸念
  • irrelevant path 混入: node_modules / build 成果物 / generated コードを拾ってしまう可能性
  • Claude Code 固有の引っかかり: paths フロントマターでの絞り込みを使わないと意図しないタイミングで発動する
  • 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory
  • 通知が多すぎて逆に作業の妨げになる: 発動頻度やタイミングの調整が必要
  • 通知内容が本物の警告と混同される: ユーザーがネタであることを理解している前提

試す前に確かめたいこと

この Skill を実運用に投入する前に確かめたい問いを並べます:

  • 実 repo での token 消費は許容範囲か?
  • monorepo (packages 多数) で安定して動くか?
  • stale context にならず、長時間 workflow でも有効か?
  • CLAUDE.md との連携設計はどうあるべきか?
  • 通知内容が実用警告っぽく見えて完全にネタであることが伝わるか?
  • 毎回違うコーヒー系メッセージが表示されることを確認できるか?
  • 動作テストで実際に通知が発火し、作業に支障が出ないことを検証できるか?

実際に Claude Code で試した検証ログは Claude Codeで謎のOSコーヒー警告を試してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。

関連タグで他のSkill記事を探す

本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次