织文图标 · 经纬交织的织纹

织文NovelWeave长篇与短篇工作台long & short form studio

写到第四十章,还能知道谁在第几章断了左臂。 A long-form studio that still knows who lost an arm back in chapter five.

把设定变成可校验的结构化状态,用机器规则查前后矛盾 —— 而不是靠你记住自己写过什么。开箱自带一本写完的示例书,下面每一张图都是它。 Settings become verifiable structured state, and machine rules catch the contradictions — instead of relying on your memory. It ships with a finished sample book; every screenshot below is that book.

壹

它解决什么What it fixes

长篇写崩,很少是因为没灵感,多半是因为前后对不上:死人又开口说话、伏笔埋了没收、上章断了臂的主角这章挥拳。人脑记不住两百章的设定;把全文一股脑塞给模型也不行 —— 上下文有上限,而且塞得越满越钝。 Long fiction rarely fails for lack of ideas; it fails because the text stops agreeing with itself — the dead speak again, a planted thread is never paid off, the protagonist who lost an arm throws a punch. Nobody remembers two hundred chapters of settings, and dumping the whole manuscript into a model doesn't work either: context is finite, and the more you cram, the duller it gets.

织文的做法是把设定落成可校验的结构化状态:角色卡、世界规则、伏笔登记表、时间线、每章的状态矩阵。写作时不喂原文,只喂一份有字节预算的派生上下文;超出预算裁掉了哪一节,会如实报出来,绝不静默丢。检查由 31 条机器规则完成,带稳定指纹、严重度与退出码,能直接进 CI。 NovelWeave turns settings into verifiable structured state: character cards, world rules, a promise ledger, a timeline, and a per-chapter state matrix. When writing, it feeds the model a derived context with a byte budget rather than raw prose — and if a section has to be dropped, it says so instead of silently vanishing. The checks run as 31 machine rules with stable fingerprints, severities and exit codes, so they belong in CI.

贰

开箱有一本写完的书A finished book in the box

首页点「载入示例书看看」,拿到的不是一段占位文案,而是一本四章的书:《天机阁(示例)》· 东方玄怪 · 12952 字。它是用织文自己那套约定写出来的样书 —— 3 张角色卡、4 条世界设定、1 条未收伏笔、4 个时间线锚点、7 行分章状态矩阵,全部在库里,随便点、随便改、删掉也不影响你自己的书。 Press "load the sample book" on the home screen and you get a four-chapter novel, not placeholder text: Tianji Pavilion, 12,952 characters of Chinese fantasy. It was written against NovelWeave's own conventions — 3 character cards, 4 world entries, 1 unpaid promise, 4 timeline anchors, 7 rows of per-chapter state — all live in the database, clickable, editable, deletable without touching your own books.

它也没有被调成一盏绿灯都不亮的满分卷:出厂机检 0 error / 4 warn / 5 info。四条 warn 是 R22 抓到本书的短句节奏像 AI 腔,五条 info 里有一条 R9 至今还在报「时候」这个不像人名的词。留着它们是有道理的 —— 面板上一路绿灯教不会你任何事,而 warn 与 error 的分工恰恰是最需要看懂的那一课。 Nor was it tuned until every lamp was green: the factory check reads 0 error / 4 warn / 5 info. The four warnings are R22 noticing that this book's short-sentence rhythm resembles AI filler; one of the five infos is R9 still flagging a word that merely looks like a name. They stay on purpose — an all-green panel teaches you nothing, and the error/warn split is the lesson worth seeing.

织文书架,上面有一张《天机阁(示例)》的书卡,带「示例」角标;顶上三个按钮是 AI 起书(短篇)、AI 起书(长篇)、拆书
书架。示例书那张卡带「示例」角标:东方玄怪 · 4 章 · 1.3 万字。顶上三个按钮是「AI 起书(短篇)」「AI 起书(长篇)」「拆书」。The shelf. The sample card carries a "sample" badge: 4 chapters, 13k characters. Above it: start a short book, a long book, or deconstruct one.
第 1 章《过手》的正文,左侧侧栏列出十五页
第 1 章《过手》。左边那条侧栏就是整本书的结构:章节 / 卷 / 角色 / 世界设定 / 伏笔 / 时间线 / 状态 / 连续性 / 决策 / 关系 / 信息差 / 写作笔记 / 文体规则 / 工作流 / AI 设置,十五页,计数直接挂在条目上。Chapter 1. The sidebar is the book's structure: fifteen panels from chapters to relations to style rules, each with its own live count.
叁

一次检查长什么样What a check looks like

同一本书导出成 .novelweave/ 目录后,命令行那份检查跑出来是这样 —— 下面这段是真跑的输出,一个字没编;0 error / 4 warn / 5 info 一共九条,这里只贴了两条(一 warn 一 info),其余从略。 Export the same book as a .novelweave/ tree and the command-line check prints exactly this — every character is from a real run. There are nine findings in total; two are pasted here (one warn, one info), the rest omitted.

nw-continuity
# 只读,不改你的正文 $ node scripts/nw-continuity.mjs .novelweave/天机阁-示例 ⚠️ [R22] ai-flavor · ch-001 ch-001 的 AI 味偏高:每千字 0 处禁词,3 类句式套路。 「在那道浆糊上按了很久,按到指节发白。 他这一回看得比往常久。空白的格子上 有一道很浅的压痕,像有人先前在这里放过一张写满字的」 → 把心理名词换成动作、删掉喻体直接写下一件事、段尾收在台词或动作上; 确属本书用词习惯的,可在侧栏「文体规则」里关掉对应词组,或豁免本章。 ℹ️ [R9] unregistered-entity · 时候 2 个反复出现的人名没有建档:时候(9)、提灯道人(4)。 → 若是有名字无档案的杂名,加进 lexicon.allowlist;若该建档,请补角色卡。 0 error / 4 warn / 5 info exit 0 # 默认只对 error 拦;同一份报告加 --fail-on warn 就是 exit 1

每条诊断都写着它命中在哪里 —— 章级的报章号,书级的那条写着「全书」;带引证的把那段原文直接贴出来,命中位置算得出来的点一下就跳到那一章那一句,再附一句怎么办。误报是刻意收住的:裴无咎死于第 2 章,第 3、4 章里他只能被提及 —— 「裴无咎的断尺」这种领属提及不算本人在行动,所以全书 0 error;不同叙事线的时间永不互相比,多线并行是合法叙事。 Every diagnostic says where it fired — a chapter id for chapter-level findings, "whole book" for the book-level ones; the ones with evidence quote the passage, jump to that exact offset when an offset exists, and add what to do about it. False positives are bounded on purpose: Pei Wujiu dies in chapter 2 and may only be mentioned afterwards — a possessive ("Pei Wujiu's broken ruler") doesn't count as the man acting, so the book stays at 0 errors; timelines on different threads are never compared, because parallel threads are legal storytelling.

连续性面板:0 错误 4 警告 5 提示,两条 R22 诊断各带一段原文引证
连续性面板。顶上那三个数是 0 / 4 / 5;带引证的诊断把命中的那段原文直接引出来,附一句怎么办,右下角一个「豁免」按钮留给确属本书习惯的用法。The continuity panel. 0 / 4 / 5 on top; diagnostics with evidence quote the offending passage and say what to do, with an "exempt" button for house style.
R9 诊断:两个反复出现的人名没有建档,时候与提灯道人
R9 那一条我们留着没修。它按字形抓候选人名,于是把「时候」也抓进来了 —— 机检只出候选、不断定,分辨的权力在作者手里。给它开一张词表,等于把判据降级成白名单游戏。This R9 finding stays unfixed. It proposes name candidates by shape, so it scooped up an ordinary word too. Machine checks surface candidates and never decide — that judgement belongs to the author.
肆

设定长什么样What the settings look like

「结构化」这个词说了一百遍,不如把面板摊开。下面五张是示例书在侧栏里的原样,第六张是点开一格之后的编辑器。面板住在 300px 宽的侧栏里,截图时把导航那一列临时收起才放得下整张表 —— 你在应用里滚到面板看到的是同一张表,宽度没有为了截图改过。 "Structured" is a word; a panel is evidence. The first five shots are the sample book's own sidebar panels, the sixth is the cell editor. The panels live in a 300px sidebar; the nav column was hidden while shooting so the table had room — the same table you see when you scroll to it, at the same width.

角色面板:岑寻、柳阿樟、裴无咎三张卡
角色。三张卡,各带一句人设。「称物以斤两,一年说不上几句话」是裴无咎开口写台词时的依据,不是给人看的注释。Characters. Three cards, one personality line each — that line is what the model writes dialogue against.
世界设定面板:命簿、天机阁、字炉、测事针四条,各带触发词
世界设定。四条,每条标着触发词:正文出现「字炉」,这一条才被扫进上下文。12 KB 的额度不花在没出场的设定上。World lore. Four entries, each with trigger words — "the character furnace" only gets loaded when the prose actually mentions it.
伏笔面板:一条「针响即下山」,已埋未收,主线级
伏笔登记表。一条「针响即下山」,已埋未收 · 主线级,埋设章带着那句原文。到期不收,R3 / R3b 就报。Promise ledger. One unpaid, major-arc promise with its setup quote attached; overdue ones are reported by R3 / R3b.
时间线面板:四个锚点,第1天三更、第3天晨、第3天夜
时间线。四个锚点,各标「第几天 · 几点 · 哪条叙事线 · 正文明说还是推断」。有了它,时间倒流才是可判定的而不是感觉。Timeline. Day, hour, thread, and whether the text states it outright — that is what makes a regression decidable rather than a hunch.
分章状态矩阵:岑寻、柳阿樟、裴无咎三行,裴无咎标着亡
分章状态矩阵。画的是第 1–4 章、已记录 7 格。裴无咎那一行从第 2 章起是「亡」;红格表示这一格与角色卡冲突,空格表示本章没改变他的状态。The state matrix. Chapters 1–4, seven recorded cells. Pei Wujiu reads "dead" from chapter 2 on; a red cell contradicts the character card, an empty one means nothing changed.
状态格编辑器:位置、生死状态、伤势、持有物、已知信息、当前目标六格,底部显示本章快照 159 / 3072 字节
点任意一格进编辑器。六维:位置 / 生死 / 伤势 / 持有物 / 已知信息 / 当前目标。底下那一行是这一格的字节预算 —— 本章快照 159 / 3072。状态不是随笔,它占额度,超了会被裁,裁了会出声。Any cell opens the editor. Six dimensions, and a byte budget for that one cell: 159 of 3072. State is not free-form prose — it competes for the context budget, and trimming it is reported.
伍

能力Capabilities

律
机器规则门禁Machine-gated checks
31 条规则,六族各管一头:矛盾与断链(死人出场、状态与人设互斥、时间倒流、回收早于埋设、关系互斥、断链、派生字段被手改、结构非法);账本(伏笔未收与逾期、提前剧透、排期未揭、信息差没人拆、关系账本缺口、卷压缩缺口);「该有而没有」(章末钩子、单章体量、对话占比、这章改变了什么);登记与正文对不上(出场不符、条目从没出现、依据回查不到、文风漂移);外加去 AI 味腔调扫描、重复长句与扎堆的人名。同一输入永远同一指纹与退出码。Thirty-one rules in six families — contradictions and dangling references, ledger debts (promises, reveals, relations, volume gaps), missing essentials, registry-vs-prose mismatches, plus an AI-flavour scan, repeated sentences and clumped names. Same fingerprint and exit code every run — so they can block a build.
典
结构化 Story BibleStructured story bible
角色 / 世界 / 伏笔 / 时间线 / 每章六维状态(位置·生死·伤·持有物·已知·目标),外加决策、信息差、关系与卷四张账。作者写的与程序推导的字段物理分开,派生字段被手改会被查出来。Characters, world, promises, timeline and six-dimension per-chapter state, plus decisions, secrets, relations and volumes. Author-written and machine-derived fields are physically separated; hand-editing a derived one is detected.
节
有预算的上下文Budgeted context
整份 12 KB,按固定优先级拼装:出场角色、状态快照、未结线索、前情摘要、触发的世界设定、本章已写正文。被裁掉的节会显示出来。配了 embedding 接口时,前情召回改走语义检索;没配或失败,退回词频,并且照样告诉你走的是哪条路。A 12 KB budget assembled by fixed priority — and whatever got trimmed is reported, not hidden. With an embedding endpoint the recap switches to semantic recall; without one it falls back to word frequency and tells you which it used.
共
与 agent 共享同一本书One book, shared with agents
作品同时以 .novelweave/ 目录存在:正文是 Markdown,状态是 JSON,可进 git。网页与命令行 agent 改同一份,导入时逐条三方比较,两边都改过的不自动覆盖。九个命令行工具各带自家开关清单,写错的开关退 2 给你看,不是静默收下。The web app and CLI agents edit the same tree; a three-way merge never auto-overwrites a record both sides touched. All nine CLI tools reject unknown flags with exit 2 instead of swallowing the typo.
衡
有安全网的生成Generation with a net
续写前自动注入硬禁令(死者名单、到期伏笔、本章必须隐瞒/只能暗示的信息控制)与你自己定稿的文风样例;生成完先过机器规则自检一轮,只修草稿新引入的问题;还有语病精修与编辑评审构成三重后期管线。Continuation auto-injects hard bans (the dead, due promises) and style samples from your own prose; every draft passes a machine self-check before it reaches you.
存
覆盖前一律留底Snapshots before overwrite
手动保存、AI 整章替换、导入覆盖这三处各留一版,每章最多 20 版,可看可回退;回退前也先留一版,所以误操作不可逆这件事不成立。Up to twenty versions per chapter at every destructive write, and rolling back is itself reversible.
净
纯前端 · 自带 KeyFront-end only · BYOK
零构建、零依赖、零服务器。作品存在你浏览器的 IndexedDB 里,API Key 只存本机浏览器,不经过任何服务器;可离线当 PWA 用。No build, no dependencies, no server. Your book stays in IndexedDB and your API key never leaves the browser.
陆

写作的循环The writing loop

  1. 先翻一本现成的 —— 载入示例书,把上面那些面板逐个点一遍。四章书、七格状态、九条诊断,比读三页说明快。Read the sample first — load the bundled book and click through the panels. Faster than three pages of documentation.
  2. 起书 —— 新建作品,或用 adopt 把已有散稿一键建档,或「拆书」把别人的章节逆向成结构模式。设定落成角色卡、世界条目、伏笔登记表、状态矩阵,不再散落在几百个文档里。Start a book — create one, adopt existing drafts, or deconstruct a chapter into a structural pattern.
  3. 配 Key(可选,但推荐) —— 设置页选服务商,免费档就能跑:智谱 GLM-Flash、硅基流动免费模型、火山豆包日更额度(yu.ai/key.html 收录了各家免费额度)。Key 只存本机。Bring a key (optional) — free tiers are enough; the key never leaves your browser.
  4. 逐章写作 —— 续写自动注入:出场角色、状态快照、未结线索、前情摘要、触发的世界设定、硬禁令(死者名单 / 到期伏笔)、以及你自己定稿的文风样例。生成完先过机器规则自检一轮,修订稿与诊断一起交给你。Write chapter by chapter — continuation injects cast, state, open promises, recap, world lore, hard bans and your own style samples; the draft passes a machine self-check before reaching you.
  5. 落账 —— 「总结本章」一键写回摘要(不写回就等于录了没人读的事实);谁受了伤、谁知道了什么,走提案确认进状态矩阵与伏笔表。Settle the ledger — chapter summaries feed future context; state changes go through proposals into the matrix and ledger.
  6. 校验与带走 —— 连续性面板随时体检,诊断带引证可跳转;导出 .novelweave/ 目录,命令行 agent 与网页读写同一本书;要出书还有 EPUB。Verify & take it with you — the continuity panel audits on demand; export the tree and CLI agents share the same book; EPUB export is there when you're done.
柒

它不做什么What it won't do

  • 不评分文字好坏。「去 AI 痕迹」只做能确证的那一半:自带一组按组可关的禁词规则(R22),写前注入清单、写后扫高频 AI 腔调并给出处;但「这段写得好不好」它不下判断 —— 那是另一类专业能力,混在一起做必然两头都做浅。No ratings on prose quality. The "de-AI" part only does what's verifiable — a toggleable ruleset (R22) injects a banned-pattern list before writing and scans high-frequency AI phrasing afterwards — but it never judges whether a passage is good; that's a different craft, and mixing the two does both poorly.
  • 不从零批量生成整本书。没有"一键 50 章"。No one-click 50-chapter book.
  • 不替你决定设定。任何状态变更先提案,作者点头才写入;AI 可以建议,不能静默改写既定事实。No silent edits to your canon. State changes are proposed first and applied only on your say-so.
  • 不发明第二套格式。只认 .novelweave/,字段有 schema,非法结构先停。Only one file format. Schema-validated; invalid structure halts the run.

这一节是刻意写的。同类工具最常见的失败方式,是声称自己什么都能做。同理,本页所有截图都是应用里的真渲染:生成类功能(续写 / 自检 / 派生上下文预览)要配了 Key 才跑得出东西,所以这一页没有它们的图 —— 不拿设计稿冒充截图。 This section is deliberate. The most common failure in this category of tool is claiming it does everything. For the same reason, every screenshot here is a real render: the generation features need an API key to produce anything, so this page simply doesn't show them — no mock-ups passed off as captures.

捌

上手Getting started

  1. 网页直接用 —— 点上面「进入织文」,创建作品即可写作。不配 API Key 也有一半功能是可用的:结构化状态、状态矩阵、连续性检查全在本地浏览器里跑;配了 Key(任意 OpenAI 兼容接口)才有续写、润色、总结与拆书。Just open it. Half of it works with no API key at all — the state matrix and the continuity checks run entirely in your browser.
  2. 已有几十章稿子 —— 用 adopt 建档:草稿目录只读,章号不会被平移,判不出的章号它会拒绝而不是猜。Already have drafts? adopt them: your files stay read-only, existing chapter numbers never shift, and anything unrecognisable is refused rather than guessed.
  3. 让命令行 agent 帮你写 —— 仓库自带两个技能(写作编排 + 只读连续性检查),一条安装脚本分发到 Claude Code · Codex · Cursor · Qoder · OpenClaw · Hermes · WorkBuddy。Drive it from an agent. Two bundled skills, one installer, seven agent runtimes.
  4. 定期导出备份 —— 数据在浏览器里,清站点数据会一起丢。设置页有单文件快照、.novelweave/ 目录与 EPUB 三种导出。Back up regularly. Browser storage is the only store; export a snapshot, a directory tree, or an EPUB.

浏览器要求:需要支持 IndexedDB 与现代 ES 的浏览器;.novelweave/ 目录读写依赖 File System Access API,不支持时用单文件 JSON 备份走同一套合并逻辑。 Requires IndexedDB and modern ES; directory read/write uses the File System Access API, with a single-file JSON fallback that runs the same merge logic.

玖

终态形态The endgame

从一句话的想法,到百万字的长篇 —— 每一层设定可校验,每一段生成有安全网,每一次覆盖可回退。作者只做决定,织文负责不忘。 From a one-line idea to a million-word novel — every layer of settings verifiable, every generation netted, every overwrite reversible. You decide; NovelWeave remembers.

成
已实现Shipped
出厂示例书《天机阁(示例)》· 结构化 Story Bible · 31 条机器规则门禁 · 有预算的上下文 · 语义召回(配 embedding 才走,失败降级词频并说明)· 从零起书向导(短篇 / 长篇,逐项可改再建档)· 拆书 · 连续生成正文(逐章过机检并自修一轮,随时可停)· 硬禁令与文风样例注入 · 生成后自检与修订循环 · 覆盖前留底 · 选题评分卡 · 文风基准与漂移检测 · 状态矩阵范围窗口 · 卷级滚动压缩 · 关系账本与关系图 · 工作流预设跨书搬运(逐格 diff 确认)· 去 AI 味规则包(按组可关)· CLI 拒未知开关 · EPUB 导出 · Web 与 agent 同书 · PWA 离线 · BYOK。The bundled sample book, story bible, 31 gated rules, budgeted context, optional semantic recall with word-frequency fallback, a from-zero book wizard, deconstruction, chapter-by-chapter generation that machine-checks and self-repairs, hard bans & style injection, snapshots, a topic scorecard, style anchors with drift detection, a state-matrix range window, rolling volume compression, a relation ledger with its graph, cross-book workflow presets, a toggleable de-AI ruleset, CLI flag gating, EPUB export, agent sharing, offline PWA, BYOK.
筑
建设中In progress
双写冲突的解决界面(两边都改过的记录现在会一起写进 conflicts/,但要人手工合)、版本历史的并排 diff、开关取值的第二道闸(不认识的开关已经退 2,认识但配了个野值的还在静默兜底)。A conflict-resolution UI for dual writes — records changed on both sides already land in conflicts/, but merging them is still manual — side-by-side diff for revision history, and a second gate on flag values (unknown flags already exit 2; a known flag with a nonsense value still falls back silently).
远
在路上On the road
跨章瞬移与称谓越界两条深层规则(缺的是地点邻接与说话人归属的前置建模,不是只差写条规则)、卷摘要自动生成、世界书按书调档、外部文体引擎挂靠、多书全局检索与同宇宙共享、禅模式。Two deeper continuity rules (they need location adjacency and speaker attribution modelled first), automatic volume summaries, per-book lore scanning profiles, external style engines, cross-book retrieval, and a zen writing mode.

终态里没有"一键生成五十万字"这一项。织文认定:写作工具的责任不是替你产出字数,而是保证你产出的每一章,和第一章仍然站在同一个世界里。 The endgame deliberately excludes "one-click 500k words". A writing tool's job is not to produce word count — it is to keep chapter fifty living in the same world as chapter one.