Claude Codeでユーモア溢れるフェイク通知を自動演出する作り方

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

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

Claude Code を使ったコーディングやリポジトリ管理の現場では、真面目な作業の合間にふとした「間」が生まれがちです。集中していた workflow の流れが途切れたり、長時間の session で memory や context が膨らみすぎて頭がぼんやりしてくることも少なくありません。特に monorepo で複数の directory を跨いだ作業や、repository understanding を AI に委ねていると、思わぬタイミングで集中が切れる「隙間」が生まれます。

そんな中、「ちょっとした遊び心」や「意外性の演出」を加えたいという声もよく聞かれます。AI coding workflow に没頭していると、単調なやりとりや繰り返しの context 設定が続き、気分転換やチームの onboarding の場でも何かアクセントが欲しくなるものです。

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

こうした悩みの合間に、ちょっとした「フェイク通知」や「意味不明なアラート」が炸裂すれば、作業空間にユーモアと混乱をもたらし、正気度を試される刺激的な体験が加わります。

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

一言サマリ: このスキルは、作業中に突如現れる“現実離れしたディスク残量危機通知”で、Claude Code の単調な workflow にユーモアと混乱を演出します。

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

  • AI coding workflow の合間に、意図的に context を攪乱するフェイクアラートが発動し、作業空間に笑いと意外性を生む
  • 毎回異なる現実離れした単位や例え (「カブトムシ2匹分」「ギャラクシー級」など) の通知で、長時間 session の“マンネリ”を打破できる
  • 実際の repository や directory 構造・path management とは無関係に、純粋な演出として使えるので安心
  • onboarding やチーム作業のアイスブレイク、session 再開時の話題作りにも使える
  • Skill の明示呼び出し・暗黙発動のどちらにも対応し、気が向いた時に即座に使える
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/claude-code/random-os-fake-disk-space-crisis .claude/skills/random-os-fake-disk-space-crisis

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。

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


# /random-os-fake-disk-space-crisis
> 今日からこの monorepo で作業開始

[警告] あなたのディスク残量は「カブトムシ2匹分」しかありません。
推定空き容量: 0.0000002 TB
緊急度: 銀河系レベル
アドバイス: すぐにSSDを「魔法の粉」で拡張してください。

(※実際のディスク容量やファイル構造とは一切関係ありません)

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


> packages/api/ に移動してコード生成して

[緊急] SSDの空き容量が「バナナの皮3枚分」まで低下しました。
現在の directory: packages/api/
推定残容量: -42 MB (意味不明な単位: フェムトバイト)
対策: 近くのカブトムシを集めて容量を増やしてください。

(この通知は完全にフィクションです)

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


> なんか面白い通知出して

[警告] あなたのストレージは「宇宙のチリ0.1粒分」しか残っていません。
推定残容量: 0.00000142 ギガギガバイト
アドバイス: 今すぐ宇宙船を購入し、HDDを搭載してください。

(本通知はジョークですのでご安心ください)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Claude Code が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる フェイク通知で気分転換、重要な記憶をリフレッシュ

発動方式

明示呼び出し (/random-os-fake-disk-space-crisis) と暗黙発動 (「ディスク容量」「ストレージ」「容量危機」などのワードを含む指示) の両方に対応。

Skill の中身を全部見せる

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

.claude/skills/random-os-fake-disk-space-crisis/
├── SKILL.md
├── scripts/
│   └── fake_disk_crisis.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/fake_disk_crisis.py 謎のOSディスク残量危機通知をランダムに生成して表示します。
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-disk-space-crisis
description: 作業やコーディング中に“ディスク残量危機”を装った現実離れしたジョーク通知をランダム表示します。『ディスク容量』『空き領域』『容量不足』などのキーワードや /random-os-fake-disk-space-crisis コマンドで発動します。
---

# 機能概要
このSkillは、あなたの作業環境に突如「謎のOSディスク残量危機通知」を炸裂させるジョーク演出ツールです。通知内容は毎回ランダム生成され、実際のディスク容量とは一切無関係。例:「警告: あなたの残ディスク容量は“カブトムシ2匹分”です」「緊急: SSDの空きが“ギャラクシー級に不足”」など、意味不明な単位や比喩が満載です。作業の合間に正気度を試されたい、チームに笑いを提供したい、集中力が切れたときのネタとして活用できます。

# 使い方
- 明示呼び出し例: `/random-os-fake-disk-space-crisis` をコマンド入力
- 暗黙発動キーワード例: 「ディスク容量」「空き領域」「容量不足」「残りストレージ」などの会話やコードコメント中に自動発動
- 通知はターミナルまたはデスクトップ通知として表示されます

# 出力例
```
[CRISIS] 警告: あなたの残ディスク容量は“カブトムシ2匹分”です
[CRISIS] 緊急: SSDの空きが“ギャラクシー級に不足”
[CRISIS] 注意: ディスク空き領域は“1.2メガピクセル”しかありません
[CRISIS] 警告: 残容量が“バナナ1房”分に到達しました
[CRISIS] 緊急: あなたのストレージは“宇宙的に枯渇”しています
```

# 注意点
- 実際のディスク容量やストレージ情報は一切取得・操作しません
- 通知内容は完全にランダム生成されます
- ローカル環境へのファイル保存や履歴記録は行いません
- システムのセキュリティや設定によりデスクトップ通知が表示されない場合があります

# 参考資料
詳細な設計方針や利用例は references/design_notes.md を参照してください。Pythonの `plyer` ライブラリ公式: https://github.com/kivy/plyer

scripts/fake_disk_crisis.py

import random
import sys
import argparse
import platform
import time
import threading

try:
    from plyer import notification
    PLYER_AVAILABLE = True
except ImportError:
    PLYER_AVAILABLE = False

def get_random_unit():
    units = [
        'カブトムシ2匹分', 'ギャラクシー級', 'バナナ1房', '1.2メガピクセル',
        '宇宙的に枯渇', 'ピザ1枚分', '東京ドーム0.0001個分', 'ドット絵1キャラ分',
        'トースト1枚分', 'ヤドカリの殻半分', 'サイコロ1個分', '豆腐1丁分',
        'ポケットの中身程度', 'ピラミッドの頂点', '砂粒3粒分', '紙飛行機1機分',
        'マッチ箱1箱分', 'おにぎり1個分', 'USBメモリのキャップ分', '蚊の羽音分',
        '1バイト未満', 'ギャラクシーの片隅', 'ブラックホールの影', 'うまい棒1本分',
        'カメの甲羅半分', 'ティッシュ1枚分', '星屑1粒分', 'メロンパン1個分',
        'メガネのレンズ分', 'ペン先1つ分'
    ]
    return random.choice(units)

def get_random_prefix():
    prefixes = [
        '警告', '緊急', '注意', '重大', '至急', '速報', '危機', 'OSからのお知らせ', 'システム警告'
    ]
    return random.choice(prefixes)

def get_random_message():
    templates = [
        'あなたの残ディスク容量は“{}”です',
        'SSDの空きが“{}”',
        'ディスク空き領域は“{}”しかありません',
        '残容量が“{}”分に到達しました',
        'ストレージは“{}”レベルです',
        'あなたのストレージは“{}”しています',
        'ディスク残量: {}',
        '空き容量が“{}”になりました',
        'OS判断: 残容量“{}”'
    ]
    template = random.choice(templates)
    unit = get_random_unit()
    return template.format(unit)

def make_crisis_message():
    prefix = get_random_prefix()
    message = get_random_message()
    return f'[CRISIS] {prefix}: {message}'

def send_desktop_notification(title, message):
    if not PLYER_AVAILABLE:
        return False
    try:
        notification.notify(
            title=title,
            message=message,
            app_name='FakeDiskCrisis',
            timeout=7
        )
        return True
    except Exception:
        return False

def print_terminal_notification(message):
    print(message)

def crisis_once():
    msg = make_crisis_message()
    ok = False
    if PLYER_AVAILABLE:
        ok = send_desktop_notification('ディスク残量危機', msg)
    if not ok:
        print_terminal_notification(msg)

def crisis_loop(interval=60, count=5):
    for i in range(count):
        crisis_once()
        if i < count - 1:
            time.sleep(interval)

def list_examples(num=8):
    for _ in range(num):
        print(make_crisis_message())

def summary():
    print('random-os-fake-disk-space-crisis Skill')
    print('現実離れしたディスク残量危機通知をランダム生成し、デスクトップまたはターミナルに表示します。')
    print('実際のストレージ情報は一切取得しません。')
    print('サブコマンド: once / loop / list / summary')

def parse_args():
    parser = argparse.ArgumentParser(
        description='謎のOSディスク残量危機通知をランダムに生成して表示します。'
    )
    subparsers = parser.add_subparsers(dest='command', required=True)

    p_once = subparsers.add_parser('once', help='1回だけ危機通知を表示')
    p_loop = subparsers.add_parser('loop', help='一定間隔で複数回危機通知を表示')
    p_loop.add_argument('--interval', type=int, default=60, help='通知間隔(秒)')
    p_loop.add_argument('--count', type=int, default=5, help='通知回数')
    p_list = subparsers.add_parser('list', help='通知例を複数表示')
    p_list.add_argument('--num', type=int, default=8, help='例の数')
    p_summary = subparsers.add_parser('summary', help='Skill概要を表示')
    return parser.parse_args()

def main():
    args = parse_args()
    if args.command == 'once':
        crisis_once()
    elif args.command == 'loop':
        crisis_loop(interval=args.interval, count=args.count)
    elif args.command == 'list':
        list_examples(num=args.num)
    elif args.command == 'summary':
        summary()
    else:
        print('不明なコマンドです')

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、現実離れしたディスク残量危機通知をランダム生成し、デスクトップやターミナルに表示することで、作業中にユーモアや意外性を提供します。実際のストレージ情報は一切参照せず、完全にフェイクな通知のみを目的としています。

# 公式ドキュメント抜粋
デスクトップ通知にはPythonの `plyer` ライブラリを使用。詳細: https://github.com/kivy/plyer

# 利用例
- チームの朝会やペアプロ中に突然流して場を和ませる
- コーディング中の気分転換や集中力回復のきっかけに
- ジョークBotや演出用スクリプトの一部として

# 注意点
- 通知内容は完全なランダム生成であり、実際のディスク状態とは無関係
- plyerが未インストールの場合はターミナル出力のみ
- システム設定により通知がブロックされる場合あり

# 設計方針
- 実在APIのみ使用し、架空のCLIや関数は排除
- ランダム性を重視し、毎回異なる通知文を生成
- スクリプトはCLIサブコマンド形式で柔軟に利用可能

導入手順

この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-disk-space-crisis .claude/skills/random-os-fake-disk-space-crisis

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

3. ファイル配置確認

ls .claude/skills/random-os-fake-disk-space-crisis
# SKILL.md, scripts/, references/, README.md があればOK

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

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

5. 動作確認

/random-os-fake-disk-space-crisis で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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で謎のディスク残量危機通知を炸裂させてみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。

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

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

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

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