
Story Import
Import a long-form fiction project from structured拆书 artifacts into tracked state files (角色状态, 伏笔, 时间线) without re-reading raw manuscripts.
Overview
Story-import is an agent skill for the Build phase that reverse-engineers long-form fiction character state trackers from structured拆书 files in a fixed pipeline order.
Install
npx skills add https://github.com/worldwonderer/oh-story-claudecode --skill story-importWhat is this skill?
- Long-form-only 角色状态反推 from 拆文库 structured outputs—no re-read of 原文
- Strict Phase 3-L ordering: 伏笔.md and 时间线.md before 角色状态.md, then 上下文.md
- Seven-step per-character algorithm: identity, ability, relations, public image, open foreshadowing, and more
- Tracking threshold: protagonists, antagonists, core supporting cast (≥3 appearances or independent arcs)
- Integrates 角色关系.md, chapter summaries, and 伏笔 status 已埋 for pending payoff lists
- Seven-step reverse-engineering algorithm per major character
- Phase 3-L mandates 伏笔.md and 时间线.md before 角色状态.md
Adoption & trust: 1.9k installs on skills.sh; 2.1k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You finished拆书 analysis but lack synchronized 角色状态, 伏笔, and 上下文 trackers, so the agent might contradict arcs or miss unpaid foreshadowing.
Who is it for?
Indie long-form fiction authors already using oh-story / story-import folder layouts and Claude Code for chapter generation.
Skip if: Short stories, English-only workflows without the 拆文库 structure, or greenfield plotting before any拆书 outputs exist.
When should I use this skill?
Long-form import after 拆书 structured outputs exist and you need 追踪/角色状态.md without re-reading 原文.
What do I get? / Deliverables
You get 追踪/角色状态.md entries derived from 拆文库 with dependency-safe ordering so downstream drafting skills read accurate continuity state.
- 追踪/角色状态.md entries for protagonist, antagonist, and core supporting cast
- Cross-linked foreshadowing and timeline dependencies for 上下文.md generation
Recommended Skills
Journey fit
Shelf is Build → docs because the skill produces and maintains narrative bible and tracking markdown under a long-form writing repo. Docs subphase matches serialized fiction workflows: canonical markdown trackers agents consume on every writing session.
How it compares
Structured migration skill for fiction repos—not a general note-taking or markdown PM template.
Common Questions / FAQ
Who is story-import for?
Solo serial fiction writers automating continuity with Claude Code when 拆文库/{书名} analysis files are already on disk.
When should I use story-import?
During Build docs setup after拆书 completes and before automated chapter drafting, specifically in long-form imports that need 追踪/角色状态.md.
Is story-import safe to install?
It guides filesystem writes inside your story repo; review Security Audits on this Prism page and keep backups of 追踪 before bulk agent rewrites.
SKILL.md
READMESKILL.md - Story Import
# 角色状态反推规则(长篇专用) > 适用范围:仅长篇导入。短篇不产 `追踪/角色状态.md`(依据 `state-tracking.md`:「本节仅适用于长篇写作。短篇通常不需要独立的角色状态追踪文件」)。 > > 生成顺序约束:本文件所描述的反推依赖 `追踪/伏笔.md` 已生成(步骤 6「待回收伏笔」需查伏笔状态)。Phase 3-L 的正确顺序是:**先生成 `伏笔.md` 和 `时间线.md` → 再生成 `角色状态.md`(本规则)→ 最后生成 `上下文.md`**(上下文.md 的「角色状态:最近变更」字段依赖本文件)。 --- ## 一、输入来源 从已落盘的拆书产物反推,**不重读 `原文/` 目录**。拆书产物已是结构化提炼,重读原文是重复劳动,违反「先分析后迁移」原则。 | 输入文件 | 用途 | |---------|------| | `拆文库/{书名}/角色/{角色名}.md` | 基本档案(身份、能力、动机、出场记录、成长弧线) | | `拆文库/{书名}/角色/角色关系.md` | 关键关系的当前/最终状态与演变轨迹 | | `拆文库/{书名}/章节/第N章_摘要.md` | 各章情节点(角色状态变化的时序证据) | | `拆文库/{书名}/剧情/*.md` | 角色弧线、阵营/身份转折、故事线汇总 | | `追踪/伏笔.md`(已生成) | 查询与该角色相关、状态为「已埋」的伏笔 | --- ## 二、筛选追踪对象 复用 `state-tracking.md` 规则:**只追踪出场 ≥3 次或有独立剧情线的角色**。 对照 story-import 角色分级表: | 等级 | 是否进入角色状态.md | |------|-------------------| | 主角 | 是(完整条目) | | 反派 | 是(完整条目) | | 核心配角 | 是(完整条目) | | 功能角色 | 否(不追踪,出场章节 <20% 且作用有限) | 边界模糊时,归入更低等级(不追踪)。 --- ## 三、反推算法(每个主要角色一条目,7 步) 对每个需追踪的角色,按以下顺序执行: ### 步骤 1 — 当前身份 从 `角色/{角色名}.md` 的出场记录或成长弧线中,取**时序最晚**(最后章节)的身份/职业描述。若 `拆文报告.md` 中有更晚的总结性身份标注,以报告为准。 ### 步骤 2 — 当前能力 同理取该角色出场记录中最后出现的能力水平描述。能力体系由 `设定/世界观.md` 提供背景,能力细节从角色档案中读取。 ### 步骤 3 — 关键关系 从 `角色关系.md` 中取该角色所有关系条目的「当前/最终状态」字段(A↔B 关系格式:关系类型 | 情感 | 当前状态)。演变轨迹摘要写入关系描述括号中(「第N章变化」)。 ### 步骤 4 — 公众形象 扫描各章 `章节/第N章_摘要.md` 的情节点,检索类型含「外界评价/名声/身份暴露/社会地位变化」的最新一条(时序最晚)。无对应情节点时,填 `[导入反推] 待补充`。 ### 步骤 5 — 待回收伏笔 查询 `追踪/伏笔.md`,筛选满足以下两个条件的伏笔: 1. 涉及角色字段包含该角色名; 2. 状态字段为「已埋」(未回收)。 列出伏笔标题(如有多条,逐行列出)。若无相关已埋伏笔,填 `[导入反推] 暂无`。 > 注意:本步骤依赖 `追踪/伏笔.md` 已生成。若伏笔文件尚未生成,先完成 `伏笔.md`,再回来执行本步骤。 ### 步骤 6 — 状态变更记录 扫描 `角色/{角色名}.md` 的出场记录列,提取有明确状态变化(身份/能力/关系/形象)的章节,按章节顺序逐条转为变更记录行: ``` 第{N}章:{变化描述(一句话,含变化类型)} ``` **超过 10 条时按以下规则压缩**(复用 `state-tracking.md` 规则): - 将最早的记录摘要合并写入对应字段(如「当前身份:第 1-20 章从学生到歌手」); - 删除已合并的旧记录行; - 保留最近 10 条详细变更记录。 ### 步骤 7 — 整体标注 对该角色条目全文加 `[导入反推]` 标记(字段值有不确定性时在行末加标注;整个文件在文件头统一声明来源为导入反推)。 --- ## 四、输出格式 本节即为 `角色状态.md` 的标准模板(与 story-long-write 同名 artifact 字段一致),逐字段一一对应,不新增、不删减字段。 ```markdown # 角色状态追踪 > [导入反推] 本文件由 story-import 从拆书产物反推生成,非原始写作产出。 > 更新时机:Phase 3 大纲完成后创建初始状态;Phase 4 每章写完后更新变化。 > 反推基准:基于拆文库已有产物(角色档案 / 关系.md / 章节摘要 / 剧情文件),不重读原文。 ## {角色名} - **当前身份**:{最新身份/职业} - **当前能力**:{最新能力水平} - **关键关系**: - 与{角色B}:{当前关系状态}(第{N}章变化)[导入反推] - 与{角色C}:{当前关系状态} - **公众形象**:{外界如何看待该角色} / [导入反推] 待补充 - **待回收伏笔**:{与该角色相关的未回收伏笔} / [导入反推] 暂无 - **状态变更记录**: - 第{N}章:{变化描述} ``` 每个需追踪的角色独立一个 `## {角色名}` 节,按主角→反派→核心配角顺序排列。 --- ## 五、半成品书处理 最后一章为残稿(写了一半、内容明显截断)时: - 角色状态以**残稿之前的最后一个完整章节**为准,不纳入残稿内容。 - 在文件头的 `>` 引用块中注明: ``` > 半成品注记:基于第 N 章状态,残稿第 N+1 章内容未计入。 ``` 「最后一章是否完整」由 Phase 1 基本信息确认环节显式确认,结果传递到本步骤使用。 --- ## 六、大型作品(>200 章)增量导入 增量导入只导入前 N 章时,角色状态仅覆盖已导入章节,在文件头注明: ``` > 增量注记:基于已导入的前 N 章,后续增量导入时更新本文件。 ``` --- ## 七、质量自检 `角色状态.md` 生成后,对照以下清单确认: - [ ] 追踪对象仅含主角/反派/核心配角,功能角色未进入 - [ ] 所有字段与本文件「输出格式」节的模板逐字段对应,无字段缺失 - [ ] 不确定字段已加 `[导入反推]` 标记 - [ ] 「待回收伏笔」已引用 `追踪/伏笔.md` 的实际条目(或填「暂无」) - [ ] 变更记录超 10 条时已按规则压缩 - [ ] 半成品书已注明基准章节 - [ ] 文件头有「导入反推来源声明」 # 正文格式与小节结构 > 写作前必读。以下格式是当前仓库约定的默认正文交付格式;用户或目标平台有明确要求时,以用户/平台要求覆盖。 > > **适用范围**:段落格式(一句一段、≤60字)和对话格式适用于所有体裁。小节(beat)结构和字数标准仅适用于短篇。长篇小说字数以当前 skill 的字数硬约束为准。 --- ## 章节标记 默认格式(按灵活度排序): | 格式 | 平台适用 | 示例 | |------|----------|------| | `###1.` | 黑岩、点众(主流) | `###1.` `###2.` `###3.` | | `###第一章` | 部分平台 | `###第一章` `###第二章` | | `1.`(纯数字) | 知乎 | `1.` `2.` `3.`(无 ### 前缀) | **规则**:全文统一一种格式,不要混用。短篇推荐 `###1.` 或纯数字,简洁高效。 --- ## 段落格式 ### 核心规则:一句一段 默认交付排版是**一句一段,紧密排列**。 - 每段 1-3 句,不超 60 字 - 段与段之间**不加空行**(紧密排列) - 无缩进(平台渲染器自行处理,不需要 ` ` 或空格) - 一段只做一个动作:叙事/对话/心理/动作,不混合 - 三维度织入后仍要按镜头断段:新动作、新物件、新信息、新对话另起一段,不拆成动作层/感知层/反应层 ### 段落节奏 连续的短段落(1-2 句)制造紧张感。偶尔用 3 句的段落作为呼吸点。但**绝不**出现超过 60 字的大段落。 --- ## 对话格式 ### 对话标记 按目标平台/用户要求选择;未指定时使用默认格式: | 优先级 | 格式 | 适用平台 | |--------|------|----------| | 首选 | `"说话内容"` | 黑岩、点众、番茄(主流) | | 次选 | `「说话内容」` | 部分古言、日式 | | 平台指定 | `【说话内容】` | 仅知乎盐言故事 | **默认用 `""`**,除非用户指定知乎平台则改为 `【】`。 ### 对话规则 1. 对话**独立成行**,不嵌在叙述段落中 2. 用动作代替对话标签:不用「他说」「她道」,改为动作描写 + 对话 3. 两人对话连续出现时,省略标签,靠内容区分说话人 **正确示例**: ``` 她把杯子放下。 "你走吧。" 他没有动。 "我说,你走吧。" ``` **错误示例**: ``` 她把杯子放下,说道:"你走吧。"他没有动,她又说:"我说,你走吧