agentsclimarketplace

Book storyline

Skill jianchang56/book-storyline/skills/book-storyline

从小说、古典文学、传记、纪实文学等书籍中,按章节提取忠于原文的故事梗概;也可在书籍没有连续故事线时改为章节内容梗概。Use when 用户要求提取故事梗概、按章节整理情节、压缩原著、删除非情节描写、保留剧情主线,或需要处理 TXT、Markdown、DOCX、PDF、EPUB、OCR 文本及分章目录中的书籍内容。From its SKILL.md

Install
npx -y skills add jianchang56/book-storyline --skill book-storyline

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

10.3 KB, ~3.7k tokens by cl100k_base, as published. Nobody here has run it

书籍分章故事梗概

按章节提取原文的因果事件链。保持忠实、清楚和精简,不把结果压缩成一句话,也不把梗概扩写成原著复述。

快速工作流

  1. 判断书籍类型、章节范围和精简程度。

  2. 对 TXT、Markdown、分章目录或 EPUB,优先运行预处理脚本:

    python scripts/prepare_book.py <输入文件或目录> <工作目录> --compression standard
    

    单文件未识别出章节标题时,脚本默认停止;仅在确认原书确实为单章时追加 --allow-single-chapter,不要把识别失败静默当成单章。

  3. manifest.json 的顺序读取 chapters/,不要重新依赖文件系统排序。

  4. 每章先建立事件账本,再写梗概并回查原文。

  5. 长篇任务更新 state.json,完成后执行跨章节校验。

脚本只负责可靠预处理,不生成故事梗概。PDF、DOCX、扫描件先使用对应能力提取正文,再进入本流程。

按需读取参考文件:

  • 遇到古典小说、现代小说、悬疑、传记、纪实或非叙事书籍时,读取 references/genre-rules.md
  • 处理超过二十章、人物关系复杂或需要分批续作时,读取 references/quality-and-state.md

一、确认任务

从用户要求或本地文件中确定:

  1. 书名和章节范围。
  2. 精简程度:简要、标准或详细。
  3. 输出语言、格式和保存位置。
  4. 只要情节,还是还要人物、结构或主题分析。
  5. 原文是分章文件、整本文件,还是扫描件。

用户要求明确时直接执行,不为已明确的信息重复提问。仅在以下情况先制作一章样稿并请求校准:

  • 用户明确要求先讨论或先看样稿;
  • “保留全部情节”和“非常精简”等要求互相冲突;
  • 章节边界或目标产物无法可靠判断;
  • 一项关键选择会明显改变整本书的结果。

大批量任务无需因篇幅大而强制暂停。可以先确定统一尺度,再分批处理并持续写入同一结果文件。

二、判断书籍类型

先判断书籍是否以连续事件为核心:

  • 叙事类:小说、史诗、戏剧、传记、回忆录、叙事纪实等,输出“故事梗概”。
  • 非叙事类:理论、教材、科普、论文集、议论散文等,没有稳定事件链时,输出“章节内容梗概”。
  • 混合类:分别处理叙事段落和论述段落,不把观点强行改写成剧情。

若用户要求“故事梗概”,但原书没有连续故事线,简短说明将改做章节内容梗概。不得虚构人物目标、冲突、转折或结局。

三、读取与整理原文

文件格式

  • TXT、Markdown:直接读取,先检查编码和换行是否正常。
  • 分章目录:使用自然数字顺序排列文件,避免把 10 排在 2 前面。
  • DOCX:调用可用的文档处理能力提取正文,并保留标题层级。
  • PDF:调用可用的 PDF 处理能力提取文本;排版复杂时结合页面渲染核对阅读顺序。
  • 扫描 PDF 或图片:先 OCR,再抽查标题、人物名、数字和页序;无法可靠识别时标明不确定性。
  • EPUB:按 ZIP 容器处理,读取 OPF 中的 spine 顺序,再从对应 XHTML 提取正文;不得仅按压缩包文件名字母顺序拼接。若环境不能可靠解析 EPUB,说明限制并请求转换为 TXT、HTML 或 PDF。

对 TXT、Markdown、分章目录和 EPUB 使用 scripts/prepare_book.py 可统一完成编码检测、自然排序、基础章节拆分、EPUB spine 解析,并生成标准化章节、manifest.jsonstate.json。脚本无法可靠识别复杂无标题分章时,回到人工章节识别流程。

manifest.jsonchapter_detection 会记录章节来自正文标题、文件边界、EPUB spine,还是显式单章确认。发布时必须把 manifest 交给校验器核对,不能只相信人工填写的章节数。

章节识别

按以下优先级确定章节边界:

  1. 正文中的章节标题。
  2. 目录与正文标题的对应关系。
  3. 分章文件名。
  4. 稳定重复的章节标记。

同时处理序章、楔子、引子、幕间、尾声和番外;它们属于原书结构时不得静默删除。

  • 一个文件包含多章时,按正文标题拆分。
  • 一章分散在多个文件时,按连续页码、标题和上下文合并。
  • 目录标题与正文标题不一致时,优先采用正文标题,并记录差异供核对。
  • 原章没有标题时,只保留章号;不要自行创造标题,除非用户要求。
  • 保留完整章号和章节名,不擅自改写。

阅读原文,不依赖对名著或畅销书的记忆。不得把影视改编、其他版本或后续章节的信息混入当前章节。

四、先建事件账本,再写梗概

每章必须采用两阶段处理,防止边读边压缩造成漏情节。

第一阶段:建立内部事件账本

按原文顺序记录候选事件。每项至少判断:

  • 谁采取了什么行动;
  • 行动的原因或触发信息;
  • 对人物、关系、地点、资源、能力或局势造成什么变化;
  • 是否被后续事件承接。

事件账本用于内部核对,默认不写入最终文件。

第二阶段:筛选与合并

满足下列任一条件时保留事件:

  • 引发后续事件;
  • 改变人物的目标、选择、认知、关系、身份、位置或资源;
  • 引入、升级或解决冲突;
  • 提供影响后续行动的信息;
  • 建立有后果的能力、物品、承诺、规则、威胁或身份;
  • 产生不可逆结果;
  • 是后续重要事件必要的铺垫或兑现。

可以合并连续发生、作用相同且结果一致的事件,但不得因合并而丢失新的决定、转折或结果。

通常删除:

  • 不影响行动的风景和气氛;
  • 装饰性外貌、服饰、饮食、建筑和物品清单;
  • 诗词、骈文、赞语和修辞重复;
  • 胜负未变化的重复招式;
  • 仅到场、列班、献礼或喝彩的人物;
  • 与后续行动无关的哲理、历史和技术说明。

当描述能够解释决定、形成障碍、改变能力或在后文产生作用时,必须保留其情节功能。

五、处理人物与专名

  • 默认不单列“出场人物”。
  • 人物采取行动、提供关键信息、改变结果或成为后续必要角色时,在正文中保留。
  • 仅露面、陪同、赞叹、献礼或存在于名单中的人物可以忽略。
  • 两个人物的独立行动分别影响结果时,不得合并为模糊群体。
  • 只保留理解因果关系所必需的人名、身份、能力、物品和地点。
  • 保持人物改名、称号、身份揭示和关系变化的时间顺序,不得提前使用后文才出现的身份。

六、选择精简程度

默认使用“标准”。精简程度按保留的信息层级定义,不按固定段落数或字数机械裁切。

简要

每章保留:

  • 核心目标或问题;
  • 主要阻碍;
  • 最大转折;
  • 最终结果。

适合快速了解全书,不适合建立完整剧情资料。

标准

每章保留:

  • 完整主因果链;
  • 重要决定和关键信息;
  • 所有改变局势的遭遇与转折;
  • 冲突结果及其对下一阶段的影响。

将旅程、训练、对话、战斗和仪式压缩为其叙事作用。章节情节密度高时可以自然增加篇幅。

详细

按时间顺序保留几乎所有具有后续影响的场景、信息和状态变化,只删除明确的非叙事内容与重复表达。

用户要求“不遗漏故事情节”时采用此档,但仍不复述景物、诗词和重复招式。

相邻章节保持相近的判断尺度,但不要为了篇幅整齐而删减高密度章节,或填充低密度章节。

七、写作要求

  • 默认使用现代、直接的中文。
  • 严格遵循原文时间顺序和因果关系。
  • 说明发生了什么、为何发生、造成什么变化。
  • 重要对话通常转为简洁转述;原话本身构成证据、承诺、谜语或关键线索时才保留原句。
  • 不添加原文没有支持的动机、主题、象征和解释。
  • 用户只要情节时,不加入人物分析、结构分析、道德评价或写作建议。
  • 不使用“本章主要讲述”等空泛开头,直接写事件。

默认 Markdown 格式:

# 《书名》故事梗概

## 第一章 完整章节标题

故事情节……

## 第二章 完整章节标题

故事情节……

八、逐章回查

完成每章后,对照事件账本和原文检查:

  • 完整章号与章节名是否正确;
  • 事件是否仍按原文顺序排列;
  • 起因、关键决定、转折和结果是否齐全;
  • 是否遗漏后文会承接的铺垫;
  • 保留的人物和专名是否都对因果关系有用;
  • 是否混入原文之外或后续章节的信息;
  • 是否残留无叙事作用的风景、名单、修辞和重复行动;
  • 精简后是否仍能解释本章如何推动故事前进。

发现遗漏时补回事件;发现只剩名词而没有因果作用时继续压缩。

九、跨章节校验

完成一批或全书后,检查:

  • 章节顺序、缺章、重章和文件排序;
  • 人物称号、身份和关系变化是否前后一致;
  • 能力、物品和规则是否在原文首次出现后才写入;
  • 前章提出的问题是否在后章得到正确承接;
  • 跨章事件是否被重复描述或从两章之间漏掉;
  • 同一专名是否因 OCR、异体字或版本差异出现不一致;
  • 各章精简尺度是否稳定。

长篇分批处理时,维护一份内部一致性表,记录人物当前身份、重要物品、未解决冲突和最近章节结果。默认不把该表加入最终文件。

若预处理生成了 state.json,按 references/quality-and-state.md 更新它,不另造格式不一致的状态文件。

十、交付

写入文件后,报告绝对路径,并说明采用的精简程度和覆盖的章节范围。若存在 OCR、缺页、版本差异或章节识别不确定性,明确列出,不要默默猜测。

What ships with it: 4 files

16.8 KB alongside SKILL.md, 2 of them executable

references/

scripts/

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.