用于把小说章节改写为更适合微信订阅号连载语境的版本。适合强调熟人传播、段落顺滑、轻社交转发、章内微钩子与持续关注的正文输出;供多个题材的 `题材名-输出微信订阅号版` 包装层路由使用。关键词:输出微信订阅号版、微信连载、公众号连载、订阅号改写。
npx skills add https://github.com/lornshrimp/Lorn.NovelWriteSkills --skill 通用-输出微信订阅号版
> 题材路由:若 .github\题材专用Skills\ 目录存在对应的 <题材>-输出微信订阅号版 Skill,则:
> - 将题材特性骨架路由到 <题材>-输出微信订阅号版,该 Skill 位于 .github\题材专用Skills\ 目录。
> - 命中本技能时,必须优先强制加载当前 Skill 与 <题材>-输出微信订阅号版。
这是平台共性本体,负责承接“微信订阅号版输出”的跨题材共性规则。
<!-- ===== Layer 1: 永久缓存 ===== -->
<!-- ===== Layer 3: 场景缓存 ===== -->
题材名-输出微信订阅号版 提供稳定的通用平台骨架。以下为本平台通用默认字数范围,适用于未在项目 Agents.md 中指定字数覆盖值的情况。若项目 Agents.md 已指定该平台的字数要求,则以 Agents.md 为准。
以下所列 references 文件必须通过 read_file 工具逐文件读取,不得因"已有相关知识"、"之前执行时已读过"、"该文件只是参考"为理由跳过任何一条。 每条 references 按其标注的必读等级强制执行:
reference_missing_{refName},不得静默跳过。references/平台共性执行细则.mdreferences/分节级补救映射与详细规则回填.md题材名-输出微信订阅号版,必须先由题材包装层锁定:题材边界、题材禁行项、题材专项补丁、题材 refs 调度与题材输出口径。references/跨题材共性与迁移来源.mdreferences/平台研究补充_微信订阅号都市悬疑.md这些文件仅用于追溯迁移来源、核对历史承接关系或处理遗留映射缺口;默认执行时,不把它们当作当前跨题材平台规则主承载。
本 Skill 的结构遵循前缀缓存优化原则,调用时:
人物传记、故事设定、写作研究模板等 references 通过 ## 继续读取的 references 声明强制加载,其固定部分随本 Skill 一起进入缓存前缀。
<!-- ===== Layer 2: 项目级缓存 ===== -->
若当前服务的项目根目录存在 Agents.md,执行微信版输出前必须:
Agents.mdAgents.md 中注册了三类模板,按以下优先级检索:微信 的同类型模板默认 的同类型模板番茄、起点),本轮不加载Agents.md,或其中未注册微信专属模板——回退通用默认模式,不影响正常输出题材名-输出微信订阅号版 Skill,确认题材入口与路由关系。references/平台共性执行细则.md 与 references/分节级补救映射与详细规则回填.md,执行订阅号平台的滑读感、微钩子、作者口吻与连载粘性强化。platformPovContract 一致,不得出现未授权人称漂移。通用-多平台输出编排 调度,必须继承该流程已锁定的 platformPovContract,不得在本 Skill 内重新决定人称。platformPovContract;默认优先级为:用户明确指定 > 当前平台已完成前序章节 > 源稿既有 POV 链路 > 本批次首个已通过章节。switchPlan 执行,不得临场换壳。scripts/pov_validate.py 或 scripts/run_pov_gate.ps1 以 lang=zh 或 auto 复核正文区块,第三人称链路检查对话外第一 / 第二人称,第一人称链路检查对话外第一人称锚点。> 强制前置步骤:必须首先读取工作区根目录 Agents.md 的 ## 平台POV基线表 节,查找本平台的当前锁定人称。若基线表中无本平台条目,必须先在该表中创建条目并锁定人称(参考下方"适用场景分析"),再继续执行。
>
> 人称是全书级契约:基线表锁定值即为本平台全书的唯一人称,不得逐章切换,不得章内混用(对话引用除外)。极特殊情况下某章须切换主视角人物时,该章开头必须明确声明「我是[角色名]」,且整章只保持该角色的第一人称叙事。
若本次执行未获得上游明确的 platformPovContract 锁定,按以下指南为本平台适配稿确定人称(最终以 Agents.md 的 ## 平台POV基线表 节锁定值为准):
平台底层逻辑:微信订阅号是"熟人社交圈内的连载阅读"。读者不是在"阅读器"里看书,而是在朋友圈/会话消息里"点开一篇推文"。这意味着两个关键差异:① 开头 3 秒决定是否继续滑;② 分享转发的动机 = 继续追更的动力。
研究给出了两条清晰的路径:
## 作者有话说 形成双层亲密感(叙事者"我" + 作者"我"),读者与"我"建立的周更陪伴关系是长期留存的核心。判断标准——回答这个问题:"你的故事更适合'肩扛摄像机跟拍一个普通人遭遇恐惧',还是'上帝沉默但镜头在多角色间调度'?"
路径一(第一人称)的适用条件:
路径二(第三人称)的适用条件:
## 作者有话说 中额外补足与读者的个人连接感,弥补叙事距离。微信订阅号的读者-作者关系比任何平台都更"个人化"每章平台稿落盘时,必须在文件末尾(## 作者有话说、## 章节后记 之后)追加"章节题图与配图提示词"区块,为本章提供可直接投喂 AI 生图模型的提示词。本节只输出提示词文本,不输出图片本身。
文件末尾按以下顺序组织:
插在第 N 段末(段首句:"……")——先写段落序号,再用该段开头 8–15 个字二次定位,确保无歧义。[插图]、(此处配图)、HTML 注释等锚点或标记;平台稿正文保持纯文本。## 作者有话说 强制门禁(重点)## 作者有话说 必须为中文,且长度严格落在 80–120 CJK。## 作者有话说,再进入落盘与分发步骤。改写输出完成后,必须立即执行本节自检;根据发现的问题就地修订,确认通过后方可落盘。不得以任何理由跳过本步骤。
五项自检:
## 作者有话说 应参考本 Skill 的"平台默认字数范围"(或项目 Agents.md 覆盖值)。正文未达推荐下限前,建议先回炉补足字数。严格禁止为凑字数进行模板化补字或机械扩写;若检测到模板句污染、解释腔堆砌或无意义重复,则判定字数虽足但自检失败,必须重写。0.1 作者有话说达标:## 作者有话说 必须同时满足“中文 + 80–120 CJK + 无剧透 + 强钩子 + 优先问号结尾”。若只满足字数、不满足钩子强度或出现剧透,同样判定自检失败并回炉。
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_drift_detected / pov_switch_without_approval 判定失败并整稿回炉。## 作者有话说 未满足“中文 + 80–120 CJK + 带钩子 + 无剧透(优先问号结尾)”时,一律按门禁失败处理,不得落盘,不得进入上传分发。题材名-输出微信订阅号版 Skill。都市悬疑 口径直接当成跨题材默认规则继续扩散。微信订阅号/ 下。微信订阅号/第X部/第Y卷/;若作品无分部,则位于 微信订阅号/第X卷/。.md 文件形式落盘:若对应章节目录不存在,执行前必须先创建完整目录路径,再将改写后的章节内容写入该目录下的 .md 文件,不得只输出聊天稿而不写入文件。scripts/count-chapter.ps1,不得用 Len、NoWhitespaceLen、编辑器字符数或目测代替。字数参数以本 Skill 的"平台默认字数范围"或项目 Agents.md 覆盖值为准,用 scripts/count-chapter.ps1 校验正文;正文门禁只看 BodyCJK / MeetsMinCJK / WithinRange,MeetsMinCJK 必须为 True,WithinRange 最好为 True。## 作者有话说 用 scripts/count-afterword.ps1 单独校验。Agents.md 覆盖值为准。输出微信订阅号版.prompt.md 中尚未完成映射的内容。题材名-输出微信订阅号版 承接。题材名-输出微信订阅号版;不应直接把本 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/通用-输出微信订阅号版 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.