Claude Code ユーザーが日常でぶつかる悩み
Claude Code を使った開発作業では、日々のルーティンの中で「またこれか」と感じる小さなストレスが積み重なりがちです。特に通知や演出まわりで、作業が単調になったり、思わぬ挙動に戸惑うことも少なくありません。リポジトリ理解や context 設計に追われる一方で、ちょっとした息抜きや気分転換が欲しくなる瞬間もあるでしょう。
- Claude Code がいつの間にか違う directory を見始めて、想定外のファイルを読みに行く
- monorepo で package を跨いだ瞬間、Claude Code が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
こうした「真面目な困りごと」に加え、通知やエラー演出が機械的すぎて、気が抜けてしまう・作業のマンネリ感が強まるという悩みも根強くあります。時には、ユーモアや遊び心が workflow のリセットや集中力回復につながることも。
この Skill が一言でいうと何を解決するか
一言サマリ: 予測不能な“未来予言エラー”で、Claude Code の作業フローに絶妙なゆるさと笑いを注入するSkill。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- 日常化したAI coding workflowに、突如として現れる“謎の未来OSエラー”で作業のマンネリを強制リセット
- 本物のエラー通知と混同しない絶妙な演出で、不安と笑いを同時に提供
- 長時間の repository understanding や path management の合間に、軽く気分転換できる
- onboarding や session 再開時にも、思わず二度見する“未来予言”で会話のアイスブレイクに
- 通知頻度や内容が完全ランダムなので、毎回違う context で楽しめる
GitHub から degit でコマンド1行、Claude Code の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/claude-code/random-os-fake-error-prophecy .claude/skills/random-os-fake-error-prophecy実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示す。Skill が返す出力は推測だが、現実的なフォーマット・現実的な長さで書く。
シーン1: session 開始時 (CLAUDE.md と組み合わせて)
# /random-os-fake-error-prophecy
> Claude Code で新しい session を開始
[Error] 明日、あなたは main.py の8行目で SyntaxError を予言されます。
[Warning] 来週、README.md の typo を3回指摘される未来が見えます。
[Notice] 未来予知: settings.json の path 設定を2回間違えます。
シーン2: monorepo / package 跨ぎ作業時
> packages/utils/ 配下で test 実行
[Error] 近日、packages/api/handlers.py で「哲学的な」例外が発生します。
[Warning] 来月、monorepo の dependency tree が逆走します。
[Notice] 未来予知: packages/common/ で commit コメントが詩的になります。
シーン3: お遊び的な使い方
> 何気なく /random-os-fake-error-prophecy を呼び出す
[Error] あなたの push は3回未来に失敗します。
[Warning] 明後日、コードレビューで「人生とは何か」と問われます。
[Notice] 未来予知: .gitignore を編集し忘れた未来が見えます。
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Claude Code が自動で context を復元、最小プロンプトで再開+未来予言でリフレッシュ |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る+謎の未来エラーで一息 |
| 長時間 workflow | long context で重要箇所が薄まる | ランダムな未来予言で workflow にアクセント |
発動方式
明示呼び出し (/random-os-fake-error-prophecy) と暗黙発動 (description マッチ) の両方に対応。
Skill の中身を全部見せる
.claude/skills/random-os-fake-error-prophecy/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.claude/skills/random-os-fake-error-prophecy/
├── SKILL.md
├── scripts/
│ └── random_os_fake_error_prophecy.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Claude Code がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/random_os_fake_error_prophecy.py |
未来予言型OSエラーメッセージをランダム表示するスキル |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-fake-error-prophecy
description: このSkillは、Claude Codeでターミナル操作やエディタコマンド実行時などの作業フロー中に、ランダムな“未来予言型OSエラーメッセージ”を表示します。triggerType: always/semantic-or-explicit。明示コマンド /random-os-fake-error-prophecy でも発動。
---
# 機能概要
`random-os-fake-error-prophecy`は、作業中に突如として“未来を予言するOS風エラーメッセージ”をランダム表示するSkillです。実用性はありませんが、日々のコーディング作業に絶妙な不安や笑いをもたらし、マンネリ化した作業リズムをリセットします。表示されるメッセージは「明日3回pushに失敗します」「警告: 来週GitHubが逆行します」など、根拠のない予言ばかり。実際のエラーと混同しない演出で、作業の邪魔にならない頻度・タイミングで発動します。
# 使い方
- 明示的な呼び出し: `/random-os-fake-error-prophecy` コマンドを実行
- 暗黙発動: ターミナルやエディタで`git push`、`npm install`、`code`、`make`などのコマンド実行時や、ファイル保存・ビルド・デバッグなどの操作時に自動発動
# 出力例
```
エラー: 明日あなたは3回pushに失敗します
警告: 来週GitHubが逆行します
注意: コードレビューで哲学的質問を受けます
予言: 2日後にnpm installが謎の失敗をします
警告: あなたのエディタが突然詩的になります
```
# 注意点
- 本Skillは実際のエラー通知ではありません。内容は完全なフィクションです。
- メッセージはランダム生成され、実際の作業やリポジトリには影響しません。
- ローカルに履歴や個人情報は保存しません。
- 頻度や内容はカスタマイズ可能です。
# 参考資料
- references/design_notes.md を参照
- 公式Python randomモジュール: https://docs.python.org/3/library/random.html
scripts/random_os_fake_error_prophecy.py
import argparse
import random
import sys
import datetime
import os
from typing import List, Optional
PROPHECY_TEMPLATES = [
"エラー: 明日あなたは{count}回pushに失敗します",
"警告: 来週GitHubが逆行します",
"注意: コードレビューで{topic}について哲学的質問を受けます",
"予言: {days}日後にnpm installが謎の失敗をします",
"警告: あなたのエディタが突然{weirdness}になります",
"エラー: {date}にmake buildが未定義のエラーを返します",
"注意: {days}日後、VSCodeが自動的に再起動します",
"警告: 来週、git pullで{oddity}が発生します",
"予言: あなたのリポジトリに{number}個の未解決issueが現れます",
"エラー: {date}、デバッグ中に{event}が発生します"
]
TOPICS = [
"変数命名", "設計思想", "テスト戦略", "バグの存在意義", "型システムの哲学"
]
WEIRDNESS = [
"詩的", "逆再生", "色覚テストモード", "AI化", "暗号化"
]
ODDITIES = [
"時空の歪み", "未定義の警告", "哲学的分岐", "謎の競合", "幽霊コミット"
]
EVENTS = [
"タイムゾーンが消失", "変数が自動で消去", "コメントが詩になる", "関数名がシャッフル", "設定ファイルが消失"
]
HISTORY_FILE = os.path.expanduser("~/.random_os_fake_error_prophecy_history")
def generate_prophecy() -> str:
template = random.choice(PROPHECY_TEMPLATES)
now = datetime.datetime.now()
count = random.randint(1, 5)
days = random.randint(1, 7)
date = (now + datetime.timedelta(days=random.randint(1, 14))).strftime("%Y-%m-%d")
topic = random.choice(TOPICS)
weirdness = random.choice(WEIRDNESS)
oddity = random.choice(ODDITIES)
event = random.choice(EVENTS)
number = random.randint(1, 20)
prophecy = template.format(
count=count,
days=days,
date=date,
topic=topic,
weirdness=weirdness,
oddity=oddity,
event=event,
number=number
)
return prophecy
def print_prophecy():
prophecy = generate_prophecy()
print(prophecy)
append_history(prophecy)
def append_history(prophecy: str):
try:
with open(HISTORY_FILE, 'a', encoding='utf-8') as f:
timestamp = datetime.datetime.now().isoformat()
f.write(f"[{timestamp}] {prophecy}\n")
except Exception:
pass # 履歴保存失敗は無視
def list_history(limit: Optional[int] = 10):
if not os.path.exists(HISTORY_FILE):
print("履歴はありません。")
return
with open(HISTORY_FILE, 'r', encoding='utf-8') as f:
lines = f.readlines()
lines = lines[-limit:] if limit else lines
for line in lines:
print(line.strip())
def summary_history():
if not os.path.exists(HISTORY_FILE):
print("履歴はありません。")
return
with open(HISTORY_FILE, 'r', encoding='utf-8') as f:
lines = f.readlines()
total = len(lines)
topics = {}
for line in lines:
for t in TOPICS:
if t in line:
topics[t] = topics.get(t, 0) + 1
print(f"発行された予言エラー数: {total}")
print("哲学的質問の内訳:")
for t, cnt in topics.items():
print(f" {t}: {cnt}回")
def parse_args():
parser = argparse.ArgumentParser(description="未来予言型OSエラーメッセージをランダム表示するスキル")
subparsers = parser.add_subparsers(dest='command')
parser_log = subparsers.add_parser('log', help='新しい予言エラーメッセージを表示')
parser_list = subparsers.add_parser('list', help='過去の予言エラーメッセージ履歴を表示')
parser_list.add_argument('-n', '--num', type=int, default=10, help='表示件数')
parser_summary = subparsers.add_parser('summary', help='予言エラー履歴のサマリーを表示')
return parser.parse_args()
def main():
args = parse_args()
if args.command == 'log' or args.command is None:
print_prophecy()
elif args.command == 'list':
list_history(args.num)
elif args.command == 'summary':
summary_history()
else:
print("不明なコマンドです。--help を参照してください。")
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
`random-os-fake-error-prophecy`は、作業リズムの中に“根拠のない未来予言エラー”を挿入し、ユーザーに笑いや意外性を提供することを目的としています。実用性はなく、純粋なエンタメ要素です。
# 公式ドキュメント抜粋
- Python random: https://docs.python.org/3/library/random.html
- argparse: https://docs.python.org/3/library/argparse.html
# 利用例
- ターミナルやエディタ操作時に自動発動
- /random-os-fake-error-prophecy コマンドで明示呼び出し
- 履歴やサマリー表示で“未来予言”の傾向を確認
# 注意点
- 本Skillは実際のエラー通知と混同しないよう、現実には存在しない内容・表現を採用しています。
- ローカル保存される履歴はユーザーのホームディレクトリ配下で、個人情報や実作業内容は記録しません。
# 設計方針
- 予言内容・タイミングは完全ランダム
- 履歴・サマリー機能で“予言”の蓄積も楽しめる設計
- 実在API・標準ライブラリのみ利用し、外部依存を排除
導入手順
この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-error-prophecy .claude/skills/random-os-fake-error-prophecy
.claude/skills/random-os-fake-error-prophecy の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .claude/skills/random-os-fake-error-prophecy
# SKILL.md, scripts/, references/, README.md があればOK
4. Claude Code を再起動 (or Skill 自動検出を待つ)
新しいSkillが自動で認識されます。リスト確認したい場合は /random-os-fake-error-prophecy と Skill 名で出てきます。
5. 動作確認
/random-os-fake-error-prophecy で呼び出すか、自然言語で発動条件にマッチする指示を出すと 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で未来予言エラーを楽しみながら使ってみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Claude Code 公式ドキュメント と、本シリーズ「Claude Codeを便利にするSkill提案」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
