translation-novel

Installation
SKILL.md

translation-novel

Layer 2-5 owner for novel chapters / long-form fiction in translation-toolkit. Reads an intake-spec from translation-intake (Layer 1), splits the chapter into scenes via scripts/lib/scene_chunker.py, runs the shared DRAFT / REFLECT / IMPROVE core loop with a scene-window prompt (prev_scene_v2 + current scene + next_scene_source) instead of the whole-doc <TRANSLATE_THIS> windowing used by translation-doc, and concatenates the per-scene v2s back into the chapter target.

The scene-window prompt collapses cost from O(N²) to O(N) over a chapter (~17× reduction for a 30-scene chapter) while voice continuity is anchored to the target translation of the previous scene rather than its source. (Decision 1 of the v0.2.0 plan: this is a new skill, not a flag on translation-doc — chunking, prompts, and gate weights diverge enough to warrant separation.)

Inputs

  • chapter — single Markdown file (.md) per chapter. Recommended preprocessor: tsundoku:book-extract, which produces NCX-driven chapter .md files from an EPUB.
  • intake-spec — from translation-intake. If invoked directly without one, run intake first (--intake flag) before continuing. Novel-relevant intake hints include register (literary / colloquial / mixed), mode (faithful / transcreation), and whether to run a protect-pass at all (default off for prose-only novels — see Layer 2).
  • project_glossary_path (strongly recommended) — repo-local glossary listing character names, place names, and recurring terms in the canonical target form. Defaults to <caller_repo>/docs/i18n/glossary-{target_locale}.md; missing → fall through to L2 bundled glossary in glossary/. M2 enforces compliance per term; without a project glossary character names drift across scenes.
  • book_manifest (strongly recommended for novels with >1 chapter, v0.3.0) — directory of chapter .md files in name-order, OR an explicit ordered list of chapter paths. Enables the whole-book pre-pass (Layer 1.5) which produces <repo>/.translations/characters.json + <repo>/.translations/world-glossary.json. If absent, the skill runs in single-chapter mode — the pre-pass treats the one input chapter as the whole "book" (degenerate but valid; cost-ceiling assertion may not hold — see checklists/prepass-cost-ceiling.md).
  • model (optional, v0.3.0)str (uniform model for all roles, v0.2.0 default) OR dict with mandatory default key plus optional per-role overrides (writer, critic, reviser, back_translator, judge, extractor). Cheap-model split is the typical use: pin a cheap model (e.g. haiku-class) on extractor so the whole-book pre-pass amortizes cost, while the per-scene core loop runs on the standard model. Resolution is per-call via scripts/lib/model_routing.resolve_model_for_role(model, role). See references/orthogonal-axes.md §Model routing for the full key set.

Service-interface contract (the four shared fields plus web_search) is defined in the design spec §Service Interface; no per-skill duplication here.

When to use

Installs
4
GitHub Stars
6
First Seen
Jun 12, 2026
translation-novel — kouko/monkey-skills