Skip to content
Back to skills

Story Import

ASecurity

把酒馆(SillyTavern)的东西搬进来 —— 用户提交角色卡(PNG/JSON)、预设 JSON、世界书时用本 skill。含落点表(每样东西该住哪、为什么)、角色卡字段对照、预设条目拆解、⛔ 搬设定不搬引擎的判据、处理物落盘规范。一律先 read_tavern_json 走 digest,别用 Read(真卡 7MB 起步)。

  • 37 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 26, 2026
ai-agents

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add Xiaokebuyu/Nodesign --skill story-import --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Story Import?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Story Import
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/xiaokebuyu-story-import/badge)](https://www.skillsdirectory.com/skills/xiaokebuyu-story-import)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: story-import
version: 0.1.0
description: 把酒馆(SillyTavern)的东西搬进来 —— 用户提交角色卡(PNG/JSON)、预设 JSON、世界书时用本 skill。含落点表(每样东西该住哪、为什么)、角色卡字段对照、预设条目拆解、⛔ 搬设定不搬引擎的判据、处理物落盘规范。一律先 read_tavern_json 走 digest,别用 Read(真卡 7MB 起步)。
---

# 第一动作

**`read_tavern_json` 走 digest 看结构,⛔ 别用 `Read`** —— 真卡 7MB 起步,
一次 Read 能吃掉半个上下文。PNG 卡直接把 path 指向 `.png`,卡数据它自己解。

**把整份读完再动手**。条目多就分几次把 entries 全拉下来 —— 落点判断靠的是内容,
不是标题,只扫名录就开工必错。

# 东西都落进故事的文件夹

正式的 RP 在演出显示器上演(`stage-setup` + `open_stage`)。人进 `cast_role` 的卡,故事的世界与规矩进 `open_stage.table`,
开场白进 `open_stage.opening`,世界书进 `<故事>/世界书/`(机器按关键词自动送给演出进程),预设 JSON 原样进 `<故事>/预设/`,
标量状态进 `vitals`,清单类状态进 `panels`。⛔ 不写项目 CLAUDE.md(演出进程不读它)。

# 判据:这段内容说的是「这个人是谁」,还是「这个故事该怎么讲」?

前者进角色卡,后者进故事的设定(`open_stage.table`)或写法预设。**这一步判断错误,后续全部偏差。**

第二个判据同样重要:**原样 cp 还是改写适配**。能原样用的原样搬 —— 尤其用户为
solo 挑的对象卡,那个声音是他自己挑的,转写一遍等于把它洗掉。只有与平台机制
冲突的部分(引擎零件、输出格式、越狱框架)才动手拆改。

# 落点表(按「在场频率」定,不按类型定)

| 酒馆的东西 | 落点 | 为什么 |
|---|---|---|
| 预设里的文风/叙事规则条目 | 整份 JSON 原样放进 `<故事>/预设/<名>.json`,机器拆成开关,玩家开场页自己勾(默认勾选照原预设的启用状态);他在问答里说了偏好就用 `open_stage.style.on/off` 预选 | 预设是给写手的规矩不是给某个人物的;拆成开关比抄进提示词能让玩家随时改 |
| 角色卡人设 | `角色/<名>/角色卡.md`(`cast_role` 写);卡里"由玩家决定是否启用"的条目写进卡的 `## 可选` 一节(一条一行 `- [ ] 名 — 说明`),显示器开场页画成开关 | 人设不许漂移;玩家自选的东西别替他定 |
| `first_mes` / 备选开场白 / `scenario` | 原文贴进 `open_stage.opening`,玩家点「开始」时机器交给演出进程当第一段的底(照地点、时刻、气氛写,不照抄) | 它是内容不是配置;开场是机器和玩家的事,⛔ 别替他说第一句 |
| 世界书常驻条目 | `export_book` 落 `世界书/常驻/` 后**人工挑十条以内**进 `table` 的「世界」节 | 常驻区是每轮的钱,只放真常驻 |
| 世界书触发条目 | `read_tavern_json {mode:"export_book"}` 一步落 `世界书/`,一条一文件、frontmatter 带 keys | 机器**按关键词自动**把命中的条目送给演出进程(`常驻/` 不扫);玩家能在开场页逐条关,他在问答里说不要的你用 `open_stage.lore.off` 预关。几百条不许流经上下文 |
| 卡里的变量 / 状态栏 / 背包 / 商店 | 标量进 `open_stage.vitals`(键名要跟规则、设定一字不差),清单进 `open_stage.panels`(背包 / 装备 / 商店 / 清单) | 数字归机器记,正文不出现 |
| 采样参数 / 破甲话术 / marker 占位 | 丢弃,照实告诉用户 | 这条通路没有对应物 |
| 跨会话演进的事实(玩家偏好、剧情定案) | `记忆/` | 酒馆没有的能力,本产品额外提供 |

# 角色卡 → 一份角色卡

| 卡里的字段 | 去哪 |
|---|---|
| `name` | `cast_role` 的 `name`(中文名放这;`id` 另取 ASCII slug) |
| `description` / `personality` | 档案主体 |
| `mes_example` | 档案里的语气样本,挑两三段别全抄。**这是你模仿他说话的依据** |
| `scenario` | **不进卡**:贴进 `open_stage.opening`(场景会变,人设不会) |
| `first_mes` | 贴进 `open_stage.opening`(连 scenario 一起) |
| 「由玩家决定是否启用」的设定 | 卡的 `## 可选` 一节,一条一行 `- [ ] 名 — 说明`,开场页画成开关 |
| `character_book` | `export_book` 落成世界书文件,机器按关键词送 |
| `system_prompt` / `post_history_instructions` | **先判断**:通用越狱/输出格式 → 丢;这个角色特有的铁律 → 并进档案 |

一张卡里写了好几个 NPC 是常事:**拆成好几份档案,别挤进一份。**

# 预设 → 不是给某个人物的

预设中的绝大多数条目是写给**你**的:叙事规矩、文风、节奏、输出格式。
⛔ 别把整份预设塞进某个人的档案 —— 那会让一个 NPC 背着一整套导演手册说话。

**不用你拆**:把原 JSON 放进 `<故事>/预设/<名>.json`,机器按 prompt_order 展开 {{setvar/getvar}} 宏、
一个条目一个开关、启用状态照搬,玩家开场页看得见每一条。告诉他"你的预设在开场页写法那一栏能选";
要用 `open_stage` 直接指定就传 `style: {preset: "user:<名>"}`。

预设常见的结构(认出来就好拆):一堆**开关条目**(每条往一个变量里塞一段文字)
加几条**总装条目**(把变量拼成最终提示词)。开关条目里没启用的那些是**备选功能**,
别丢 —— 见下面的处理物落盘。

# ⛔ 搬设定不搬引擎(大世界卡的一半是程序)

大型世界卡常驻条目里一半是**酒馆前端的引擎件**:MVU 变量系统、HTML 状态栏、
CoT 框架、自定义回复格式、`regex_scripts`、`tavern_helper`、marker 占位。
**这些一律不搬** —— 这个平台有自己的对应物:

| 酒馆的 | 这里的对应物 |
|---|---|
| 变量 / 状态栏 | `open_stage.vitals`(演出进程每段 `state` 上报,显示器侧栏画) |
| 背包 / 装备 / 商店 | `open_stage.panels`(进程 `update_panel` 记账,玩家在显示器点买 / 用) |
| 骰子插件 | 演出进程的 `roll`(服务端真随机) |
| 跨会话状态 | 进程的 `remember`(`记忆/` + 卡上的索引) |
| 可点选项 / 快捷回复 | `write_scene.choices` |
| 世界书关键词触发 | 机器每句自动撞 `世界书/` 的 keys |
| 分阶段人设(好感过 80 进第二阶段) | `open_stage.triggers`(机器到阈值递便条) |

判据一句话:**这条是给读者看的(搬),还是给酒馆程序执行的(不搬)。**
挑常驻进「世界」节时逐条过这一刀。

# 处理物落盘,别用完就丢

消化完一份预设或大卡,把处理产物放进 `<故事>/导入/<名>/`(⛔ 不是 `预设/`,那里是写法预设的家;用户随时取用、随时改):

- **`落点对账.md`** —— 每个条目去了哪:设定哪一节 / 哪张卡 / 哪个世界书文件 /
  预设开关 / 丢弃(写明为什么)。这是这份预设在本项目的地图。
- **`未启用条目.md`**(多了按主题拆)—— 没开的模式、备选文风、开关类条目**原文**
  留存。用户中途说「把那个吐槽模式打开」时,答案在这里,不必回头重读原始 JSON。

原始文件躺 `用户内容/` 不动。这些处理物是**工作成果不是缓存** —— 换场、换玩法、
用户改变主意、要撤回某条规则时,都从这里取。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.