sillytavern-extension-builder について
SillyTavern のサードパーティ拡張を開発する人向けのスキルです。ひな形の生成、設定やライフサイクルの接続、コマンドやワーカーの実装、互換性確認を案内し、既存コードの最小限の変更とパッケージ化を重視します。
主な機能
- 01拡張機能の初期ファイル生成
- 02設定とライフサイクルイベントの接続
- 03UI、スラッシュコマンド、ワーカーの実装
- 04マニフェストとインポートパスの確認
- 05必要な実行ファイルのみをパッケージ化
- 06既存コードへの最小限の変更
活用シーン
- 01SillyTavern 拡張機能の新規作成
- 02引数検証付きスラッシュコマンドの追加
- 03拡張機能の設定とイベントの接続
- 04配布用拡張パッケージの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ davidgibbons/ sillytavern-skills --skill sillytavern-extension-builderインストール後、Claude Code で/sillytavern-extension-builderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlassets/templates/extension-slash/index.jsmanifest.jsonsettings.htmlstyle.cssassets/templates/extension/index.jsmanifest.jsonsettings.htmlstyle.cssreferences/extension-quality-guidelines.mdst-extension-example-walkthrough.mdtemplate-selection-guide.mdwriting-extensions-reference.mdscripts/scaffold_extension.sh詳細
SillyTavern Extension Builder
概要
ドキュメント化された拡張機能 API とパッケージ化ルールに従って、SillyTavern 用の本番環境対応サードパーティ拡張機能を作成します。
ワークフロー
- 拡張機能の契約を定義します。
- 拡張機能のスラッグ、表示名、サポートする SillyTavern の最小バージョン、必要なモジュール、機能が UI 専用、スラッシュコマンド専用、バックグラウンドワーカーのいずれに基づくかを確認します。
- ユーザーがスラッグを指定しない場合は、小文字のケバブケースのスラッグを生成します。
- 基本ファイルをひな形から作成します。
scripts/scaffold_extension.shを使用してmanifest.json、index.js、style.css、settings.htmlを生成することを推奨します。- テンプレートモードを選択します。
- UI/イベント中心の拡張機能には
defaultを使用します。 - スラッシュコマンドを中心とする拡張機能には
slashを使用します。
- UI/イベント中心の拡張機能には
- ユーザーがすでにファイルを用意している場合は、全面的に書き直すのではなく、最小限の編集を行います。
- 拡張機能のライフサイクルと設定を接続します。
- 拡張機能の設定は
extension_settings[EXTENSION_NAME]に保存します。 - 設定値を読み取る前に
loadExtensionSettings(EXTENSION_NAME)を呼び出します。 - 設定の変更後は
saveSettingsDebounced()を使用します。 - 起動時/イベントハンドラーは
jQuery(async () => { ... })内に登録します。
- ユーザー向けの動作を実装します。
- DOM/UI との連携には、ドキュメント化された API(コンテキストヘルパー、テンプレート、設定のレンダリング)を使用します。
- コマンドの動作には、必要に応じてスラッシュコマンド API を使ってスラッシュコマンドと引数解析を追加します。
- バックグラウンド処理にはモジュールワーカークラスを使用し、現在のチャットコンテキストに基づいて実行を制御します。
- 互換性とパッケージ化を検証します。
- マニフェストのキーが正しく、ファイル名が実際のファイルと一致していることを確認します。
- 拡張機能ディレクトリからのインポートパスが有効であることを確認します。
- サードパーティ依存関係の使用は明示的かつ最小限にします。
- 必要なランタイムファイルのみを含めて、リポジトリまたは zip としてパッケージ化します。
- 成果物を返します。
- 最終的なファイル一式と、簡潔な統合メモを提示します。
- インストール先として想定されるパスと、必要なモジュールの前提条件を記載します。
出力ルール
- 既存の拡張機能を編集する場合は、差分を最小限にすることを推奨します。
- 設定スキーマは安定させ、古いキーを黙って破棄するのではなく移行します。
- 決定的な ID/コマンド名を使用します(拡張機能のスラッグから導出します)。
- スラッシュコマンドを導入する場合は、ヘルプテキストと引数の検証を含めます。
- モジュールワーカーを導入する場合は、アイドル状態/チャットがない状態での明確な停止条件を含めます。
リソース
references/writing-extensions-reference.md- 上流の作成ガイダンス、必須ファイルの構成、API、リリースルールを簡潔にまとめたものです。
references/st-extension-example-walkthrough.mdcity-unit/st-extension-exampleテンプレートの実用的な解説と、再利用パターンです。
references/extension-quality-guidelines.md- 品質、保守性、セキュリティ、リリース準備に関する調査に基づいた推奨事項です。
references/template-selection-guide.mddefaultとslashのスキャフォールドモードの選択、およびモード間の移行に関するガイドです。
assets/templates/extension/manifest.json- プレースホルダーを含むスターターマニフェストです。
assets/templates/extension/index.js- 設定とイベント接続を含むスターター拡張機能エントリーポイントです。
assets/templates/extension/style.css- マニフェストから参照されるスターター CSS ファイルです。
assets/templates/extension/settings.htmlrenderExtensionTemplateAsync用のスターター設定テンプレートです。
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 拡張機能の規約に沿ったコードスタイルを維持してください。
コメント
Markdown 対応