Pipeline за превод на книги с Claude Code и Codex
Този skill за Claude Code и Codex е за превод на книги от английски на български по същите стъпки и със същите инструкции, които ползва инструментът за превод wenyi. Разликата е, че вместо wenyi да вика модел през API, работата я върши агентът в Claude Code или Codex. Може и да провери готов превод, без да пипа абзаците, в които няма грешка. Skill-ът е безплатен, под лиценз MIT, и се изтегля от GitHub: github.com/valcheffnet/wenyi-pipeline-skill.
Направих първата версия по време на сравнението на AI преводачи на художествена литература. Един от участниците не можеше да мине през wenyi, а исках резултатът му да е сравним с останалите. Тази статия описва последната версия, с всичките етапи и с едно правило, което добавих след това. Отделно преди да започне, skill-ът винаги пита в какъв режим да преведе книгата.

Защо skill а не оригиналния Pipeline
wenyi през API превежда по-бързо и по-евтино. В сравнението обаче се оказа и по-ненадеждният път. През препродавач като OpenRouter един и същ модел се държи различно според това кой доставчик обслужва заявката. deepseek-v4-pro през един доставчик се отрязваше при всеки таван на изхода, а директно при DeepSeek преведе цялата книга без нито едно отрязване. gemini-3.8-flash през Google AI Studio върна празен отговор деветнайсет пъти и заседна на 20% от книгата, докато не го преместихме на Vertex. Самият wenyi падаше при тези празни отговори, докато не го закърпихме. В Claude Code или Codex излиза по-скъпо, но зад всяка заявка стои един модел и никой не сменя доставчика вместо вас.
Затова за превод на книги skill-ът има смисъл в три случая. Първият е, когато ви трябва превод, който стига до края без изненади, и сте готови да платите за това. Вторият е модел, до който нямате достъп през API, но го ползвате в Claude Code или Codex. Третият е сравнение: щом инструкциите и границите на партидите са същите, разликата в резултата идва от модела.
Режимът „само проверка“ върши работа и сам по себе си. Давате му готов превод, направен от човек или от машина, и получавате списък с грешки срещу оригинала, всяка с доказателство, плюс поправен текст, в който се различават само поправените абзаци.
Какво представлява един skill за Claude Code и Codex
Skill е папка с инструкции, които агентът в Claude Code или Codex зарежда, когато задачата им съответства. Този съдържа:
wenyi-pipeline/
SKILL.md етапите, режимите и правилата
references/ 20-те инструкции на wenyi, дословно
scripts/make_batches.py нарязва EPUB на глави и партиди
agents/openai.yaml име и описание за интерфейса на Codex
Инструкциите в references/ не са преразказани. Извадени са от wenyi с неговата собствена функция за рендиране, с българския езиков профил. wenyi дава на всеки модел едни и същи инструкции, затова и агентът трябва да получи точно тях. Ако ги перифразирате, получавате друг пайплайн със същото име и сравнението тихо се разваля.
Откъде да го изтеглите
Skill-ът е в репото valcheffnet/wenyi-pipeline-skill в GitHub. Ако нямате Git, отворете страницата, натиснете зеления бутон Code и изберете Download ZIP. С Git изтегляте всичко с една команда:
git clone https://github.com/valcheffnet/wenyi-pipeline-skill.git
После копирайте папката на skill-а там, където вашият агент търси skill-ове. Claude Code и Codex ползват един и същ отворен формат за skill-ове, така че папката е една и съща и се различава само мястото. Сложена в личната ви папка, тя е достъпна във всеки проект.
За Claude Code:
cp -r wenyi-pipeline-skill/skills/wenyi-pipeline ~/.claude/skills/
За Codex:
mkdir -p ~/.agents/skills
cp -r wenyi-pipeline-skill/skills/wenyi-pipeline ~/.agents/skills/
И в двата случая инсталирайте библиотеката tiktoken:
pip install tiktoken
На Windows в PowerShell командите за копиране са:
# Claude Code
Copy-Item -Recurse wenyi-pipeline-skill\skills\wenyi-pipeline "$env:USERPROFILE\.claude\skills\"
# Codex
New-Item -ItemType Directory -Force "$env:USERPROFILE\.agents\skills" | Out-Null
Copy-Item -Recurse wenyi-pipeline-skill\skills\wenyi-pipeline "$env:USERPROFILE\.agents\skills\"
Ако искате skill-ът да работи само в един проект, копирайте папката в .claude/skills/ на проекта за Claude Code или в .agents/skills/ за Codex. Claude Code го зарежда при следващата сесия, а Codex го засича сам. В Codex можете да го извикате и директно с $wenyi-pipeline. В репото има и README на английски с всички етапи и измерените токени.
Преди да започнете
- Инсталиран skill, както е описано по-горе.
- Python с библиотеката
tiktoken. wenyi брои токените с нея и без нея границите на партидите се разминават с неговите. - Книгата като EPUB на английски. Инструкциите в skill-а са за превод на книги от английски към български.
- Представа колко токена можете да похарчите. Повече за това в стъпка 2.
1. Нарязване на книгата
Първата стъпка е локална и не харчи нито един токен от модела. Скриптът чете EPUB-а по реда на четене и прави от него каквото би направил wenyi. Всеки файл с текст е глава, заглавията отиват за отделен превод, а всеки абзац е сегмент. Абзац над 1 200 токена се цепи по изречения. Сегментите на една глава се събират в партиди до 1 800 токена.
python scripts/make_batches.py shadows.epub work/
counter: tiktoken cl100k_base
chapters 1 | paragraphs 296 | segments 296 (paragraphs split: 0) | titles 6 | batches 10
source tokens 16,060 | words 12,079
Това е разказът от сравнението и десетте партиди съвпадат с десетте заявки, които wenyi направи за същия текст. Скриптът разпознава и заглавията в EPUB-и, конвертирани от FB2, където заглавието е обикновен абзац в отделен блок.
Преди да продължите, погледнете първите и последните глави в source.json. Конвертираните книги често носят библиотечна картичка, отпечатано съдържание или реклама като обикновен текст. wenyi би ги превел, затова skill-ът ги показва и пита дали да останат.
2. Задължителният въпрос за режима
Тук агентът спира и пита. Не налучква режима от текста на задачата и не избира сам, дори задачата да го споменава. Причината е цената. Между най-лекия и най-тежкия режим разликата е четири пъти, а решението кой е достатъчен е на човека, който ще чете книгата.
В Claude Code въпросът идва с готови отговори, от които избирате. Ако средата няма такъв инструмент, skill-ът пита с обикновен текст и чака отговора ви.
| Режим | Какво прави | Токени за разказ от 12 000 думи |
|---|---|---|
| A, обикновен | анализ на стила, превод и речник по партиди, заглавия | от 177 000 до 209 000 |
| B, превод с проверка | режим A плюс цикъла на проверка | от 415 000 до 490 000 |
| C, пълен | анализ, резюмета на главите и книгата, превод, шлайфане и речник, заглавия, проверка | от 640 000 до 830 000 |
| R, само проверка | проверка на готов превод | около 290 000 (оценка) |
Числата за A, B и C са измерени, когато wenyi превеждаше разказа през API с два различни модела. За R е оценка от тях. Агент в Claude Code или Codex харчи повече, защото носи целия разговор със себе си. Затова скриптът от стъпка 1 изписва оценка за всеки режим и тя влиза във въпроса.
3. Запознаване с книгата
Анализът на стила върви във всеки режим. Агентът чете три откъса, от началото, средата и края, и връща жанр, тон, повествование, регистър и списък с героите и термините. Тук е едно от най-важните правила за български: полът на героя се записва само ако текстът го доказва. Името, обръщението или тонът не са доказателство.
В пълния режим следват резюме на всяка глава до 150 думи и резюме на цялата книга до 350 думи, заедно с края. Преводачът знае какво ще стане по-нататък и не превежда сцена по начин, който по-късно ще противоречи на сюжета.
4. Превод на партиди
Всяка партида получава стила от анализа, резюметата, речника за текущата глава, последните шест преведени абзаца и следващия абзац от оригинала. Последният е само ориентир. Ако партидата свършва по средата на изречение, преводът също трябва да остане недовършен, вместо да си измисли край.
Най-строгото правило е броят. На всеки абзац от оригинала отговаря точно един преведен абзац. wenyi проверява броя и не приема партида, в която не съвпада. Агентът няма кой да го провери, затова skill-ът го кара да брои сам след всяка партида.
5. Шлайфане в същия разговор
Тук старата версия грешеше. Слагах шлайфането като отделна фаза след целия превод, а wenyi го прави веднага след всяка партида, като продължение на същия разговор. Моделът още помни какво и защо е превел, и изглажда словореда, без да губи смисъла. Броят и редът на абзаците остават същите.
6. Речник след всяка партида
След всяка партида агентът вади от оригинала и превода имената, обръщенията и изразите, които трябва да останат еднакви до края на книгата. Следващите партиди получават обновения речник. Ако нов превод на име се разминава със стария, първият остава, а разминаването се записва. Нищо не се презаписва тихо.
В издадения превод на „Деца на разрухата“ имената на героите и корабите се пишеха различно в различните глави и ги уеднаквих на ръка. Речникът е точно срещу това.
7. Заглавия
Заглавията на главите и записите в съдържанието се превеждат отделно, с целия речник, за да съвпадат имената в тях с текста.
8. Цикълът на проверка
Проверката има три роли. Първата чете оригинала и превода на блокове до 5 400 токена и отбелязва само сигурни грешки от пет вида: изпуснато, добавено, грешен смисъл, неспазен речник и грешно местоимение. Стилът не е грешка.
Втората роля проверява всяка находка, преди да я приеме. Може да поиска доказателства от останалата книга: запис от речника, други места със същото име, съседни абзаци или резюмето. Може да поиска до четири неща на кръг и има най-много два кръга. Агентът вижда цялата книга на диска и лесно би прочел всичко, затова skill-ът изрично му забранява да чете извън тези заявки. Иначе проверката става друга.
Третата роля поправя само потвърдените грешки, с минимални промени, в отделно копие. Копието се проверява отново, все едно е нов превод. Цикълът спира след два поредни чисти кръга или след два кръга поправки. Накрая всяка поправка се проверява още веднъж и чак тогава влиза в превода.
9. Самопроверка преди края
- Всяка глава има точно толкова преведени абзаца, колкото има в оригинала, и нито един не е празен.
- Латински букви има само там, където ги има и оригиналът.
- В текста няма бележка от преводача и никъде не се споменава модел, компания или инструмент.
- Разминаванията в речника са изброени.
- В режим R абзаците без поправка са същите до последния знак.
Всичко, което произвежда всеки етап, се записва на диска. Ако агентът спре по средата, губите най-много една партида.
Превод на книги: колко струва цял роман
Пуснах скрипта на „Children of Ruin“ на Ейдриън Чайковски, 148 000 думи. Излязоха 93 глави и 142 партиди. Оценката е около 2,2 милиона токена за обикновения режим и 8,4 милиона за пълния, и това е при wenyi през API. С агент излиза повече.
С абонамент вместо API ключ това е непрактично. Разказ или една глава минават без проблем с този skill в Claude Code или Codex, цял роман на ръка не е реалистичен. При превод на книги с размер на роман пуснете wenyi с API ключ, но заковете доставчика изрично и изключете резервните доставчици. Проверката на избрани глави оставете на skill-а.
Какво научих от първата версия
Първата версия я писах набързо, за един участник в сравнението. Нямаше анализ на стила в обикновения режим, нямаше резюмета на главите, речник, заглавия и проверка на находките с доказателства. Тогава ми изглеждаха като подробности, които може да се пропуснат за един разказ.
Следата от това личи в резултатите. При превода с проверка проверката не намери нищо, затова версията с проверка излезе байт по байт същата като обикновената и в сляпото сравнение влязоха два еднакви текста. Не мога да докажа, че по-пълна проверка би намерила грешки. Знам обаче, че участникът мина през по-лек пайплайн от моделите, с които беше сравняван. Това е още една причина да не броя резултата му за победа.
Оттук и правилото ми. Ако един skill твърди, че повтаря инструмент, сверете го с кода на инструмента. Новата версия я направих така: етапите и праговете в нея са взети от кода и настройките на wenyi.


