sillytavern-extension-builder
4
总安装量
3
周安装量
#49181
全站排名
安装命令
npx skills add https://github.com/davidgibbons/sillytavern-skills --skill sillytavern-extension-builder
Agent 安装分布
opencode
3
gemini-cli
3
github-copilot
3
codex
3
kimi-cli
3
cursor
3
Skill 文档
SillyTavern Extension Builder
Overview
Create production-ready SillyTavern third-party extensions with the documented extension APIs and packaging rules.
Workflow
- Define the extension contract.
- Confirm extension slug, display name, minimum supported SillyTavern version, required modules, and whether the feature is UI-only, slash-command-only, or background worker based.
- If the user does not provide a slug, generate a lowercase kebab-case slug.
- Scaffold baseline files.
- Prefer
scripts/scaffold_extension.shto generatemanifest.json,index.js,style.css, andsettings.html. - Choose template mode:
defaultfor UI/event-focused extensions.slashfor slash-command-first extensions.
- If the user already has files, perform minimal edits instead of full rewrites.
- Wire extension lifecycle and settings.
- Keep extension settings under
extension_settings[EXTENSION_NAME]. - Call
loadExtensionSettings(EXTENSION_NAME)before reading setting values. - Use
saveSettingsDebounced()after setting changes. - Register startup/event handlers inside
jQuery(async () => { ... }).
- Implement user-facing behavior.
- For DOM/UI integration, use documented APIs (context helpers, templates, settings rendering).
- For command behavior, add slash commands and argument parsing with the slash-command APIs when needed.
- For background logic, use a module worker class and gate execution by current chat context.
- Validate compatibility and packaging.
- Ensure manifest keys are correct and file names match actual files.
- Ensure import paths are valid from the extension directory.
- Keep third-party dependency usage explicit and minimal.
- Package as a repo or zip with only required runtime files.
- Return deliverables.
- Provide final file set and a concise integration note.
- Include install path expectations and any required module prerequisites.
Output Rules
- Prefer minimal-diff changes when editing an existing extension.
- Keep settings schema stable; migrate old keys instead of silently breaking them.
- Use deterministic IDs/command names (derive from extension slug).
- If introducing a slash command, include help text and argument validation.
- If introducing a module worker, include clear stop conditions for idle/no-chat states.
Resources
references/writing-extensions-reference.md- Condensed upstream authoring guidance, required file anatomy, APIs, and release rules.
references/st-extension-example-walkthrough.md- Practical breakdown of the
city-unit/st-extension-exampletemplate and reuse patterns.
- Practical breakdown of the
references/extension-quality-guidelines.md- Research-backed recommendations for quality, maintainability, security, and release readiness.
references/template-selection-guide.md- Decision guide for choosing
defaultvsslashscaffold mode and migrating between them.
- Decision guide for choosing
assets/templates/extension/manifest.json- Starter manifest with placeholders.
assets/templates/extension/index.js- Starter extension entrypoint with settings and event wiring.
assets/templates/extension/style.css- Starter CSS file referenced by manifest.
assets/templates/extension/settings.html- Starter settings template for
renderExtensionTemplateAsync.
- Starter settings template for
assets/templates/extension-slash/manifest.json- Slash-command-first starter manifest.
assets/templates/extension-slash/index.js- Slash-command-first starter entrypoint with parser registration and validation.
assets/templates/extension-slash/style.css- Minimal stylesheet for command help/settings rows.
assets/templates/extension-slash/settings.html- Starter settings block for enabling/disabling command behavior.
scripts/scaffold_extension.sh- Generator script for new extension skeletons.
Notes
- The docs and extension APIs evolve. If behavior is uncertain, prefer upstream docs over assumptions and keep code conservative.
- Keep code style aligned with existing SillyTavern extension conventions (imports, settings handling, and event registration).