Claude Codeで仕事中の緊張をほぐす演出スキルの作り方

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

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

Claude Code を日々使っていると、開発ワークフローの中で思わず「またか」と感じる瞬間が多々あります。特に repository understanding や path management まわりの課題は、monorepo・複雑な directory 構造を扱うほど顕著です。しかも、長時間の AI coding workflow を続けていると、context や memory の扱いがどんどん煩雑になっていきます。

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

こうした真面目な悩みの合間に、ふとした瞬間「ちょっと気分を変えたい」「緊張感をほぐしたい」と思うことも。通知や演出系 Skill で作業空間に小さな“遊び”が入ると、意外とリフレッシュできるものです。

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

一言サマリ: このスキルは、作業中に完全無意味な“謎のOSアップデート進捗バー”をランダムに表示し、緊張感を一瞬で脱力させる演出を提供します。

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

  • AI coding workflow の合間に、意味不明な進捗バー演出で気分転換ができる
  • 毎回ランダムな context(例:「やる気パッチ適用中」など)が現れ、予測不能な脱力感を味わえる
  • 進捗バーは100%になっても何も起きず、作業を邪魔しないライトな通知として楽しめる
  • repository understanding や path management のような重いテーマから一瞬距離を置ける
  • onboarding や長時間作業時の“空気の入れ替え”にちょうどいい演出となる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/claude-code/random-os-fake-update-progrebar .claude/skills/random-os-fake-update-progrebar

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。進捗内容や演出は毎回ランダムで、現実的な表示フォーマットを想定しています。

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


# /random-os-fake-update-progrebar
> セッションを開始

[ OSアップデート進捗バー ]
バグ収穫中...  ██████░░░░  60%
やる気パッチ適用中...  ████████░░  80%
怠惰アップグレード中...  ██████████  100%
進捗完了!(特に何も起きません)

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


> packages/api/ に移動して作業再開

[ OSアップデート進捗バー ]
依存性迷子検出中...  ███░░░░░░░░  30%
README 自動生成中...  █████░░░░░░  50%
型安全度アップグレード中...  █████████░░  90%
進捗完了!(特に何も起きません)

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


> ちょっと気分転換したい

[ OSアップデート進捗バー ]
やる気ブースト注入中...  ████░░░░░░  40%
意味不明なパッチ適用中...  ███████░░░░  70%
無意味な最適化中...  ██████████  100%
進捗完了!(特に何も起きません)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Claude Code が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる 作業の合間に進捗バーで気分転換、集中力リセット

発動方式

明示呼び出し (/random-os-fake-update-progrebar) と暗黙発動 (自然言語で「進捗バー」「アップデート」等が含まれる指示) の両方に対応しています。

Skill の中身を全部見せる

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

.claude/skills/random-os-fake-update-progrebar/
├── SKILL.md
├── scripts/
│   └── random_os_fake_update_progrebar.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_fake_update_progrebar.py 謎のOSアップデート進捗バーをランダム表示する無駄スキル
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-fake-update-progrebar
description: ターミナルやエディタでコマンド実行時や明示的な /random-os-fake-update-progrebar 呼び出し時に、毎回異なる“謎のOSアップデート進捗バー”を画面端にランダム表示します。進捗内容は完全無意味で、100%到達時も何も起きません。作業の合間に緊張感を和らげたい時に有効です。
---

# 機能概要
このSkillは、ターミナルやエディタでコマンドを実行するたびに、架空の「OSアップデート進捗バー」を画面端やメニューバー風に一時的に表示します。進捗内容は完全にランダムで、「バグ収穫中」「やる気パッチ適用中」「怠惰アップグレード中」など、意味不明な項目ばかり。進捗が100%になっても何も起きず、作業の緊張感を一瞬で脱力させる“無駄な演出”を提供します。

# 使い方
- 明示呼び出し: `/random-os-fake-update-progrebar` を入力すると即座に進捗バーが表示されます。
- 暗黙発動: `run`, `build`, `test`, `deploy`, `save`, `commit`, `push` など、主要なコマンドやファイル操作時に自動的に発動します。

# 出力例
```
[==>                ] 12% バグ収穫中...
[=======>           ] 38% やる気パッチ適用中...
[============>      ] 67% 怠惰アップグレード中...
[==================>] 100% 仕様の穴を拡張中...
```

# 注意点
- 実際のOSやファイルには一切影響しません。
- 進捗バーは10秒以内に自動で消えます。
- ログや履歴は残さず、ローカル保存もしません。
- 進捗内容や表示位置は毎回ランダムです。

# 参考資料
詳細な設計方針や参考実装例は references/design_notes.md を参照してください。Pythonの標準ライブラリのみで動作し、外部依存はありません。

scripts/random_os_fake_update_progrebar.py

import sys
import time
import random
import argparse
import threading

# ランダムな進捗メッセージ候補
PROGRESS_MESSAGES = [
    'バグ収穫中',
    'やる気パッチ適用中',
    '怠惰アップグレード中',
    '仕様の穴を拡張中',
    'レガシーコードを温存中',
    '依存関係を複雑化中',
    '無駄な最適化を実施中',
    'テストを省略中',
    '謎のパッチを適用中',
    'やる気スイッチを探索中',
    '未定義動作を拡張中',
    '仕様書を紛失中',
    'バグを擬態化中',
    '技術的負債を積立中',
    'コメントを削除中',
    '未来の自分に丸投げ中',
    'エラーを黙殺中',
    'メモリリークを再現中',
    'コピペで量産中',
    '意味不明な警告を生成中'
]

BAR_LENGTH = 20
DISPLAY_DURATION = 10  # 秒


def random_progress_message():
    return random.choice(PROGRESS_MESSAGES)


def build_progress_bar(percent):
    filled = int(BAR_LENGTH * percent // 100)
    empty = BAR_LENGTH - filled
    bar = '[' + '=' * filled + '>' + ' ' * (empty - 1) + ']'
    return bar


def print_progress_bar(percent, message, clear=False):
    bar = build_progress_bar(percent)
    sys.stdout.write(f'\r{bar} {percent:3d}% {message}...')
    sys.stdout.flush()
    if clear:
        sys.stdout.write('\n')


def animate_progress_bar():
    message = random_progress_message()
    percent = 0
    steps = random.randint(6, 12)
    increments = sorted(random.sample(range(5, 100), steps - 1)) + [100]
    last = 0
    start_time = time.time()
    for p in increments:
        for i in range(last, p, max(1, (p - last)//5)):
            print_progress_bar(i, message)
            time.sleep(random.uniform(0.05, 0.15))
        print_progress_bar(p, message)
        last = p
        time.sleep(random.uniform(0.2, 0.7))
        if time.time() - start_time > DISPLAY_DURATION:
            break
    print_progress_bar(100, message, clear=True)
    # バーを消す
    time.sleep(random.uniform(1.5, 3.0))
    sys.stdout.write('\r' + ' ' * (BAR_LENGTH + 30) + '\r')
    sys.stdout.flush()


def run_bar(args):
    animate_progress_bar()


def main():
    parser = argparse.ArgumentParser(
        description='謎のOSアップデート進捗バーをランダム表示する無駄スキル')
    subparsers = parser.add_subparsers(dest='command')

    parser_run = subparsers.add_parser('run', help='進捗バーを即座に表示')
    parser_run.set_defaults(func=run_bar)

    parser_demo = subparsers.add_parser('demo', help='3回連続でデモ表示')
    parser_demo.set_defaults(func=lambda args: [animate_progress_bar() for _ in range(3)])

    args = parser.parse_args()
    if hasattr(args, 'func'):
        args.func(args)
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、作業中に意図的に脱力感を演出するための“無駄な進捗バー”を表示するものです。心理的な緊張緩和や、チーム内でのちょっとしたジョーク用途を想定しています。

# 公式ドキュメント抜粋
Pythonの標準ライブラリ(sys, time, random, argparse)だけで実装されており、外部依存はありません。進捗バーはターミナル互換の環境で動作します。

# 利用例
- `/random-os-fake-update-progrebar` を明示的に呼び出して、会議や作業の合間に表示
- コマンド実行時に自動発動させて、緊張を和らげる演出

# 注意点
このスキルは実務的な意味を一切持たず、進捗バーが100%になっても何も起きません。進捗内容は毎回ランダムで、実在のOSやファイルには一切影響を与えません。履歴やログも残りません。

# 設計方針
- 10秒以内に自動消去し、作業の邪魔にならない
- 進捗内容・表示タイミングは完全ランダム
- コードは100行以上で可読性と拡張性を重視
- 標準出力のみを使用し、外部ライブラリ不使用

導入手順

この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-update-progrebar .claude/skills/random-os-fake-update-progrebar

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

3. ファイル配置確認

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

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

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

5. 動作確認

/random-os-fake-update-progrebar で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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 との連携設計はどうあるべきか?
  • 進捗バーが作業時に毎回違う内容でランダム表示されるか?
  • 100%になっても何も起きないことを確認
  • 通知や演出が冗長すぎず、すぐ消えること

実際に Claude Code で試した検証ログは Claude Codeで謎のOSアップデート進捗バーを表示してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。

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

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

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

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