Claude Codeで作業前の緊張感を演出する偽OS起動画面Skillの構築手順

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

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

Claude Code を使っていると、日々の作業の中でちょっとした「間」が味気なく感じたり、無機質な起動体験に飽きてしまうことがある。特に、毎回エディタやターミナルを開くたびに、直前までの流れを思い出す前に一瞬手が止まる、そんな瞬間が意外と多い。

また、通知や演出系の機能が少ないため、routine な作業開始時に気分転換できる仕掛けが欲しいと感じることもある。特に以下のような悩みが挙がりやすい:

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

こうした「作業の切り替え」や「onboarding」時の無機質さを、ちょっとした演出で和らげたいというニーズが見えてくる。

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

一言サマリ: ターミナルやエディタを起動するたびにSkill。

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

  • 作業開始時に「偽OS起動画面」のテキスト演出が毎回違う内容で現れ、routine な AI coding workflow の気分転換になる
  • monorepo や大規模な repository でも、起動演出を通じて context の切り替えや directory 構造の認識リセットに役立つ
  • onboarding や session 再開時の「始まりの儀式」として、repository understanding のモチベーションアップに寄与
  • path management や context 復元のタイミングで、無駄な緊張感や未来感を演出し、作業の切り替えを気持ちよく開始できる
  • 毎回違うテキスト演出で、Claude Code の起動体験に遊び心を加えられる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/claude-code/random-os-startup-movie .claude/skills/random-os-startup-movie

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。

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


# /random-os-startup-movie

[OS: QuantumShell 4.7 (Limited Prototype)]
-------------------------------
起動プロセスを初期化中...
ビットを配置しています [██████          ] 32%
AIコアを目覚めさせています...
リポジトリ context を同期中...
repository: /home/user/myrepo
-------------------------------
ようこそ、未来の開発者へ。

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


# /random-os-startup-movie

[Antigravity 3000 - Package Boot Sequence]
-----------------------------------
/packages/api/ ディレクトリを解析中...
進捗: [██████████      ] 63%
モジュール "hyperlogic" をロード中...
repository understanding: monorepo 構造を認識
directory: packages/ui/
AI memory: context を再構築しています
-----------------------------------
開発セッションを開始します。

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


# /random-os-startup-movie

[Codex Limited Edition 起動...]
-------------------------------
AIを目覚めさせています...
意味不明な進捗バー: [▁▂▃▄▅▆▇█] 42%
「ビットを再配置中」
repository: /Users/sample/project
long context 対応モード: ON
-------------------------------
Ready for absurd productivity.

before / after の違い

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

発動方式

明示呼び出し (/random-os-startup-movie) と暗黙発動 (description マッチ) の両方に対応。

Skill の中身を全部見せる

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

.claude/skills/random-os-startup-movie/
├── SKILL.md
├── scripts/
│   └── random_os_startup_movie.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_startup_movie.py 毎回異なる架空OSの起動画面をテキストアニメーションで表示するスキル
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-startup-movie
description: ターミナルやエディタの起動、または /random-os-startup-movie コマンド実行時に、毎回異なる“架空OSの起動画面”をテキストアニメーションとして表示します。発動条件は『起動』『open』『start』『launch』などのキーワード検知、または明示的なSkill呼び出しです。
---

# 機能概要
このSkillは、ターミナルやエディタの起動時、または明示的なコマンド実行時に、毎回異なる“架空OS起動画面”をテキストアニメーションとして表示します。『Windows 11.5』『Antigravity 3000』『Codex Limited Edition』など、実在しないOS名や、意味不明な進捗バー、『AIを目覚めさせています』といった怪しい演出を自動生成。作業前の一瞬に、ありえない未来感と謎の緊張を演出し、実用性ゼロの“無駄な儀式”を楽しみたい方に最適です。

# 使い方
- 明示呼び出し: `/random-os-startup-movie` を実行
- 暗黙発動: ターミナル/エディタの起動、または『start』『open』『launch』『起動』等のキーワードを含む操作時に自動実行

# 出力例
```
[Codex Limited Edition OS] 起動中...
-------------------------------
| █▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ | 12%
| モジュールを量子展開中
| ビットを配置中...
| AIを目覚めさせています
-------------------------------
System Ready. Welcome, Operator.
```

# 注意点
- 実用的な機能はありません
- 出力は毎回ランダム生成、ローカル保存や履歴機能はありません
- 既存のOSやシステムに影響は与えません
- 除外パス: システムクリティカルなスクリプトや自動化バッチでは発動しません

# 参考資料
- [references/design_notes.md](references/design_notes.md) に設計方針や利用例を記載
- 公式URL: https://ai-note.tech/skills/random-os-startup-movie

scripts/random_os_startup_movie.py

import sys
import time
import random
import argparse

FAKE_OS_NAMES = [
    'Windows 11.5', 'Antigravity 3000', 'Codex Limited Edition', 'QuantumOS X',
    'NeuralVerse 2.0', 'Hypervisor Ultra', 'DreamShell', 'BitSynth Prime',
    'NanoKernel 9', 'PlasmaGate', 'VoidOS', 'AI-Genesis', 'Simulacrum OS',
    'MetaFrame', 'InfinityNode', 'ChronOS', 'SpectraOS', 'Hyperloop OS',
    'Phantom Kernel', 'Singularity Lite'
]

PROGRESS_ACTIONS = [
    'ビットを配置中', 'AIを目覚めさせています', '量子メモリを初期化中',
    'プロトコルを同期中', '仮想空間を展開中', 'モジュールを量子展開中',
    'パラメータを乱数化中', 'シミュレーションを起動', 'アルゴリズムを最適化',
    'ロジックゲートを再構成中', 'セキュリティホログラムを生成',
    '未知のデバイスを認識中', 'エントロピーを注入',
    'メタデータを暗号化', '未知のエラーを検出', '仮想人格をロード',
    '時空間キャッシュを初期化', 'ノードを再配線', 'ブラックボックスを起動',
    'パケットを転送', 'AIコアを冷却', 'オーバークロック中',
    'システム境界を拡張', 'サブプロセスを増殖', '未知のOSと通信中'
]

WELCOME_MESSAGES = [
    'System Ready. Welcome, Operator.',
    '起動完了。ようこそ、管理者様。',
    'Initialization complete. Awaiting input.',
    'All systems nominal. Proceed.',
    '準備完了。新しいセッションを開始します。',
    'Access granted. Terminal unlocked.',
    'Simulation loaded. Entering mainframe.',
    'セキュアモードで起動しました。',
    '全プロトコル正常。操作をどうぞ。',
    'Ready for your commands.'
]

def random_os_name():
    return random.choice(FAKE_OS_NAMES)

def random_progress_action():
    return random.choice(PROGRESS_ACTIONS)

def random_welcome():
    return random.choice(WELCOME_MESSAGES)

def generate_progress_bar(progress, bar_length=22):
    filled = int(bar_length * progress // 100)
    bar = '█' * filled + '▒' * (bar_length - filled)
    return f'| {bar} | {progress}%'

def print_startup_movie(sleep_time=0.15, fast=False):
    os_name = random_os_name()
    print(f'[{os_name}] 起動中...')
    print('-' * 31)
    progress = 0
    actions = random.sample(PROGRESS_ACTIONS, k=4)
    for i, action in enumerate(actions):
        increment = random.randint(10, 35)
        progress = min(progress + increment, 100)
        print(generate_progress_bar(progress))
        print(f'| {action}')
        if not fast:
            time.sleep(sleep_time * (1 + random.random()))
    print('-' * 31)
    print(random_welcome())

def list_os_names():
    print('利用可能な架空OS名一覧:')
    for name in FAKE_OS_NAMES:
        print(f'- {name}')

def list_actions():
    print('進捗アクション例:')
    for action in PROGRESS_ACTIONS:
        print(f'- {action}')

def main():
    parser = argparse.ArgumentParser(
        description='毎回異なる架空OSの起動画面をテキストアニメーションで表示するスキル')
    subparsers = parser.add_subparsers(dest='command')

    parser_run = subparsers.add_parser('run', help='架空OS起動画面を表示')
    parser_run.add_argument('--fast', action='store_true', help='アニメーションを高速化')

    parser_list_os = subparsers.add_parser('list-os', help='架空OS名一覧を表示')
    parser_list_actions = subparsers.add_parser('list-actions', help='進捗アクション一覧を表示')

    args = parser.parse_args()
    if args.command == 'run' or args.command is None:
        try:
            print_startup_movie(fast=(getattr(args, 'fast', False)))
        except KeyboardInterrupt:
            print('\n[中断されました]')
            sys.exit(1)
    elif args.command == 'list-os':
        list_os_names()
    elif args.command == 'list-actions':
        list_actions()
    else:
        parser.print_help()

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
このSkillは、ユーザーがターミナルやエディタを起動するたびに、毎回異なる“架空OSの起動画面”をテキストアニメーションとして表示することで、作業前の一瞬にユーモアや未来感を演出します。実用性はほぼゼロですが、日々の開発や作業の“儀式”として楽しめる設計です。

# 公式ドキュメント抜粋
- Python標準ライブラリのみ使用し、外部依存を排除
- argparseでCLIサブコマンド・オプションを実装
- 毎回ランダム生成されるため、出力の再現性はありません

# 利用例
- ターミナルのプロファイル起動時に自動実行
- /random-os-startup-movie コマンドで手動発動
- VSCode等のエディタ拡張と連携して“起動演出”を差し込む

# 注意点
- 実在のOSやシステムには一切影響しません
- ログ保存や履歴機能はありません
- システムクリティカルな自動化スクリプトでは発動しない設計です

# 設計方針
- 完全な“無駄演出”を追求し、実用性より体験性を重視
- テキストアニメーションはシンプルながらも毎回違う内容に
- コードは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-startup-movie .claude/skills/random-os-startup-movie

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

3. ファイル配置確認

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

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

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

5. 動作確認

/random-os-startup-movie で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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 との連携設計はどうあるべきか?
  • 起動時に毎回テキスト演出がランダム生成されるか?
  • OS名や進捗内容が本当に現実離れしているか?
  • 実用性がほぼゼロであることを逆手に workflow の切れ目として活用できるか?

実際に Claude Code で試した検証ログは Claude Codeで偽OS起動画面を毎回変えてみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。

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

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

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

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