Antigravity ユーザーが日常でぶつかる悩み
Antigravity を使った AI coding workflow に没頭していると、ふとした瞬間に緊張や集中がピークに達し、思わず肩に力が入りすぎてしまうことがあります。context 管理や repository understanding など真面目なタスクに追われていると、気づけば作業環境が無機質になりがちです。とくに monorepo のような巨大な repo で複雑な directory 構造を扱っていると、path management や memory の最適化に神経を使い続けることも珍しくありません。
- Antigravity が context を見失って違う場所のコードを参照する
- monorepo で package を跨いだ瞬間、Antigravity が repo 構造を忘れる
- session を再開すると、前回までの context や path 指定をまるごと再説明しないといけない
- 長時間 workflow で long context が膨らみすぎて、important な情報が薄まる (stale context)
- 「ここはこういう構造のリポジトリ」というあらすじを毎回チャットの冒頭で書く羽目になる
こうした課題に向き合い続ける日々の中で、ふと「緊張感を一撃でぶち壊すような、遊び心のある演出が欲しい」と感じたことはないでしょうか。
この Skill が一言でいうと何を解決するか
一言サマリ: このスキルは、作業中に突如現れる壮大かつ意味不明な“OS電源オフ予告通知”で、Antigravity の日常 workflow に意図的なカオスと笑いを注入します。
もう少し具体化すると、このSkillを入れることで以下のような状態になる:
- 長時間の集中作業や context 最適化に偏りがちな AI coding workflow に、突発的な“劇的通知”で場の空気を和ませられる
- monorepo や巨大 repository での path management に疲れた瞬間、意味不明な電源オフアラートで緊張をリセットできる
- 実際のシャットダウンや電源操作は一切行われず、どの OS 環境でもデスクトップ通知だけが安全に楽しめる
- 通知内容は毎回ランダム生成で、毎度新鮮な笑いとカオスを体験できる
- onboarding や session 再開時など、Antigravity の memory や repository understanding が重たくなるタイミングで、遊び心をプラスできる
GitHub から degit でコマンド1行、Antigravity の Skill ディレクトリに展開できます。Node.js があれば即時に動きます。
npx degit aazutaku/ai-note/antigravity/random-os-dramatic-poweroff-alert .agent/skills/random-os-dramatic-poweroff-alert実行したらこうなる (3つの利用シーン)
使う側がイメージしやすいよう、擬似 terminal で出力例を3パターン示します。
シーン1: session 開始時 (プロジェクト初動で)
> 新しいリポジトリで作業を始める
[Antigravity Notification]
システム警告: あと3分で全プロセスが宇宙エネルギー調整のため壮絶に終了します。
理由: /src/context_manager.py がメタ次元に吸い込まれました。
全ユーザーは壮大な別れの準備をしてください。
(※実際のシャットダウンは行われません)
シーン2: monorepo / package 跨ぎ作業時
> packages/core/ から packages/utils/ へ移動
[Antigravity Notification]
重要: オペレーティングシステムは全 directory を3分後に消滅させます。
理由: monorepo の境界線が時空を超えたため。
/packages/core/ も /packages/utils/ も、今生の別れとなります。
(※通知のみ、作業ファイルは無傷です)
シーン3: お遊び的な使い方
> ちょっと息抜きしたい
[Antigravity Notification]
警告: システムは“壮大なシャットダウン”を開始します。
理由: あなたの集中力が限界突破したため。
全プロセスよ、さらば…また逢う日まで。
(※全て冗談です、ご安心ください)
before / after の違い
| 場面 | Skill 無し | Skill 有り |
|---|---|---|
| session 再開時 | repo 構造から毎回説明、path も指定し直し | Antigravity が自動で context を復元、最小プロンプトで再開 |
| monorepo 移動 | 違う package のコードを参照しがち | directory boundary を意識して必要な範囲だけ見る |
| 長時間 workflow | long context で重要箇所が薄まる | 突発通知で一度リフレッシュ、集中力の再起動ができる |
発動方式
description マッチでの暗黙発動。
Skill の中身を全部見せる
.agent/skills/random-os-dramatic-poweroff-alert/ に配置するファイル一覧です。GitHub に push 済みなので、上記の degit コマンドで一発取得できます。
.agent/skills/random-os-dramatic-poweroff-alert/
├── SKILL.md
├── scripts/
│ └── dramatic_poweroff_alert.py
└── references/
└── reference.md
各ファイルの役割
| ファイル | 役割 |
|---|---|
SKILL.md |
Skill本体。frontmatter (name/description) と指示本文。Antigravity がこの内容をエージェント指示として読み込み、ユーザーのプロンプトに応じて発動します |
scripts/dramatic_poweroff_alert.py |
Dramatic Poweroff Alert – OS電源オフの壮大な予告を通知で爆誕させる |
references/reference.md |
概要 をまとめた参考資料 |
SKILL.md
---
name: random-os-dramatic-poweroff-alert
description: 作業やコーディング中に“シャットダウン予告”や“電源オフ警告”などのキーワードが含まれるコンテキストを検知した際、AntigravityがこのSkillを発動し、壮大かつカオスな電源オフ通知をデスクトップに表示します。
---
# 機能概要
このSkillは、あなたが作業やコーディングに集中している最中、突如として“OSによる壮大な電源オフ予告”をデスクトップ通知として表示します。通知内容は毎回ランダムで、「システムはあと3分で壮絶にシャットダウンします(理由:宇宙エネルギー調整のため)」や「全プロセスよ、さらば…」など、完全に意味不明かつ無責任なメッセージばかり。実際にはシャットダウン等の危険な操作は一切行われず、現実には何も起きません。仕事や勉強の緊張感を一撃で吹き飛ばす、遊び心満載の演出を提供します。
# 使い方
このSkillは明示的な呼び出しは不要で、Antigravityが「シャットダウン」「電源オフ」「終了予告」などのキーワードを含む状況や、長時間作業が続いている場合などに自動で発動します。手動でテストしたい場合は、スクリプトを直接実行することも可能です。
# 出力例
```terminal
[通知] システムはあと3分で壮絶にシャットダウンします(理由:宇宙エネルギー調整のため)
[通知] 全プロセスよ、さらば…
[通知] OSカーネル、最後の咆哮をあげよ!
[通知] 電源オフまで残り42秒。運命に抗うな。
[通知] 本日はこれにて全ての稼働を終了します(理由:量子トンネルのメンテナンス)
```
# 注意点
- 実際のシャットダウンや電源オフは一切行われません。
- 通知は各OSのデスクトップ通知APIを利用して表示されます。
- ログや履歴はローカルには保存されません。
- 通知内容は毎回ランダム生成され、繰り返し同じ内容が表示されることはほぼありません。
# 参考資料
本SkillはPythonの`plyer`や`win10toast`等、クロスプラットフォームなデスクトップ通知ライブラリを活用しています。詳細は`references/`ディレクトリや[plyer公式ドキュメント](https://plyer.readthedocs.io/en/latest/)を参照してください。
scripts/dramatic_poweroff_alert.py
import random
import sys
import time
import argparse
import platform
from threading import Thread
try:
from plyer import notification
except ImportError:
notification = None
try:
from win10toast import ToastNotifier
except ImportError:
ToastNotifier = None
def get_os():
os_name = platform.system().lower()
if 'windows' in os_name:
return 'windows'
elif 'darwin' in os_name:
return 'macos'
elif 'linux' in os_name:
return 'linux'
else:
return 'unknown'
DRAMATIC_MESSAGES = [
"システムはあと3分で壮絶にシャットダウンします(理由:宇宙エネルギー調整のため)",
"全プロセスよ、さらば…",
"OSカーネル、最後の咆哮をあげよ!",
"電源オフまで残り42秒。運命に抗うな。",
"本日はこれにて全ての稼働を終了します(理由:量子トンネルのメンテナンス)",
"管理者の気まぐれにより、全てのプロセスは消滅します。",
"シャットダウン・オブ・ザ・ギャラクシー、発動準備完了。",
"このOSは今宵、伝説となる。",
"プロセスよ、永遠の眠りにつけ。",
"全ユーザーに告ぐ:あと120秒でこの世界は終焉を迎えます。",
"メモリ解放の儀式を開始します。",
"CPUの魂よ、昇華せよ。",
"システムは自己崩壊プロトコルを実行します。",
"電源ボタンが勝手に押されます。",
"全てのファイルが記憶の彼方へ旅立ちます。",
"OSの寿命が尽きました。",
"カオスな電源オフ、今ここに。",
"仮想世界の終末時計が0を指しました。",
"全プロセス、最後のログを残せ。",
"この通知を見たあなたはラッキーです。"
]
def send_notification(title, message):
os_type = get_os()
if os_type == 'windows' and ToastNotifier is not None:
try:
toaster = ToastNotifier()
toaster.show_toast(title, message, duration=7, threaded=True)
return True
except Exception as e:
pass
if notification is not None:
try:
notification.notify(title=title, message=message, app_name="Dramatic Poweroff Alert", timeout=7)
return True
except Exception as e:
pass
# Fallback: print to console
print(f"[通知] {message}")
return False
def random_message():
return random.choice(DRAMATIC_MESSAGES)
def alert_once():
title = "壮大な電源オフ予告"
message = random_message()
send_notification(title, message)
def alert_loop(count=5, interval=60):
title = "壮大な電源オフ予告"
used = set()
for _ in range(count):
msg = random_message()
# なるべく重複を避ける
while msg in used and len(used) < len(DRAMATIC_MESSAGES):
msg = random_message()
used.add(msg)
send_notification(title, msg)
time.sleep(interval)
def list_messages():
print("=== Dramatic Poweroff Alert: メッセージ一覧 ===")
for i, msg in enumerate(DRAMATIC_MESSAGES, 1):
print(f"{i}. {msg}")
def summary():
print("Dramatic Poweroff Alert Skill")
print("- ランダムな壮大な電源オフ予告をデスクトップ通知で表示")
print(f"- メッセージ数: {len(DRAMATIC_MESSAGES)}")
print("- OS対応: Windows, macOS, Linux (plyer/win10toast使用)")
print("- 実際のシャットダウン等は一切行いません")
def parse_args():
parser = argparse.ArgumentParser(description='Dramatic Poweroff Alert - OS電源オフの壮大な予告を通知で爆誕させる')
subparsers = parser.add_subparsers(dest='command')
parser_once = subparsers.add_parser('once', help='1回だけ通知を表示')
parser_loop = subparsers.add_parser('loop', help='複数回通知を表示')
parser_loop.add_argument('--count', type=int, default=5, help='通知回数')
parser_loop.add_argument('--interval', type=int, default=60, help='通知間隔(秒)')
subparsers.add_parser('list', help='メッセージ一覧表示')
subparsers.add_parser('summary', help='Skill概要')
return parser.parse_args()
def main():
args = parse_args()
if args.command == 'once' or args.command is None:
alert_once()
elif args.command == 'loop':
alert_loop(count=args.count, interval=args.interval)
elif args.command == 'list':
list_messages()
elif args.command == 'summary':
summary()
else:
print("不明なコマンドです。--help を参照してください。")
if __name__ == '__main__':
main()
references/reference.md
# 概要
このSkillは、クロスプラットフォームなデスクトップ通知API(主にPythonのplyer, win10toast)を活用し、実際のシャットダウン操作を一切伴わずに“壮大な電源オフ予告”を演出します。通知内容は毎回ランダム生成され、OSごとに適切な通知方式を選択します。
# 公式ドキュメント抜粋
- plyer: https://plyer.readthedocs.io/en/latest/
- win10toast: https://github.com/jithurjacob/Windows-10-Toast-Notifications
# 利用例
作業中に突如「OSカーネル、最後の咆哮をあげよ!」等の通知が表示され、緊張感が一気に和らぎます。明示的にCLIから `python dramatic_poweroff_alert.py loop --count 3` のように実行することも可能です。
# 注意点
通知はローカル環境でのみ表示され、実際のシステム操作は行いません。plyer/win10toastのインストールが必要です。
# 設計方針
安全性を最優先し、OSやユーザーデータに一切影響を与えない設計としています。通知内容の多様性・ユーモア性を重視し、繰り返し利用しても飽きない工夫を施しています。
導入手順
このSkillは GitHub で管理されているので、degit を使えば必要なフォルダだけを1コマンドで取得できます。Antigravity はファイル配置後に再起動するだけで自動認識します。
1. 前提
- Node.js v16 以上 (
degit実行に必要) - Antigravity がローカルで動いていること
2. degit でフォルダ取得
プロジェクトのルートで以下のコマンドを実行します。
npx degit aazutaku/ai-note/antigravity/random-os-dramatic-poweroff-alert .agent/skills/random-os-dramatic-poweroff-alert
.agent/skills/random-os-dramatic-poweroff-alert の中に SKILL.md / scripts/ / references/ / README.md が展開されます。
3. ファイル配置確認
ls .agent/skills/random-os-dramatic-poweroff-alert
# 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 でも有効か?
- プロジェクト指示との連携をどう組み立てるか?
- 通知内容が毎回ランダムかつ強烈にふざけているか?
- どのOS環境でも安全に通知だけが表示されるか?
- 実際に電源オフやシャットダウンが絶対に発生しないか?
実際に Antigravity で試した検証ログは Antigravityで突然の壮大な電源オフ通知を体験してみた! にまとめる予定 (公開準備中の場合あり)。
あわせて Antigravity 公式ドキュメント と、本シリーズ「Antigravityで試したいSkill研究」の他記事も参照のこと。
関連タグで他のSkill記事を探す
本記事に付いているタグから、気になるテーマの記事を探せます。タグページで関連記事をまとめて読めるので、ぜひチェックしてみてください!
