← 返回
未分类 中文

novel-forge

Long-form novel workflow for creating, continuing, resuming, and repairing serialized fiction with externalized project state, role-to-model mapping, worldbu...
长篇连载小说工作流,支持创作、续写、恢复与修复,外部化项目状态、角色‑模型映射及世界构建...
228998098 228998098 来源
未分类 clawhub v2.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 382
下载
💾 0
安装
1
版本
#latest

概述

Novel Forge

Version: v2.0.0

Overview / 技能简介

Use this skill to run long-form fiction as a stateful pipeline, not as chat memory.

It helps with novel project setup, continuation, truncated recovery, model-role mapping, canon building, chapter drafting, and consistency review.

中文卖点: 让你用文件化状态稳定连载长篇小说,支持新建、续写、断档恢复和多角色模型分工。

Quick start / 快速开始

Startup order

  1. Read /root/.openclaw/openclaw.json.
  2. Collect the project brief first: title, genre/audience, target length or chapter count, taboo list, core premise, execution mode, and starting checkpoint or first scene.
  3. Persist the project brief / scaffold before any role or model discussion.
  4. Only after the project brief is saved, run scripts/show_runtime_inventory.mjs and show the user the available model inventory grouped by provider.
  5. Show the novel-writing role list.
  6. Produce a recommended role→model draft from the inventory and the heuristics below.
  7. Ask the user to confirm or edit the draft mapping.
  8. Do not present agents_list as a user-facing inventory; it is internal-only.
  9. Treat agents_list as a visibility hint only; use an actual sessions_spawn probe to determine whether multi-agent execution is available. If the probe succeeds, multi-agent is available even when agents_list shows only main.
  10. Do not start canon until title, genre/audience, target length, taboo list, premise, execution mode, and role mapping are confirmed.
  11. Do not fan out dependent canon stages blindly. Worldbuilding must be stable before character sheets; worldbuilding + characters must be stable before the full outline; the full outline must be stable before each 10-chapter batch outline; batch outline must be stable before writer; writer before reviewer; reviewer before orchestrator.

Inventory display rule

  • Always present the model list before asking for role mapping.
  • Always present the role list before asking for role mapping.
  • Always prefill a recommended mapping draft based on the current inventory.
  • Never show agents_list output as a selectable menu when it only contains main.
  • If the model inventory cannot be read, stop and report the failure instead of guessing.
  • Treat the role→model mapping as project state until the user confirms it, then use that mapping to drive sessions_spawn stage sessions.

Dynamic mapping heuristics

Build the recommendation from the user’s actual inventory, not from a fixed global pairing.

  1. Read the current model inventory.
  2. For each role, score models using only the models the user actually has.
  3. Prefer models whose names or metadata suggest the needed behavior.
  4. If a model is ambiguous, keep it as a candidate instead of forcing a certainty.
  5. Present the result as a recommended draft mapping plus alternates.
  6. Ask the user to confirm or override any role that is still uncertain.

Role scoring cues

Use the inventory metadata first, then model-family clues:

  • planner / reasoner cues: planning, reasoning, thinking, structured, max, deepseek-thinking
  • prose / style cues: opus, creative, prose, drafting, long-context, balanced writing
  • review / consistency cues: critic, review, editor, check, correction, glm
  • fast-draft cues: highspeed, lightning, speed, mini-max
  • structured transform cues: coder, extract, tooling, schema

Recommendation output

For each role, output:

  • primary recommendation
  • 1-2 fallback candidates from the same inventory
  • short reason tied to the model name or available metadata

Conflict rule

If the inventory does not make a role decision obvious, do not invent a certainty label. Mark it as "needs user choice" and keep the other roles prefilled.

Role packet to collect

  • title
  • genre / audience
  • target length or chapter count
  • taboo list
  • core premise
  • execution mode
  • starting checkpoint or first scene
  • role→model mapping

Note: collect and save the project brief first, then ask for role→model mapping after the setup is persisted. After confirmation, persist the mapping and use it as the execution plan for spawned stage sessions.

Novel-writing roles

  • orchestrator / 总控
  • worldbuilding / 设定
  • character sheet / 人物
  • outline / 全书大纲(先总纲,后 10 章一批细纲)
  • style / 文风
  • writer / 正文
  • reviewer / 审稿
  • recovery / 断档恢复

Use examples

  1. 帮我新建一个小说项目,题材是奇幻冒险,默认多 agent
  2. 继续写这本小说,从上次断开的地方接着写
  3. 从第5章恢复,并帮我检查当前角色和模型分工

User-facing prompts

  • New novel: say help me start a novel project / 帮我新建一个小说项目
  • Continue novel: say continue novel </code> / <code>继续写《标题》</code></li><li>Resume a truncation: say <code>resume from chapter 3</code> / <code>从第3章断档处继续</code></li><li>If multi-agent is desired, present the model inventory and the spawn target that <code>sessions_spawn</code> will use before asking for mapping.</li><li>If single-agent is desired, say so explicitly; otherwise multi-agent remains the default.</li><li>If the model inventory cannot be read, stop and report the failure instead of guessing.</li></ul><h3>Multi-agent execution flow</h3><ol><li>Save the project brief and confirmed role→model mapping in project state.</li><li>Verify spawnability by calling <code>sessions_spawn(runtime="subagent")</code>.</li><li>Create only the stage sessions that are currently unblocked by upstream canon. Do not spawn downstream stages before their prerequisites are accepted.</li><li>Use <code>mode:"session"</code> for reusable workers and <code>mode:"run"</code> for disposable checks.</li><li>Treat the returned <code>childSessionKey</code> as the session handle for follow-up.</li><li>Run stages in dependency order: worldbuilding → character sheet → full outline → 10-chapter batch outline → style → writer → reviewer → orchestrator.</li><li>If worldbuilding changes, re-open character, full-outline, and batch-outline assumptions before continuing.</li><li>If character or full outline changes, re-open batch-outline, style, and writer assumptions before continuing.</li><li>Keep the main session out of canon authorship; use it only to route, verify, and persist state.</li><li>After acceptance, write back the accepted canon slice, memory update, and workflow state.</li><li>If spawnability fails, report that multi-agent is unavailable and stop.</li></ol><h2>中文说明</h2><p>这是一个给<strong>长篇小说连载</strong>用的技能。它会把小说状态放在文件里,而不是只靠聊天记录记忆。</p><p>你可以直接这样说:</p><ul><li><code>帮我新建一个小说项目</code></li><li><code>继续写《寄魂》</code></li><li><code>从第5章断档处恢复</code></li><li><code>帮我检查这个小说技能是否适合继续写</code></li></ul><p>如果你选择多 agent,系统会先让你确认角色和模型分工;如果你不特别说明,默认按多 agent 流程来处理。</p><h2>Core contract</h2><ul><li>Keep the project state in files.</li><li>Keep the main session lightweight.</li><li>Use writer and reviewer stages for prose when multi-agent is active.</li><li>Never let the main session silently author or rewrite canon prose.</li><li>Never assume missing facts; read or ask.</li><li>When multi-agent is selected, treat the role pipeline as mandatory, not optional.</li><li>Apply the role pipeline to every stage: bootstrap, canon generation, style sampling, chapter drafting, review, recovery, and maintenance.</li><li>Respect stage dependencies; do not parallelize work that consumes unstable upstream canon.</li><li>For the exact main-session boundary, read <code>references/main-session-constraints.md</code>.</li></ul><h2>Where state lives</h2><p>Treat these as the source of truth:</p><ul><li><code>project.json</code></li><li><code>worldbuilding.md</code></li><li><code>characters.md</code></li><li><code>outline.md</code></li><li><code>style.md</code></li><li><code>memory.md</code></li><li><code>chapters/*.md</code></li><li><code>state/current.json</code> when present</li></ul><p>Prefer <code>state/current.json</code> for fast recovery and chapter-boundary checks when it exists.</p><p>For the operational state machine and run order, see:</p><ul><li><code>references/state-machine.md</code></li><li><code>references/runbook.md</code></li><li><code>references/schemas.md</code></li><li><code>references/workflow.md</code></li><li><code>references/main-session-constraints.md</code></li></ul><h2>When to use this skill</h2><p>Use this skill when the user wants to:</p><ul><li>start a new long-form fiction project</li><li>continue or resume a novel</li><li>recover from a truncated or partial chapter</li><li>assign models to orchestration/writing/review roles</li><li>generate worldbuilding, character dossiers, outlines, or style samples</li><li>draft chapters with consistency checks</li><li>maintain memory and canon across many chapters</li></ul><h2>Operating rules</h2><ol><li>If the request is a continuation/resume, discover candidate projects first and let the user choose when needed.</li><li>If multi-agent is active, inspect the current model inventory and ask for a role→model mapping.</li><li>Persist the chosen mapping in project state.</li><li>Verify which agent IDs are spawnable for <code>sessions_spawn</code>; do not use <code>agents_list</code> as a proxy for the model inventory or spawn capability.</li><li>If <code>sessions_spawn(runtime="subagent")</code> fails with a capability error, say multi-agent execution is unavailable in this environment and stop before canon work.</li><li>Confirm title, genre/audience, target length, taboo list, premise, execution mode, and checkpoint before canon generation.</li><li>Build canon in order: worldbuilding → characters → full outline → 10-chapter batch outline → style → chapters.</li><li>Do not parallelize phase 0 canon work if it depends on previous canon.</li><li>Draft one 10-chapter batch outline at a time.</li><li>In multi-agent mode, create stage sessions with <code>sessions_spawn</code> using the user-confirmed role→model mapping, then run the appropriate stage agents in order; for prose stages this is writer → reviewer → orchestrator.</li><li>The main session must not author stage content itself in multi-agent mode; it may only route work, verify outputs, and write state back.</li><li>If a spawned stage cannot run, report the missing capability rather than improvising that stage in the main session.</li><li>In single-agent mode, keep the same state-machine discipline but collapse the writing stages into one controlled pass.</li><li>After acceptance, sync chapter summary, memory, and state together.</li><li>Do not skip stage agents during bootstrap, recovery, or maintenance just because no prose is being written; if a stage has a designated agent/role, invoke it.</li><li>Never use the main session to synthesize canon from user facts into final set pieces when a dedicated stage exists; route to the stage agent instead.</li><li>If provenance is missing or ambiguous, stop.</li><li>During project bootstrap, you may reshape user-provided setting material into cleaner canon, but do not invent major plot facts or overwrite the user’s intent.</li><li>In review/cleanup passes, preserve user-intended sensitive tags or labels as part of the project’s canon when they are meaningful to the request (e.g. NSFW, R18, taboo, possessive, adultery, etc.). Only remove or rewrite the hard-blocked details themselves; do not delete the tag/setting wholesale, and do not over-prune unrelated canon unless the user asks.</li></ol><h2>Anti-drift rules</h2><ul><li>Use only the smallest relevant canon slice.</li><li>Prefer explicit character states and open loops over implied memory.</li><li>Keep style rules compact and persistent.</li><li>Treat reviewer output as required, not optional.</li><li>If provenance is missing or ambiguous, stop.</li></ul><h2>Writing constraints</h2><p>Default all prose stages to:</p><ul><li>concrete actions</li><li>body language</li><li>sensory detail</li><li>character-specific diction</li><li>scene-local observations</li></ul><p>Avoid:</p><ul><li>template transitions</li><li>repetitive contrast formulas</li><li>abstract summary piles</li><li>explanatory filler</li><li>symmetrical machine-like paragraphs</li><li>explanation-style contrast clauses like “不是X,而是Y”, “不是……是……”, “不只是……更是……”. Treat these as disallowed in prose unless a reviewer explicitly needs one for clarity in dialogue or very tight prose.</li></ul><p>Prefer showing over stating: let the reader infer the contrast from action, sensation, or image instead of summarizing it with a paired negation.</p><h2>Output shape</h2><p>For planning tasks, output a compact structure such as:</p><ul><li>Project brief</li><li>Model assignment</li><li>Canon status</li><li>Full outline / batch outline</li><li>Risks / conflicts</li><li>Next action</li></ul><p>For writing tasks, keep stages distinct:</p><ul><li>Chapter goal</li><li>Chapter writer draft</li><li>Review notes</li><li>Revision summary</li><li>Memory update</li></ul><h2>Failure behavior</h2><ul><li>If a required fact is missing, ask.</li><li>If the resume checkpoint is unclear, stop.</li><li>If the reviewer has no draft, treat the workflow as incomplete.</li><li>If the main session is about to write the chapter directly in multi-agent mode, hand off to the writer stage instead.</li></ul><h2>Resources</h2><p>Read the referenced files only when needed:</p><ul><li><code>references/state-machine.md</code></li><li><code>references/runbook.md</code></li><li><code>references/schemas.md</code></li><li><code>references/workflow.md</code></li><li><code>references/prompts.md</code></li><li><code>references/examples.md</code></li><li><code>scripts/build_context_pack.py</code></li><li><code>scripts/discover_projects.py</code></li><li><code>scripts/scaffold_project.py</code></li></ul></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 1 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v2.0.0</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-05-03 09:45 安全 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=492be9eb3b6d00d59f8fd29155629bd2" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/05/26/432710_6f948fd86b7fc0608e8fde91b116cbd5.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1781523225%3B1813059225&q-key-time=1781523225%3B1813059225&q-header-list=host&q-url-param-list=&q-signature=32e84df8841b8459f2d177a31a0f2393b81723c5" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">ai-agent</span> <h3><a href="/s/self-improving">Self-Improving + Proactive Agent</a></h3> <div class="rec-owner">ivangdavila</div> <div class="rec-desc">自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 1,379</span> <span style="color:#5b6abf;">📥 320,475</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">dev-programming</span> <h3><a href="/s/github">Github</a></h3> <div class="rec-owner">steipete</div> <div class="rec-desc">使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 676</span> <span style="color:#5b6abf;">📥 325,463</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">ai-agent</span> <h3><a href="/s/self-improving-agent">self-improving agent</a></h3> <div class="rec-owner">pskoett</div> <div class="rec-desc">捕获经验教训、错误及修正内容,以实现持续改进。适用于以下场景:(1)命令或操作意外失败;(2)用户纠正Claude(如“不,那不对……”“实际上……”);(3)用户请求的功能不存在;(4)外部API或工具出现故障;(5)Claude发现自身</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 4,082</span> <span style="color:#5b6abf;">📥 810,505</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>