Claude Codeで謎の進捗バーを演出するSkillの作り方ガイド

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

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

Claude Code を日々利用していると、ちょっとした「気の抜ける瞬間」や「作業の緊張感を和らげたいタイミング」が意外と多いものです。特に path management や repository understanding のような真面目な作業が続くと、どうしても画面が単調になりがちです。そんな時、ふとした演出や通知があれば、チームメンバーとの雑談のきっかけや、長時間作業のリフレッシュにもつながります。
また、onboarding や初回 session で緊張感が高まる場面でも、ユーモラスな演出があれば空気が和らぐことも。Claude Code の AI coding workflow は効率的ですが、時には「遊び心」も求められます。

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

こうした「真面目な悩み」とは別に、通知・演出・OS連携系の Skill がもっと「遊び心」や「リラックス」をもたらしてくれたら…と感じる瞬間も多いはずです。

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

一言サマリ: このスキルは、ターミナルやエディタでコマンドを実行するたび、画面端に“謎のOS進捗バー祭り”を発生させ、作業の緊張感を一瞬で崩壊させる演出Skill。

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

  • AI coding workflow の合間に、完全に意味不明な進捗バーが乱入し、作業空間に思わず笑いが生まれる
  • repository understanding や path management の堅い作業をしている最中でも、カオスな演出で空気が和らぐ
  • onboarding や session 再開時の緊張感を一瞬でほぐし、チーム内のコミュニケーションが活発になる
  • monorepo や長時間 context の単調さを、予測不能な演出でリフレッシュできる
  • 「Skill入れてる人」アピールや、同僚の目線を釘付けにするネタとしても使える
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/claude-code/random-os-mysterious-progressbar-festival .claude/skills/random-os-mysterious-progressbar-festival

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。

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


# /random-os-mysterious-progressbar-festival
> セッション開始

[謎のOS進捗バー祭り 開催中]
──────────────────────────────
[バグ撲滅進捗]          [■■■■■■■■      ] 68%
[コーヒー摂取量]        [■■■■■           ] 36%
[脳内会議進行度]        [■■■■■■■■■■■   ] 83%
[README未読率]          [■■■■■■■■■■■■■] 92%
──────────────────────────────
本日の謎進捗バー数: 4
(※進捗内容は完全にランダムです)

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


> packages/api から packages/web へ移動

[謎のOS進捗バー祭り 開催中]
──────────────────────────────
[API仕様理解度]         [■■■■■■■■■     ] 76%
[web側混乱度]           [■■■■■■         ] 42%
[テストカバレッジ幻想]   [■■■■■■■■■■■■ ] 89%
[脳内リポジトリ境界線]   [■■■■           ] 28%
──────────────────────────────
突然現れる謎の進捗バーにより、作業の緊張感が崩壊します

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


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

[謎のOS進捗バー祭り 開催中]
──────────────────────────────
[やる気残量]            [■■■■■■■■      ] 61%
[昼食消化率]            [■■■■■■■■■■■  ] 79%
[Slack未読件数]         [■■■■■■■■■■■■■] 95%
[午後の集中度]          [■■             ] 11%
[意味不明な進捗]        [■■■■■■■■■■■■ ] 88%
──────────────────────────────
進捗バーのテーマも進捗も完全にカオスです

before / after の違い

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

発動方式

明示呼び出し (/random-os-mysterious-progressbar-festival) と暗黙発動 (「進捗バー」「謎のOS演出」などのdescriptionマッチ) の両方に対応。

Skill の中身を全部見せる

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

.claude/skills/random-os-mysterious-progressbar-festival/
├── SKILL.md
├── scripts/
│   └── mysterious_progressbar_festival.py
└── references/
    └── design_notes.md

各ファイルの役割

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

SKILL.md

---
name: random-os-mysterious-progressbar-festival
description: Claude Codeがターミナルコマンド実行やファイル編集時など、作業の進行・通知・演出に関するキーワード(例: progress, notify, bar, status, festival, random, chaos, OS, terminal)を検出した際、または明示的に /random-os-mysterious-progressbar-festival を呼び出した際に発動します。
---

# 機能概要
このSkillは、ターミナルやエディタ上でコマンドを実行するたび、画面端に「謎のOS進捗バー祭り」を自動的に発生させます。進捗バーは「バグ撲滅進捗」「コーヒー摂取量」「脳内会議進行度」など意味不明なテーマがランダムで選ばれ、進捗値も毎回異なります。複数バーが同時に重なって描画され、作業の緊張感を一瞬で崩壊させるカオスな演出を提供します。日常のルーチン作業にユーモアと話題性をプラスし、同僚とのコミュニケーションのきっかけにもなります。

# 使い方
- 明示呼び出し: `/random-os-mysterious-progressbar-festival`
- 暗黙発動: コマンド実行やファイル保存時、「progress」「bar」「festival」「notify」などのキーワードを含む操作で自動発動

# 出力例
```
[バグ撲滅進捗]        [███████████-----] 72%
[コーヒー摂取量]      [█████----------] 32%
[脳内会議進行度]      [█████████-------] 58%
[OSアップデート謎進捗] [█████████████---] 86%
[集中力残量]          [██-------------] 11%
```

# 注意点
- 進捗バーのテーマと進捗値は完全ランダムです
- 実際のOSやプロセスの進行状況とは一切関係ありません
- ローカルには一切データ保存されません
- 長時間の連続実行や大量バー表示は端末の描画負荷に注意

# 参考資料
- 詳細設計・参考: [references/design_notes.md](references/design_notes.md)
- 公式URL: https://ai-note.tech/skills/random-os-mysterious-progressbar-festival

scripts/mysterious_progressbar_festival.py

import argparse
import random
import sys
import time
from typing import List, Tuple

# 進捗バーのテーマ候補
PROGRESS_THEMES = [
    'バグ撲滅進捗',
    'コーヒー摂取量',
    '脳内会議進行度',
    'OSアップデート謎進捗',
    '集中力残量',
    'やる気ゲージ',
    'サボり検知率',
    '無意味な再起動回数',
    'AIとの親密度',
    'タスク消化率',
    '無駄話指数',
    '謎のエラー発生率',
    'ファイル保存成功率',
    'ネットワーク混乱度',
    '脳内BGM再生率',
    'コーディング幸福度',
    '会議脱出進捗',
    '進捗報告虚偽率',
    'OSメンテ祭り度',
    'CPU無駄遣い度'
]

BAR_LENGTH = 20


def random_progressbar(theme: str, percent: int) -> str:
    filled_len = int(BAR_LENGTH * percent / 100)
    bar = '█' * filled_len + '-' * (BAR_LENGTH - filled_len)
    return f"[{theme:<12}] [{bar}] {percent:>3}%"


def generate_random_bars(num_bars: int = 3) -> List[str]:
    themes = random.sample(PROGRESS_THEMES, k=num_bars)
    bars = []
    for theme in themes:
        percent = random.randint(0, 100)
        bars.append(random_progressbar(theme, percent))
    return bars


def display_festival(num_bars: int = None, interval: float = 0.5, cycles: int = 5, animate: bool = True):
    if num_bars is None:
        num_bars = random.randint(3, 6)
    for i in range(cycles):
        bars = generate_random_bars(num_bars)
        sys.stdout.write('\033[2J\033[H')  # 画面クリア&カーソル左上
        for bar in bars:
            print(bar)
        sys.stdout.flush()
        if animate and i < cycles - 1:
            time.sleep(interval)
    print()  # 最後に改行


def list_themes():
    print("利用可能な進捗バーのテーマ一覧:")
    for theme in PROGRESS_THEMES:
        print(f"- {theme}")


def summary():
    print("random-os-mysterious-progressbar-festival: ターミナルに謎の進捗バーをランダム表示するSkillです。\n")
    print(f"テーマ数: {len(PROGRESS_THEMES)}")
    print(f"バー長さ: {BAR_LENGTH}")
    print("明示呼び出し例: python mysterious_progressbar_festival.py run --bars 5 --cycles 8 --interval 0.3\n")
    print("出力例:")
    for bar in generate_random_bars(4):
        print(bar)


def parse_args():
    parser = argparse.ArgumentParser(description="謎のOS進捗バー祭りを開催するスクリプト")
    subparsers = parser.add_subparsers(dest="command", required=True)

    run_parser = subparsers.add_parser("run", help="進捗バー祭りを実行")
    run_parser.add_argument("--bars", type=int, default=None, help="同時に表示するバーの数 (デフォルト: 3-6ランダム)")
    run_parser.add_argument("--cycles", type=int, default=5, help="アニメーション繰り返し回数")
    run_parser.add_argument("--interval", type=float, default=0.5, help="アニメーション間隔(秒)")
    run_parser.add_argument("--no-animate", action="store_true", help="アニメーションせず1回だけ表示")

    subparsers.add_parser("list", help="利用可能テーマ一覧表示")
    subparsers.add_parser("summary", help="Skill概要と出力例表示")
    return parser.parse_args()


def main():
    args = parse_args()
    if args.command == "run":
        display_festival(
            num_bars=args.bars,
            interval=args.interval,
            cycles=1 if args.no_animate else args.cycles,
            animate=not args.no_animate
        )
    elif args.command == "list":
        list_themes()
    elif args.command == "summary":
        summary()
    else:
        print("不正なコマンドです。--help を参照してください。", file=sys.stderr)
        sys.exit(1)

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、ターミナルやエディタ上で作業中に「意味不明な進捗バー」を複数同時に描画し、作業空間をカオスに演出するために設計されました。進捗テーマ・値ともに完全ランダムで、実際の進行状況とは無関係です。

# 公式ドキュメント抜粋
- Python標準ライブラリのみで構築
- argparseによるCLIサブコマンド対応
- 画面クリアやバー描画はANSIエスケープシーケンスで実現

# 利用例
- `/random-os-mysterious-progressbar-festival` で即座に発動
- `python mysterious_progressbar_festival.py run --bars 4 --cycles 7` などコマンドラインからも利用可能

# 注意点
- 実際のOSやプロセス進行度とは一切関係ありません
- 長時間連続実行や大量バー表示は端末の描画負荷に注意してください

# 設計方針
- テーマ・進捗値ともに毎回ランダム生成
- 1回の発動で3~6本のバーを同時描画
- 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-mysterious-progressbar-festival .claude/skills/random-os-mysterious-progressbar-festival

.claude/skills/random-os-mysterious-progressbar-festival の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .claude/skills/random-os-mysterious-progressbar-festival
# SKILL.md, scripts/, references/, README.md があればOK

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

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

5. 動作確認

/random-os-mysterious-progressbar-festival で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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 との連携設計はどうあるべきか?
  • 複数の進捗バーが同時に現れるか?
  • バーのテーマと進捗値が毎回ランダムか?
  • 通知や描画が10-30分で簡単に実装できるか?

実際に Claude Code で試した検証ログは Claude Codeで通知・演出・OS連携Skillを試してみた結果 にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。

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

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

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

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