Bilingual Book Maker is an AI translation tool that creates multilingual versions of EPUB, TXT, Markdown, subtitle, and PDF files. It is for translating public-domain books and other supported documents with language-model or machine-translation services. Its catalogue skill lets coding agents operate the translation tool.
Borrowing it
Nothing to install: this file belongs to yihong0618/bilingual_book_maker. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/yihong0618/bilingual_book_maker/main/.agents/skills/bbm-plan/SKILL.mdgit clone --depth 1 https://github.com/yihong0618/bilingual_book_makerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/yihong0618/bilingual_book_maker/bbm-plan)<a href="https://agentmods.dev/skills/yihong0618/bilingual_book_maker/bbm-plan"><img src="https://agentmods.dev/badge/skills/yihong0618/bilingual_book_maker/bbm-plan/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/yihong0618/bilingual_book_maker/bbm-plan"><img src="https://agentmods.dev/badge/skills/yihong0618/bilingual_book_maker/bbm-plan.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 4 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 40 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- high Privilege Escalation · line 87 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- high Supply Chain · line 182 Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.Fix: Avoid downloading and executing remote scripts. Use trusted packages from PyPI/npm. If remote fetch is required, verify checksums and use HTTPS.
- medium Output Handling · line 470 Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.Fix: Set explicit limits on output length, generation count, and rate. Use max_tokens and truncation to prevent unbounded output.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00125 | $0.01881 |
| Opus 5.5 | $0.00050 | $0.00752 |
| Sonnet 5.5 | $0.00025 | $0.00376 |
| Haiku 4.5 | $0.00013 | $0.00188 |
Grade A, and why
bbm-plan scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 135 lines — stays where its author put it; the contents beside it link to each section on GitHub.
bbm-plan: translate a book with bilingual_book_maker
This file is the router. Do the intake below, then load one flow file for the book in hand and follow it. The other flow files stay unread.
Repo: the repository this skill ships in (make_book.py at its root). Run
every command from the repo root. The user documentation is the MkDocs site
in docs/en/ of this checkout; the flow files point at the page to read for
anything they do not spell out. python make_book.py --help is the
authority on every flag, and docs/en/cmd.md lists them all in one place.
Your stance
You are the trained CLI operator. You pick every flag from the flow file's recommendations and state each choice with a one-line reason; the recommended defaults are what you pass unless the user asks for something else or the book argues otherwise. The user hands over a book, credentials and (if they have one) a prompt file, approves the plan and the cost, and gets a bilingual book back. They are never asked to experiment with flags, halt semantics or resume mechanics.
The EPUB flow uses --plan-classify agent. The plan arrives with its
uncertain signatures set to "action": null, and the translate run
refuses to start while any null remains, so you, the coding agent, own
the classification against the real samples. Do it in the main agent with
full session context; never delegate plan editing to a subagent or a
small/fast model. The one exception is the user naming a classifier
themselves (Jev, or a model): then follow "A classifier the user names" in
references/epub-plan-mode.md, and still read its skips.
All state lives on disk (bbm_providers.json, .env, the flow's own
working files, the resume cache, run.log), so any step can be redone
after a crash or in a new session.
Intake
- Route and credentials: always read
references/route-setup.mdbefore the first command. It probes what the user already has, asks one question (route, model, prompt file), binds theROUTEandCONTEXTarrays every flow uses, and probes the endpoint for a sub-cent before anything is paid. Keys never go on the command line: the handoff block reprints the whole command, and argparse echoes it back on a mistyped flag. If a key ever reaches the terminal, say so at once and tell the user to rotate it. - Book path and target language (
--language, e.g.zh-hans,ja,Simplified Chinese). For a small language the tables may not know, pass both halves:--language "ain:Ainu"(tag before the colon, name after; the tag list isdocs/en/languages.md).--source_langstates the source language for a book whose short lines or names could be misdetected. - Their prompt file, asked in the route question. If they hand one
over, lint it before the first paid run:
references/prompt-files.md. If they say no, offer one sentence of what a style instruction would buy them and move on. Independently, look for an existing template in the book's directory and the repo root (prompt.json,prompt.txt,prompt*.md,prompt_template*). A candidate must carry a diff: in a git repo only untracked or modified-against-HEAD files count; cleanly trackedprompt*files are the repo's shipped examples, not the user's voice. Found one? Ask before doing anything with it; never adopt or ignore it silently. - Anything they want changed from the recommended defaults: a visual style for the translation, specific chapters or pages only.
What ships with it
8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago Changed · +1 lines 41c1af69af28
- 1mo ago Changed · -449 lines · +45 tokens per session scan C → A 0756d1931e1a
- 1mo ago Changed d65ed3f49e68
- 1mo ago Changed 8430ed6a3daa
- 2mo ago Changed · +30 lines fc0ff4d82293
- 2mo ago Changed · +73 lines · -4 tokens per session ef43bfb042ef
- 2mo ago Changed · +149 lines 092bde20eced
- 2mo ago First seen · 331 lines · 84 tokens per session scan C 9735035a0f46
bbm-plan is a skill published in the GitHub repository yihong0618/bilingual_book_maker (9,930 stars, last pushed 7d ago), licensed MIT. It adds 125 tokens to every session and 1,881 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
bbm-plan compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| bbm-planyihong0618/bilingual_book_maker | Skill | 9.9k | 7d ago | MIT | A | 125 | Claude Code, Codex |
| intl-expansionalirezarezvani/claude-skills | Skill | 29k | yesterday | MIT | A | 27 | Claude Code |
| azure-ai-translation-text-pymicrosoft/skills | Skill | 3.2k | yesterday | MIT | A | 60 | Claude Code |
| chinese-documentationjnMetaCode/superpowers-zh | Skill | 8.5k | 11d ago | MIT | A | 62 | Claude Code |
| hardenfengshao1227/ccg-workflow | Skill | 6.0k | 4d ago | MIT | A | 62 | Claude Code |
| edit-sitemicrosoft/power-platform-skills | Skill | 1.1k | yesterday | MIT | A | 104 | Claude Code |
| asc-subscription-localizationrorkai/app-store-connect-cli-skills | Skill | 1.1k | yesterday | MIT | A | 60 | Claude Code |