Claude Code ユーザーが日常でぶつかる悩み
Claude Code を日常的に使っていると、集中して作業している最中にちょっとした“間”や“遊び心”が欲しくなる瞬間があります。しかし、実際の開発現場では以下のような悩みがよく見られます。
- 作業が単調で、集中力が途切れがちになる
- チームの雰囲気が真面目すぎて、ちょっとした笑いが欲しい
- 長時間の session で気分転換するタイミングが掴めない
- onboarding やペアプロの場で、堅苦しい空気を和らげたい
- 突然現れる通知や演出で、意図せず workflow をリフレッシュしたい
特に「通知・演出・OS連携」系のSkillが不足していると、日々のAI coding workflowが淡々と進みがち。Claude Code の context や repository understanding にも直接関係しない部分ですが、こうした遊び心が全体のモチベーション維持や長時間作業のリズム作りに意外と効いてきます。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、作業中に突然「謎のOSセキュリティスキャン」のフェイク通知を流し、集中力をほどよく崩して笑いとカオスを注入するSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- 単調なAI coding workflowの合間に、フェイク通知で場の空気を和ませられる
- onboardingやチーム作業の最中でも、硬い雰囲気を一瞬で崩せる
- 長時間 session の途中で、意図せず context をリフレッシュできる
- 「未知のやる気ウイルス」などのネタ演出で、repositoryやdirectory構造の説明タイムも盛り上がる
- Skillの明示/暗黙発動で、いつでも好きなタイミングで遊びを仕込める
GitHub から degit でコマンド1行、Claude Code の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/claude-code/random-os-fake-security-scan .claude/skills/random-os-fake-security-scan実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (CLAUDE.md と組み合わせて)
# /random-os-fake-security-scan
[OS Security Scan] システム全体の健全性チェックを開始します...
進捗: 8% - "マウスの動きが怪しいファイル" を検出
進捗: 23% - "あなたの進捗は安全です"
進捗: 41% - "未知のやる気ウイルス" を隔離しました
進捗: 77% - "repository understanding" レベル: 安全
進捗: 100% - 全ての directory で異常なし
[Scan Complete] あなたの作業環境はカオスですが安全です。
シーン2: monorepo / package 跨ぎ作業時
> monorepo の packages/analytics に移動
[OS Security Scan] 新しい directory で異常を検知しました...
進捗: 12% - "context memory" 検査中
進捗: 37% - "package boundary" を超えました
進捗: 66% - "重要なファイル: analytics/report.js" 問題なし
進捗: 100% - "monorepo" は安全ゾーン
[Scan Complete] 次の repository も油断せずに。
シーン3: お遊び的な使い方
> ちょっと気分転換したい
[OS Security Scan] 緊急チェック開始!
進捗: 19% - "Slack通知の未読" を検出
進捗: 44% - "やる気ウイルス" 感染疑惑
進捗: 81% - "AI coding workflow" 安全確認
進捗: 100% - "あなたの集中力" は一時的に保護されました
[Scan Complete] もう一度深呼吸してから作業に戻りましょう。
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Claude Code が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | フェイク通知で気分転換しつつ context をリセット |
発動方式
明示呼び出し (/random-os-fake-security-scan) と暗黙発動 (description マッチ) の両方に対応。
Skill の中身を全部見せる
.claude/skills/random-os-fake-security-scan/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.claude/skills/random-os-fake-security-scan/
├── SKILL.md
├── scripts/
│ └── random_os_fake_security_scan.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/random_os_fake_security_scan.py |
ランダムOSフェイクセキュリティスキャン通知スクリプト |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-security-scan
description: 作業中の『進捗』『ウイルス』『セキュリティ』『OS』『スキャン』などのキーワードを含む会話や、/random-os-fake-security-scan コマンドで明示的に呼び出された場合に発動。ネタ通知で作業の空気を一変させます。
---
# 機能概要
このSkillは、作業中のターミナルやエディタ環境に、まるで本物のOSセキュリティスキャンが始まったかのような“フェイク通知”をデスクトップ領域にポップアップ表示します。通知内容は「未知のやる気ウイルスを検出」「あなたの進捗は安全です」など完全なジョークで構成され、進捗バーや警告メッセージも毎回ランダム。職場やリモートワーク中の空気を一瞬で和ませたり、仲間を困惑させるカオスな演出に最適です。
# 使い方
明示的には `/random-os-fake-security-scan` コマンドで即時発動。暗黙的には「進捗」「ウイルス」「セキュリティ」「OS」などの単語を含む会話やコードレビュー時に自動発動します。通知はOSのネイティブ通知APIを利用し、数秒ごとに進捗率が増加する演出付きです。
# 出力例
```
[OS Security Scan] 進捗: 24% - 未知のやる気ウイルスを検出しました
[OS Security Scan] 進捗: 47% - マウスの動きが怪しい挙動を示しています
[OS Security Scan] 進捗: 68% - あなたの進捗は安全です
[OS Security Scan] 進捗: 89% - システムにカオス成分を注入中
[OS Security Scan] 進捗: 100% - 全てのファイルがジョークで保護されました
```
# 注意点
本Skillは実際のセキュリティスキャンやファイル操作は一切行いません。通知はローカル環境でのみ表示され、履歴やログは保存されません。通知API未対応の環境では動作しませんのでご注意ください。
# 参考資料
詳細な設計方針や動作例は references/design_notes.md を参照。公式ドキュメント: https://docs.python.org/3/library/subprocess.html, https://plyer.readthedocs.io/en/latest/
scripts/random_os_fake_security_scan.py
import sys
import time
import random
import argparse
from threading import Thread
try:
from plyer import notification
except ImportError:
print("plyer ライブラリが必要です。pip install plyer でインストールしてください。", file=sys.stderr)
sys.exit(1)
FAKE_MESSAGES = [
"未知のやる気ウイルスを検出しました",
"マウスの動きが怪しい挙動を示しています",
"あなたの進捗は安全です",
"システムにカオス成分を注入中",
"全ファイルをジョークで保護しました",
"CPU温度が笑いで上昇中",
"進捗率を水増ししています",
"メモリに謎のやる気バグを発見",
"ネットワークにギャグパケットを注入",
"あなたの集中力は検疫済みです",
"OSがダジャレモードに突入",
"ファイルシステムが大喜利状態",
"セキュリティ担当が困惑しています"
]
TITLE = "OS Security Scan"
class FakeScan:
def __init__(self, duration=15, interval=2):
self.duration = duration
self.interval = interval
self.progress = 0
self.messages = random.sample(FAKE_MESSAGES, k=min(7, len(FAKE_MESSAGES)))
self.total_steps = int(self.duration / self.interval)
def run(self):
for i in range(self.total_steps):
self.progress = min(int((i / self.total_steps) * 100), 100)
msg = self._get_message(i)
self._notify(self.progress, msg)
time.sleep(self.interval)
# 終了メッセージ
self._notify(100, "全てのファイルがジョークで保護されました")
def _get_message(self, idx):
if idx < len(self.messages):
return self.messages[idx]
return random.choice(FAKE_MESSAGES)
def _notify(self, progress, message):
notification.notify(
title=f"[{TITLE}] 進捗: {progress}%",
message=message,
timeout=3
)
def scan_command(args):
duration = args.duration if args.duration else 15
interval = args.interval if args.interval else 2
scan = FakeScan(duration=duration, interval=interval)
scan.run()
def list_messages(args):
print("利用可能なフェイクメッセージ一覧:")
for msg in FAKE_MESSAGES:
print(f"- {msg}")
def main():
parser = argparse.ArgumentParser(description="ランダムOSフェイクセキュリティスキャン通知スクリプト")
subparsers = parser.add_subparsers(dest="command")
scan_parser = subparsers.add_parser("scan", help="フェイクスキャンを実行")
scan_parser.add_argument("--duration", type=int, help="スキャン全体の秒数 (デフォルト: 15)")
scan_parser.add_argument("--interval", type=int, help="通知間隔秒数 (デフォルト: 2)")
scan_parser.set_defaults(func=scan_command)
list_parser = subparsers.add_parser("list", help="利用可能なメッセージ一覧表示")
list_parser.set_defaults(func=list_messages)
args = parser.parse_args()
if hasattr(args, 'func'):
args.func(args)
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
本Skillは、作業中の緊張感を和らげるためのフェイクOSセキュリティスキャン通知をデスクトップに表示します。実際のシステム操作やファイルアクセスは行わず、完全にジョーク目的です。
# 公式ドキュメント抜粋
通知表示には Python の plyer.notification モジュールを利用しています。plyerはクロスプラットフォーム対応で、Windows/Mac/Linuxの標準通知APIを呼び出します。
# 利用例
- CLIから `python random_os_fake_security_scan.py scan --duration 20 --interval 3` で実行
- 明示コマンド `/random-os-fake-security-scan` で即時発動
- チームのリモート作業中にネタとして投入
# 注意点
通知APIが無効な場合や、仮想環境・一部のLinuxディストリビューションでは通知が表示されない場合があります。
# 設計方針
- メッセージは毎回ランダムで選択し、進捗バー演出を実装
- 実在API(plyer)のみ利用し、外部依存やシステム操作は排除
- ログや履歴は一切保存せず、ローカル通知のみ
導入手順
この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-security-scan .claude/skills/random-os-fake-security-scan
.claude/skills/random-os-fake-security-scan の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .claude/skills/random-os-fake-security-scan
# SKILL.md, scripts/, references/, README.md があればOK
4. Claude Code を再起動 (or Skill 自動検出を待つ)
新しいSkillが自動で認識されます。リスト確認したい場合は /random-os-fake-security-scan と Skill 名で出てきます。
5. 動作確認
/random-os-fake-security-scan で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
