Claude Code ユーザーが日常でぶつかる悩み
Claude Code で日々開発を進めていると、集中力が切れたり、長時間の作業で単調さを感じる瞬間がよくあります。AI coding workflow の中で、実用一辺倒のやりとりばかりだと、どうしても気分転換や遊び心が不足しがちです。特に repository understanding や path management に没頭していると、ふとした瞬間に「何か刺激がほしい」と思うことも。
- 長時間同じ directory で作業していると、気分転換やリフレッシュのきっかけがない
- onboarding やメンバー追加時、堅苦しい説明ばかりでプロジェクトの雰囲気が伝わりにくい
- monorepo で複数 package を行き来するうちに、作業が単調化しやすい
- 重要な context や memory の整理ばかり意識して、遊びや演出の余地がなくなりがち
- AI coding workflow の合間に、ちょっとした「現実逃避」やユーモアを挟みたいが、自然なタイミングが作りにくい
「通知・演出・OS連携」カテゴリの Skill で、こうした“余白”や“遊び心”を取り入れることは、意外と重要な課題です。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、作業中のデスクトップに突如サイバーパンクなSF風OS通知を出現させ、日常の開発フローに刺激と遊び心をプラスするSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- AI coding workflow の合間に、未来SF世界の“謎通知”で気分転換やリフレッシュができる
- onboarding や session 開始時、プロジェクトの雰囲気を一瞬で近未来の電脳都市風に演出できる
- 長時間の repository understanding や path management の途中で、実用性ゼロの“無駄にかっこいい”体験が得られる
- monorepo 構成でも、package 跨ぎのタイミングで印象的な演出を挟み、単調さを解消できる
- どんな directory でも、現実逃避的な演出をワンクリックで発動できる
GitHub から degit でコマンド1行、Claude Code の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/claude-code/random-os-fake-cyberpunk-notifier .claude/skills/random-os-fake-cyberpunk-notifier実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。
シーン1: session 開始時 (CLAUDE.md と組み合わせて)
# /random-os-fake-cyberpunk-notifier
[NeonOS Notification]
>>> ニューロン接続不良を検出
推奨対応: シンセ脳波モジュールの再同期を実施してください。
詳細: /src/neural/connection_manager.py
[NeonOS Notification]
>>> クローム義手アップデート推奨
最新バージョン: v3.7.2
アップデートは設定 > バイオメカニクス から
シーン2: monorepo / package 跨ぎ作業時
> 移動: packages/data-sync/ から packages/brainwave-io/ へ
[NeonOS Alert]
>>> シンセ脳波警告
brainwave-io パッケージで異常振幅を検出
推奨: /packages/brainwave-io/waveform_analyzer.ts を点検
[NeonOS Notification]
>>> サイバーデータバスの遅延
data-sync モジュールで5ms超過
シーン3: お遊び的な使い方
> /random-os-fake-cyberpunk-notifier
[NeonOS System]
>>> ハイパーリンク・プロトコルの同期失敗
エラーコード: 0xC1B3R
対処: システム再起動を推奨
[NeonOS Notification]
>>> サイバーセキュリティ・ファントム検出
ファイル: /tmp/ghost_packet.log
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Claude Code が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | サイバーパンク通知で気分転換、集中力が持続しやすい |
発動方式
明示呼び出し (/random-os-fake-cyberpunk-notifier) と暗黙発動 (「サイバーパンク通知を表示」「未来風OS通知を出して」などの指示) の両方に対応。
Skill の中身を全部見せる
.claude/skills/random-os-fake-cyberpunk-notifier/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.claude/skills/random-os-fake-cyberpunk-notifier/
├── SKILL.md
├── scripts/
│ └── cyberpunk_notifier.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/cyberpunk_notifier.py |
サイバーパンク風の架空OS通知をデスクトップに表示します。 |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-cyberpunk-notifier
description: このSkillは「サイバーパンク」「SF通知」「未来的演出」などのキーワードや、/random-os-fake-cyberpunk-notifier コマンドが入力された際に発動します。作業中の合間や気分転換、雰囲気づくりの演出用途に最適です。
---
# 機能概要
random-os-fake-cyberpunk-notifierは、現実には存在しないサイバーパンク風の未来OS通知をデスクトップに表示するSkillです。ニューロン接続エラーや義手アップデートなど、SF世界の住人になった気分を味わえます。実用性はありませんが、作業の合間や気分転換、配信・イベントの演出などで「非日常感」を演出したい時に最適です。
# 使い方
明示的には `/random-os-fake-cyberpunk-notifier` コマンドで即時発動できます。また、「サイバーパンク」「SF通知」「未来的演出」などのキーワードを含む会話やコード内で暗黙的にトリガーされます。通知頻度やタイミングは自動調整され、迷惑にならない範囲でランダムに出現します。
# 出力例
```
[NeuroOS] ニューロン接続不良を検出: シナプス・インターフェース再起動推奨
[ChromeSys] クローム義手ファームウェアのアップデートが利用可能です
[SynthWave] シンセ脳波異常: 脳内信号の再調整を推奨
[GhostShell] ゴースト・プロトコルがアクティブ化されました
[GridNet] ネットワーク・ジャック警告: 外部アクセス試行を検出
```
# 注意点
本Skillは実用的な通知や警告は一切行いません。通知内容はすべてフィクションです。ローカル環境の通知API(Windows: Toast, macOS: terminal-notifier, Linux: notify-send)を利用するため、OS標準通知が有効である必要があります。通知履歴は保存されません。
# 参考資料
本SkillはPythonの標準通知APIおよび外部ツール(plyer, notify-send, terminal-notifier等)を利用しています。詳細は`references/design_notes.md`および公式ドキュメント(https://plyer.readthedocs.io/)を参照してください。
scripts/cyberpunk_notifier.py
import sys
import os
import random
import subprocess
import argparse
import platform
import time
from datetime import datetime
CYBERPUNK_MESSAGES = [
("NeuroOS", "ニューロン接続不良を検出: シナプス・インターフェース再起動推奨"),
("ChromeSys", "クローム義手ファームウェアのアップデートが利用可能です"),
("SynthWave", "シンセ脳波異常: 脳内信号の再調整を推奨"),
("GhostShell", "ゴースト・プロトコルがアクティブ化されました"),
("GridNet", "ネットワーク・ジャック警告: 外部アクセス試行を検出"),
("PulseCore", "バイオ・バッテリー残量低下: 充電ステーションへの接続を推奨"),
("NanoGuard", "ナノマシン自己修復モードが作動しました"),
("OptiLink", "視覚拡張モジュールの再調整が必要です"),
("CipherSec", "暗号化プロトコルの異常検出: セキュリティ監査を推奨"),
("EchoGrid", "サウンド・フィードバックループ警告: 音声出力の制御を推奨"),
("NeuroOS", "仮想人格の同期ズレを検出: メモリ断片化の可能性あり"),
("GhostShell", "自己認証失敗: ゴーストIDの再登録が必要です"),
("PulseCore", "生体認証データの更新を推奨します"),
("SynthWave", "脳波パターンが異常値を記録: 医療AIに連絡推奨"),
("GridNet", "外部ネットワークからの不審な信号を遮断しました"),
]
OS_TYPE = platform.system()
def show_notification(title, message):
try:
if OS_TYPE == "Darwin":
# macOS: Use terminal-notifier if available
if shutil.which("terminal-notifier"):
subprocess.run([
"terminal-notifier",
"-title", title,
"-message", message
])
else:
# fallback to AppleScript
script = f'display notification "{message}" with title "{title}"'
subprocess.run(["osascript", "-e", script])
elif OS_TYPE == "Linux":
if shutil.which("notify-send"):
subprocess.run(["notify-send", title, message])
else:
print(f"[通知失敗] notify-sendが見つかりません: {title} - {message}")
elif OS_TYPE == "Windows":
try:
from plyer import notification
notification.notify(title=title, message=message, app_name="Cyberpunk Notifier")
except ImportError:
print(f"[通知失敗] plyerパッケージが必要です: {title} - {message}")
else:
print(f"[通知未対応OS] {title}: {message}")
except Exception as e:
print(f"[通知エラー] {e}")
def random_message():
return random.choice(CYBERPUNK_MESSAGES)
def notify_once():
title, message = random_message()
show_notification(title, message)
print(f"[{title}] {message}")
def notify_loop(interval, count):
for i in range(count):
notify_once()
if i < count - 1:
time.sleep(interval)
def list_messages():
print("--- サイバーパンク風通知メッセージ一覧 ---")
for title, msg in CYBERPUNK_MESSAGES:
print(f"[{title}] {msg}")
def summary():
print("Skill: random-os-fake-cyberpunk-notifier")
print(f"通知パターン数: {len(CYBERPUNK_MESSAGES)}")
print(f"対応OS: macOS, Linux, Windows")
print(f"通知API: terminal-notifier, notify-send, plyer")
def parse_args():
parser = argparse.ArgumentParser(description="サイバーパンク風の架空OS通知をデスクトップに表示します。")
subparsers = parser.add_subparsers(dest="command")
parser_once = subparsers.add_parser("notify", help="1回だけ通知を表示")
parser_loop = subparsers.add_parser("loop", help="指定回数/間隔で通知を繰り返す")
parser_loop.add_argument("-n", "--count", type=int, default=5, help="通知回数 (デフォルト: 5)")
parser_loop.add_argument("-i", "--interval", type=int, default=60, help="通知間隔(秒) (デフォルト: 60)")
parser_list = subparsers.add_parser("list", help="全通知メッセージを表示")
parser_summary = subparsers.add_parser("summary", help="Skill概要を表示")
return parser.parse_args()
def main():
args = parse_args()
if args.command == "notify":
notify_once()
elif args.command == "loop":
notify_loop(args.interval, args.count)
elif args.command == "list":
list_messages()
elif args.command == "summary":
summary()
else:
print("使い方: python cyberpunk_notifier.py [notify|loop|list|summary]")
print("例: python cyberpunk_notifier.py notify")
if __name__ == '__main__':
import shutil
main()
references/design_notes.md
# 概要
このSkillは、架空のサイバーパンクOS通知を現実のデスクトップ通知APIで実現します。演出や雰囲気作り、配信・イベント用途を主眼としています。
# 公式ドキュメント抜粋
- plyer: https://plyer.readthedocs.io/en/latest/
- notify-send (Linux): https://specifications.freedesktop.org/notification-spec/
- terminal-notifier (macOS): https://github.com/julienXX/terminal-notifier
# 利用例
- 作業中に非日常感を演出
- 配信やイベントのBGM的な演出
- チームの気分転換やアイスブレイク
# 注意点
- 通知内容はすべてフィクションです。実用的な警告や障害通知は含みません。
- OS標準の通知APIが有効である必要があります。
- plyer, notify-send, terminal-notifier等、一部外部ツールが必要な場合があります。
# 設計方針
- クロスプラットフォーム対応
- 実在APIのみ利用し、架空コマンドや独自通知エンジンは使わない
- 迷惑にならない頻度・ランダム性を重視
- メッセージ内容は随時拡張可能
導入手順
この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-cyberpunk-notifier .claude/skills/random-os-fake-cyberpunk-notifier
.claude/skills/random-os-fake-cyberpunk-notifier の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .claude/skills/random-os-fake-cyberpunk-notifier
# SKILL.md, scripts/, references/, README.md があればOK
4. Claude Code を再起動 (or Skill 自動検出を待つ)
新しいSkillが自動で認識されます。リスト確認したい場合は /random-os-fake-cyberpunk-notifier と Skill 名で出てきます。
5. 動作確認
/random-os-fake-cyberpunk-notifier で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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 を取りたい
- 気分転換したい時: 単調な作業の合間に、サイバーパンクな通知でリフレッシュしたい
- 遊び心を加えたい時: プロジェクトに“無駄にかっこいい”演出を差し込みたい
気になるポイント (壊れそうな箇所)
実運用に乗せる前に頭に入れておきたい懸念。後で検証する観点でもある:
- 通知頻度・タイミング: 頻繁すぎると作業を妨げる恐れがある。適切な間隔・発動条件の調整が必要
- OS通知領域との連携: すべてのOSで標準通知領域に正しく表示されるか要確認
- 通知内容の多様性: パターンが少ないと飽きやすい。定期的なアップデートやカスタマイズ性も検討
- 実用性ゼロゆえの誤解: 本当に重要なエラー通知と混同しないよう明確な演出が必要
- 他Skillとの干渉: repository understanding や path management 系Skillと同時利用時の挙動
試す前に確かめたいこと
この Skill を実運用に投入する前に確かめたい問いを並べる:
- 通知が本当にSF・サイバーパンク風になっているか?
- 通知頻度やタイミングが迷惑にならないか?
- OSの標準通知領域にしっかり出るか?
- 他の repository understanding 系Skillと併用した際の挙動は問題ないか?
- 実際のAI coding workflowで、気分転換や現実逃避の効果を実感できるか?
実際に Claude Code で試した検証ログは Claude Codeで謎のサイバーパンク通知を出してみた!近未来感がクセになる にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
