mcpField
S
sillytavern-extension-builder

sillytavern-extension-builder

github.com/davidgibbons开发1546 次安装6 周前更新
代码仓库

关于 sillytavern-extension-builder

面向开发者的 SillyTavern 第三方扩展构建技能,指导脚手架生成、设置与生命周期接入、命令或后台任务实现及兼容性检查,并强调最小化修改和打包。

主要功能

  1. 01生成扩展初始文件
  2. 02接入设置与生命周期事件
  3. 03实现 UI、斜杠命令或后台任务
  4. 04检查清单文件和导入路径
  5. 05仅打包必要运行文件
  6. 06优先最小化修改现有代码

适用场景

  1. 01创建新的 SillyTavern 扩展
  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 扩展构建器

概览

使用文档中规定的扩展 API 和打包规则,创建可用于生产环境的 SillyTavern 第三方扩展。

工作流

  1. 定义扩展契约。
  • 确认扩展 slug、显示名称、最低支持的 SillyTavern 版本、必需模块,以及该功能属于仅限 UI、仅限斜杠命令,还是基于后台 worker。
  • 如果用户未提供 slug,则生成一个小写 kebab-case slug。
  1. 搭建基础文件。
  • 优先使用 scripts/scaffold_extension.sh 生成 manifest.json、index.js、style.css 和 settings.html。
  • 选择模板模式:
    • default:适用于侧重 UI/事件的扩展。
    • slash:适用于以斜杠命令为核心的扩展。
  • 如果用户已有文件,则进行最小修改,而不是完全重写。
  1. 接入扩展生命周期和设置。
  • 将扩展设置保存在 extension_settings[EXTENSION_NAME] 下。
  • 读取设置值之前调用 loadExtensionSettings(EXTENSION_NAME)。
  • 设置发生变化后调用 saveSettingsDebounced()。
  • 在 jQuery(async () => { ... }) 内注册启动和事件处理程序。
  1. 实现面向用户的行为。
  • 对于 DOM/UI 集成,使用文档中规定的 API(上下文辅助工具、模板、设置渲染)。
  • 对于命令行为,根据需要使用斜杠命令 API 添加斜杠命令并解析参数。
  • 对于后台逻辑,使用模块 worker 类,并根据当前聊天上下文控制执行。
  1. 验证兼容性和打包。
  • 确保 manifest 键正确,且文件名与实际文件一致。
  • 确保从扩展目录出发的导入路径有效。
  • 明确并尽量减少第三方依赖的使用。
  • 将扩展打包为仓库或 zip,仅包含运行所需的文件。
  1. 提供交付内容。
  • 提供最终文件集和简洁的集成说明。
  • 说明预期的安装路径及任何必需的模块前置条件。

输出规则

  • 编辑现有扩展时,优先采用最小差异修改。
  • 保持设置架构稳定;应迁移旧键,而不是悄然导致其失效。
  • 使用确定性的 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