Antigravityで作業気分を自動表示!開発中の和み演出ガイド

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

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

AI coding workflow を Antigravity で回していると、真面目な開発フローにちょっとした“遊び”やリラックス要素がほしくなる瞬間が意外に多いものです。特に、通知や演出系のSkillが少ない現状では、毎日の作業が単調になりがちです。以下のような「あるある」な困りごとを感じているユーザーは少なくありません。

  • コミットや push のたびに、ただ淡々と処理が進むだけで、気分転換や小ネタ的な演出が一切ない
  • チーム開発で緊張感が続き、ちょっとした雑談や和ませポイントが足りない
  • Antigravity の通知がすべて実用情報だけで、遊び心や息抜き要素がほとんどない
  • 長時間の session や monorepo の複雑な path 管理に疲れて、ちょっとした癒しが欲しくなる
  • onboarding 時に“今日はどんな気分でやろうか”といったアイスブレイク的な演出がなく、緊張したまま作業を始めがち

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

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

このSkillを導入すると、コミット操作のたびに “本日のあなたの作業気分天気予報” がターミナルに現れます。気分は完全ランダムで、毎回違うコメントや天気アイコン風テキストが登場。開発フローに遊び心をプラスし、チームや個人の雰囲気を和ませます。具体的なメリットは以下の通りです。

  • コミット時に毎回違う“気分天気”が表示され、単調な開発 workflow に癒しや笑いを提供
  • Antigravity の通知が実用情報一辺倒から、遊び心のある context も混ざることで、気分転換になる
  • onboarding や session 開始時の緊張を和らげ、チームのコミュニケーションを活性化
  • monorepo のような大規模 repository でも、コミットごとにちょっとした“演出”が加わり、長時間作業の負担を軽減
  • Skill の導入・削除が簡単で、path management や repository understanding を邪魔しない
QUICK INSTALL
このSkillをすぐ試す

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

npx degit aazutaku/ai-note/antigravity/commit-mood-forecast .agent/skills/commit-mood-forecast

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

使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。

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


> git commit -m "Initialize repository structure"

==== 本日の作業気分天気予報 ====
[快晴] 今日は絶好調!新しいリポジトリで気持ちよくスタートできそうです。
=================================

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


> git commit -m "Update packages/auth and packages/ui"

==== 本日の作業気分天気予報 ====
[曇り] ちょっと迷い気味。packages/auth から packages/ui への移動、慎重に進めましょう。
=================================

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


> git commit -m "Fix typo in README.md"

==== 本日の作業気分天気予報 ====
[雷] やる気ゼロの日もあります。焦らず一歩ずつ進みましょう!
=================================

before / after の違い

場面 Skill 無し Skill 有り
session 再開時 repo 構造から毎回説明、path も指定し直し コミット時に気分天気でリフレッシュしつつ再開できる
monorepo 移動 違う package のコードを参照しがち コミットのたびに“今どこで何してるか”を気分と共に意識できる
長時間 workflow long context で重要箇所が薄まる 気分天気で気持ちを切り替え、集中力を保ちやすい

発動方式

description マッチでの暗黙発動。

Skill の中身を全部見せる

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

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

各ファイルの役割

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

SKILL.md

---
name: commit-mood-forecast
description: Antigravityがgit commitアクションを検知した際、コミット内容や履歴に関係なく、毎回ランダムな“作業気分天気予報”コメントをターミナルへ表示します。commit, コミット, push, バージョン管理などのキーワードが含まれる操作時に発動します。
---

# 機能概要
commit-mood-forecastは、開発者がgit commit操作を行うたびに、完全ランダムな“本日の作業気分天気予報”をターミナルに表示するスキルです。天気アイコン風のテキストと短いコメントが毎回異なり、真面目な開発フローに遊び心をプラスします。実用性はありませんが、チームや個人の作業環境に和みや話題を提供します。

# 使い方
このSkillは明示的な呼び出しは不要です。Antigravityがgit commitやpushなどのバージョン管理操作を検知した際、自動的に発動します。暗黙的な発動キーワード例: commit, コミット, push, バージョン管理, git。

# 出力例
```
[commit-mood-forecast]
本日のあなたの作業気分天気予報:
快晴    :今日は絶好調!やる気MAXで進めましょう。
---
[commit-mood-forecast]
本日のあなたの作業気分天気予報:
曇り    :ちょっと迷い気味。無理せず一歩ずつ。
---
[commit-mood-forecast]
本日のあなたの作業気分天気予報:
雷      :やる気ゼロ。コーヒーブレイク推奨!
```

# 注意点
- 出力はターミナル上の標準出力のみ。ファイル保存や通知機能はありません。
- 気分・天気は完全ランダムで、実際の作業状況や履歴とは無関係です。
- 過度に長いコメントや複雑な演出は行いません。
- 他のバージョン管理システム(例: Mercurial等)には未対応です。

# 参考資料
- references/design_notes.md に設計方針や利用例を記載
- 公式Git CLI: https://git-scm.com/docs/git-commit
- Python subprocess/標準出力: https://docs.python.org/ja/3/library/subprocess.html

scripts/commit_mood_forecast.py

import sys
import argparse
import random
from datetime import datetime

MOODS = [
    {
        'icon': '快晴',
        'message': '今日は絶好調!やる気MAXで進めましょう。'
    },
    {
        'icon': '曇り',
        'message': 'ちょっと迷い気味。無理せず一歩ずつ。'
    },
    {
        'icon': '雨',
        'message': '集中力が散漫かも?小休憩を挟みましょう。'
    },
    {
        'icon': '雷',
        'message': 'やる気ゼロ。コーヒーブレイク推奨!'
    },
    {
        'icon': '晴れ時々曇り',
        'message': 'まずまずの調子。焦らず着実に。'
    },
    {
        'icon': '霧',
        'message': '頭の中がもやもや。TODOを整理してみては?'
    },
    {
        'icon': '雪',
        'message': '静かな気分。じっくりコードと向き合いましょう。'
    },
    {
        'icon': '強風',
        'message': 'アイデアが舞い上がる日。思いついたら即メモ!'
    },
    {
        'icon': '虹',
        'message': 'ひらめきの予感。新しい挑戦に最適です。'
    },
    {
        'icon': '台風',
        'message': 'タスクが渦巻く日。優先順位を見直しましょう。'
    }
]

HISTORY = []


def print_forecast():
    mood = random.choice(MOODS)
    now = datetime.now().strftime('%Y-%m-%d %H:%M')
    forecast = f"[commit-mood-forecast]\n本日のあなたの作業気分天気予報:\n{mood['icon']:<8}:{mood['message']}\n({now})\n"
    print(forecast)
    HISTORY.append({'datetime': now, 'icon': mood['icon'], 'message': mood['message']})


def list_history():
    if not HISTORY:
        print("[commit-mood-forecast] まだ気分天気予報の履歴はありません。\n")
        return
    print("[commit-mood-forecast] これまでの気分天気予報履歴:")
    for i, entry in enumerate(HISTORY, 1):
        print(f"{i:2d}. {entry['datetime']} | {entry['icon']:<8} | {entry['message']}")
    print()


def summary():
    if not HISTORY:
        print("[commit-mood-forecast] 履歴がないため集計できません。\n")
        return
    counts = {}
    for entry in HISTORY:
        counts[entry['icon']] = counts.get(entry['icon'], 0) + 1
    print("[commit-mood-forecast] 気分天気の出現回数まとめ:")
    for icon, cnt in sorted(counts.items(), key=lambda x: -x[1]):
        print(f"{icon:<8}: {cnt}回")
    print()


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

    subparsers.add_parser('log', help='今の気分天気予報を表示')
    subparsers.add_parser('list', help='これまでの気分天気予報履歴を表示')
    subparsers.add_parser('summary', help='気分天気の出現回数を集計')

    args = parser.parse_args()

    if args.command is None or args.command == 'log':
        print_forecast()
    elif args.command == 'list':
        list_history()
    elif args.command == 'summary':
        summary()
    else:
        print('不明なコマンドです。log, list, summary のいずれかを指定してください。')
        sys.exit(1)

if __name__ == '__main__':
    main()

references/design_notes.md

# 概要
commit-mood-forecastは、git commit操作のたびに開発者の気分を天気になぞらえてランダム表示する、完全脱力系の演出Skillです。実用性よりも遊び心・チームの和みを重視しています。

# 公式ドキュメント抜粋
- Git公式: https://git-scm.com/docs/git-commit
- Python subprocess: https://docs.python.org/ja/3/library/subprocess.html

# 利用例
主に個人開発やチーム開発の現場で、コミット時のちょっとした息抜きや話題作りとして使われます。履歴や集計機能を組み合わせることで、プロジェクトの雰囲気を可視化することも可能です。

# 注意点
- 気分天気は完全ランダムで、実際の作業内容や履歴には影響しません。
- 実用的な通知や分析機能はありません。
- 出力は標準出力のみで、ファイルや外部サービスへの連携は行いません。

# 設計方針
- シンプルな標準出力・CLI構成で、どの環境でも動作可能とする。
- コメントは短く、毎回異なる内容を楽しめるように設計。
- 過度な演出や依存ライブラリは避け、環境構築ゼロで使えることを重視。

導入手順

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

1. 前提

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

2. degit でフォルダ取得

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

npx degit aazutaku/ai-note/antigravity/commit-mood-forecast .agent/skills/commit-mood-forecast

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

3. ファイル配置確認

ls .agent/skills/commit-mood-forecast
# SKILL.md, scripts/, references/, README.md があればOK

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

新しいSkillが自動で認識されます。リスト確認したい場合は Antigravity に「使えるSkill一覧を見せて」と聞く と Skill 名で出てきます。

5. 動作確認

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

こんな瞬間に便利

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

試す前に確かめたいこと

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

  • 実 repo での token 消費は許容範囲か?
  • monorepo (packages 多数) で安定して動くか?
  • stale context にならず、長時間 workflow でも有効か?
  • プロジェクト指示との連携をどう組み立てるか?
  • コミット時に毎回ランダムな気分天気コメントが表示されるか?
  • 通知がシンプルなテキストで、環境構築ゼロで使えるか?
  • 出力内容が長すぎず、邪魔にならないか?

実際に Antigravity で試した検証ログは Antigravityのコミットで毎回変わる気分予報を試してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。

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

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

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

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