关于 sillytavern-extension-builder
面向开发者的 SillyTavern 第三方扩展构建技能,指导脚手架生成、设置与生命周期接入、命令或后台任务实现及兼容性检查,并强调最小化修改和打包。
主要功能
- 01生成扩展初始文件
- 02接入设置与生命周期事件
- 03实现 UI、斜杠命令或后台任务
- 04检查清单文件和导入路径
- 05仅打包必要运行文件
- 06优先最小化修改现有代码
适用场景
- 01创建新的 SillyTavern 扩展
- 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 扩展构建器
概览
使用文档中规定的扩展 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