Antigravity ユーザーが日常でぶつかる悩み
Antigravity を日々使っていると、AI coding workflow の中で思わず「またか」と感じる瞬間が多々あります。特に repository understanding や path management をAIに任せていると、ちょっとしたストレスが積み重なりがちです。さらに、開発現場の雰囲気がピリつきがちな時や、長時間 session で集中力が途切れた瞬間には、ちょっとした遊び心や癒しが欲しくなるものです。そんな時、コミットメッセージの堅苦しさに「もう少し遊びがあってもいいのに」と感じることも多いはずです。
- コミットメッセージが毎回「fix:」「refactor:」ばかりで、開発現場が無機質になりがち
- Antigravity の context 管理や path 指定に追われて、ちょっとした息抜きや笑いが生まれにくい
- 長時間の workflow で long context が膨らみ、重要な情報だけでなく心の余裕も薄まる
- monorepo で package を跨ぐたびに repository の構造説明や directory 指定が繰り返され、気分転換する暇もない
- session 再開時や onboarding のたびに、「また同じ説明か」と感じてしまい、気が重くなる
こうした日常の悩みに、ちょっとしたユーモアや文学的なエッセンスを加えられたら――そんな思いに応えるSkillの登場です。
この Skill が一言でいうと何を解決するか
一言サマリ: コミットメッセージを自動で俳句形式に変換するSkillですSkill。
このSkillを導入すると、Antigravity の AI coding workflow に日本ならではの和の心が加わり、コミットのたびにちょっとした癒しや笑いが生まれます。具体的には以下のようなメリットがあります。
- コミットメッセージが五・七・五の俳句形式になり、開発現場に文学的なカオスと遊び心をもたらす
- 普段の無機質な commit log に彩りが加わり、onboarding や session 再開時の空気が和らぐ
- monorepo や複雑な directory 作業時にも、思わずクスッとできる一行が生まれ、気分転換になる
- Antigravity の context 管理や repository understanding の合間に、ちょうど良い「ゆるさ」を補給できる
- Skill の導入・発動がシンプルで、既存の path management や workflow を邪魔しない
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/commit-haiku-generator .agent/skills/commit-haiku-generator実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
# コミットメッセージ: fix: adjust user auth redirect
> コミットメッセージを俳句でお願いします
Antigravity Skill: commit-haiku-generator 発動
ユーザーの
リダイレクト直す
静かな夜
シーン2: monorepo / package 跨ぎ作業時
# コミットメッセージ: feat(packages/api): add endpoint for invoice export
> 俳句形式で commit したい
Antigravity Skill: commit-haiku-generator 発動
API 増す
請求書エクスポート
春の風
シーン3: お遊び的な使い方
# コミットメッセージ: chore: update README and fix typo
> これも俳句にして
Antigravity Skill: commit-haiku-generator 発動
README 書き
小さな誤字を
直しました
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | コミットごとに俳句が挟まれ、気分転換や集中力のリセットに役立つ |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/commit-haiku-generator/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/commit-haiku-generator/
├── SKILL.md
├── scripts/
│ └── commit_haiku_generator.py
└── references/
└── design_notes.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/commit_haiku_generator.py |
コミットメッセージを俳句に変換 |
references/design_notes.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: commit-haiku-generator
description: コミットメッセージ生成や編集時、または "haiku" "五七五" "俳句" などのキーワードを含むリクエスト時に発動。コミット文を自動で五・七・五の俳句形式に変換したい場合に利用されます。
---
# 機能概要
commit-haiku-generatorは、通常のコミットメッセージを自動で五・七・五の俳句形式に変換するジョーク系Skillです。開発現場の堅苦しい雰囲気を和らげ、エンジニアの心に文学的な癒しをもたらします。コミット内容の要約や説明も、日本語のリズムに乗せてユーモラスに表現されるため、思わず笑ってしまうような一句が生まれることも。普段のコミット作業をちょっと楽しくしたい方に最適です。
# 使い方
このSkillは、コミットメッセージ生成や編集時、または「haiku」「五七五」「俳句」などのキーワードを含むリクエストで自動発動します。明示的な呼び出しは不要です。例えば、コミットメッセージの自動生成や「この変更内容を俳句で説明して」といった指示がトリガーとなります。
# 出力例
```
[commit-haiku]
新しい関数
静かにバグ直す
春の夜
```
```
[commit-haiku]
README更新
ドキュメント整う
コード光る
```
# 注意点
- 意味的な正確さよりも五・七・五のリズムを優先します。
- 生成される俳句は必ずしも内容と一致しない場合があります。
- 英語や他言語のコミット文は日本語俳句に変換されます。
- ローカルにファイル等は保存しません。
- 重要な履歴管理には通常のコミット文も併用してください。
# 参考資料
詳細な設計や実装方針は references/design_notes.md を参照してください。俳句の自動生成に関する技術的背景や、日本語形態素解析の利用例も記載しています。
- [Git公式コミットガイド](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8)
- [MeCab公式](https://taku910.github.io/mecab/)
scripts/commit_haiku_generator.py
import sys
import argparse
import re
import random
from typing import List, Tuple
try:
import MeCab
except ImportError:
print('MeCabが必要です。pip install mecab-python3 でインストールしてください。')
sys.exit(1)
SYLLABLES = [5, 7, 5]
# 日本語の音節数を推定(かな・カナ・漢字混在対応)
def count_on(text: str) -> int:
# 長音記号や促音、小書き文字も1音とする
text = re.sub(r'[ァィゥェォャュョッー]', 'あ', text)
text = re.sub(r'[ぁぃぅぇぉゃゅょっー]', 'あ', text)
text = re.sub(r'[a-zA-Z0-9]', '', text)
return len(text)
def split_by_on(words: List[str], targets: List[int]) -> List[List[str]]:
result = []
idx = 0
for t in targets:
group = []
count = 0
while idx < len(words) and count < t:
word = words[idx]
on = count_on(word)
if count + on > t:
break
group.append(word)
count += on
idx += 1
if count != t:
# 足りない場合はダミー挿入
while count < t:
group.append(random.choice(['空', '夢', '光', '風', '雲', '夜', '春', '秋', '花']))
count += 1
result.append(group)
return result
def mecab_wakati(text: str) -> List[str]:
tagger = MeCab.Tagger('-Owakati')
wakati = tagger.parse(text)
return wakati.strip().split()
def generate_haiku(text: str) -> str:
words = mecab_wakati(text)
if not words:
return 'コミット内容
五七五で詠む
春の風'
lines = split_by_on(words, SYLLABLES)
lines_str = [''.join(line) for line in lines]
return '\n'.join(lines_str)
def haiku_commit_message(original: str) -> str:
haiku = generate_haiku(original)
return f'[commit-haiku]\n{haiku}'
def main():
parser = argparse.ArgumentParser(description='コミットメッセージを俳句に変換')
subparsers = parser.add_subparsers(dest='command')
parser_gen = subparsers.add_parser('generate', help='俳句形式でコミットメッセージを生成')
parser_gen.add_argument('message', nargs='*', help='コミットメッセージ')
parser_sample = subparsers.add_parser('sample', help='サンプル俳句を表示')
args = parser.parse_args()
if args.command == 'generate':
if not args.message:
print('コミットメッセージを指定してください。')
sys.exit(1)
original = ' '.join(args.message)
haiku = haiku_commit_message(original)
print(haiku)
elif args.command == 'sample':
samples = [
'新機能追加しました',
'バグ修正とテスト追加',
'ドキュメントを更新',
'コードをリファクタ',
'設定ファイル修正',
'README更新',
]
for s in samples:
print(haiku_commit_message(s))
print()
else:
parser.print_help()
if __name__ == '__main__':
main()
references/design_notes.md
# 概要
commit-haiku-generatorは、コミットメッセージを日本語の五・七・五俳句形式に自動変換する遊び心あるSkillです。日常の開発作業に文学的なスパイスを加え、エンジニア同士のコミュニケーションを和やかにします。
# 公式ドキュメント抜粋
- [MeCab公式](https://taku910.github.io/mecab/): 日本語形態素解析エンジン。分かち書きや品詞分解が可能。
- [Gitコミットメッセージガイド](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%B3%E3%83%9F%E3%83%83%E3%83%88%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8)
# 利用例
- 通常のコミット文を「俳句で」と依頼された場合
- 開発チームのアイスブレイクやイベント用
- コードレビュー時のちょっとしたユーモア演出
# 注意点
- 完全な意味維持や自然な俳句生成は保証されません。
- 日本語以外のメッセージは強引に日本語俳句化されます。
- 重要な履歴管理には通常のコミット文も併用してください。
# 設計方針
- MeCabによる分かち書きで単語単位に分割し、音数推定で五・七・五に分配。
- 音数が足りない場合は季語や汎用単語を補充。
- コマンドラインからも手軽に利用できる構成。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/commit-haiku-generator .agent/skills/commit-haiku-generator
.agent/skills/commit-haiku-generator の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/commit-haiku-generator
# 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記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
