Claude Codeで仕事中の緊張を和らげるユーモア通知の作り方

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

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

Claude Code で集中してコーディングしていると、ふとした瞬間に「ちょっと息抜きしたい」「緊張感を和らげたい」と思うことはありませんか?AI coding workflow の中で、常に真面目なやりとりばかりが続くと、どうしても疲労が溜まりがちです。特に長時間 session や、monorepo で複雑な repository understanding を求められる場面では、気づかぬうちにストレスが蓄積します。

  • Claude Code で directory や path management に没頭していると、つい作業にのめり込みすぎてしまう
  • monorepo や大規模 repository の onboarding で、AIとのやりとりが単調になりがち
  • 長時間 session で context が膨らみ、気分転換のタイミングを逃す
  • AI coding workflow の中で「遊び心」や「小休止」がほとんど挟めない
  • 通知・演出系 Skill を使いたいが、実用的なものばかりで“バカバカしい”演出が足りない

こうした「真面目な作業の合間に、突拍子もない演出でリフレッシュしたい」というニーズは、意外と多いものです。

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

一言サマリ: このスキルは、Claude Code の作業中に突然“壮大なOS電源オフ予告”をデスクトップ通知で爆誕させ、緊張感を強制リセットするSkill。

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

  • 作業に没頭している最中でも、突如カオスな「OSシャットダウン予告」通知が現れ、思わず笑って気分転換できる
  • 通知内容は毎回ランダムかつ意味不明で、現実には何も起こらないので安心して遊べる
  • どのOS・どの repository でも手軽に導入でき、AI coding workflow の合間に“遊び心”を注入できる
  • 長時間 session や onboarding の緊張を一撃でほぐし、リラックスした状態で作業を続けられる
  • Skill の発動は明示コマンドと暗黙トリガー両対応で、好きなタイミングで気軽に使える
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/claude-code/random-os-dramatic-poweroff-alert .claude/skills/random-os-dramatic-poweroff-alert

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

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

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


# /random-os-dramatic-poweroff-alert
> セッション開始。今日も頑張るぞ!

[通知] システム緊急告知
----------------------------
このOSはあと3分で壮絶にシャットダウンします。
理由:宇宙エネルギー調整のため
全プロセスよ、さらば…
----------------------------
(※実際には何も起きません。ご安心ください)

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


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

[通知] 緊急システムアラート
----------------------------
このリポジトリはまもなく全ディレクトリを停止します。
理由:AIが退屈したため
重要ファイルは自己責任でバックアップしてください。
----------------------------
(※通知のみ、実際の停止処理はありません)

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


> /random-os-dramatic-poweroff-alert

[通知] OSからの最終通告
----------------------------
あなたの作業は壮大な終焉を迎えます。
理由:時空連続体の歪みを修正するため
3分後、全てが無に帰します。
----------------------------
(※現実には何も変化しません)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し 作業開始直後にカオスな通知で緊張がほぐれ、リラックスして再開
monorepo 移動 違う package のコードを参照しがち package 跨ぎのタイミングで“全プロセス終了”風通知が飛び、気分転換
長時間 workflow long context で重要箇所が薄まる 突発通知で workflow の空気が一変、集中力リセット

発動方式

明示呼び出し (/random-os-dramatic-poweroff-alert) と暗黙発動 (「電源オフ予告して」「OSが壮大に落ちる演出」など description マッチ) の両方に対応。

Skill の中身を全部見せる

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

.claude/skills/random-os-dramatic-poweroff-alert/
├── SKILL.md
├── scripts/
│   └── dramatic_poweroff_alert.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/dramatic_poweroff_alert.py OSによる壮大な電源オフ予告通知をランダム表示するスクリプト
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-dramatic-poweroff-alert
description: 作業に没頭・集中状態や長時間無操作が検知されたとき、または「シャットダウン」「電源」などのキーワードを含む会話があった場合に、強烈にふざけた“OSによる壮大な電源オフ予告”通知をランダム表示します。実際のシャットダウンは絶対に行いません。
---

# 機能概要
このSkillは、あなたの作業中や長時間の集中状態に突如「OSが壮大な理由で電源を切る」といった、意味不明かつ無責任なデスクトップ通知を爆誕させます。通知内容は毎回ランダムで、例えば「全プロセスよ、さらば…」や「宇宙エネルギー調整のためシャットダウンします」など、現実には何も起こらない“壮大な嘘”を演出します。緊張感を一撃で破壊し、遊び心と笑いを提供します。

# 使い方
- 明示呼び出し例: `/random-os-dramatic-poweroff-alert`
- 暗黙発動キーワード例: 「シャットダウン」「電源」「再起動」「OSクラッシュ」などの単語が会話やコード内に出現した場合、自動で通知が発動します。
- どのOS環境でもPythonスクリプト単体で動作し、追加インストール不要です。

# 出力例
```
[通知] システムはあと3分で壮絶にシャットダウンします(理由:宇宙エネルギー調整のため)
[通知] 全プロセスよ、さらば…
[通知] 管理者の気まぐれにより、OSは間もなく伝説となります。
[通知] あなたの作業は今、歴史的電源オフの瞬間を迎えます。
[通知] システムはブラックホールに吸い込まれます。全員退避!
```

# 注意点
- 実際のシャットダウンや電源オフは一切行われません。
- 通知内容は毎回ランダム生成され、現実のシステム操作には影響しません。
- 通知の履歴や内容はローカルに保存されません。
- 一部Linux環境では通知表示にlibnotifyが必要な場合があります。

# 参考資料
- [plyer公式ドキュメント](https://plyer.readthedocs.io/en/latest/)
- references/design_notes.md 参照(設計方針・利用例・注意点まとめ)

scripts/dramatic_poweroff_alert.py

import sys
import random
import argparse
import time
import platform
from threading import Thread

try:
    from plyer import notification
except ImportError:
    print("plyerパッケージが必要です。pip install plyer でインストールしてください。", file=sys.stderr)
    sys.exit(1)

MESSAGES = [
    "システムはあと3分で壮絶にシャットダウンします(理由:宇宙エネルギー調整のため)",
    "全プロセスよ、さらば…",
    "管理者の気まぐれにより、OSは間もなく伝説となります。",
    "あなたの作業は今、歴史的電源オフの瞬間を迎えます。",
    "システムはブラックホールに吸い込まれます。全員退避!",
    "全ユーザーに最後のメッセージ:さようなら、世界。",
    "OSが自己進化のためリブートします(嘘です)",
    "緊急速報:宇宙政府の命令によりシャットダウンを開始します。",
    "今すぐ保存せよ。OSはまもなく無に帰す。",
    "壮絶な電源オフセレモニーが始まります。"
]

TITLE = "OS Dramatic Poweroff Alert"

HISTORY = []


def send_notification(msg: str):
    notification.notify(
        title=TITLE,
        message=msg,
        timeout=8
    )
    HISTORY.append((time.strftime('%Y-%m-%d %H:%M:%S'), msg))


def random_alert():
    msg = random.choice(MESSAGES)
    send_notification(msg)
    print(f"[通知] {msg}")


def list_history():
    if not HISTORY:
        print("通知履歴はありません。")
        return
    for ts, msg in HISTORY:
        print(f"[{ts}] {msg}")


def summary():
    print(f"通知回数: {len(HISTORY)}")
    if HISTORY:
        last_ts, last_msg = HISTORY[-1]
        print(f"最終通知: {last_ts} - {last_msg}")


def auto_trigger(interval=1800, keywords=None):
    # interval: 秒単位(デフォルト30分)
    print(f"自動発動モード: {interval}秒ごとにランダム通知を送信します。Ctrl+Cで終了。")
    try:
        while True:
            time.sleep(interval)
            random_alert()
    except KeyboardInterrupt:
        print("\n自動発動モードを終了します。")


def parse_args():
    parser = argparse.ArgumentParser(description="OSによる壮大な電源オフ予告通知をランダム表示するスクリプト")
    subparsers = parser.add_subparsers(dest="command", required=False)

    parser_alert = subparsers.add_parser("alert", help="今すぐ壮大な通知を表示")
    parser_auto = subparsers.add_parser("auto", help="一定間隔で自動的に通知を表示")
    parser_auto.add_argument("-i", "--interval", type=int, default=1800, help="通知間隔(秒、デフォルト1800)")
    parser_list = subparsers.add_parser("list", help="通知履歴を表示")
    parser_summary = subparsers.add_parser("summary", help="通知サマリーを表示")

    return parser.parse_args()


def main():
    args = parse_args()
    if args.command == "alert" or args.command is None:
        random_alert()
    elif args.command == "auto":
        auto_trigger(interval=args.interval)
    elif args.command == "list":
        list_history()
    elif args.command == "summary":
        summary()
    else:
        print("不明なコマンドです。--help を参照してください。", file=sys.stderr)
        sys.exit(1)

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、作業中のユーザーに対し“壮大な嘘”の電源オフ通知をランダムに表示し、緊張感を和らげる遊び心を提供します。実際のシャットダウンは一切行われません。

# 公式ドキュメント抜粋
通知表示にはPythonのplyerライブラリを利用しています。plyerはクロスプラットフォーム対応で、Windows/Mac/Linuxで同一コードが動作します。

# 利用例
- 明示的に`/random-os-dramatic-poweroff-alert`で呼び出す
- 長時間作業や「シャットダウン」などの単語が会話に現れた際、自動発動

# 注意点
- plyerが内部で利用する通知APIはOS依存です。Linuxではlibnotifyが必要な場合があります。
- 通知内容は履歴としてメモリ上にのみ保持され、ファイル等には保存されません。

# 設計方針
- 電源操作は絶対に実行しない設計
- 通知内容は毎回ランダム生成し、強烈な演出を重視
- OS依存を極力排除し、どの環境でも動作することを優先
- コマンドラインから明示/自動発動の両対応

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/claude-code/random-os-dramatic-poweroff-alert .claude/skills/random-os-dramatic-poweroff-alert

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

3. ファイル配置確認

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

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

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

5. 動作確認

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

こんな瞬間に便利

  • session 開始時: 真面目な repo onboarding の空気を一撃で和らげたい
  • monorepo 移動時: packages を跨いで context を切り替える際に、気分転換がほしい
  • onboarding 時: 新しい repository の説明に飽きたとき、遊び心を挟みたい
  • session 再開時: 長時間 workflow の合間にリフレッシュしたい
  • package 跨ぎ作業時: directory や path management の単調さを打ち破りたい
  • long-running workflow 前: 重要な作業の前に一度笑って緊張をほぐしたい

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

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

  • 通知内容が強烈にふざけているため、真面目な場面では逆効果になることも
  • OS環境によっては通知がうまく表示されない場合がある
  • 長時間 session で同じ通知が何度も出ると新鮮味が薄れる
  • 他の通知系 Skill と同時に動かすと競合する可能性
  • repository understanding や path management には直接影響しない(完全に演出特化)

試す前に確かめたいこと

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

  • どのOS・ディストリビューションでも通知が正しく表示されるか?
  • 通知内容が毎回ランダムで、かつ十分に“壮大でふざけている”か?
  • 実際のシャットダウンや電源オフなど、危険な処理が一切含まれていないか?
  • 他の通知系 Skill や CLAUDE.md との連携時に問題が出ないか?
  • AI coding workflow の妨げにならず、適度なタイミングでだけ発動するか?

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

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

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

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

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