novel-delivery について
完成した小説プロジェクトを検査し、組み立てた原稿をテーマ付きPDFとEPUBに出力するスキルです。スクリプト式エクスポーターで処理し、生成物の検証や警告・失敗報告も行います。
主な機能
- 01出力前のプロジェクト・環境確認
- 02スクリプトによる原稿の組み立て
- 03Latte・MochaテーマのPDF出力
- 04EPUB出力
- 05生成物の検証と失敗ログ
活用シーン
- 01完成した小説プロジェクトの出力
- 02ライト・ダークテーマPDFの作成
- 03PDFと合わせたEPUBの生成
- 04納品の阻害要因や出力失敗の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ smter/ novel-skills --skill novel-deliveryインストール後、Claude Code で/novel-deliveryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
package-lock.jsonpackage.jsonpandoc/epub.yamllatte-html.yamlmocha-html.yamlreferences/catppuccin-export-palette.jsonexport-workflow.mdfailure-recovery.mdfile-contract.mdmanuscript-assembly.mdpreflight-checklist.mdscripts/export-book.mtsvalidate-delivery-project.mtsscripts/lib/validator-utils.mtstemplates/export-log.mdfrontmatter.mdmetadata.mdnovel-book.cssnovel-book.htmltesting/baseline-results.mdpressure-scenarios.mdverification-results.mdtests/export-book.test.mjs詳細
小説の納品
概要
完成した小説プロジェクトを検証し、単巻の原稿を組み立て、テーマスタイルを適用した PDF と EPUB の納品物をエクスポートするとともに、明確な失敗レポートを出力します。
通常の納品フローでは、スクリプト化されたエクスポーターを使用する必要があります。エージェントはエクスポートを実行し、結果を検証します。原稿の組み立てとデフォルトの PDF レンダリングは、エクスポートスクリプトが実行します。
使用するタイミング
- プロジェクトの状態が
draft_completeまたはdelivery_blocked - すべての章の執筆が完了し、レビューに合格している
- ユーザーが最終原稿のエクスポートを希望している
- Latte PDF、Mocha PDF、EPUB の出力が必要
入口ゲート
エクスポート前に、次の項目を確認します。
00-project/workflow-status.mdの status がdraft_completeまたはdelivery_blockedである30-draft/chapter-plan.md30-draft/chapters/- 計画されたすべての章が存在する50-delivery/metadata.md50-delivery/frontmatter.md- Pandoc がローカルで利用可能である
- このスキルのローカル Node 依存関係が、
SKILL.mdを含むスキルディレクトリでのnpm installによって利用可能である - PDF 印刷に対応する Chromium ブラウザーのパスがある
- スキルのフォールバックリストにある中国語のセリフ体フォントとサンセリフ体フォントが利用可能である
ファイルの出力を根本的に妨げる項目が欠けている場合に限り、ハードブロックします。
次の品質にのみ関わる問題では、エクスポートをブロックしないでください。
- 章レビューがない
- 章レビューが
不通过と記されている - 任意のメタデータ項目がない
- カバーのパスが無効、または存在しない
これらの問題は警告として記録し、エクスポートを続行します。
50-delivery/metadata.md または 50-delivery/frontmatter.md が存在しない場合:
- 対応するファイルを
<skill-root>/templates/からコピーします - エクスポート前に最低限必要な項目を入力します
最低限必要な項目:
metadata.md:Title、Author、Languagefrontmatter.md:Book Title、Author、Rights、Summary
プロジェクトルートの特定
このスキルのすべてのパスは、小説プロジェクトのルートディレクトリを基準とします。
エクスポート前に、次のルールに従ってルートディレクトリを特定します。
- 現在のディレクトリに
00-project/workflow-status.mdがある場合は、そこを使用します - そうでなく、現在のディレクトリに
00-project/workflow-status.mdを含む子書籍ディレクトリがちょうど1つある場合は、その子ディレクトリを使用します - それ以外の場合は停止し、小説プロジェクトのルートが見つからないか、特定できないことを報告します
これにより、一般的な <workspace-root>/<book-slug>/00-project/... のワークスペース構成に対応し、無効な手当たり次第のディレクトリ検索を防ぎます。
Chromium 互換ブラウザーを利用できない場合、一般的な環境エラーだけを表示してはいけません。スキルでは次のことを行う必要があります。
- 現在のプラットフォームを検出する
- プラットフォームに応じた簡潔なブラウザーのインストール手順を提示する
- 複雑な TeX ディストリビューションの修復よりも、短く実行しやすいブラウザー設定手順を優先する
- ブラウザーのパスが利用できない場合は、具体的な次の操作コマンドを示して納品をブロックする
このスキルの Playwright 依存関係を利用できない場合は、具体的な次の操作を明示して納品をブロックします。
SKILL.mdを含むスキルディレクトリからnpm installを実行します
状態の更新
- プリフライトの開始前は
draft_completeまたはdelivery_blockedのままにします - プリフライトに合格した後、組み立てとエクスポートを開始する直前にのみ
delivery_in_progressに設定します workflow-status.mdを手動でdelivery_in_progressに変更しないでください。export-book.mtsを直接実行し、プリフライトに合格した後の状態切り替えはエクスポートスクリプトに任せます- プリフライトまたはエクスポートに失敗した場合は
delivery_blockedに設定します - エクスポートの検証に合格した後にのみ
delivery_completeに設定します
スクリプトによる原稿の組み立て
50-delivery/book.md はエクスポーターが生成する中間ファイルであり、手動で執筆する対象ではありません。
通常の納品フローでサポートされる組み立て方法は、エクスポートスクリプトのみです。スクリプトは次の順序で 50-delivery/book.md を組み立てます。
50-delivery/frontmatter.md30-draft/chapters/の章を計画された順序で配置
book.md を手動で編集し、正本として扱わないでください。承認済みの章ファイルから、常に再生成してください。
通常のエクスポートフローでは、次の操作を行わないでください。
- frontmatter と章ファイルを手動で連結する
book.mdを自分で作るために、すべての章本文を順番に読む- シェル、PowerShell、または場当たり的な Markdown の組み立てで、エクスポーターのロジックを再実装する
- ファイルの存在、計画された順序、明らかな納品ブロッカーなどのプリフライト確認に必要な場合を除き、章ファイルを調べる
エクスポーター自体のデバッグを行う場合、またはユーザーが内容レベルの納品レビューを明示的に求めた場合に限り、章の全文を読みます。
必須メタデータ
エクスポート前に必須の項目:
- タイトル
- 著者
- 言語
次の項目が欠けている場合は警告を出しますが、処理を続行します。
- 概要
- キーワード
- 発行日
- 出力形式
- 使用する場合のカバーパス
metadata.md は著者が入力する Markdown ファイルであり、Pandoc が直接読み込む生の YAML ではありません。
エクスポーターはこの Markdown からキーと値を抽出し、Pandoc で使用する一時的な YAML メタデータファイルを生成します。
エクスポートコマンド
ワークスペースのルートまたは小説プロジェクトのルートから、Node を使用してスクリプト化されたエクスポーターを実行します。
node --experimental-strip-types <skill-root>/scripts/export-book.mts --project-root <workspace-or-novel-project-path>
このコマンドは、納品プロセスで標準かつ必須の手順です。エージェントは、組み立て手順を手作業で再現するのではなく、このコマンドを実行してください。
デフォルトの PDF エクスポート手順:
50-delivery/book.mdを組み立てます- Pandoc 経由で
LatteとMochaの HTML を生成します - Playwright と Chromium 互換ブラウザーを使用して、これらの HTML ファイルを PDF に出力します
- Pandoc 経由で EPUB を生成します
章の順序は、デフォルトで 30-draft/chapter-plan.md から解析され、次の一般的な形式を受け付けます:
chapter-01などの明示的な章 ID### Chapter 1などの Markdown 見出し
PDF エクスポートでは、次のファイルを生成してください:
50-delivery/output/<slug>-latte.html50-delivery/output/<slug>-mocha.html50-delivery/output/<slug>-latte.pdf50-delivery/output/<slug>-mocha.pdf
テーマ PDF のエクスポートでは、次の項目を検証してください:
- Chromium 互換ブラウザーが利用可能であること
- 中国語フォントが利用可能であること
- 出力ファイルが空でないこと
- Latte が印刷と明るい画面での読書に適していること
- Mocha が画面での読書に適した、ページ全体に適用されるダークテーマであること
EPUB のエクスポートでは、次の項目を検証してください:
- 出力ファイルが空でないこと
出力の検証
エクスポート後、次の項目を確認してください:
50-delivery/output/<slug>-latte.htmlが存在し、空でないこと50-delivery/output/<slug>-mocha.htmlが存在し、空でないこと50-delivery/output/<slug>-latte.pdfが存在し、空でないこと50-delivery/output/<slug>-mocha.pdfが存在し、空でないこと50-delivery/output/<slug>.epubが存在し、空でないこと
ブロッキングではない問題が見つかった場合は、50-delivery/output/delivery-warnings.md に記載してください。
検証に失敗した場合は、納品を完了としてマークしてはいけません。
失敗ログ
エクスポートに失敗した場合は、50-delivery/output/export-log.md に次の内容を含む簡潔なレポートを書き込んでください:
- 試行したコマンド
- エラーの概要
- 考えられる原因
- 次に試す修正
- PDF レンダラーが見つからない場合の、プラットフォーム固有のブラウザーインストールコマンド
事前チェックまたはエクスポートに失敗した場合:
- ワークフローのステータスを
delivery_blockedに設定します - 失敗を記録したら、直ちに停止します
エクスポートが成功し、警告がある場合:
- 生成された納品物を保持します
50-delivery/output/delivery-warnings.mdに書き込みますdelivery_completeに進めるようにします
エクスポートの必須手順
エクスポート前に、次の手順を必ず実行してください(省略不可):
- エクスポートスクリプトを実行し、原稿を手作業で組み立てないこと
- Pandoc が利用可能であることを明示的に確認すること
- Chromium の印刷経路を使用して PDF をエクスポートすること
- スクリプトの手順に従って
book.mdを組み立て、手作業でつなぎ合わせないこと
よくある自己正当化
| 言い訳 | 実際のところ |
|---|---|
| 「まず一度エクスポートしてみよう」 | 納品物を生成する前に、重要なエクスポートチェックに合格する必要があります。 |
| 「メタデータが少し足りなくても見た目に影響するだけ」 | 最低限のメタデータは必須ですが、任意フィールドの欠落は出力をブロックするのではなく、警告として扱う必要があります。 |
| 「ほとんどのマシンには Pandoc がインストールされているはず」 | 環境に関する前提は明示的に確認する必要があります。 |
「すべての章を読んで、自分で book.md を組み立てるべきだ」 | 通常の納品プロセスでは手作業での組み立ては禁止されています。エクスポートスクリプトを使用してください。 |
「book.md の組み立てとは、エージェント自身がファイルをつなぎ合わせることだ」 | このスキルでは、エクスポーター自体をデバッグする場合を除き、組み立てはスクリプトの責務です。 |
「PDF のエクスポートなら、まず xelatex を修正すべきだ」 | デフォルトの PDF 経路は Chromium 印刷です。ユーザーが LaTeX を明示的に要求しない限り、TeX に時間を使わないでください。 |
次のステップ
delivery_complete になったら、ワークフロー全体が終了します。納品物は 50-delivery/output/ にあります。