简介:ink.skill 是一套面向长篇连载小说创作者的跨平台 AI 写作技能包,以单份 SKILL.md 同时适配 Claude Code 与 Code 环境,适合 3000~5000 字/章的网文或长篇项目。它围绕立项问答、世界观与人物规划、三层记忆维护、逐章创作、自检与定向返修构建完整流程,并内置玄幻、仙侠、都市、科幻、无限流、克苏鲁等十余种题材参考与写作禁忌、敏感词、钩子治理等规范文档,帮助作者解决长篇设定易崩、伏笔难收、风格漂移等问题。压缩包共 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.skill:SKILL.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 eol=lf。如果不用 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 的骨架跑通,再慢慢加自己的规矩,别一上来就追求完美。希望帮到你。
本文还有配套的精品资源,点击获取