Codexでコミット時に作業気分を表示してチームの雰囲気を和らげる方法

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

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

AI Coding Workflow の現場では、開発サイクルを回すたびに思わず「またか…」と感じる瞬間が多々あります。特に Codex を活用していると、repository understanding や path management の煩雑さ、context の再説明など、地味にストレスが溜まりがちです。さらに、真面目な開発フローが続くと、チームや個人の気分も単調になりがち。通知や演出系の Skill があれば、こうした日常にちょっとした変化を加えられるのに…と感じたことはありませんか。

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

通知・演出・OS連携カテゴリの Skill が不足していることで、こうした「作業の合間の気分転換」や「チームの雰囲気づくり」に一工夫加えたい、というニーズも見逃せません。

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

一言サマリ: コミットするたびにSkill。

このSkillを導入すると、コミット操作のたびに「本日の作業気分天気予報」がターミナルに自動表示されます。完全ランダムな天気コメントで、開発現場に遊び心をプラス。具体的なメリットは以下の通りです。

  • コミット時に毎回違う気分天気コメントが現れ、単調なAI coding workflowに変化と笑いを生む
  • 長時間の session や onboarding、monorepo作業でも、ちょっとした通知演出でチームの雰囲気が和む
  • Skill の導入が簡単で、環境構築不要・テキスト通知のみのため、どんな repository でもすぐ使える
  • repository understanding や path management で詰まりがちなタイミングにも、気分転換のきっかけになる
  • Codex の context が長くなりがちな現場でも、短い通知で邪魔にならず、作業リズムを保てる
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/codex/commit-mood-forecast .agents/skills/commit-mood-forecast

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

以下は、Codex でこの Skill を導入した場合の出力イメージです。

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


# /skills menu or commit-mood-forecast mention
> 今日から新しいリポジトリで開発を始めます

[commit-mood-forecast] 本日の作業気分天気予報
────────────────────────────
☀️ 快晴:今日は絶好調!新しい directory もサクサク進みそうです。
────────────────────────────
(コミット操作時に自動で表示)

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


> packages/api/ から packages/frontend/ に移動して作業

[commit-mood-forecast] 本日の作業気分天気予報
────────────────────────────
🌥️ 曇り:ちょっと迷い気味。repo の構造を再確認してみましょう。
────────────────────────────
(コミット時にpackageごとに違うコメントが登場)

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


> 今日はやる気ゼロでコミット

[commit-mood-forecast] 本日の作業気分天気予報
────────────────────────────
⚡ 雷:やる気ゼロ!無理せず休憩も大事です。
────────────────────────────
(気分で毎回変化、ちょっとした話題に)

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し Codex が自動で context を復元、最小プロンプトで再開
monorepo 移動 違う package のコードを参照しがち directory boundary を意識して必要な範囲だけ見る
長時間 workflow long context で重要箇所が薄まる コミットごとに短い通知でリフレッシュ、作業リズムを維持

発動方式

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

Skill の中身を全部見せる

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

.agents/skills/commit-mood-forecast/
├── SKILL.md
├── scripts/
│   └── commit_mood_forecast.py
└── references/
    └── design_notes.md

各ファイルの役割

ファイル 役割
SKILL.md Skill本体。frontmatter (name/description) と指示本文。Codex がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します
scripts/commit_mood_forecast.py commit-mood-forecast: コミット時に気分天気予報を表示
references/design_notes.md 概要 をまとめた参考資料

SKILL.md

---
name: commit-mood-forecast
description: Gitでコミット操作時、または/skills menuやcommit-mood-forecastの明示呼び出し時に発動。コミット直後のターミナルへ、完全ランダムな“作業気分天気予報”を短く表示します。
---

# 機能概要
commit-mood-forecastは、Gitのコミット操作時に、ターミナルへ“本日のあなたの作業気分天気予報”をランダムで表示するSkillです。天気風のアイコンと共に「快晴:今日は絶好調」「曇り:ちょっと迷い気味」「雷:やる気ゼロ」など、毎回異なるコメントが出現。開発フローに遊び心を添え、チームや個人の気分転換・雰囲気づくりに役立ちます。実用性はありませんが、真面目な作業にちょっとした脱力感をプラスします。

# 使い方
- 明示呼び出し例: `/skills menu` から `commit-mood-forecast` を選択、または `$ commit-mood-forecast` を直接実行。
- 暗黙発動: Gitで`commit`コマンド実行時(例: `git commit -m "fix bug"`)に自動で発動。

# 出力例
```
[commit-mood-forecast]
本日の作業気分天気予報:
  ☀️ 快晴!今日は絶好調。どんどん進めましょう。
---
[commit-mood-forecast]
本日の作業気分天気予報:
  ☁️ 曇り。ちょっと迷い気味。無理せず進めてください。
---
[commit-mood-forecast]
本日の作業気分天気予報:
  ⚡ 雷。やる気ゼロ…コーヒーでも飲みましょう。
```

# 注意点
- 出力はターミナル標準出力のみ。ファイルやリモート通知は行いません。
- メッセージは毎回ランダム、内容は短く抑えています。
- ローカル環境で即利用可能、追加の依存パッケージ不要。
- 実用的な通知や履歴保存は行いません。

# 参考資料
- [Git公式ドキュメント](https://git-scm.com/doc)
- references/design_notes.md に設計方針や活用例を記載

scripts/commit_mood_forecast.py

import sys
import argparse
import random
import datetime

MOODS = [
    {
        'icon': '☀️',
        'weather': '快晴',
        'message': '今日は絶好調。どんどん進めましょう。'
    },
    {
        'icon': '☁️',
        'weather': '曇り',
        'message': 'ちょっと迷い気味。無理せず進めてください。'
    },
    {
        'icon': '🌧️',
        'weather': '雨',
        'message': '集中力が散漫かも?気分転換も大事。'
    },
    {
        'icon': '🌪️',
        'weather': '突風',
        'message': 'アイデアが渦巻いています。勢いで進め!'
    },
    {
        'icon': '⛈️',
        'weather': '雷',
        'message': 'やる気ゼロ…コーヒーでも飲みましょう。'
    },
    {
        'icon': '🌤️',
        'weather': '晴れ時々曇り',
        'message': 'まずまずの気分。小休止しつつ進行。'
    },
    {
        'icon': '🌈',
        'weather': '虹',
        'message': '新しい発見の予感。チャレンジを!'
    },
    {
        'icon': '🌙',
        'weather': '夜',
        'message': '夜更かし注意。ほどほどにしましょう。'
    }
]


def random_mood():
    mood = random.choice(MOODS)
    return mood

def print_forecast():
    mood = random_mood()
    now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
    print('[commit-mood-forecast]')
    print('本日の作業気分天気予報:')
    print(f'  {mood["icon"]} {mood["weather"]}!{mood["message"]}')


def list_moods():
    print('利用可能な気分天気一覧:')
    for mood in MOODS:
        print(f'  {mood["icon"]} {mood["weather"]}: {mood["message"]}')


def summary():
    print('commit-mood-forecast は、コミット時に気分天気をランダム表示する遊び心Skillです。')
    print('実用性ゼロ、雰囲気づくり100%!')


def main():
    parser = argparse.ArgumentParser(description='commit-mood-forecast: コミット時に気分天気予報を表示')
    subparsers = parser.add_subparsers(dest='command')

    subparsers.add_parser('forecast', help='本日の気分天気予報を表示(デフォルト動作)')
    subparsers.add_parser('list', help='気分天気の一覧を表示')
    subparsers.add_parser('summary', help='Skillの概要を表示')

    args = parser.parse_args()
    if args.command == 'list':
        list_moods()
    elif args.command == 'summary':
        summary()
    else:
        print_forecast()

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        sys.exit(0)
    except Exception as e:
        print(f'エラー: {e}', file=sys.stderr)
        sys.exit(1)

references/design_notes.md

# 概要
commit-mood-forecastは、開発現場にちょっとした遊び心を持ち込むためのSkillです。実用的な通知や履歴保存を行わず、あくまで気分転換・雰囲気づくりが主目的です。

# 公式ドキュメント抜粋
本SkillはGitのコミット時に発動するため、GitのフックやCI/CDパイプラインとの連携も可能です。詳細は[Git公式](https://git-scm.com/book/ja/v2/Customizing-Git-Git-Hooks)を参照してください。

# 利用例
- チーム開発でコミットごとに気分天気が表示され、Slack等で話題に。
- 個人開発で作業の合間にリラックス効果。

# 注意点
- 出力は標準出力のみ、他サービス連携なし。
- 実用的な作業ログや通知ではないため、業務用途には不向き。

# 設計方針
- シンプルな構成で環境依存なし。
- メッセージは短く、邪魔にならない分量に限定。
- 拡張性を考慮し、気分天気やコメントはリストで管理。

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/codex/commit-mood-forecast .agents/skills/commit-mood-forecast

.agents/skills/commit-mood-forecast の中に SKILL.md / scripts/ / references/ / README.md が展開されます。

3. ファイル配置確認

ls .agents/skills/commit-mood-forecast
# 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をコピーしました!
目次