develop-userscripts
Tampermonkey や ScriptCat 向けのブラウザユーザースクリプトを作成・デバッグ・パッケージング・公開する際に使用します。GM API、メタデータブロック、権限設定、`@match`/`@grant`/`@connect` の構成、ScriptCat のバックグラウンド実行やスケジュールスクリプト、UserConfig ブロック、サブスクリプションワークフローなど幅広くサポートします。
description の原文を見る
Use when building, debugging, packaging, or publishing browser userscripts for Tampermonkey or ScriptCat, including GM APIs, metadata blocks, permission issues, @match/@grant/@connect setup, ScriptCat background or scheduled scripts, UserConfig blocks, or subscription workflows.
SKILL.md 本文
Userscript の問題は通常、ページロジックではなく、ランタイムとメタデータの境界で発生します。ランタイムを最初に選択し、必要な最小限の権限を事前に宣言した上で、スクリプトが実際に動作する環境でデバッグしてください。
使用する場合
このスキルは以下の場合に使用してください:
- Tampermonkey または ScriptCat の userscript を記述または修正する
- インジェクションのタイミング、権限不足、CSP 対策、更新チェック、または
GM_*の動作をデバッグする - ポータブルなフォアグラウンドスクリプトと ScriptCat 専用の
@backgroundまたは@crontabのどちらを使うか決定する ==UserConfig==でコンフィグ UI を追加する- ScriptCat の
==UserSubscribe==バンドルをパッケージ化するか、CloudCat 互換スクリプトを準備する
ブラウザ拡張機能の完全な開発や、userscript マネージャー以外の一般的なブラウザ自動化には使用しないでください。
ランタイムの選択
digraph userscript_runtime {
"Need page DOM or page context?" [shape=diamond];
"Need persistent or scheduled work?" [shape=diamond];
"Need to install many scripts as one package?" [shape=diamond];
"Portable foreground script" [shape=box];
"ScriptCat background or crontab script" [shape=box];
"ScriptCat subscription package" [shape=box];
"Need page DOM or page context?" -> "Portable foreground script" [label="yes"];
"Need page DOM or page context?" -> "Need persistent or scheduled work?" [label="no"];
"Need persistent or scheduled work?" -> "ScriptCat background or crontab script" [label="yes"];
"Need persistent or scheduled work?" -> "Need to install many scripts as one package?" [label="no"];
"Need to install many scripts as one package?" -> "ScriptCat subscription package" [label="yes"];
"Need to install many scripts as one package?" -> "Portable foreground script" [label="no"];
}
プリフライト
- マネージャーとブラウザを確認してください。Manifest V3 ブラウザでは、スクリプトが実行される前に ScriptCat が
Allow User Scriptsまたはブラウザ開発者モードを必要とする場合があります。 - コードを書く前に、ページスクリプトとバックグラウンドスクリプトのどちらかを決定してください。ScriptCat バックグラウンドスクリプトは DOM に触れることができません。
- 実装ではなくメタデータから始めてください:
@match、@grant、@connect、@run-at、および任意の更新 URL。 - 通常のページスクリプトにはポータブルな
==UserScript==パターンを使用してください。ScriptCat 専用ヘッダーに切り替えるのは、リクエストされた動作が実際にそれらを必要とする場合のみです。
ワークフロー
- ランタイムとメタデータを最初に選択します。
- タスクに適合する最小限の権限を宣言します。
- 選択したランタイムに対して実装します。
- コードが実際に動作する場所でデバッグします。
- フォアグラウンドスクリプト: ページコンソールおよびマネージャーログ。
- ScriptCat バックグラウンドスクリプト: 実行ログを最初に確認し、その後、実際の環境でのデバッグのために
background.htmlを使用します。
- 正しい更新モデルで公開します。
- 通常のスクリプト:
@versionを正確に保ち、必要な場合にのみ@updateURLまたは@downloadURLを追加します。 - サブスクリプションバンドル:
==UserSubscribe==、HTTPS URL、およびサブスクリプションレベルの@connectを使用します。
- 通常のスクリプト:
クイックリファレンス
| 目的 | デフォルトの選択 | 注意点 |
|---|---|---|
| ページ UI、DOM スクレイピング、ページパッチ | ポータブル ==UserScript== | @match、@grant、@run-at、CSP に敏感なインジェクション |
| クロスオリジン API アクセス | GM_xmlhttpRequest (明示的な @connect 付き) | ホストの不足、Cookie 動作の差異、ユーザー認可 |
| 長時間実行ワーカー | ScriptCat @background | DOM なし、非同期作業の場合は Promise を返す必要あり |
| スケジュール済みタスク | ScriptCat @crontab | 最初の @crontab のみ有効、5 フィールド cron を優先、間隔の重複を回避 |
| ユーザー編集可能な設定 | ==UserConfig== と GM_getValue | ブロックの配置と group.key ネーミング |
| サイレントバンドルインストールと更新 | ==UserSubscribe== | HTTPS、user.sub.js、サブスクリプション connect が子スクリプトをオーバーライド |
よくある間違い
- スクリプトが実際に使用する API の
@grantが不足している。 GM_xmlhttpRequestまたはGM_cookieで使用されるホストの@connectが不足している。@includeを通常のホスト対象のデフォルトとして@matchより良いと考えている。- ScriptCat バックグラウンドまたは cron スクリプト内で DOM API を使用している。
- 非同期 GM 作業が真に完了する前に ScriptCat バックグラウンドスクリプトから戻っている。
==UserScript==と==UserSubscribe==パッケージング概念を混在させている。==UserConfig==を間違った場所に配置したり、group.key名なしでコンフィグキーを読み取っている。- Tampermonkey と ScriptCat のストレージ、通知、またはリクエスト動作が同じであると仮定している。
参考資料
references/metadata-and-api-map.mdreferences/scriptcat-extensions.md
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- xixu-me
- リポジトリ
- xixu-me/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/xixu-me/skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。