ruxi-skilllisted
Install: claude install-skill swaylq/ruxi-skill
# 入戏 · 把一本书变成你能玩进去的一场戏
> 你不是读者。你是书里那个只有三行字的人,
> 站在原著真实发生过的抉择路口上,替她重新选一次。
## 这个 skill 干什么
输入一本书,输出一个 `index.html`——双击即玩、离线可玩、可发给朋友的视觉小说。
它和「让 AI 写个 galgame」的区别是五条铁律(详见 `references/adaptation.md`):
1. 不覆盖全书,只取五到八场戏
2. 玩家默认演原著里被略过的边角人物
3. 每个分支点必须指得回原文的一句话——找不到出处的分支砍掉
4. 不做好感度,做理解度:选项是解读,通关结算「你读懂了多少」
5. 结局里必须有一条是原著真实发生的事,标为正典
完整样例:`demos/metamorphosis/`(《变形记》——你是萨姆沙���十六岁的帮厨女孩)。
## 工作流:五阶段
### 阶段 0 · 版权判定(先于一切)
问用户或查证两件事:**作者卒年、首次发表年**。按 `references/adaptation.md` §6 判档,
写进 `meta.book.pd_status`。三档:全球公版 / 美国公版 / 有版权(仅限本地自娱,
构建器自动注水印)。**译本有独立版权**——引用一律引原语言初版,译文自译。
拿不准按有版权处理,并明确告知用户这不是法律意见。
### 阶段 1 · 拆书选戏
```bash
python3 tools/scan_scenes.py book.epub # 英文书
python3 tools/scan_scenes.py book.txt --names "甲,乙,丙" # 中文书必须给人名
python3 tools/scan_scenes.py book.epub --json # 给自己读的全量数据
```
压强表出来后,精读入选章 + 人物首次登场章。压强公式会漏「沉默的重场」和
「信息爆点」,按方法论 §1 人工补。选定 5-8 场,排成一条线。
### 阶段 2 · 定角
按方法论 §2 找边角人物(grep 仆人/信使/邻居/无名者),验三条标准,
**把「玩家演谁」和「这个角色自带的中心问题」摆给用户确认**,再动笔。
### 阶段 3 · 写本
- 剧本 = 一个 JSON,结构定义在 `references/script-schema.md`,逐字段照填,不得加字段
- 写前先做文风档案(方法论 §5),旁白台词全部按档案写
- 每个 option 的 source 从原文精确摘句(≤60 字);发明的场景诚实标注
- 理解度计分自查三问(方法论 §4)
### 阶段 4 · 构建与自测
```bash
python3 tools/build_html.py script.json out/index.html # 校验 + 构建
python3 tools/build_html.py script.json --check # 只校验
```
校验器抓:goto 断链、cast 引用错误、canon 结局不唯一、option 缺出处、超长台词。
构建后**必须自己玩一遍全部路线**(浏览器打开,或无头跑一遍分支图),
确认每条 goto 可达、结算页判词正确,再交付。
### 阶段 5 · 交付
交给用户:`index.html`(主产物)+ `CREDITS.md`(原著出处、素材许可、改编声