Codexで謎のOS通知を活用して作業モチベーションを刺激する方法

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

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

AIコーディングワークフローにどっぷり浸かっていると、集中力が切れたり、リポジトリ操作に飽きてしまう瞬間が意外と多く訪れます。特にCodexを使っていると、contextやrepo構造の把握、長時間作業によるstale contextの発生など、技術的な課題と並行して「気分転換」や「モチベーション維持」にも工夫が必要です。そんな中、ふとした瞬間に気の抜けた通知が来ることで、逆にリフレッシュできることも。

  • Codex が context を見失って違う場所のコードを参照する
  • monorepo で package を跨いだ瞬間、Codex が repo 構造を忘れる
  • session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
  • 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
  • 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる

さらに、集中しすぎて気が滅入ったり、進捗ゼロの状態が続くときは、何かしらの「空気を変える仕掛け」が欲しくなります。通知・演出・OS連携で、意図せず笑ってしまうような体験が求められる場面も。

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

一言サマリ: あなたが作業中Skill。

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

  • 作業が停滞しがちな長時間のAI coding workflow中でも、唐突なOS通知で気分転換できる
  • repository understandingやonboarding時の緊張感を、無駄に深い偽モチベ格言で和らげる
  • monorepoや複雑なdirectory構造でcontextが詰まった瞬間に、思わず笑ってしまう演出が入る
  • Codexのpath managementやcontext維持に疲れた時、あえて無意味な通知で頭をリセットできる
  • AI coding workflowの「間」をエンタメ化し、同僚とのコミュニケーションのきっかけにもなる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/random-os-motivational-quote-notifier .agents/skills/random-os-motivational-quote-notifier

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

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

シーン1: session 開始時 (プロジェクト初動で)


# /skills menu or random-os-motivational-quote-notifier mention
> 今日から新しいリポジトリで開発を始めます

[OS通知]
「本日もバグに感謝せよ」
- あなたのコードは、今日も未知なる進化を遂げます。

[Codex]
random-os-motivational-quote-notifier: 新しいモチベーション格言をデスクトップに通知しました。

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


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

[OS通知]
「進捗ゼロ、それもまた進化」
- 何も変わらない日々が、やがて大きな context となる。

[Codex]
random-os-motivational-quote-notifier: 今回の格言は packages/web/ で発動しました。

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


> 今日はやる気が出ないので、何かモチベをください

[OS通知]
「コードは寝かせて美味しくなる」
- 今は何もしない勇気も大切です。

[Codex]
random-os-motivational-quote-notifier: 偽モチベ格言をランダム表示しました。

before / after の違い

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

発動方式

明示呼び出し (/skills menu or $skill-name mention) と暗黙発動 (description マッチ) の両方に対応。

Skill の中身を全部見せる

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

.agents/skills/random-os-motivational-quote-notifier/
├── SKILL.md
├── scripts/
│   └── random_os_motivational_quote_notifier.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/random_os_motivational_quote_notifier.py 謎のOSモチベーション格言をランダムに通知します。
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: random-os-motivational-quote-notifier
description: 作業の停滞、進捗ゼロ、やる気低下などのキーワードや、/skills menu から明示的に呼び出された際に発動。OS通知で謎のモチベーション格言をランダム表示し、気分転換や話題提供を狙います。
---

# 機能概要
本Skillは、作業中や進捗が停滞した際などに、唐突にデスクトップOS通知で『謎のOS偽モチベーション格言』をランダム表示します。格言は「進捗ゼロ、それもまた進化」「本日もバグに感謝せよ」「コードは寝かせて美味しくなる」など、やけに的外れだったり、無駄に深そうな内容です。進捗が出ない時や気分転換が必要な時、周囲の同僚も困惑するようなエンタメ通知を体験できます。

# 使い方
- 明示呼び出し例: `/skills menu` から本Skillを選択、または `$random-os-motivational-quote-notifier` をメンション
- 暗黙発動キーワード例: 「進捗ゼロ」「やる気が出ない」「バグ」「停滞」「気分転換」などの文脈を検知

# 出力例
```
[OS通知] 本日もバグに感謝せよ
[OS通知] 進捗ゼロ、それもまた進化
[OS通知] コードは寝かせて美味しくなる
[OS通知] OSは気まぐれ、あなたも気まぐれ
[OS通知] 仕様変更、それは運命のいたずら
```

# 注意点
- OS通知API(Python: plyer)を利用。通知はローカル端末でのみ表示され、リモート環境や一部Linux環境では動作保証外です。
- 格言はスクリプト内で管理されており、ユーザーによる追加・編集は要スクリプト修正。
- バックグラウンド常駐や定期通知機能はありません(明示呼び出し/トリガーのみ)。

# 参考資料
- references/design_notes.md を参照
- plyer公式: https://github.com/kivy/plyer
- Python標準ライブラリ: random, argparse

scripts/random_os_motivational_quote_notifier.py

import random
import argparse
import sys
import time
from plyer import notification

QUOTES = [
    "本日もバグに感謝せよ",
    "進捗ゼロ、それもまた進化",
    "コードは寝かせて美味しくなる",
    "OSは気まぐれ、あなたも気まぐれ",
    "仕様変更、それは運命のいたずら",
    "バグは友達、怖くない",
    "エラーは成長の証",
    "リファクタ、それは心の洗濯",
    "動かないコード、それもまた美しい",
    "やる気が出ない、それもまた人生",
    "コミットは愛、プッシュは勇気",
    "レビューは鏡、バグは影",
    "進捗ダメです、それもまた進化",
    "TODOは未来への贈り物",
    "動揺こそが進化の源泉"
]

TITLE = "謎のOSモチベーション格言"


def show_notification(quote: str):
    try:
        notification.notify(
            title=TITLE,
            message=quote,
            timeout=8
        )
    except Exception as e:
        print(f"[ERROR] 通知の表示に失敗しました: {e}", file=sys.stderr)


def random_quote() -> str:
    return random.choice(QUOTES)


def list_quotes():
    print("--- 登録済み格言一覧 ---")
    for idx, q in enumerate(QUOTES, 1):
        print(f"{idx}. {q}")


def notify_command(args):
    quote = random_quote()
    print(f"[OS通知] {quote}")
    show_notification(quote)


def list_command(args):
    list_quotes()


def summary_command(args):
    print(f"登録格言数: {len(QUOTES)}")
    print(f"例: {random.choice(QUOTES)}")


def parse_args():
    parser = argparse.ArgumentParser(
        description="謎のOSモチベーション格言をランダムに通知します。"
    )
    subparsers = parser.add_subparsers(dest="command", required=True)

    notify_parser = subparsers.add_parser("notify", help="ランダムな格言をOS通知で表示")
    notify_parser.set_defaults(func=notify_command)

    list_parser = subparsers.add_parser("list", help="格言一覧を表示")
    list_parser.set_defaults(func=list_command)

    summary_parser = subparsers.add_parser("summary", help="格言数とサンプルを表示")
    summary_parser.set_defaults(func=summary_command)

    return parser.parse_args()


def main():
    args = parse_args()
    args.func(args)


if __name__ == "__main__":
    main()

references/design_notes.md

# 概要
本Skillは、作業の停滞や気分転換が必要なタイミングで、OSの通知機能を活用し、ランダムな『謎のモチベーション格言』を表示します。エンタメ性と話題作りを重視しつつ、導入・削除が容易なシンプル設計です。

# 公式ドキュメント抜粋
- plyer: クロスプラットフォームな通知APIを提供。https://github.com/kivy/plyer
- Python random, argparse: 標準ライブラリで依存性最小化。

# 利用例
- `/skills menu` から明示呼び出し
- 作業進捗が停滞した際の気分転換
- チーム内の話題提供やアイスブレイク

# 注意点
- 通知はローカル端末でのみ表示。SSHやリモートデスクトップ越しでは不可。
- 格言の追加・編集はスクリプト内で対応。
- バックグラウンド常駐型ではないため、定期通知には未対応。

# 設計方針
- 必要十分な機能・コード量に留め、導入・削除が容易
- エラー時は標準エラー出力に明示
- クロスプラットフォーム性を考慮しつつ、主要OSでの動作を優先

導入手順

このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Codex はファイル配置後に再起動するだけで自動認識します。

1. 前提

  • Node.js v16 以上 (degit 実行に必要)
  • Codex がローカルで動いていること

2. degit でフォルダ取得

プロジェクトのルートで以下のコマンドを実行します。

npx degit aazutaku/ai-note/codex/random-os-motivational-quote-notifier .agents/skills/random-os-motivational-quote-notifier

.agents/skills/random-os-motivational-quote-notifier の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .agents/skills/random-os-motivational-quote-notifier
# SKILL.md, scripts/, references/, README.md があればOK

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

新しいSkillが自動で認識されます。リスト確認したい場合は /skills menu or $skill-name mention と Skill 名で出てきます。

5. 動作確認

/skills menu or $skill-name mention で呼び出すか、自然言語で発動条件にマッチする指示を出すと Skill が動きます。期待される出力イメージは「実行したらこうなる」セクションを参照してください。

こんな瞬間に便利

  • session 開始時: 前回までの repo 把握を Codex に一発で復元させたい
  • monorepo 移動時: packages を跨いだ瞬間に context を切り替えたい
  • onboarding 時: 新しい repo を Codex に把握させ、こちらが 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 コードを拾ってしまう可能性
  • Codex 固有の引っかかり: description のセマンティックマッチ精度が要件次第
  • 発動しないケース: description が漠然 / 他の Skill が優先 / git管理外 directory

試す前に確かめたいこと

この Skill を実運用に投入する前に確かめたい問いを並べる:

  • 実 repo での token 消費は許容範囲か?
  • monorepo (packages 多数) で安定して動くか?
  • stale context にならず、長時間 workflow でも有効か?
  • AGENTS.md との連携設計はどうあるべきか?
  • 通知表示が確実に出ること、格言がランダムで切り替わること、短時間で導入・削除できるか?

実際に Codex で試した検証ログは Codexで謎の偽モチベ通知を爆誕させてみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Codex 公式ドキュメント と、本シリーズ「Codexを使いこなすSkillアイデア」の他記事も参照のこと。

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

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

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

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