mcpField
S
sillytavern-extension-builder

sillytavern-extension-builder

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

关于 sillytavern-extension-builder

sillytavern-extension-builder 是用于创建和维护 SillyTavern 第三方扩展的技能,涵盖脚手架、API 用法、兼容性检查与打包,并提供界面和斜杠命令模板。

主要功能

  1. 01规划扩展契约
  2. 02生成默认及斜杠命令脚手架
  3. 03配置生命周期与设置
  4. 04实现界面、命令和工作器逻辑
  5. 05检查兼容性与打包
  6. 06提供参考指南和模板

适用场景

  1. 01从头创建 SillyTavern 扩展
  2. 02添加斜杠命令或设置
  3. 03以最小改动维护现有扩展
  4. 04打包前检查扩展文件

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/sillytavern-extension-builder确认已加载。

详细介绍

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