用于把小说章节改写为更适合 GoodNovel 平台的英文版本。适合强调情绪黏性、关系张力、顺滑英文表达与持续阅读意愿的正文输出;供多个题材的 `题材名-输出GoodNovel版` 包装层路由使用。关键词:输出GoodNovel版、GoodNovel、英文平台、关系张力。
npx skills add https://github.com/lornshrimp/Lorn.NovelWriteSkills --skill 通用-输出GoodNovel版
> 题材路由:若 .github\题材专用Skills\ 目录存在对应的 <题材>-输出GoodNovel版 Skill,则:
> - 将题材特性骨架路由到 <题材>-输出GoodNovel版,该 Skill 位于 .github\题材专用Skills\ 目录。
> - 命中本技能时,必须优先强制加载当前 Skill 与 <题材>-输出GoodNovel版。
这是平台共性本体,负责承接“GoodNovel 版输出”的跨题材共性规则。
<!-- ===== Layer 1: 永久缓存 ===== -->
<!-- ===== Layer 3: 场景缓存 ===== -->
题材名-输出GoodNovel版 提供稳定的通用平台骨架。以下为本平台通用默认字数范围,适用于未在项目 Agents.md 中指定字数覆盖值的情况。若项目 Agents.md 已指定该平台的字数要求,则以 Agents.md 为准。
以下所列 references 文件必须通过 read_file 工具逐文件读取,不得因"已有相关知识"、"之前执行时已读过"、"该文件只是参考"为理由跳过任何一条。 每条 references 按其标注的必读等级强制执行:
reference_missing_{refName},不得静默跳过。references/平台共性执行细则.mdreferences/分节级补救映射与详细规则回填.md题材名-输出GoodNovel版,必须先由题材包装层锁定:题材边界、题材禁行项、题材专项补丁、题材 refs 调度与题材输出口径。references/跨题材共性与迁移来源.mdreferences/平台研究补充_GoodNovel都市悬疑.md这些文件仅用于追溯迁移来源、核对历史承接关系或处理遗留映射缺口;默认执行时,不把它们当作当前跨题材平台规则主承载。
本 Skill 的结构遵循前缀缓存优化原则,调用时:
人物传记、故事设定、写作研究模板等 references 通过 ## 继续读取的 references 声明强制加载,其固定部分随本 Skill 一起进入缓存前缀。
<!-- ===== Layer 2: 项目级缓存 ===== -->
若当前服务的项目根目录存在 Agents.md,执行GoodNovel版输出前必须:
Agents.mdAgents.md 中注册了三类模板,按以下优先级检索:GoodNovel 的同类型模板默认 的同类型模板WebNovel、My Fiction),本轮不加载Agents.md,或其中未注册GoodNovel专属模板——回退通用默认模式,不影响正常输出题材名-输出GoodNovel版 Skill,确认题材入口与路由关系。references/平台共性执行细则.md 与 references/分节级补救映射与详细规则回填.md,执行 GoodNovel 的情绪黏性、关系张力与追更动机强化。platformPovContract 一致,不得出现未授权人称漂移。通用-多平台输出编排 调度,必须继承该流程已锁定的 platformPovContract,不得在本 Skill 内重新决定使用第一人称还是第三人称。platformPovContract;默认优先级为:用户明确指定 > 当前平台已完成前序章节 > 源稿既有 POV 链路 > 本批次首个已通过章节。switchPlan 执行,不得临场换壳。scripts/pov_validate.py 或 scripts/run_pov_gate.ps1 以 lang=en 或 auto 复核正文区块,第三人称链路检查对话外第一 / 第二人称,第一人称链路检查对话外第一人称锚点。> 强制前置步骤:必须首先读取工作区根目录 Agents.md 的 ## 平台POV基线表 节,查找本平台的当前锁定人称。若基线表中无本平台条目,必须先在该表中创建条目并锁定人称(参考下方"适用场景分析"),再继续执行。
>
> 人称是全书级契约:基线表锁定值即为本平台全书的唯一人称,不得逐章切换,不得章内混用(对话引用除外)。极特殊情况下某章须切换主视角人物时,该章开头必须明确声明当前视角人物(如"POV: [Character Name]"),且整章只保持该角色的叙事一致性。
若本次执行未获得上游明确的 platformPovContract 锁定,按以下指南为本平台适配稿确定人称(最终以 Agents.md 的 ## 平台POV基线表 节锁定值为准):
平台底层逻辑:GoodNovel 是英文平台中"情绪驱动型"的代表。国际读者追更的核心动力不是解谜,而是"情绪张力 + 关系推拉 + cliffhanger"。研究建议"视角宜保持深第三人称或第一人称的贴身感,让读者'跟着角色一起知道'。禁止全知第三人称——它会损失情绪连接和关系张力。"
为什么 GoodNovel 两种人称都有成熟受众?
判断标准——回答这个问题:"故事的核心驱动力是'一个人的情感旅程',还是'多角色关系中碰撞出的张力'?"
每章平台稿落盘时,必须在文件末尾(## 作者有话说、## 章节后记 之后)追加"章节题图与配图提示词"区块,为本章提供可直接投喂 AI 生图模型的提示词。本节只输出提示词文本,不输出图片本身。
文件末尾按以下顺序组织:
Insert at the end of paragraph N (starts with: "...")——先写段落序号,再用该段开头 8–15 个英文单词二次定位,确保无歧义。[illustration]、HTML 注释等锚点或标记;平台稿正文保持纯文本。改写输出完成后,必须立即执行本节自检;根据发现的问题就地修订,确认通过后方可落盘。不得以任何理由跳过本步骤。
五项自检:
## 作者有话说 应参考本 Skill 的"平台默认字数范围"(或项目 Agents.md 覆盖值)。正文未达推荐下限前,建议先回炉补足字数。严格禁止为凑字数进行模板化补字或机械扩写;若检测到模板句污染、解释腔堆砌或无意义重复,则判定字数虽足但自检失败,必须重写。platformPovContract 一致;漂移则回炉修正。结论格式(必须输出):
[自检通过] 五项均达标,可落盘。[自检修订完成] 已修订:<问题描述>,现五项均达标,可落盘。[自检未通过] 命中:<问题描述>,需继续处理。命中“未通过”后必须修订并重新输出自检结论,循环直至输出“通过”或“修订完成”方可落盘。
x.y.z 形式的章节编号及其紧跟空格,再仅对剩余标题正文计数。scripts/append_cn_unique_monologue.ps1、scripts/append_cn_unique_narration.ps1、scripts/append_cn_unique_thirdperson.ps1、scripts/rephrase_cn_body.ps1、scripts/rephrase_en_body.ps1、scripts/cn_lexicon_profile_transform.ps1。这些工具不得进入平台正文生产链路。platformPovContract;不得在本 Skill 内擅自把前序稳定链路改成新的 POV 链路。pov_drift_detected / pov_switch_without_approval 判定失败并整稿回炉。题材名-输出GoodNovel版 Skill。都市悬疑 口径直接当成跨题材默认规则继续扩散。GoodNovel/ 下。GoodNovel/第X部/第Y卷/;若作品无分部,则位于 GoodNovel/第X卷/。.md 文件形式落盘:若对应章节目录不存在,执行前必须先创建完整目录路径,再将改写后的章节内容写入该目录下的 .md 文件,不得只输出聊天稿而不写入文件。scripts/count-chapter.ps1,不得用 Len、NoWhitespaceLen 或编辑器字符数代替。字数参数按以下优先级确定:① 项目 Agents.md 中该平台指定 → ② 本 Skill 的"平台默认字数范围"。正文门禁用 scripts/count-chapter.ps1 -Path "FILE" 校验(英文稿重点关注 Len 字段作为总字符参考,BodyCJK 用于零中文排查);此外用 scripts/platform_validate.ps1 以对应字数参数校验整稿;若只单独核 ## 作者有话说,用 scripts/count-afterword-words.ps1(参数取对应作者有话说范围);除 ## 作者有话说 标记行外,还必须用 scripts/check_no_cjk_except_marker.ps1 校验零中文 / CJK。Agents.md 覆盖值为准。输出GoodNovel版.prompt.md 中尚未完成映射的内容。题材名-输出GoodNovel版 承接。题材名-输出GoodNovel版;不应直接把本 Skill 与题材 refs 并列成双入口。Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take lornshrimp/通用-输出goodnovel版 from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.