Nasmiješeni lik pamuka iz izvornog logotipa Cotton, bez pozadine i natpisa
Natrag u dvoranu

Cotton

Translation workflow

Generirani prijevodi postaju rezultati koji se mogu recenzirati.

Tijek rada za prijevod dijaloga u igrama.

2026.05.06 — 2026.05.26

Radni projekt · obrada prijevoda, prosudba i put recenzije

  • Web-aplikacijaImplementirano · razvoj

Cotton vocabulary

Lens
Refinement Loop
Translation
Quality Estimation
Workflow
Job Control
Human Review
  1. prompt layers
  2. glossary
  3. generation
  4. revision
  1. judge
  2. hard gate
  3. score
  1. intake
  2. checkpoint
  3. spend control
  4. stale sweep
  1. approval
  2. correction
  3. 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

Ocjene, ponovni pokušaji i ljudska recenzija, svako na vlastitoj granici.

Generiranje i prosudba dijele glosar, a neuspjeh strogog praga koji prijavi model sudac ne može se nadoknaditi prosječnim rezultatom. Međustanja prijevoda i prosudbe bilježe se, ograničenja ponovnih pokušaja i troška drže se odvojeno od iscrpljenih vjerodajnica, a zastali poslovi vraćaju se u red ili na recenziju ovisno o uzroku.

Ovaj radni projekt povezuje generiranje prijevoda, prosudbu kvalitete koju prijavljuje model, ponovne pokušaje i ljudsku recenziju u jedan tijek.

Od početka repozitorija do rada potvrđenog tijekom suradnje

Web-aplikacija sa zaslonima za uređivanje i odobravanje prijevoda, API-jem i obrađivačem poslova, koja radi u razvojnom okruženju.

Karta tijeka prosudbe · prema privatnim zapisima implementacije
Cotton: prosudba prijevoda · ponovni pokušaj · oporavakAPI commita izvorni tekst i ciljne jezike u bazu podataka, a zatim za svaki ciljni jezik stavlja posao u red. Worker zaključava redak, provjerava pokušaj, stvara nacrt i stanje napretka, generira prijevod s glosarom i zasebno poziva model sudac s istim glosarom. Prijevod (Tx1) i prosudba s dokazima (Tx2) bilježe se u zasebnim transakcijama. Kod agregira prosudbu tako da prosjek ne nadoknađuje neuspjeh strogog praga: prolaz se finalizira, pad dobiva još jedan potez, ograničenje poteza ili troška šalje na ljudsku recenziju, a signal kvote ili autentikacije zaustavlja potrošnju i čeka provjeru vjerodajnica. Pregled zastalih gleda do 200 nacrta starijih od 10 minuta: onaj s preostalim pokušajima koji nedostaje u redu ponovno se stavlja u red, a onaj koji je iskoristio pokušaje ide na recenziju ili provjeru vjerodajnica ovisno o tome postoji li rezultat.Izvor · ciljni jeziciSpremljeni segmentiLjudska recenzijaneeds_review · nije odobrenjeProvjera vjerodajnicaneeds_credentialAPI · registracija poslaRed nakon commitaRed poslovaBullMQ · ID poslaUlazak poslaZaključavanje retka · provjera pokušajaGlosar · kontekstGlosar radnog prostoraPotez prijevodaGeneriranje · poziv modelaPoziv modela suca · raščlambaPravila presudeStrogi prag · ponderirani prosjekPonovni pokušaj · potrošnjaPotezi · trošak · kvotaStanje prijevodaNacrt · napredakRetci prijevoda · prosudbeStanje · zapisnik pozivaFinalizacijaKonačna transakcijaProvjera redaUsporedba stanja redaPregled zastalihNacrti stariji od 10 min · najviše 200Ulaz · redGeneriranje · prosudbaStanje · prihvaćanjeOporavak · ljudska odluka1izvor2 nakon commita · Red nakon commita → BullMQ · ID posla23 isporuka posla · BullMQ · ID posla → Zaključavanje retka · provjera pokušaja34redak napretka5pokušaj dopušten1glosar2isti glosar3Tx1 · prijevod4Tx2 · prosudba5 ocjene · pragovi · Poziv modela suca · raščlamba → Strogi prag · ponderirani prosjek56presuda7pass8konačni zapis1presuda2sljedeći potez3ograničenje · prekid4kvota · autentikacija5ručni nastavak1zastali nacrt2 ispod ograničenja · Nacrti stariji od 10 min · najviše 200 → Usporedba stanja reda23ponovno u red4 rezultat postoji · Nacrti stariji od 10 min · najviše 200 → Ljudska recenzija45nema rezultata

Registracija → ulazak

Stavlja se u red nakon commita u bazu; worker zaključava redak, provjerava pokušaj i stvara nacrt.

  1. Izvor · ciljni jeziciPodaci: izvorRed nakon commitaAPI · registracija posla

    Izvorni segmenti i ciljni jezici projekta spremaju se u bazu podataka. Podaci klijenta nisu prikazani.

  2. Red nakon commitaAPI · registracija poslaPodaci: nakon commitaBullMQ · ID poslaRed poslova

    Nakon commita u bazu za svaki aktivni ciljni jezik u red se stavlja posao s ID-om određenim u okviru zahtjeva. Ako stavljanje u red ne uspije, bilježi se samo upozorenje, a commit se ne vraća (nema atomskog outboxa) — zato postoji pregled zastalih.

  3. BullMQ · ID poslaRed poslovaPokretanje · prosudba: isporuka poslaZaključavanje retka · provjera pokušajaUlazak posla

    BullMQ asinkrono predaje posao workeru.

  4. Zaključavanje retka · provjera pokušajaUlazak poslaPodaci: redak napretkaNacrt · napredakStanje prijevoda

    Unutar transakcije redak napretka se zaključava i stvara se nacrt prijevoda. Automatski ponovni pokušaji finaliziranih poslova ili poslova pauziranih zbog vjerodajnica preskaču se; ručni zahtjevi obrađuju se zasebno.

  5. Zaključavanje retka · provjera pokušajaUlazak poslaPokretanje · prosudba: pokušaj dopuštenGeneriranje · poziv modelaPotez prijevoda

    Broj pokušaja raste za jedan unutar ograničenja, a zatim počinje potez prijevoda.

Generiranje → prosudba → finalizacija

Generiranje i prosudba koriste isti glosar; prijevod i prosudba bilježe se zasebno, a kod agregira prosudbu prije finalizacije.

  1. Glosar radnog prostoraGlosar · kontekstPodaci: glosarGeneriranje · poziv modelaPotez prijevoda

    Glosar radnog prostora i kontekst dohvaćaju se i prosljeđuju generiranju.

  2. Glosar radnog prostoraGlosar · kontekstPodaci: isti glosarPoziv modela suca · raščlambaPotez prijevoda

    Prosudba dobiva ista ograničenja glosara.

  3. Generiranje · poziv modelaPotez prijevodaPodaci: Tx1 · prijevodRetci prijevoda · prosudbeStanje prijevoda

    Model se poziva izravno ili preko posrednog en-US, a poziv, događaj i napredak zapisuju se u jednoj transakciji. Ako se posao ponovno pokrene nakon pada, poziv za prijevod i njegov trošak mogu se ponoviti.

  4. Poziv modela suca · raščlambaPotez prijevodaPodaci: Tx2 · prosudbaRetci prijevoda · prosudbeStanje prijevoda

    Ocjene suca i dokazi umeću se jednom po prijevodu i potezu; duplikat pronalazi postojeći redak, a citati se zapisuju samo pri prvom umetanju. To nije ista transakcija kao prijevod.

  5. Poziv modela suca · raščlambaPotez prijevodaPodaci: ocjene · pragoviStrogi prag · ponderirani prosjekPravila presude

    Odgovor modela suca raščlanjuje se na ocjene po dimenzijama i rezultate pragova. Je li glosar prošao, prijavljuje model sudac.

  6. Strogi prag · ponderirani prosjekPravila presudePokretanje · prosudba: presudaPotezi · trošak · kvotaPonovni pokušaj · potrošnja

    Svaki prijavljeni neuspjeh strogog praga znači nulu i pad; tek se tada primjenjuju ponderirani prosjek i pragovi po dimenzijama. Ukupni prag od 8.0 zadana je vrijednost konfiguracije, a ne opažena kvaliteta prijevoda.

  7. Potezi · trošak · kvotaPonovni pokušaj · potrošnjaPokretanje · prosudba: passKonačna transakcijaFinalizacija

    Prolaz se finalizira kao translated.

  8. Konačna transakcijaFinalizacijaPodaci: konačni zapisStanje · zapisnik pozivaStanje prijevoda

    Kandidat, stanje, ocjena i potezi finaliziraju se, a finalizacija napretka i zapisnik stanja zapisuju se u jednoj transakciji. Događaj dovršenog prijevoda emitira se samo za translated.

Ponovni pokušaj · ograničenja potrošnje

Bez prolaza slijedi još jedan potez; ograničenje znači ljudsku recenziju; kvota ili autentikacija zaustavljaju potrošnju i čekaju da operater nastavi.

  1. Strogi prag · ponderirani prosjekPravila presudePokretanje · prosudba: presudaPotezi · trošak · kvotaPonovni pokušaj · potrošnja

    Svaki prijavljeni neuspjeh strogog praga znači nulu i pad; tek se tada primjenjuju ponderirani prosjek i pragovi po dimenzijama. Ukupni prag od 8.0 zadana je vrijednost konfiguracije, a ne opažena kvaliteta prijevoda.

  2. Potezi · trošak · kvotaPonovni pokušaj · potrošnjaPokretanje · prosudba: sljedeći potezGeneriranje · poziv modelaPotez prijevoda

    Prijevod koji ne prođe ponovno se generira s prethodnim prijevodom i kritikom. Čak se i neuspjeh strogog praga može najprije ponovno pokušati umjesto da odmah ide čovjeku.

  3. Potezi · trošak · kvotaPonovni pokušaj · potrošnjaPokretanje · prosudba: ograničenje · prekidLjudska recenzija

    Kad se potezi iscrpe ili se dosegne gornja granica troška, posao se finalizira kao needs_review. Finalizirano znači da je obrada završila, a ne da je čovjek odobrio.

  4. Potezi · trošak · kvotaPonovni pokušaj · potrošnjaNeuspjeh · ograničenje: kvota · autentikacijaProvjera vjerodajnica

    Signal kvote ili autentikacije zaustavlja potrošnju i postavlja needs_credential. Nema automatskog prebacivanja na drugi račun ili pružatelja. Prijenosne pogreške bez signala zaustavljanja vraćaju se ponovnim pokušajima BullMQ-a.

  5. Provjera vjerodajnicaPokretanje · prosudba: ručni nastavakBullMQ · ID poslaRed poslova

    Operater koji je provjerio vjerodajnice izričito ponovno pokreće.

Oporavak zastalih poslova

Stari nacrti dijele se prema razlogu: izostanak iz reda znači ponovno stavljanje u red, iskorišteni pokušaji znače ljudsku odluku.

  1. Nacrt · napredakStanje prijevodaOpažanje · izvješće: zastali nacrtNacrti stariji od 10 min · najviše 200Pregled zastalih

    Čita se do 200 kandidata koji su nacrti dulje od 10 minuta, od najstarijih. Upit ne uzima zaključavanje, a ažuriranja i zapisi izvode se kao zasebne naredbe, pa se ovo ne opisuje kao paket bez uvjeta utrke.

  2. Nacrti stariji od 10 min · najviše 200Pregled zastalihPokretanje · prosudba: ispod ograničenjaUsporedba stanja redaProvjera reda

    S manje pokušaja od ograničenja (3) posao se uspoređuje sa stanjima reda active, waiting, delayed i prioritized. U kodu grana iscrpljenih pokušaja dolazi prije ove provjere reda.

  3. Usporedba stanja redaProvjera redaPokretanje · prosudba: ponovno u redBullMQ · ID poslaRed poslova

    Ako posla nema u redu, ponovno se stavlja u red. API koristi ID-ove sa sufiksom zahtjeva, a pregled traži prema ID-u segmenta i jezika, pa se ovo ne opisuje kao podudaranje sa svakim zahtjevom u tijeku.

  4. Nacrti stariji od 10 min · najviše 200Pregled zastalihPokretanje · prosudba: rezultat postojiLjudska recenzija

    Kad su iskorištena sva 3 pokušaja i postoji rezultat prijevoda, posao ide u needs_review.

  5. Nacrti stariji od 10 min · najviše 200Pregled zastalihPokretanje · prosudba: nema rezultataProvjera vjerodajnica

    Kad su iskorištena sva 3 pokušaja i nema rezultata, posao ide u needs_credential.

Sve veze iste debljine. Odaberite tijek kako biste istaknuli samo njegov put s numeriranim koracima.

  • Puna crta · smjer ulaza, rezultata i zapisa
  • Isprekidana crta · pokretanje, prosudba, zahtjev
  • Duga točkasta crta · opažanje i izvješćivanje, odvojeno od prosudbe
  • Kratke crtice · neuspjeh, zaustavljanje, ograničenje
  • Debela crna crta · odabrani tijek; brojevi daju redoslijed
  • Okvir · granica koda ili stanja, imenovana u zaglavlju
  • Unutarnja pločica · komponenta te granice
  • Točkasti okvir · izvan te granice
  • Narančasti obrub · mjesto gdje model odlučuje
  • Generiranje · potrošnja · finalizacija
  • Ulazak · pravila presude · pregled
  • Red · stanje · zapisi
  • Registracija · provjera reda

Nacrtano prema privatnim zapisima implementacije i razvoja. Podaci klijenata i putanje koda nisu prikazani.

Jedan pregled
May 26, 2026, jedan ciklus pregleda u razvojnom okruženju: 200 provjereno, 106 prijelaza stanja, 2 ponovno u redu. Prijelaz stanja nije uspješan prijevod, a raspodjela 106 po odredišnim stanjima nije zabilježena.
Zašto ne točno jednom
Zapisi se upisuju bez duplikata, ali ako se posao ponovno pokrene nakon pada, pozivi modela i njihov trošak mogu se ponoviti. Ograničenje istodobnosti vrijedi po procesu, a ne za cijeli klaster.
Opseg presude
To što prosjek ne može prekriti neuspjeh glosara pravilo je agregacije prijavljenih pragova. Ne dokazuje da je pronađen svaki zabranjeni pojam ni da je kvaliteta na razini izvornog govornika.