novel-write

novel-write is a skill for Claude Code from TulanCN/vibe-noveling. It costs 51 tokens per session (1,948 once invoked), scanned A, original, MIT.

A skill for turning an event card into a finished novel chapter, adding setting, sensory detail, actions, and dialogue. It checks the story's planning files and previous chapter before writing.

In plain words
What is it for?
Use it to write a planned chapter after its event design is complete, while maintaining the project's narrative style and continuity.
Why use it?
It prevents drafting from incomplete story plans and keeps the chapter connected to the existing plot, characters, style, and ending hook. Missing setting information is flagged instead of being invented.

Skill for Claude Code

Written for Claude Code: when-to-use in frontmatter. Also seen: mentions CLAUDE.md.

Part of the vibe-noveling plugin — 16 skills, 4 agents shipped together

Good fit Use it to write a planned chapter after its event design is complete, while maintaining the project's narrative style and continuity.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tulancn/vibe-noveling/novel-write
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add TulanCN/vibe-noveling --skill novel-write
Clone the repo
git clone --depth 1 https://github.com/TulanCN/vibe-noveling

Made for: Claude Code.

Or install vibe-noveling, the plugin that ships this one along with the rest of its 16 skills, 4 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for novel-write

README.md
[![agentmods](https://agentmods.dev/badge/skills/tulancn/vibe-noveling/novel-write/github.svg)](https://agentmods.dev/skills/tulancn/vibe-noveling/novel-write)
Your own site
<a href="https://agentmods.dev/skills/tulancn/vibe-noveling/novel-write"><img src="https://agentmods.dev/badge/skills/tulancn/vibe-noveling/novel-write/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for novel-write

Your own site · 80×15
<a href="https://agentmods.dev/skills/tulancn/vibe-noveling/novel-write"><img src="https://agentmods.dev/badge/skills/tulancn/vibe-noveling/novel-write.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 51 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,948 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00051 $0.01948
Opus 5 $0.00026 $0.00974
Sonnet 5 $0.00010 $0.00390
Haiku 4.5 $0.00005 $0.00195

Measured 9d ago against content hash 355b67a1a43e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

novel-write scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

The scan reads SKILL.md. This mod also ships 5 executable files (tools/ai_pattern_checker.py, tools/emotion_checker.py, tools/fragment_checker.py, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/vibe-noveling/skills/novel-write/SKILL.md · 102 lines

How it starts

The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.

章节创作

本章负责一件事:把剧情链展开为具象的、可阅读的小说正文。 补环境、感官、动作链、台词;保持角色声线和设定一致;避免 AI 腔。

第一步:准备

  1. 读当前事件卡 memory/future/40-events/ 对应文件,提取本章剧情链。 草稿防护:先看「定位」区 设计阶段 字段——若不是 done,或本章「章节拆分」下的剧情链仍是占位(含 待 L剧情链待 L4 推导 字样),说明事件设计未完成。停下,不要写正文,也不要自己补剧情链,提示用户:"事件 E0X 的设计停在 {设计阶段},剧情链还没推导完,请先回 novel-discuss 把它走到 done 再写正文。"
  2. 读上一章 正文.md — 确认承接状态和章末钩子
  3. memory/past.md — 最近摘要和当前状态 → 停,不展开
  4. 读 CLAUDE.md 获取创作风格基线、叙事纹理、目标读者(频道定位和阅读经验直接影响节奏和复杂度)

设定文件缺失就先补全再写作,不自己编造。

第二步:写作前强制反思

在动笔前,在 thinking 中完成以下反思。不输出到对话。

2.1 本章气质(四维定调)

从 CLAUDE.md 的「叙事纹理」读取用户的 7 维度文风偏好,映射到以下四维,作为本章写作的默认气质:

维度 ← 极端 极端 → 从叙事纹理推导
节奏 绷紧:句句推进 舒展:有留白 处理模式 + 信息密度
距离 冷眼旁观 贴着 POV 人物呼吸 叙事距离
密度 锋利:每句推进 绵密:感官铺陈 心理意象 + 信息密度
质感 粗粝直接:短句口语 精密细腻:长句层次 语言可预测性

在 thinking 中完成推导:

  1. 先从叙事纹理翻译出默认四维落点
  2. 再根据本章剧情链的具体需要做微调(如高潮场景可在默认基础上向绷紧端偏移一档)
  3. 如偏离默认超过一档,注明原因

选好后整章写作全程维持。如果不同场景确实需要不同气质,预先声明切换点。

2.2 本章最易被 AI 腔污染的位置

基于剧情链,预先定位 2-3 个最容易翻车的点,每个给出本章的具体预防措施。

注意:AI 腔判断必须尊重叙事纹理中的用户偏好。例如:

  • 用户的「语言可预测性」偏向「高偏离」→ 破折号、精致修辞不是 AI 腔,是用户要的风格
  • 用户的「情感投入」偏向「高投入」→ 情感标签和心理描写不是 AI 腔
  • 用户的「对话对抗性」偏向「高对抗」→ 对话中的打断和攻击性不是失真

以下四类高危场景仍需预防(与 taste 无关的通用问题):

  • 情感高危场景 → 预先决定用什么动作或感官细节替代情感标签(但高情感投入偏好下可保留部分心理描写)
  • 对话失真高危场景 → 预先决定谁在哪句话撕破脸、打断、反问
  • 转场空泛高危位 → 预先确定触发切场的具体动作
  • 结尾泄力高危位 → 预先确定留动作还是留意念

2.3 本章最该被记住的一个瞬间

选一个具体的、可见的画面、台词或动作。整章写作围绕它组织。

  • 必须可见,不是"主角成长了"而是"他做了 X"
  • 写这个瞬间时,允许比其他段落多花篇幅

2.4 本章禁用句式

根据本章气质和内容,声明 3-5 个具体禁用的表达模式,落到能在写作时直接检查的粒度。

以下为默认禁用(除非本章气质明确需要,否则无需在声明中重复):

  • 中文破折号 —— 叙事文本不超过 1 处(对话内的截断破折号不计入限额)
  • "形容词+冒号+解释"句式(如"残酷的是:..."、"讽刺之处在于:...")

第三步:写作

从剧情链直接展开为正文。每条剧情链是一个叙事节拍,包含环境 <...>、动机 [...]、动作 (...)、话语 "..."、结果 → ... 五个元素(按需出现,顺序自由, 必选)。从中理解推进方向后展开为具象正文,写作时保持同一剧情链内的 POV 一致。

每个场景至少包含 2 个具体的感官细节——不是抽象形容词(「美丽」「恐怖」),而是读者能触摸到的东西:铜锈味、指甲刮桌面的声音、后背贴着冰凉的墙、鞋底踩到黏腻的东西。感官细节跟着角色的身体走,角色碰到什么写什么。

篇幅靠剧情密度自然展开,不靠注水:本系统不设字数配额,单章篇幅是剧情密度被充分展开后的自然结果。若初稿读起来单薄、撑不起一章:

  • 剧情链本身有料、只是展开不够 → 把已有节拍展开得更具象:补感官落点、拆细动作链、增加对抗回合。这是分内的充分展开,可以放手写厚。
  • 剧情链本就稀薄(无实质推进、只剩孤立节拍) → 停下,不靠堆环境描写或重复心理独白凑篇幅(那是注水),回 novel-discuss 按"合并相邻章"调整事件卡——结构问题不在正文阶段硬修。

Read the full file on GitHub · 102 lines

Files

What ships with it

7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 102 lines · 51 tokens per session scan A 355b67a1a43e

Subscribe to this mod's changes

novel-write is a skill published in the GitHub repository TulanCN/vibe-noveling (23 stars, last pushed 3mo ago), licensed MIT. It adds 51 tokens to every session and 1,948 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

insight-error-page

Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…

vercel/next.js · 83 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens

next-partial-prefetching-adoption

Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…

vercel/next.js · 103 tokens