
Cotton
Translation workflow
Vygenerované překlady jako výsledky připravené k revizi.
Pracovní postup pro překlad dialogů ve hrách.
Cotton vocabulary
- prompt layers
- glossary
- generation
- revision
- judge
- hard gate
- score
- intake
- checkpoint
- spend control
- stale sweep
- approval
- correction
- audit trail
Prompt Layers: SYSTEM_PROMPT_L0 · buildTranslateUserMessage · L1 CONTRACT · L3 SPEAKER · L6 SOURCE · L7 INSTRUCTION · ICU PLACEHOLDER · INLINE TAG · TARGET TEXT ONLY · FORCED MAPPING · L2 GLOSSARY · speaker_keyGlossary: glossary_term · fetchGlossaryHits · canonical_form · forbidden_translations · SUBSTRING MATCH · FORCED MAPPING · FORBIDDEN ALTERNATIVE · L2 GLOSSARY · glossary_hits · glossary_complianceGeneration: AdapterRegistry · anthropic-sdk · openai-sdk · claude-local · codex-local · llm_plan · PIVOT_VIA · shouldPivot · COTTON_ADAPTER_CONCURRENCY · NODE_OPTIONS · pivot_register_carry · translation.refinedRevision: buildTranslateUserMessage · L7 INSTRUCTION · runRefinementLoop · priorAttempt · priorCritique · REJECTED BY THE JUDGE · maxTurns · willRetry · RefinementHooks · HOOK ABORT · turn_count_to_final · critique_for_retry · failingDimensions · cost_ceiling_usd · needs_reviewJudge: glossary_hits · runJudge · JUDGE_SYSTEM_PROMPT · judgeModel · TEMPERATURE 0 · parseJudgeResponse · FOUR-SECTION XML · VERBATIM CHUNKS · severity · critique_for_retry · judge_citation · missingHardGates · TRIGGER ABSENT = PASS · judge.scoredHard Gate: ICU PLACEHOLDER · INLINE TAG · FORBIDDEN ALTERNATIVE · hard_gate_fail · hardGatePassed · glossary_compliance · cps_budget_compliant · icu_validity · inline_tag_preserved · length_constraint · HARD GATE FIRST · missingHardGates · TRIGGER ABSENT = PASSScore: HARD GATE FIRST · computeVerdict · cottonEvalScore · WEIGHTED AVERAGE · tone_register · personality_consistent · emotional_state_match · cultural_marker_preserved · accuracy · pivot_register_carry · auto_approve_threshold · failingDimensions · approval_gate · judge.scoredIntake: processXlsxBytes · classifySheetName · parseGoogleSheetsUrl · source_file · content_sha256 · extractStageDirection · speaker_key · ingest_session · segment.ingested · github.push.receivedCheckpoint: translation_progress · last_completed_step · turn_translated · turn_judged · finalized · jobEntryGuard · SELECT FOR UPDATE · attempt_count · DEFAULT_MAX_RESUME_ATTEMPTS · TWO-TX SPLIT · ON CONFLICT DO NOTHINGSpend Control: llm_plan · costCap · cost_ceiling_usd · rateLimit · FailoverDispatcher · haltOnQuota · detectQuotaFromStream · quota_daily_exhausted · auth_revoked · NO AUTO-SWAP · needs_credential · POST /:id/resumeStale Sweep: COTTON_ADAPTER_CONCURRENCY · NODE_OPTIONS · attempt_count · runStaleSweep · STALE_THRESHOLD_INTERVAL · DLQ_ATTEMPT_CAP · LIMIT 200 · re_enqueued · dead_lettered · ORPHAN RE-ENQUEUE · IN-FLIGHT SET · /health/queues · maxStalledCount · needs_reviewApproval: auto_approve_threshold · ingest_session · SELECT FOR UPDATE · needs_credential · POST /:id/resume · POST /:id/approve · POST /:id/unapprove · POST /:id/reject · APPROVE_FROM · REJECT_FROM · needs_review · reviewer_id · HITL · approval_gate · translation.approved · EDIT & APPROVE · actor_idCorrection: POST /:id/correct · corrected_text · CORRECT_FROM · EDIT & APPROVE · human_corrected_segments · human-corrected-after-mt · translation.human_corrected · supersedes · NEW REVISION · IMMUTABLE HISTORYAudit Trail: turn_count_to_final · severity · judge_citation · content_sha256 · segment.ingested · github.push.received · translation.approved · human_corrected_segments · translation.human_corrected · IMMUTABLE HISTORY · event_log · appendNextEvent · ULID · AGGREGATE VERSION · translation_state_log · actor_id · llm_call_log · telemetryHook · judge.scored · translation.refined
Skóre, opakování a lidská revize, každé na vlastní hranici.
Generování a hodnocení sdílejí glosář a nesplnění tvrdého kritéria nahlášené hodnoticím modelem nemůže vyrovnat průměrné skóre. Mezistavy překladu a hodnocení se zaznamenávají, limity opakování a nákladů jsou odděleny od vyčerpaných přihlašovacích údajů a uvízlé úlohy se vracejí do fronty nebo k revizi podle příčiny.
Tento pracovní projekt spojuje v jednom toku generování překladů, hodnocení kvality hlášené modelem, opakování a lidskou revizi.
Od založení repozitáře po práci potvrzenou během spolupráce
Webová aplikace s obrazovkami pro úpravu a schvalování překladů, API a workerem úloh, běžící ve vývojovém prostředí.
Registrace → vstup
Zařazeno do fronty po zápisu do databáze; worker uzamkne řádek, zkontroluje pokus a vytvoří draft.
Zdroj · cílové jazykyÚdaje: zdrojZařazení do fronty po zápisu
API · registrace úlohZdrojové segmenty a cílové jazyky projektu se ukládají do databáze. Data zákazníka se nezobrazují.
Zařazení do fronty po zápisu
API · registrace úlohÚdaje: po zápisuBullMQ · ID úlohyFronta úlohPo zápisu do databáze se pro každý aktivní cílový jazyk zařadí úloha s ID určeným požadavkem. Pokud zařazení selže, zaloguje se jen varování a zápis se nevrací (bez atomického outboxu), proto existuje kontrola uvízlých.
BullMQ · ID úlohy
Fronta úlohSpuštění · rozhodnutí: doručení úlohyZámek řádku · kontrola pokusuVstup úlohyBullMQ předá úlohu workeru asynchronně.
Zámek řádku · kontrola pokusu
Vstup úlohyÚdaje: řádek postupuDraft · postupStav překladuV transakci se uzamkne řádek postupu a vytvoří se rozpracovaný překlad. Automatická opakování finalizovaných úloh nebo úloh pozastavených kvůli přihlašovacím údajům se přeskakují; ruční požadavky se zpracovávají zvlášť.
Zámek řádku · kontrola pokusu
Vstup úlohySpuštění · rozhodnutí: pokus povolenGenerování · volání modeluTah překladuPočet pokusů se v rámci limitu zvýší o jeden a pak začne tah překladu.
Generování → hodnocení → finalizace
Generování i hodnocení používají stejný glosář; překlad a hodnocení se zaznamenávají zvlášť a kód hodnocení před finalizací agreguje.
Glosář pracovního prostoru
Glosář · kontextÚdaje: glosářGenerování · volání modeluTah překladuGlosář pracovního prostoru a kontext se vyhledají a předají generování.
Glosář pracovního prostoru
Glosář · kontextÚdaje: stejný glosářVolání hodnoticího modelu · parsováníTah překladuHodnocení dostává stejná omezení glosáře.
Generování · volání modelu
Tah překladuÚdaje: Tx1 · překladŘádky překladů · hodnoceníStav překladuModel se volá přímo nebo přes pivot en-US a volání, událost i postup se zapíší v jedné transakci. Pokud se úloha po pádu spustí znovu, překladové volání i jeho náklady se mohou opakovat.
Volání hodnoticího modelu · parsování
Tah překladuÚdaje: Tx2 · hodnoceníŘádky překladů · hodnoceníStav překladuSkóre soudce a doklady se vkládají jednou na překlad a tah; duplicita najde existující řádek a citace se zapisují jen při prvním vložení. Nejde o stejnou transakci jako u překladu.
Volání hodnoticího modelu · parsování
Tah překladuÚdaje: skóre · kritériaTvrdé kritérium · vážený průměrPravidla rozhodnutíOdpověď hodnoticího modelu se parsuje na skóre podle dimenzí a výsledky kritérií. Zda glosář prošel, hlásí hodnoticí model.
Tvrdé kritérium · vážený průměr
Pravidla rozhodnutíSpuštění · rozhodnutí: rozhodnutíTahy · náklady · kvótaOpakování · výdajeJakékoli nahlášené nesplnění tvrdého kritéria znamená nulu a neúspěch; teprve pak se uplatní vážený průměr a prahy dimenzí. Celkový práh 8.0 je výchozí hodnota konfigurace, nikoli pozorovaná kvalita překladu.
Tahy · náklady · kvóta
Opakování · výdajeSpuštění · rozhodnutí: passZávěrečná transakceFinalizaceÚspěch se finalizuje jako translated.
Závěrečná transakce
FinalizaceÚdaje: konečný záznamStav · log voláníStav překladuKandidát, stav, skóre a tahy se finalizují a postup finalized a log stavu se zapíší v jedné transakci. Událost dokončení překladu se vyšle jen pro translated.
Opakování · limity výdajů
Neúspěch znamená další tah; limit znamená lidskou revizi; kvóta nebo autentizace zastaví výdaje a čeká na obnovení operátorem.
Tvrdé kritérium · vážený průměr
Pravidla rozhodnutíSpuštění · rozhodnutí: rozhodnutíTahy · náklady · kvótaOpakování · výdajeJakékoli nahlášené nesplnění tvrdého kritéria znamená nulu a neúspěch; teprve pak se uplatní vážený průměr a prahy dimenzí. Celkový práh 8.0 je výchozí hodnota konfigurace, nikoli pozorovaná kvalita překladu.
Tahy · náklady · kvóta
Opakování · výdajeSpuštění · rozhodnutí: další tahGenerování · volání modeluTah překladuPřeklad, který neprojde, se vygeneruje znovu s předchozím překladem a kritikou. I nesplnění tvrdého kritéria může dostat nejprve opakování, místo aby šlo rovnou k člověku.
Tahy · náklady · kvóta
Opakování · výdajeSpuštění · rozhodnutí: limit · přerušeníLidská revizeKdyž dojdou tahy nebo je dosažen strop nákladů, úloha se finalizuje jako needs_review. Finalizováno znamená, že zpracování skončilo, ne že ho člověk schválil.
Tahy · náklady · kvóta
Opakování · výdajeSelhání · limit: kvóta · autentizaceKontrola přihlašovacích údajůSignál kvóty nebo autentizace zastaví výdaje a nastaví needs_credential. Automatické přepnutí na jiný účet nebo poskytovatele neexistuje. Chyby přenosu bez signálu zastavení se vracejí k opakování v BullMQ.
Kontrola přihlašovacích údajůSpuštění · rozhodnutí: ruční obnoveníBullMQ · ID úlohy
Fronta úlohOperátor, který zkontroloval přihlašovací údaje, výslovně spustí práci znovu.
Obnova uvízlých úloh
Staré drafty se dělí podle příčiny: chybějící ve frontě se znovu zařadí, vyčerpané pokusy vedou k lidskému rozhodnutí.
Draft · postup
Stav překladuPozorování · zpráva: uvízlý draftDrafty starší než 10 min · nejvýše 200Kontrola uvízlýchČte se nejvýše 200 kandidátů, kteří jsou drafty déle než 10 minut, od nejstarších. Dotaz nezamyká a aktualizace a logy běží jako samostatné příkazy, proto se nepopisuje jako dávka bez souběhů.
Drafty starší než 10 min · nejvýše 200
Kontrola uvízlýchSpuštění · rozhodnutí: pod limitemPorovnání stavu frontyKontrola frontyPři menším počtu pokusů než limit (3) se úloha porovná se stavy fronty active, waiting, delayed a prioritized. V kódu předchází větev vyčerpaných pokusů této kontrole fronty.
Porovnání stavu fronty
Kontrola frontySpuštění · rozhodnutí: nové zařazeníBullMQ · ID úlohyFronta úlohPokud úloha ve frontě není, zařadí se znovu. API používá ID s příponou požadavku, zatímco kontrola hledá ID segmentu a jazyka, proto se nepopisuje jako shoda s každým probíhajícím požadavkem.
Drafty starší než 10 min · nejvýše 200
Kontrola uvízlýchSpuštění · rozhodnutí: výsledek existujeLidská revizeKdyž jsou vyčerpány všechny 3 pokusy a výsledek překladu existuje, úloha jde do needs_review.
Drafty starší než 10 min · nejvýše 200
Kontrola uvízlýchSpuštění · rozhodnutí: bez výsledkuKontrola přihlašovacích údajůKdyž jsou vyčerpány všechny 3 pokusy a výsledek neexistuje, úloha jde do needs_credential.
Každé spojení se stejnou váhou. Výběr toku zvýrazní jen jeho cestu s očíslovanými kroky.
- Plná čára · směr vstupu, výsledků a záznamů
- Přerušovaná čára · spuštění, rozhodnutí, požadavek
- Dlouhé tečky · pozorování a vykazování, odděleně od rozhodnutí
- Krátké čárky · selhání, zastavení, limit
- Silná černá čára · zvolený tok; čísla udávají pořadí
- Rámeček · hranice kódu nebo stavu, pojmenovaná v záhlaví
- Vnitřní štítek · komponenta této hranice
- Tečkovaný rámeček · mimo tuto hranici
- Oranžový obrys · místo, kde rozhoduje model
- Generování · výdaje · finalizace
- Vstup · pravidla rozhodnutí · kontrola
- Fronta · stav · záznamy
- Registrace · kontrola fronty
Nakresleno podle neveřejných záznamů implementace a vývoje. Data zákazníka a cesty kódu se nezobrazují.
- Jedna kontrola
- May 26, 2026, jeden cyklus kontroly ve vývojovém prostředí: 200 prověřeno, 106 přechodů stavu, 2 znovu ve frontě. Přechod stavu není úspěšným překladem a rozdělení 106 podle cílového stavu není zaznamenáno.
- Proč ne právě jednou
- Záznamy vznikají bez duplicit, ale pokud se úloha po pádu spustí znovu, volání modelu i jejich náklady se mohou opakovat. Limit souběžnosti platí na proces, ne pro celý cluster.
- Rozsah rozhodnutí
- To, že průměr nepřekryje porušení glosáře, je pravidlo agregace nahlášených kritérií. Nedokazuje, že bude nalezen každý zakázaný výraz ani že kvalita odpovídá rodilému mluvčímu.