Claude Code ユーザーが日常でぶつかる悩み
Claude Code を使っていると、思わず「これ…どうにかならない?」と感じる瞬間が多々あります。特に、作業中にふと気を抜いているタイミングで、背後から上司や同僚が近づいてくると、つい画面を隠したくなるものです。開発現場では、集中が切れた瞬間や一息ついたときに、ターミナルやエディタの画面が「遊び」や「検証用」のままになっていることも少なくありません。そんなとき、即座に「業務中です」感を演出できる仕組みが欲しいという声もよく聞かれます。
- 作業中に突然誰かが背後に立つと、ターミナルやエディタの画面を一瞬で“真面目な業務画面”に切り替えたくなる
- 集中が切れて息抜きしているとき、Claude Code の context や session の履歴が画面に残っていて気まずい
- monorepo で複数の package を横断していると、どこで何をしているか分かりづらくなり、覗かれたときの印象が気になる
- onboarding や説明中に、見られたくない作業ログや検証コードがうっかり表示されてしまう
- AI coding workflow の途中で「今は仕事中です」とアピールしたい瞬間があるが、即座に context を切り替える手段がない
通知・演出・OS連携の観点では、こうした「一瞬で業務っぽい画面に切り替えたい」というニーズが根強く、特にClaude Code の柔軟な repository understanding や path management 機能を活かしたい場面で、演出系 Skill の需要が高まっています。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、作業中の画面を一瞬で“業務中”演出に切り替えるパロディ Skill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- AI coding workflow の最中に、指定コマンドやキーワードで即座に「真面目な業務画面」風のダミーウィンドウを表示できる
- repository のどの directory で作業していても、context を損なわずに“ボスキー”演出が発動する
- 毎回ランダムな業務レポート・進捗グラフ・コードレビュー画面風の演出が生成され、見られても安心
- session 再開時や onboarding の説明中にも、不要な履歴や検証ログを一時的に隠すことができる
- Claude Code の path management や repository understanding を活かしつつ、遊び心ある演出を加えられる
GitHub から degit でコマンド1行、Claude Code の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/claude-code/random-os-fake-boss-key .claude/skills/random-os-fake-boss-key実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (CLAUDE.md と組み合わせて)
# /random-os-fake-boss-key
> 今すぐ“真面目な業務画面”に切り替えて
=== 業務レポート: プロジェクト進捗 ===
Repository: /home/user/projects/monorepo
Directory: packages/api/
- コードレビュー進捗: 85%
- テストカバレッジ: 92%
- 本日コミット数: 14
[グラフ: テストカバレッジ推移 (日次)]
[ダミーPDFレポート: "四半期業務実績.pdf" を自動生成中...]
シーン2: monorepo / package 跨ぎ作業時
> /random-os-fake-boss-key
=== 社内ダッシュボード: システム監視 ===
Monorepo: /workspace/my-monorepo
Current package: packages/frontend/
- build 成功率: 100%
- open PR: 3件
- CI status: all green
[グラフ: PR数推移 (週次)]
[ダミーターミナル: "npm run build" ログ表示中...]
シーン3: お遊び的な使い方
> /random-os-fake-boss-key
=== 顧客向けレポート: システム分析 ===
Repository: /home/user/projects/analytics/
Directory: src/report/
- データ取得件数: 12,500
- 最新アップデート: 2024/06/15
[グラフ: 月次アクセス数]
[ダミーウィンドウ: "重要指標レポート.xlsx" オープン中...]
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Claude Code が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | “業務画面”で余計な履歴を一時的に隠し、重要な context だけに集中できる |
発動方式
明示呼び出し (/random-os-fake-boss-key) と、description マッチによる暗黙発動の両方に対応しています。
Skill の中身を全部見せる
.claude/skills/random-os-fake-boss-key/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.claude/skills/random-os-fake-boss-key/
├── SKILL.md
├── scripts/
│ └── fake_boss_key.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/fake_boss_key.py |
ボスキー風ダミー業務画面を即座に表示します |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-boss-key
description: 作業中に“ボスキー”や指定コマンドを押すと、即座に業務画面風のダミーウィンドウをランダム生成して表示します。緊急時や監督者の接近時、作業中断を装いたい場面で発動してください。
---
# 機能概要
random-os-fake-boss-keyは、伝説の「ボスキー」機能を現代の開発環境に再現するスキルです。作業中に特定のコマンドやキーワードで発動すると、即座に“本物の業務画面っぽい”ウィンドウ(例: グラフ付きレポート、ダッシュボード、進捗管理画面)がランダム生成され、背後からの視線をかわします。実際の業務データは使わず、あくまでダミーの演出です。
# 使い方
- 明示呼び出し例: `/random-os-fake-boss-key` または `/skill random-os-fake-boss-key`
- 暗黙発動キーワード例: 「ボスが来た」「急に上司が」「画面を切り替えたい」「サボり防止」など
- 発動後はEscキーやCtrl+Cで元の作業画面に戻ります
# 出力例
```
=== 業務進捗ダッシュボード ===
プロジェクト: Alpha
進捗率: 87%
本日タスク: 4/5 完了
売上グラフ: |||||||||||||
リスク: 低
--------------------------
[レポート出力日時: 2024-06-10 14:22]
```
# 注意点
- 本スキルはあくまでパロディ用途です。実業務データや個人情報は一切表示しません。
- 表示内容は毎回ランダム生成されます。
- ローカル保存や履歴記録は行いません。
- 一部のターミナルやOS環境ではウィンドウ表示が制限される場合があります。
# 参考資料
詳細な設計方針やダミー画面例は references/design_notes.md を参照してください。公式Pythonドキュメント: https://docs.python.org/3/library/curses.html
scripts/fake_boss_key.py
import sys
import random
import time
import argparse
import curses
from datetime import datetime
DASHBOARD_TEMPLATES = [
{
'title': '業務進捗ダッシュボード',
'fields': [
lambda: f'プロジェクト: {random.choice(["Alpha", "Beta", "Gamma", "Omega"])}',
lambda: f'進捗率: {random.randint(60, 99)}%',
lambda: f'本日タスク: {random.randint(2, 8)}/{random.randint(3, 8)} 完了',
lambda: f'売上グラフ: ' + ("|" * random.randint(8, 18)),
lambda: f'リスク: {random.choice(["低", "中", "高"])}',
]
},
{
'title': '営業レポート',
'fields': [
lambda: f'担当者: {random.choice(["佐藤", "鈴木", "田中", "高橋"])}',
lambda: f'本日訪問件数: {random.randint(3, 12)}',
lambda: f'成約数: {random.randint(0, 5)}',
lambda: f'見込顧客数: {random.randint(10, 40)}',
lambda: f'次回アクション: {random.choice(["資料送付", "訪問予定", "フォローコール"])}',
]
},
{
'title': 'システム監視モニター',
'fields': [
lambda: f'CPU使用率: {random.randint(10, 95)}%',
lambda: f'メモリ使用率: {random.randint(20, 90)}%',
lambda: f'ネットワーク: {random.choice(["正常", "遅延", "障害"])}',
lambda: f'アラート: {random.choice(["なし", "1件", "2件"])}',
lambda: f'最終バックアップ: {datetime.now().strftime("%Y-%m-%d %H:%M")}',
]
}
]
FOOTER = lambda: f'[レポート出力日時: {datetime.now().strftime("%Y-%m-%d %H:%M")}]'
HELP_TEXT = """
ボスキー風ダミー業務画面を即座に表示します。
使い方:
python fake_boss_key.py [--duration 秒数] [--template N]
オプション:
--duration 秒数 ダミー画面を表示する秒数 (省略時はEsc/Ctrl+Cで手動終了)
--template N テンプレート番号を指定 (0-2, 省略時はランダム)
"""
def render_dashboard(stdscr, template_idx=None):
curses.curs_set(0)
stdscr.clear()
if template_idx is None:
template = random.choice(DASHBOARD_TEMPLATES)
else:
template = DASHBOARD_TEMPLATES[template_idx % len(DASHBOARD_TEMPLATES)]
maxy, maxx = stdscr.getmaxyx()
y = 2
x = 4
stdscr.addstr(y, x, f'=== {template["title"]} ===', curses.A_BOLD)
y += 2
for field in template['fields']:
stdscr.addstr(y, x, field())
y += 1
y += 1
stdscr.addstr(y, x, '-' * (maxx - 8))
y += 1
stdscr.addstr(y, x, FOOTER())
stdscr.refresh()
def wait_for_exit(stdscr, duration=None):
if duration is not None:
time.sleep(duration)
return
stdscr.nodelay(True)
while True:
try:
c = stdscr.getch()
if c in [27, 3]: # Esc or Ctrl+C
break
time.sleep(0.1)
except KeyboardInterrupt:
break
def main():
parser = argparse.ArgumentParser(description='ランダム業務画面ダミー (ボスキー風)')
parser.add_argument('--duration', type=int, default=None, help='表示秒数 (省略時はEsc/Ctrl+Cで終了)')
parser.add_argument('--template', type=int, default=None, help='テンプレート番号 (0-2)')
parser.add_argument('--list', action='store_true', help='テンプレート一覧を表示')
parser.add_argument('--helptext', action='store_true', help='詳細な使い方を表示')
args = parser.parse_args()
if args.helptext:
print(HELP_TEXT)
sys.exit(0)
if args.list:
for idx, t in enumerate(DASHBOARD_TEMPLATES):
print(f'{idx}: {t["title"]}')
sys.exit(0)
try:
curses.wrapper(render_and_wait, args.template, args.duration)
except Exception as e:
print(f'エラー: {e}', file=sys.stderr)
sys.exit(1)
def render_and_wait(stdscr, template_idx, duration):
render_dashboard(stdscr, template_idx)
wait_for_exit(stdscr, duration)
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
このスキルは、作業中に“ボスキー”や明示コマンドを押すことで、即座に本物の業務画面風ダミーを生成・表示します。目的はパロディ的な演出や緊急時の画面切替体験の再現です。
# 公式ドキュメント抜粋
Python標準のcursesモジュールを用いて、クロスプラットフォームなターミナル描画を実現しています。詳細: https://docs.python.org/3/library/curses.html
# 利用例
- `/random-os-fake-boss-key` コマンドで即座にダミー画面を表示
- 上司の接近時や、作業中断を装いたい際のジョーク用途
# 注意点
- 実データや個人情報は一切利用せず、内容は毎回ランダム生成
- ローカルへの保存や履歴記録は行いません
- 一部のターミナル環境ではcurses描画が制限される場合があります
# 設計方針
シンプルな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-boss-key .claude/skills/random-os-fake-boss-key
.claude/skills/random-os-fake-boss-key の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .claude/skills/random-os-fake-boss-key
# SKILL.md, scripts/, references/, README.md があればOK
4. Claude Code を再起動 (or Skill 自動検出を待つ)
新しいSkillが自動で認識されます。リスト確認したい場合は /random-os-fake-boss-key と Skill 名で出てきます。
5. 動作確認
/random-os-fake-boss-key で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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連携Skillを試してみた結果 にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
