
Cotton
Translation workflow
Gegenereerde vertalingen omzetten in reviewbare resultaten.
Een vertaalworkflow voor gamedialogen.
Een race die de review vond, vastgelopen jobs per oorzaak teruggezet
Eén casus waarin de richtlijn en de commit Claude noemen voor de implementatie en Codex voor de review, en één die vastgelopen jobs diagnosticeerbaar maakte.
May 19, 2026
Een wijziging die stopt bij uitgeputte quota werd in dezelfde PR gecorrigeerd, inclusief de race die de review vond
MensMens
ActieUitgaven stoppen bij uitgeputte quota · geen automatische fallback
- overdrachtImplementatiebeperking→ Checkpoint · halt · handmatig hervatten implementeren (Claude)
CodeeragentClaude
ActieCheckpoint · halt · handmatig hervatten implementeren
- overdrachtReview in dezelfde PR→ Bevinding: race · dubbele toestandsovergangen (Codex)
Review · verificatieCodex
Observatie · bevindingBevinding: race · dubbele toestandsovergangen
- teruggestuurdRace · idempotentie→ In dezelfde PR: row lock · unieke scoresleutel · atomaire overgang (Dezelfde PR)
ArtefactenDezelfde PR
ArtefactIn dezelfde PR: row lock · unieke scoresleutel · atomaire overgang
- overdracht→ Lokale fixture · vastleggingen van de DB-integratiecontrole (Dezelfde PR)
ArtefactenDezelfde PR
ArtefactLokale fixture · vastleggingen van de DB-integratiecontrole
- geen vastgelegde uitvoeringGecontroleerde reikwijdte→ Geen nieuwe CI- of productie-uitrolresultaten verzameld (Dezelfde PR)
ArtefactenDezelfde PR
Richtlijn · ongecontroleerdGeen nieuwe CI- of productie-uitrolresultaten verzameld
- Achtergrond
- De voorwaarde die een mens stelde, was de uitgaven te stoppen wanneer de quota op is, zonder automatische fallback. Claude implementeerde checkpoint, halt en handmatig hervatten, en een Codex-review via de project-MCP vond een race en duplicatie in de toestandsovergangen.
- Uitkomst
- Instap- en hervatovergangen draaien binnen een lock, beoordelingsscores dragen een unieke sleutel tegen duplicaten, en de transactiegrens is vastgelegd. Dit betekent niet dat elke race is verwijderd.
- Beperking
- De commit vermeldt 140 controles en de latere integratie-CHANGELOG 160, dus ze worden niet samengevoegd tot één aantal runs. Volgens de richtlijn is Codex-review een optionele lokale stap, dus dit betekent niet dat elke eerdere PR erdoor ging.
Bronnen en resterende beperkingen
- De richtlijn legt de volgorde vast: Claude implementeert, Codex reviewt lokaal via de project-MCP, de review wordt aan de PR gehangen, en meningsverschillen worden samen met de review-agent van Claude onderzocht. Automatische Codex-review in CI was uitgesteld.
- Ontwikkelcontroles gebruiken fixtures en mocks, en echte modelaanroepen hebben hun eigen afbakening nodig. Reviewbevindingen worden in dezelfde PR verwerkt en met een squash-merge feature → main samengevoegd.
May 26, 2026
Vastgelopen jobs diagnosticeerbaar gemaakt en per oorzaak teruggezet
In ontwikkelingVertaalworker · queue
Observatie · bevindingJobs achtergebleven in draft · pogingen uitgeput
- overdrachtWaargenomen waarden→ failedReason · exitcodes · draft-toestand vergelijken (Ontwikkelaar)
MensOntwikkelaar
ActiefailedReason · exitcodes · draft-toestand vergelijken
- overdracht→ Oorzaak: geërfde NODE_OPTIONS botsen in subprocessen (Ontwikkelaar)
MensOntwikkelaar
Observatie · bevindingOorzaak: geërfde NODE_OPTIONS botsen in subprocessen
- teruggestuurdBotsing van geërfde opties→ NODE_OPTIONS verwijderen · concurrencylimiet per proces (Codewijzigingen)
WerksessieCodewijzigingen
ActieNODE_OPTIONS verwijderen · concurrencylimiet per proces
- overdracht→ Queuetoestand: waiting · active · failed · stale (Codewijzigingen)
WerksessieCodewijzigingen
ActieQueuetoestand: waiting · active · failed · stale
- overdracht→ Stale sweep: ontbreekt in de queue vs. pogingen op, vertakt op het al dan niet bestaan van een resultaat (Codewijzigingen)
WerksessieCodewijzigingen
ActieStale sweep: ontbreekt in de queue vs. pogingen op, vertakt op het al dan niet bestaan van een resultaat
- overdrachtEén cyclus→ Dev-sweep: 200 kandidaten → 106 verplaatst · 2 opnieuw in de queue · 0 fouten (Artefacten)
ArtefactenArtefacten
ArtefactDev-sweep: 200 kandidaten → 106 verplaatst · 2 opnieuw in de queue · 0 fouten
- geen vastgelegde uitvoeringGrens van de interpretatie→ De 106 zijn geen geslaagde vertalingen (Artefacten)
ArtefactenArtefacten
Richtlijn · ongecontroleerdDe 106 zijn geen geslaagde vertalingen
- Achtergrond
- Door failedReason van BullMQ, exitcodes van subprocessen en jobs die in draft bleven naast elkaar te leggen, bleek dat geërfde NODE_OPTIONS in subprocessen botsten. Daarna werd dezelfde situatie zichtbaar gemaakt als queuetoestand.
- Uitkomst
- Vastgelopen jobs worden gesplitst in jobs die in de queue ontbreken en jobs die hun pogingen hebben opgebruikt; die laatste gaan met een reden naar needs_review of needs_credential, afhankelijk van of er een resultaat is. Menselijke review blijft bestaan.
- Beperking
- De concurrencylimiet geldt per proces. Oorspronkelijke runlogs waren niet beschikbaar in het bekeken materiaal; latentiecijfers zijn weggelaten omdat de gevraagde modellen en effort niet zijn vastgelegd. Build- en releasecode alleen is geen bewijs van een openbare uitrol.
Bronnen en resterende beperkingen
- De CHANGELOG vermeldt een voorstel voor parallelle adapterbranches, maar dat wordt niet omgezet in een vastlegging van daadwerkelijke parallelle uitvoering.
- De rest van de 200 wordt in deze vastlegging niet uitgesplitst.