translate-book
CLAUDE.md2 starsChanged 5 months agoMITView on GitHub
translate-book is a Claude Code Skill that translates books (PDF/DOCX/EPUB) into any language using parallel subagents. Published on ClawHub as translate-book and on GitHub as trananhtung/translate-book. Test with a small PDF to verify the full pipeline: Verify: all output_chunk*.md files exist, manifest validation passes, output formats generate.
- Commits and pushes
In this repository2 other files it gives its agents.
- AGENTS.mdAGENTS.md
- translate-bookSkill
The file
We split this CLAUDE.md into the rules it gives an agent
7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
Test with a small PDF to verify the full pipeline:
- Distinctive: line 32
Verify: all output_chunk*.md files exist, manifest validation passes, output formats generate.
- Very specific: line 36
Only chunk*.md naming — no page* legacy support
- Very specific: line 47
Do not reintroduce page* file support — it was intentionally removed
- Very specific: line 48
Do not hardcode ~/.claude/skills/ paths in SKILL.md — use {baseDir}
- Very specific: line 49
Do not put platform-specific tool names (Agent, sessions_spawn) in allowed-tools as the only option — keep the whitelist cross-platform
- Distinctive: line 50
Do not add mtime-based incremental rebuild for HTML/format generation — the current skip logic is intentionally simple (existence check).
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
Project
translate-book is a Claude Code Skill that translates books (PDF/DOCX/EPUB) into any language using parallel subagents. Published on ClawHub as translate-book and on GitHub as trananhtung/translate-book.
Structure
SKILL.md— Skill definition, the orchestration logic that Claude Code / OpenClaw followsscripts/convert.py— PDF/DOCX/EPUB → Markdown chunks (via Calibre HTMLZ)scripts/manifest.py— SHA-256 chunk tracking and merge validationscripts/glossary.py— Term-consistency glossary; per-chunk term tables injected into sub-agent promptsscripts/chunk_context.py— Read-only previous/next chunk excerpts injected into sub-agent promptsscripts/meta.py— Per-chunk sub-agent observation file schemascripts/merge_meta.py— Batch-boundary merge of sub-agent observations into the canonical glossaryscripts/run_state.py— Selective re-translation planner and run_state.json recorderscripts/merge_and_build.py— Merge translated chunks → HTML/DOCX/EPUB/PDFscripts/pdf_qa.py— Render the built PDF to page images + cheap programmatic layout checks; backs the Step 7.5 QA visual-check loop (rendersamples/renders pages,cleandeletes cached artifacts to force a rebuild)scripts/calibre_html_publish.py— Calibre format conversion wrapperscripts/template.html,scripts/template_ebook.html— HTML templates
Testing changes
Test with a small PDF to verify the full pipeline:
python3 scripts/convert.py /path/to/small.pdf --olang zh
# then run translation via the skill
python3 scripts/merge_and_build.py --temp-dir <name>_temp --title "test"Verify: all output_chunk*.md files exist, manifest validation passes, output formats generate.
Conventions
- Only
chunk*.mdnaming — nopage*legacy support - Pipeline output artifacts use the canonical names
book.html,book_doc.html,book.docx,book.epub,book.pdf. Internal scripts and skip/cache logic depend on these names; if title-based filenames are added later they must be optional aliases/copies, not silent replacements - SKILL.md frontmatter must stay single-line per field (OpenClaw parser requirement)
- Script paths in SKILL.md use
{baseDir}not hardcoded paths - Subagent instructions in SKILL.md must be platform-neutral (work on Claude Code, OpenClaw, Codex)
- The Step 7.5 QA loop must call
pdf_qa.py cleanbefore each rebuild — a template-only edit is invisible to the mtime-based build skip-logic, so the cachedbook.*artifacts must be deleted to force regeneration (do not add mtime tracking to work around this — see "Do not" below) - README changes must be synced to both README.md and README.zh-CN.md
- Releases follow
.claude/commands/release.md— three commands in order:git push origin main,git tag vX.Y.Z && git push --tags,npx clawhub@latest publish ./ --version X.Y.Z. Do not skip the git tag; it's the only version anchor in the repo
Do not
- Do not reintroduce
page*file support — it was intentionally removed - Do not hardcode
~/.claude/skills/paths in SKILL.md — use{baseDir} - Do not put platform-specific tool names (Agent, sessions_spawn) in
allowed-toolsas the only option — keep the whitelist cross-platform - Do not add mtime-based incremental rebuild for HTML/format generation — the current skip logic is intentionally simple (existence check). Metadata/template changes require manual cleanup. This is documented in the README.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

