
简介ink.skill 是一套面向长篇连载小说创作者的跨平台 AI 写作技能包以单份 SKILL.md 同时适配 Claude Code 与 Code 环境适合 30005000 字/章的网文或长篇项目。它围绕立项问答、世界观与人物规划、三层记忆维护、逐章创作、自检与定向返修构建完整流程并内置玄幻、仙侠、都市、科幻、无限流、克苏鲁等十余种题材参考与写作禁忌、敏感词、钩子治理等规范文档帮助作者解决长篇设定易崩、伏笔难收、风格漂移等问题。压缩包共 65 个文件约 194KB以 52 个 md 文档为主体辅以 4 个模板、3 个 Python 脚本及配置与许可文件涵盖章节校验、真值合并、批量写作等自动化能力。目前已有 234 人学习。读者可获得可直接落地的技能目录结构、题材模板与脚本工具用于搭建稳定的长篇创作工作流。1. 一份 SKILL.md 怎么让 Claude Code 变成小说写作台很多人第一次听到 ink.skill会以为它是个写作软件其实它更像一份“写给 AI 看的岗位说明书”。核心就一个文件SKILL.md。你把它放进 Claude Code 能读到的位置AI 就从一个通用助手切换成懂网文节奏、懂人物弧光、懂章节钩子的写作搭子。它解决的不是“AI 会不会写字”而是“AI 写出来的东西能不能直接进你的稿子”。适合谁已经在用 Claude Code 写代码、想顺手把写作流程也接进来的人或者写小说卡在设定散乱、伏笔对不上、改稿改到崩溃的作者。跨平台这点也实在Windows、macOS、Linux 上只要 Claude Code 跑得起来这份 SKILL.md 就能用不绑某个编辑器也不绑某个云文档。下面我按自己落地的顺序把这份 skill 拆开讲透。2. 拆开 ink.skillSKILL.md 里到底该写什么2.1 为什么是 SKILL.md而不是一堆提示词Claude Code 的 skill 机制本质是让模型在特定任务前先读一份约定文件。你平时写提示词是一次性对话SKILL.md 是常驻的“工作手册”每次触发写作任务都会重新加载。这个差别很关键一次性提示词容易在长对话里被冲淡而 SKILL.md 里的规则会反复出现在上下文里人物设定、叙事视角、禁用词这些硬约束不容易丢。我一般把 SKILL.md 分成四块身份与目标、输入约定、输出格式、质量红线。身份与目标写“你是一个网文连载作者助手优先保证章节钩子和人物动机一致”输入约定写“用户会给你大纲、上一章结尾、本章要点”输出格式写“先给 200 字剧情摘要再给正文正文按场景分段”质量红线写“不出现现代网络梗、不替主角做降智决定、不写超过三行的环境描写”。这四块写清楚AI 的发挥就稳了。提示SKILL.md 不是越长越好。超过 800 行后模型对中间部分的注意力会下降把最硬的规则放在前 100 行和后 50 行。2.2 最小可用的 SKILL.md 骨架下面这份骨架可以直接抄改掉书名和设定就能跑。注意 frontmatter 里的 name 和 description 是给 Claude Code 识别用的description 要写清楚“什么时候用”否则模型不知道该不该加载。--- name: ink-novel-writer description: 用于长篇小说连载写作。当用户要求续写章节、整理设定、检查伏笔时使用。 --- # 角色 你是长篇网络小说的连载助手服务于单一作者。你的首要目标是保持人物动机一致、章节结尾有钩子。 # 输入约定 用户每次会提供以下一项或多项 - 故事大纲可能不完整 - 上一章结尾原文 - 本章要点3 到 5 条 - 需要检查的设定片段 # 输出格式 1. 先用 150 到 250 字复述本章要推进的核心冲突。 2. 再输出正文每个场景之间空一行。 3. 正文结束后列出本章埋下的伏笔和回收的伏笔各不超过 3 条。 # 质量红线 - 不写超过三行的连续环境描写。 - 主角不做无动机的降智选择。 - 不出现现实世界的品牌名和网络热梗。 - 对话中不出现“呵呵”“哈哈”这类无信息量的词。逻辑说明frontmatter 的 description 决定了 skill 的触发时机写得太泛会导致写代码时也被加载。正文四块里输出格式是最容易被忽略但最影响效率的——没有固定格式AI 每次给你的东西结构都不一样后期整理成本极高。质量红线要写成可判定的规则“不写降智选择”比“保持人物聪明”好执行得多。参数说明name 用英文小写加连字符避免空格description 控制在 60 字以内包含“续写”“设定”“伏笔”这类触发词红线条目控制在 10 条以内超过就拆成两个 skill。2.3 把设定集拆成 AI 能查的“记忆块”小说写作最痛的不是写是记。写到第 80 章前面埋的玉佩来历、配角真名、时间线全乱了。ink.skill 的跨平台优势在这里体现你可以把设定拆成多个 Markdown 文件放在项目目录里SKILL.md 里写清楚“需要查设定时优先读取settings/目录下的文件”。我一般这样组织novel-project/ SKILL.md settings/ characters.md timeline.md factions.md chapters/ ch001.md ch002.md outline.md然后在 SKILL.md 里加一段# 设定检索规则 当需要确认人物关系、时间线或势力归属时按以下顺序读取 1. settings/characters.md 2. settings/timeline.md 3. settings/factions.md 如果三份文件都没有答案明确告诉用户“设定缺失”不要自行编造。逻辑说明这一步把“AI 记忆”变成“文件检索”。模型不需要把所有设定塞进上下文而是按需读取既省 token 又减少幻觉。跨平台的意义在于这套目录结构在 Windows 和 macOS 上完全一致换机器只要把文件夹拷过去skill 立刻可用。参数说明characters.md 建议按“姓名 | 身份 | 首次出场 | 当前状态”的表格维护timeline.md 用“章节号 | 事件 | 影响”三列factions.md 写清势力之间的敌对和同盟关系。文件不要超过 500 行超了就按卷拆分。3. 在 Claude Code 里装好并跑通第一次续写3.1 安装 Claude Code 与放置 skill 的目录Claude Code 的安装方式随平台不同常见做法是走官方提供的安装脚本或包管理器。装完之后skill 的存放位置是关键。我一般把项目级 skill 放在项目根目录的.claude/skills/下这样只对当前小说项目生效不会污染其他工程。# 在小说项目根目录下创建 skill 目录 mkdir -p .claude/skills/ink-novel-writer # 把写好的 SKILL.md 放进去 cp ~/drafts/SKILL.md .claude/skills/ink-novel-writer/SKILL.md # 确认目录结构 find .claude -type f逻辑说明项目级 skill 的好处是隔离。你可能有多个小说项目每个项目的设定和文风不同放在各自目录下互不干扰。find那一步是确认文件真的在很多人写完 SKILL.md 放错层级模型根本读不到。参数说明如果想让所有项目都能用放到用户级目录通常是~/.claude/skills/。目录名建议和 frontmatter 里的 name 保持一致方便排查。Windows 下路径分隔符不同但.claude/skills/这个相对结构是一样的。3.2 第一次续写的完整命令与观察点装好之后进入项目目录启动 Claude Code然后给它一个明确的续写任务。不要一上来就说“帮我写小说”要给足上下文。# 进入项目目录 cd novel-project # 启动 Claude Code claude # 在对话里输入 # 读取 settings/characters.md 和 chapters/ch078.md # 按 SKILL.md 的格式续写第 79 章本章要点 # 1. 主角发现玉佩裂痕 # 2. 配角阿七暴露身份 # 3. 结尾留一个追兵逼近的钩子逻辑说明第一句“读取某文件”是显式触发设定检索避免模型凭记忆瞎编。本章要点给 3 条正好对应 SKILL.md 里“3 到 5 条”的约定。结尾钩子单独列出来是因为模型很容易把高潮写在中间结尾反而平了。参数说明如果模型没有按格式输出先检查 SKILL.md 是否被加载——可以问它“你现在遵循的是哪个 skill”。如果加载了但格式不对多半是输出格式那段写得太抽象改成“先输出摘要再输出正文最后输出伏笔列表”这种带顺序的描述。3.3 用 diff 检查 AI 有没有偷偷改设定续写跑通后最该做的不是继续写而是检查它有没有改你原来的设定。我习惯把 AI 输出存成文件和上一章做对比。# 把 AI 输出保存为草稿 # 假设输出已复制到 draft-ch079.md # 对比人物名和关键道具是否一致 grep -o 玉佩\|阿七\|追兵 draft-ch079.md | sort | uniq -c # 和设定文件交叉检查 grep 阿七 settings/characters.md逻辑说明grep统计关键词出现次数能快速发现模型是不是把“阿七”写成了“阿七哥”或者把玉佩写丢了。交叉检查是确认设定文件里阿七的身份和草稿里一致。这一步花两分钟能省掉后面改稿的两小时。参数说明关键词列表按你书里的核心道具和人物来定一般 5 到 10 个。如果发现不一致不要直接改草稿先回到 SKILL.md 把对应红线写得更死比如“阿七的称呼在全书中固定为‘阿七’不添加任何后缀”。4. 避坑跨平台跑 ink.skill 最容易翻车的 5 个地方4.1 现象模型说读不到 SKILL.md但文件明明在原因Claude Code 的工作目录和你放 skill 的目录不在同一层。很多人把.claude建在了 home 目录却在子目录里启动 Claude Code模型自然找不到。另一个常见原因是 frontmatter 格式错误比如---前后有空格导致解析失败。解决启动 Claude Code 前先pwd确认当前目录确保.claude/skills/就在当前目录下。frontmatter 必须顶格写---单独占一行中间不能有空行。改完重启 Claude Code。4.2 现象Windows 上路径带反斜杠skill 里的相对路径全失效原因SKILL.md 里写了settings/characters.md这种正斜杠路径在 Windows 上如果模型按字面拼接可能拼出混合分隔符的路径。虽然多数情况能容错但一旦失败就是静默失败模型会直接编造设定。解决在 SKILL.md 里统一用正斜杠并加一句“路径分隔符统一使用正斜杠”。如果还是不稳改成让用户手动粘贴设定内容牺牲一点自动化换稳定性。4.3 现象续写到第 10 章后文风突然变现代、出现网络梗原因长对话里早期加载的 SKILL.md 规则被后续内容稀释。这是上下文窗口的固有问题不是 skill 写错了。解决每写 3 到 5 章重新开一个对话把 SKILL.md 和最近两章一起喂进去。或者在 SKILL.md 的红线里把禁用词列成具体清单比抽象规则更抗稀释。4.4 现象AI 把伏笔回收了但回收方式和前面矛盾原因设定文件里只写了“埋下伏笔”没写“伏笔的约束条件”。模型看到伏笔就急着收收得对不对它不负责。解决在 settings 里单独建一个foreshadowing.md每条伏笔写清“埋设章节、预期回收章节、回收时必须满足的条件”。SKILL.md 里加规则“回收伏笔前必须先读 foreshadowing.md条件不满足时提示用户而不是自行处理。”4.5 现象跨平台同步后skill 触发了但输出格式全乱原因不同平台的文件换行符不同Windows 的 CRLF 有时会让 Markdown 解析出多余空行导致 frontmatter 被当成正文。解决在项目里加.gitattributes强制*.md text eollf。如果不用 git用编辑器把 SKILL.md 另存为 LF 换行。这个坑很隐蔽表现是 skill 加载了但规则像没生效。5. 让 ink.skill 真正省时间的两个进阶习惯第一个习惯是给 SKILL.md 加“章节体检”模式。除了续写我还让它承担检查任务把最近三章丢进去让它按“人物动机是否连贯、伏笔是否有遗漏、章节结尾是否有钩子”三项打分每项给出具体段落。这个用法比续写更值钱因为人写久了会麻木AI 反而能挑出明显断裂。实现上就是在 SKILL.md 里加一段触发条件“当用户说‘体检’时不输出正文只输出三项检查结果和修改建议。”第二个习惯是用表格管理“文风参数”。不同平台读者口味不同我会在 SKILL.md 里放一张小表让模型按目标平台调整句长和对话密度平台类型平均句长对话占比章节结尾要求移动端连载18 到 25 字40% 以上必须有悬念出版向25 到 35 字25% 左右可有留白短篇合集15 到 22 字50% 以上单章闭环用法是在任务开头说“按移动端连载参数写”模型就会去表里查。这个表不用大三行就够关键是让“文风”从感觉变成可调参数。我自己踩过的最大坑是早期把 SKILL.md 写成了文学理论讲义模型读完不知道先干什么。后来改成“先读什么、再输出什么、最后检查什么”的流水线效率才上来。如果你也在用 Claude Code 写东西先把这份 SKILL.md 的骨架跑通再慢慢加自己的规矩别一上来就追求完美。希望帮到你。本文还有配套的精品资源点击获取