Translate Chinese web novel chapters to English. Use when the user wants to translate raw chapters, provides Chinese text, or references chapter numbers to translate.
Translate raw Chinese chapters into polished English following all rules in CLAUDE.md.
$ARGUMENTS should specify the novel folder name and chapter range98-102 → chapters 98 through 102294 → just chapter 294metadata.json for the highest existing chapter number. If the number given is less than or equal to the highest chapter + 1, treat it as a single chapter number. If it is much smaller than the highest chapter (e.g., highest is 543 and user writes 15), treat it as a count of chapters. Use common sense—a user translating chapter 500+ is not asking for chapter 15.metadata.json to find the last translated chapter number, then translate chapters through (last + 1)(last + N)/translate after-villain-lies-low 98-102 → chapters 98–102/translate "No Daughter of Luck Shall Be Spared!" 294 → chapter 294/translate "The Villain Snatched the Protagonist's Master at the Start" 15 → next 15 chapters after the last translated onecommon_glossary.csv (universal terms)translated/<novel>/glossary.md (novel-specific terms)raw/ and translated/translated/<novel>/metadata.json to check existing chapter titles and find where translation left off98-102): chapters 98 through 102294): just that chapter15 when last translated chapter is 543): compute range as 544–558metadata.json to find the highest chapter number in chapter_titles, then set the range to (last + 1) through (last + N). Report the computed range to the user before proceeding (e.g., "Last translated chapter is 543. Translating chapters 544–558.")raw/<novel>/ by chapter number prefix (format: NNN_[title].txt)translated/<novel>/), warn the user and skip unless they confirm overwriteProcess chapters strictly one at a time. Do NOT read ahead to the next raw file until the current chapter is fully written AND its glossary updates are appended. Sequential context is what keeps voice and terminology consistent across hundreds of chapters — batching or interleaving breaks it.
For each chapter, complete this full loop before touching the next one:
raw/<novel>/NNN_[title].txttranslated/<novel>/chapterN.txt (prose only, no title in the file body). Use --- on its own line as a scene break between distinct scenes (location changes, time jumps, POV shifts). Do not overuse — only where the original clearly marks a scene transition.translated/<novel>/glossary.md under the correct category heading. New terms must be available before translating the next chapter.
| 新术语 | New Term | Optional description |
If a category section doesn't exist yet, create a new ## Category section with the table header. Universal terms shared across novels go in common_glossary.csv instead.While translating, extract a natural English chapter title from the Chinese title or content for use in metadata.json (updated in step 4 below).
metadata.json updates can be per-chapter or batched at the end of the session — this is a title registry and does not affect translation quality. Add each chapter number and its English title to chapter_titles. Glossary updates, unlike metadata, are strictly per-chapter (see step 3.4 above) and must never be batched.
After all chapters are complete:
python scripts/generate_index.py to refresh translated/index.json.translated chapters N-M of <Novel Name>. Keep the commit scoped to this session's novel unless there is clearly unrelated in-progress work that the user wants bundled — if in doubt, ask before bundling.origin main.scripts/deploy.sh to rsync files to the VPS. This is what makes translations live on the reader at novels.homelab-remote.stream — Git push alone is just backup/version control. Do NOT skip the deploy step.These govern workflow only — translation rules live in CLAUDE.md.