mcpField
N
novel-delivery

novel-delivery

github.com/smterドキュメント037 回インストール25 週間前に更新
リポジトリ

novel-delivery について

完成した小説プロジェクトを検査し、組み立てた原稿をテーマ付きPDFとEPUBに出力するスキルです。スクリプト式エクスポーターで処理し、生成物の検証や警告・失敗報告も行います。

主な機能

  1. 01出力前のプロジェクト・環境確認
  2. 02スクリプトによる原稿の組み立て
  3. 03Latte・MochaテーマのPDF出力
  4. 04EPUB出力
  5. 05生成物の検証と失敗ログ

活用シーン

  1. 01完成した小説プロジェクトの出力
  2. 02ライト・ダークテーマPDFの作成
  3. 03PDFと合わせたEPUBの生成
  4. 04納品の阻害要因や出力失敗の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/smter/novel-skills --skill novel-delivery

インストール後、Claude Code で/novel-deliveryを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

package-lock.json
package.json
pandoc/
epub.yaml
latte-html.yaml
mocha-html.yaml
references/
catppuccin-export-palette.json
export-workflow.md
failure-recovery.md
file-contract.md
manuscript-assembly.md
preflight-checklist.md
scripts/
export-book.mts
validate-delivery-project.mts
scripts/lib/
validator-utils.mts
templates/
export-log.md
frontmatter.md
metadata.md
novel-book.css
novel-book.html
testing/
baseline-results.md
pressure-scenarios.md
verification-results.md
tests/
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.md
  • 30-draft/chapters/ - 計画されたすべての章が存在する
  • 50-delivery/metadata.md
  • 50-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、Language
  • frontmatter.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 を組み立てます。

  1. 50-delivery/frontmatter.md
  2. 30-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.html
  • 50-delivery/output/<slug>-mocha.html
  • 50-delivery/output/<slug>-latte.pdf
  • 50-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/ にあります。

コメント