mcpField
S
sillytavern-extension-builder

sillytavern-extension-builder

github.com/davidgibbons開発1546 回インストール6 週間前に更新
リポジトリ

sillytavern-extension-builder について

SillyTavern のサードパーティ拡張を開発する人向けのスキルです。ひな形の生成、設定やライフサイクルの接続、コマンドやワーカーの実装、互換性確認を案内し、既存コードの最小限の変更とパッケージ化を重視します。

主な機能

  1. 01拡張機能の初期ファイル生成
  2. 02設定とライフサイクルイベントの接続
  3. 03UI、スラッシュコマンド、ワーカーの実装
  4. 04マニフェストとインポートパスの確認
  5. 05必要な実行ファイルのみをパッケージ化
  6. 06既存コードへの最小限の変更

活用シーン

  1. 01SillyTavern 拡張機能の新規作成
  2. 02引数検証付きスラッシュコマンドの追加
  3. 03拡張機能の設定とイベントの接続
  4. 04配布用拡張パッケージの準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davidgibbons/sillytavern-skills --skill sillytavern-extension-builder

インストール後、Claude Code で/sillytavern-extension-builderを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
assets/templates/extension-slash/
index.js
manifest.json
settings.html
style.css
assets/templates/extension/
index.js
manifest.json
settings.html
style.css
references/
extension-quality-guidelines.md
st-extension-example-walkthrough.md
template-selection-guide.md
writing-extensions-reference.md
scripts/
scaffold_extension.sh

詳細

SillyTavern Extension Builder

概要

ドキュメント化された拡張機能 API とパッケージ化ルールに従って、SillyTavern 用の本番環境対応サードパーティ拡張機能を作成します。

ワークフロー

  1. 拡張機能の契約を定義します。
  • 拡張機能のスラッグ、表示名、サポートする SillyTavern の最小バージョン、必要なモジュール、機能が UI 専用、スラッシュコマンド専用、バックグラウンドワーカーのいずれに基づくかを確認します。
  • ユーザーがスラッグを指定しない場合は、小文字のケバブケースのスラッグを生成します。
  1. 基本ファイルをひな形から作成します。
  • scripts/scaffold_extension.sh を使用して manifest.json、index.js、style.css、settings.html を生成することを推奨します。
  • テンプレートモードを選択します。
    • UI/イベント中心の拡張機能には default を使用します。
    • スラッシュコマンドを中心とする拡張機能には slash を使用します。
  • ユーザーがすでにファイルを用意している場合は、全面的に書き直すのではなく、最小限の編集を行います。
  1. 拡張機能のライフサイクルと設定を接続します。
  • 拡張機能の設定は extension_settings[EXTENSION_NAME] に保存します。
  • 設定値を読み取る前に loadExtensionSettings(EXTENSION_NAME) を呼び出します。
  • 設定の変更後は saveSettingsDebounced() を使用します。
  • 起動時/イベントハンドラーは jQuery(async () => { ... }) 内に登録します。
  1. ユーザー向けの動作を実装します。
  • DOM/UI との連携には、ドキュメント化された API(コンテキストヘルパー、テンプレート、設定のレンダリング)を使用します。
  • コマンドの動作には、必要に応じてスラッシュコマンド API を使ってスラッシュコマンドと引数解析を追加します。
  • バックグラウンド処理にはモジュールワーカークラスを使用し、現在のチャットコンテキストに基づいて実行を制御します。
  1. 互換性とパッケージ化を検証します。
  • マニフェストのキーが正しく、ファイル名が実際のファイルと一致していることを確認します。
  • 拡張機能ディレクトリからのインポートパスが有効であることを確認します。
  • サードパーティ依存関係の使用は明示的かつ最小限にします。
  • 必要なランタイムファイルのみを含めて、リポジトリまたは zip としてパッケージ化します。
  1. 成果物を返します。
  • 最終的なファイル一式と、簡潔な統合メモを提示します。
  • インストール先として想定されるパスと、必要なモジュールの前提条件を記載します。

出力ルール

  • 既存の拡張機能を編集する場合は、差分を最小限にすることを推奨します。
  • 設定スキーマは安定させ、古いキーを黙って破棄するのではなく移行します。
  • 決定的な ID/コマンド名を使用します(拡張機能のスラッグから導出します)。
  • スラッシュコマンドを導入する場合は、ヘルプテキストと引数の検証を含めます。
  • モジュールワーカーを導入する場合は、アイドル状態/チャットがない状態での明確な停止条件を含めます。

リソース

  • references/writing-extensions-reference.md
    • 上流の作成ガイダンス、必須ファイルの構成、API、リリースルールを簡潔にまとめたものです。
  • references/st-extension-example-walkthrough.md
    • city-unit/st-extension-example テンプレートの実用的な解説と、再利用パターンです。
  • references/extension-quality-guidelines.md
    • 品質、保守性、セキュリティ、リリース準備に関する調査に基づいた推奨事項です。
  • references/template-selection-guide.md
    • default と slash のスキャフォールドモードの選択、およびモード間の移行に関するガイドです。
  • assets/templates/extension/manifest.json
    • プレースホルダーを含むスターターマニフェストです。
  • assets/templates/extension/index.js
    • 設定とイベント接続を含むスターター拡張機能エントリーポイントです。
  • assets/templates/extension/style.css
    • マニフェストから参照されるスターター CSS ファイルです。
  • assets/templates/extension/settings.html
    • renderExtensionTemplateAsync 用のスターター設定テンプレートです。
  • assets/templates/extension-slash/manifest.json
    • スラッシュコマンドを中心とするスターターマニフェストです。
  • assets/templates/extension-slash/index.js
    • パーサーの登録と検証を含む、スラッシュコマンド中心のスターターエントリーポイントです。
  • assets/templates/extension-slash/style.css
    • コマンドのヘルプ/設定行用の最小限のスタイルシートです。
  • assets/templates/extension-slash/settings.html
    • コマンドの動作を有効化/無効化するためのスターター設定ブロックです。
  • scripts/scaffold_extension.sh
    • 新しい拡張機能の骨組みを生成するスクリプトです。

注意事項

  • ドキュメントと拡張機能の API は変更されることがあります。動作が不確かな場合は、推測よりも上流のドキュメントを優先し、コードは保守的にしてください。
  • インポート、設定の処理、イベント登録については、既存の SillyTavern 拡張機能の規約に沿ったコードスタイルを維持してください。

コメント