Communitygithub.com

xyz-rainbow/xyz-windows-notify

🦄 汎用AIエージェント用スキル。Windows 10 & 11のネイティブトースト通知をスマートなアイコン解決、リアルタイム%進捗表示、サウンドアラートで実現します。

xyz-windows-notify とは?

このスキルは、Antigravity、Claude、GPT、Cursor、Trae、Pi、Grokなど、あらゆるAIエージェントがWindows 10および11のネイティブトースト通知をトリガーできるようにするものです。PowerShellのBurntToastモジュールを活用し、カスタムブランディング、パーセンテージマイルストーン、動的なアイコン管理を提供します。スキルはバンドルされたデフォルトアイコンを備え、明示的なパス、スキル内のローカルファイル、レガシー互換パス、ユーザーカスタムディレクトリ、最後にネイティブ通知へのフォールバックというスマートな解決階層を採用しています。AIエージェントはワークフローに応じてコンテキストに適したアイコンを選択し、新しいアイコンの生成を提案することで、ワークフローの開始や進行状況、完了、エラーなど、ライフサイクル全体を通じて一貫した視覚的フィードバックを提供します。

対応✓Claude Code~Codex CLI✓Cursor✓Antigravity✓Gemini CLI
npx skills add xyz-rainbow/xyz-windows-notify

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

XYZ Windows Notify — 汎用AIエージェントスキル

このスキルは、あらゆるAIエージェント(Antigravity、Claude、GPT、Cursor、Trae、Pi、Grokなど)が、Windows 10およびWindows 11と互換性のあるネイティブのWindows トースト通知を、PowerShellのBurntToastを使用して、カスタムブランディング、パーセンテージマイルストーン、動的なアイコン管理とともにトリガーできるようにします。


🚀 Skills CLIを使用したインストール

npx skills add xyz-rainbow/xyz-windows-notify

🦄 バンドルアセットとスマートアイコン解決

このスキルは、デフォルトのブランディングをassets/icons/ディレクトリ(assets/icons/unicorn.jpgおよびassets/icons/icon.jpg)にバンドルしています。

通知を送信する際は、次のスマート解決階層に従います:

  1. 明示的パラメータ: -AppLogo "path/to/custom_icon.png"で指定されたパス。
  2. スキルバンドルアイコン: スキルディレクトリ内のローカルパス(例: <skill_dir>/assets/icons/unicorn.jpg)。
  3. レガシーバンドルアイコン: <skill_dir>/assets/unicorn.jpg(下位互換性のため)。
  4. ユーザーカスタムアイコンディレクトリ: 環境のユーザーパス(存在する場合、例: $env:USERPROFILE\Pictures\Icons\custom.png)。
  5. グレースフルフォールバック: 画像ファイルが存在しない場合は、-AppLogoなしのネイティブWindows通知。

🤖 カスタムアイコンと生成に関するAIエージェントガイドライン

このスキルを操作するAIエージェントは、積極的に視覚的フィードバックを管理する必要があります:

1. コンテキストに応じたアイコン選択

  • 一般 / デフォルト: assets/icons/unicorn.jpgまたはassets/icons/icon.jpgを使用します。
  • データベース / バックアップ: 専用アイコンが存在する場合(例: assets/icons/backup.png、assets/icons/database.png)、それらを優先します。
  • デプロイ / サーバー: ロケット/サーバーアイコン。
  • エラー / 重大アラート: 警告/シールドアイコン。

2. 新しいアイコンの提案と生成

  • アイコンの保存場所: 新しいアイコンはassets/icons/<name>.png(スキルまたはリポジトリフォルダ内)、またはユーザーのアイコンディレクトリ($env:USERPROFILE\Pictures\Icons\)に保存します。
  • アイコンの仕様:
    • フォーマット: PNGまたはJPG(正方形1:1アスペクト比)。
    • 推奨寸法: 256x256または512x512ピクセル。
    • 透明またはクリーンな無地の背景。
  • プロアクティブAIプロトコル:
    • 新しい繰り返しワークフロー(新しいゲームサーバーモニタリング、ビデオレンダリングパイプライン、データ同期など)を開始するときは、assets/icons/に一致するアイコンが存在するか確認します。
    • テーマに合ったアイコンが存在しない場合は、以下を提案します:

      "[タスク名]に固有のトーストアイコンが見つかりませんでした。カスタム256x256アイコンを生成してassets/icons/[name].pngに保存しますか?"

    • 画像生成ツール(例:generate_image)を使用するか、ユーザーの承認後に適切なアセットを取得します。

💻 PowerShell連携

Import-Module BurntToast

# デフォルト/バンドルアイコンの解決(下位互換性あり)
$CandidateIcons = @(
    "$PSScriptRoot\assets\icons\unicorn.jpg",
    "$PSScriptRoot\assets\unicorn.jpg",
    "$env:USERPROFILE\Pictures\Icons\custom.png"
)

$AppLogo = $CandidateIcons | Where-Object { Test-Path $_ } | Select-Object -First 1

# フォールバック付きで通知を送信
if ($AppLogo) {
    New-BurntToastNotification `
        -Text "🦄 タスクマイルストーン: 50%", "2,048 MB中1,024 MBを処理しました" `
        -AppLogo $AppLogo `
        -Sound 'Default'
} else {
    New-BurntToastNotification `
        -Text "📊 タスクマイルストーン: 50%", "2,048 MB中1,024 MBを処理しました" `
        -Sound 'Default'
}

🐍 Python連携パターン

import subprocess
import os

def send_toast(title: str, message: str, icon_path: str = None):
    # 下位互換性のある候補アイコンパス
    base_dir = os.path.dirname(__file__)
    user_icon = os.path.expanduser("~/Pictures/Icons/custom.png")
    
    candidates = [
        icon_path,
        os.path.join(base_dir, "assets", "icons", "unicorn.jpg"),
        os.path.join(base_dir, "assets", "unicorn.jpg"),
        user_icon
    ]

    selected_icon = next((c for c in candidates if c and os.path.exists(c)), None)

    if selected_icon:
        ps_cmd = f"Import-Module BurntToast; New-BurntToastNotification -Text '{title}', '{message}' -AppLogo '{selected_icon}' -Sound 'Default'"
    else:
        ps_cmd = f"Import-Module BurntToast; New-BurntToastNotification -Text '{title}', '{message}' -Sound 'Default'"

    subprocess.run(["powershell", "-NoProfile", "-ExecutionPolicy", "Bypass", "-Command", ps_cmd], capture_output=True)

# ライフサイクル全体での使用例
send_toast("🚀 タスク開始", "ワークスペースファイルをスキャンし、チェックサムを計算しています...")
send_toast("📊 進捗: 50%", "2,048 MB中1,024 MBを処理しました")
send_toast("✅ タスク完了 (100%)", "2,100ファイルを正常に処理しました!")

🌐 マルチエージェントグローバル設定

このスキルをマシン上のすべてのエージェントからアクセス可能にするには、このフォルダが以下の場所にシンボリックリンクまたはコピーされていることを確認します:

  • Antigravity / Gemini: ~/.gemini/config/skills/windows-notify/
  • Claude Desktop / Code: ~/.claude/skills/windows-notify/
  • Cursor / Trae / グローバルエージェント: ~/.agents/skills/windows-notify/

関連スキル