关于 sillytavern-extension-builder
sillytavern-extension-builder 是用于创建和维护 SillyTavern 第三方扩展的技能,涵盖脚手架、API 用法、兼容性检查与打包,并提供界面和斜杠命令模板。
主要功能
- 01规划扩展契约
- 02生成默认及斜杠命令脚手架
- 03配置生命周期与设置
- 04实现界面、命令和工作器逻辑
- 05检查兼容性与打包
- 06提供参考指南和模板
适用场景
- 01从头创建 SillyTavern 扩展
- 02添加斜杠命令或设置
- 03以最小改动维护现有扩展
- 04打包前检查扩展文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ inkandale/ sillytavern-skills --skill sillytavern-extension-builder安装后在 Claude Code 中输入/sillytavern-extension-builder确认已加载。
详细介绍
SillyTavern 扩展构建器
概览
使用文档中规定的扩展 API 和打包规则,创建可用于生产环境的 SillyTavern 第三方扩展。
工作流
- 定义扩展契约。
- 确认扩展 slug、显示名称、最低支持的 SillyTavern 版本、必需模块,以及该功能属于仅限 UI、仅限斜杠命令,还是基于后台 worker。
- 如果用户未提供 slug,则生成一个小写 kebab-case slug。
- 搭建基础文件。
- 优先使用
scripts/scaffold_extension.sh生成manifest.json、index.js、style.css和settings.html。 - 选择模板模式:
default:适用于侧重 UI/事件的扩展。slash:适用于以斜杠命令为核心的扩展。
- 如果用户已有文件,则进行最小修改,而不是完全重写。
- 接入扩展生命周期和设置。
- 将扩展设置保存在
extension_settings[EXTENSION_NAME]下。 - 读取设置值之前调用
loadExtensionSettings(EXTENSION_NAME)。 - 设置发生变化后调用
saveSettingsDebounced()。 - 在
jQuery(async () => { ... })内注册启动和事件处理程序。
- 实现面向用户的行为。
- 对于 DOM/UI 集成,使用文档中规定的 API(上下文辅助工具、模板、设置渲染)。
- 对于命令行为,根据需要使用斜杠命令 API 添加斜杠命令并解析参数。
- 对于后台逻辑,使用模块 worker 类,并根据当前聊天上下文控制执行。
- 验证兼容性和打包。
- 确保 manifest 键正确,且文件名与实际文件一致。
- 确保从扩展目录出发的导入路径有效。
- 明确并尽量减少第三方依赖的使用。
- 将扩展打包为仓库或 zip,仅包含运行所需的文件。
- 提供交付内容。
- 提供最终文件集和简洁的集成说明。
- 说明预期的安装路径及任何必需的模块前置条件。
输出规则
- 编辑现有扩展时,优先采用最小差异修改。
- 保持设置架构稳定;应迁移旧键,而不是悄然导致其失效。
- 使用确定性的 ID/命令名称(根据扩展 slug 派生)。
- 如果新增斜杠命令,请包含帮助文本和参数验证。
- 如果新增模块 worker,请明确说明空闲/无聊天状态下的停止条件。
资源
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- 含占位符的初始 manifest。
assets/templates/extension/index.js- 包含设置和事件接入的初始扩展入口文件。
assets/templates/extension/style.css- manifest 引用的初始 CSS 文件。
assets/templates/extension/settings.html- 供
renderExtensionTemplateAsync使用的初始设置模板。
- 供
assets/templates/extension-slash/manifest.json- 以斜杠命令为核心的初始 manifest。
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