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 が長くなりがちな現場でも、短い通知で邪魔にならず、作業リズムを保てる
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記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
