smter/novel-skills · Archived

novel-delivery

Use when 中文小说项目已经?

First seen Apr 21, 2026

Installation

$ npx skills add smter/novel-skills --skill novel-delivery

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smter/novel-skills.

npx skills add smter/novel-skills

Browse all from smter/novel-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,222 B
  • docs SUMMARY.md 175 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 36 installs

SKILL.md

小说交付

概述

验证已完成的小说项目,组装单本书稿,并导出带主题样式的 PDF 与 EPUB 交付物,同时输出清晰的失败报告。

常规交付流程必须使用脚本化导出器。agent 负责触发导出并校验结果;书稿组装和默认 PDF 渲染由导出脚本执行。

何时使用

  • 项目状态为 draftcomplete 或 deliveryblocked
  • 所有章节均已完成写作并通过审查
  • 用户希望导出最终书稿
  • 需要 Latte PDF、Mocha PDF 与 EPUB 输出

入口闸门

导出前,检查:

  • 00-project/workflow-status.md status is draftcomplete or deliveryblocked
  • 30-draft/chapter-plan.md
  • 30-draft/chapters/ - all planned chapters exist
  • 50-delivery/metadata.md
  • 50-delivery/frontmatter.md
  • Local Pandoc availability
  • Local Node dependencies for this skill via npm install in the skill directory that contains this SKILL.md
  • A Chromium-compatible browser path for PDF printing
  • Chinese serif and sans font availability from the skill fallback lists

只有当某项缺失会导致根本无法产出文件时,才应硬阻塞。

以下仅影响质量的问题不应阻塞导出:

  • missing chapter reviews
  • chapter reviews marked 不通过
  • missing optional metadata fields
  • invalid or missing cover path

将这些问题记为警告,并继续导出。

如果 50-delivery/metadata.md 或 50-delivery/frontmatter.md 缺失:

  • copy the matching file from <skill-root>/templates/
  • fill the minimum required fields before export

最小必填字段:

  • metadata.md: Title, Author, Language
  • frontmatter.md: Book Title, Author, Rights, Summary

项目根目录识别

本 skill 中的所有路径都应视为相对于小说项目根目录。

导出前,按以下规则解析根目录:

  • if the current directory already contains 00-project/workflow-status.md, use it
  • otherwise, if the current directory contains exactly one child book directory with 00-project/workflow-status.md, use that child directory
  • otherwise, stop and report that the novel project root is missing or ambiguous

这覆盖了常见的 <workspace-root>/<book-slug>/00-project/... 工作区布局,并避免无效的盲目目录搜索。

如果没有可用的 Chromium 兼容浏览器,不要只给出泛泛的环境错误。skill 必须:

  • detect the current platform
  • use a concise platform-specific browser install plan
  • prefer short, actionable browser setup guidance over complex TeX distribution repair
  • block delivery with concrete next-step commands if the browser path is unavailable

如果此 skill 的 Playwright 依赖不可用,应以明确的下一步操作阻塞交付:

  • run npm install from the skill directory that contains this SKILL.md

状态更新

  • 预检开始前保持 draftcomplete 或 deliveryblocked
  • 只有预检通过后、开始组装与导出前才设为 deliveryinprogress
  • 不要手动把 workflow-status.md 改成 deliveryinprogress;直接运行 export-book.mts,由导出脚本在预检通过后负责切换状态
  • 预检或导出失败时设为 delivery_blocked
  • 只有导出校验通过后才能设为 delivery_complete

脚本化书稿组装

50-delivery/book.md is an exporter-generated intermediate file, not a manual authoring target.

常规交付流程唯一支持的组装路径是导出脚本。它按以下顺序组装 50-delivery/book.md:

  1. 50-delivery/frontmatter.md
  2. Chapters from 30-draft/chapters/ in planned order

不要手工编辑 book.md 并把它当作事实来源。应始终从已批准的章节文件重新生成。

在常规导出流程中:

  • do not manually concatenate frontmatter and chapter files
  • do not read every chapter body in order to build book.md yourself
  • do not reimplement the exporter logic in shell, PowerShell, or ad hoc Markdown assembly
  • inspect chapter files only as needed for preflight checks such as existence, planned order, and obvious delivery blockers

只有在调试导出器本身,或用户明确要求进行内容级交付审查时,才读取完整章节正文。

必需元数据

导出前硬性要求:

  • title
  • author
  • language

以下缺失时给出警告,但继续执行:

  • summary
  • keywords
  • publication date
  • output formats
  • cover path when used

metadata.md 是面向作者填写的 Markdown 文件,不是 Pandoc 直接读取的原始 YAML。 导出器会从该 Markdown 中提取键值,并生成临时 YAML 元数据文件供 Pandoc 使用。

导出命令

从工作区根目录或小说项目根目录使用 Node 运行脚本化导出器:

node --experimental-strip-types <skill-root>/scripts/export-book.mts --project-root <workspace-or-novel-project-path>

该命令是交付流程的默认且必需路径。agent 应触发该命令,而不是手工复现其组装步骤。

默认 PDF 导出流程:

  • assemble 50-delivery/book.md
  • generate Latte and Mocha HTML via Pandoc
  • print those HTML files to PDF with Playwright plus a Chromium-compatible browser
  • generate EPUB through Pandoc

章节顺序默认从 30-draft/chapter-plan.md 解析,接受以下两种常见格式:

  • explicit chapter ids such as chapter-01
  • Markdown headings such as ### Chapter 1

PDF 导出应产出:

  • 50-delivery/output/<slug>-latte.html
  • 50-delivery/output/<slug>-mocha.html
  • 50-delivery/output/<slug>-latte.pdf
  • 50-delivery/output/<slug>-mocha.pdf

主题 PDF 导出应校验:

  • Chromium-compatible browser availability
  • Chinese font availability
  • Non-empty output files
  • Latte is suitable for printing and light-screen reading
  • Mocha uses a full dark page theme for screen reading

EPUB 导出应校验:

  • Non-empty output file

输出验证

导出后,检查:

  • 50-delivery/output/<slug>-latte.html exists and is non-empty
  • 50-delivery/output/<slug>-mocha.html exists and is non-empty
  • 50-delivery/output/<slug>-latte.pdf exists and is non-empty
  • 50-delivery/output/<slug>-mocha.pdf exists and is non-empty
  • 50-delivery/output/<slug>.epub exists and is non-empty

如果发现非阻塞问题,将其写入 50-delivery/output/delivery-warnings.md。

如果验证失败,不得将交付标记为完成。

失败日志

如果导出失败,向 50-delivery/output/export-log.md 写入简明报告,内容包括:

  • Attempted command
  • Error summary
  • Likely cause
  • Next fix to try
  • Platform-specific browser install command when the PDF renderer is missing

如果预检或导出失败:

  • set workflow status to delivery_blocked
  • stop immediately after logging the failure

如果导出成功但有警告:

  • keep the generated deliverables
  • write 50-delivery/output/delivery-warnings.md
  • allow delivery_complete

导出强制步骤

导出前必须执行(不可跳过):

  • 运行导出脚本,不手工拼装书稿
  • 显式检查 Pandoc 可用性
  • 使用 Chromium 打印路径导出 PDF
  • 按脚本流程组装 book.md,不手工拼接

常见自我说服

Excuse Reality
"先导一次看看再说" 在任何交付物产生之前,导出关键检查仍然必须通过。
"缺点元数据只会影响美观" 最低限度的元数据是必需的,但可选字段缺失应降级为警告,而不是阻塞输出。
"大多数机器应该都装了 Pandoc" 环境假设必须显式检查。
"我应该把所有章节读出来自己组一个 book.md" 常规交付流程禁止手工组装;应使用导出脚本。
"组装 book.md 就是 agent 自己拼接文件" 在这个 skill 里,除非你在调试导出器本身,否则组装职责属于脚本。
"导出 PDF 就该先去修 xelatex" 默认 PDF 路径是 Chromium 打印;除非用户明确要求 LaTeX,否则不要在 TeX 上浪费上下文。

下一步

在 delivery_complete 之后,整个工作流结束。交付物位于 50-delivery/output/。