
Cotton
Translation workflow
От генерирани преводи към резултати, които могат да се прегледат.
Работен поток за превод на диалози от игри.
Състезание, открито при прегледа, блокирали задачи, върнати според причината
Един случай, в който политиката и къмитът посочват Claude за реализацията и Codex за прегледа, и един, който направи блокиралите задачи диагностицируеми.
May 19, 2026
Промяна, която спира работата при изчерпана квота, беше поправена в същия PR, включително състоянието на състезание, открито при прегледа
ЧовекЧовек
ДействиеСпиране на разходите при изчерпана квота · без автоматичен fallback
- предаванеОграничение за реализацията→ Реализация на контролна точка · спиране · ръчно продължаване (Claude)
Агент за програмиранеClaude
ДействиеРеализация на контролна точка · спиране · ръчно продължаване
- предаванеПреглед в същия PR→ Констатация: състояние на състезание · дублирани преходи между състояния (Codex)
Преглед · проверкаCodex
Наблюдение · констатацияКонстатация: състояние на състезание · дублирани преходи между състояния
- върнатоСъстояние на състезание · идемпотентност→ В същия PR: заключване на ред · уникален ключ на оценката · атомарен преход (Същият PR)
АртефактиСъщият PR
АртефактВ същия PR: заключване на ред · уникален ключ на оценката · атомарен преход
- предаване→ Локален fixture · записи от интеграционна проверка с базата данни (Същият PR)
АртефактиСъщият PR
АртефактЛокален fixture · записи от интеграционна проверка с базата данни
- не е записано изпълнениеПроверен обхват→ Не са събрани нови резултати от CI или от продуктивно внедряване (Същият PR)
АртефактиСъщият PR
Правило · непотвърденоНе са събрани нови резултати от CI или от продуктивно внедряване
- Контекст
- Условието, зададено от човек, беше разходите да спират, когато квотата се изчерпи, без автоматичен fallback. Claude реализира контролна точка, спиране и ръчно продължаване, а преглед на Codex, изпълнен чрез MCP на проекта, откри състезание и дублиране в преходите между състоянията.
- Резултат
- Преходите при влизане и продължаване се изпълняват под заключване, оценките на съдията имат уникален ключ срещу дубликати, а границата на транзакцията е определена. Това не означава, че всички състояния на състезание са премахнати.
- Ограничение
- Къмитът посочва 140 проверки, а по-късният интеграционен CHANGELOG – 160, затова не са обединени в един брой изпълнения. Според политиката прегледът от Codex е незадължителна локална стъпка, така че това не означава, че всеки минал PR е минал през него.
Източници и оставащи ограничения
- Политиката записва реда: Claude реализира, Codex преглежда локално чрез MCP на проекта, прегледът се прикачва към PR, а несъгласията се проучват заедно с агента за преглед на Claude. Автоматичният преглед от Codex в CI беше отложен.
- Проверките при разработката използват fixtures и mocks, а реалните извиквания на модели изискват собствен обхват. Констатациите от прегледа се включват в същия PR и се сливат със squash feature → main.
May 26, 2026
Блокиралите задачи бяха направени диагностицируеми и върнати според причината
Обект на разработкаРаботен процес за превод · опашка
Наблюдение · констатацияЗадачи, останали в draft · изчерпани опити
- предаванеНаблюдавани стойности→ Сравняване на failedReason · кодове за изход · състояние draft (Разработчик)
ЧовекРазработчик
ДействиеСравняване на failedReason · кодове за изход · състояние draft
- предаване→ Причина: наследеният NODE_OPTIONS предизвиква конфликт в подпроцесите (Разработчик)
ЧовекРазработчик
Наблюдение · констатацияПричина: наследеният NODE_OPTIONS предизвиква конфликт в подпроцесите
- върнатоКонфликт на наследени опции→ Премахване на NODE_OPTIONS · лимит на паралелността за процес (Промени в кода)
Работна сесияПромени в кода
ДействиеПремахване на NODE_OPTIONS · лимит на паралелността за процес
- предаване→ Състояние на опашката: waiting · active · failed · stale (Промени в кода)
Работна сесияПромени в кода
ДействиеСъстояние на опашката: waiting · active · failed · stale
- предаване→ Проверка stale: липсва в опашката срещу изчерпани опити, разклонение според наличието на резултат (Промени в кода)
Работна сесияПромени в кода
ДействиеПроверка stale: липсва в опашката срещу изчерпани опити, разклонение според наличието на резултат
- предаванеЕдин цикъл→ Проверка в dev: 200 кандидата → 106 преместени · 2 върнати в опашката · 0 грешки (Артефакти)
АртефактиАртефакти
АртефактПроверка в dev: 200 кандидата → 106 преместени · 2 върнати в опашката · 0 грешки
- не е записано изпълнениеГраница на тълкуването→ 106-те не са успешни преводи (Артефакти)
АртефактиАртефакти
Правило · непотвърдено106-те не са успешни преводи
- Контекст
- Сравняването на failedReason от BullMQ, кодовете за изход на подпроцесите и задачите, останали в draft, показа, че наследеният NODE_OPTIONS предизвиква конфликт в подпроцесите. След това същата ситуация беше направена видима като състояние на опашката.
- Резултат
- Блокиралите задачи се делят на липсващи от опашката и такива, които са изчерпали опитите си; вторите преминават, с посочена причина, в needs_review или needs_credential според това дали има резултат. Човешкият преглед остава.
- Ограничение
- Лимитът на паралелността е за процес. Оригиналните логове от изпълненията не бяха налични в прегледания материал; стойности за латентността са пропуснати, защото поисканите модели и effort не са записани. Кодът за изграждане и издаване сам по себе си не е доказателство за публично внедряване.
Източници и оставащи ограничения
- CHANGELOG записва предложение за паралелни клонове на адаптера, но то не е превърнато в запис за реално паралелно изпълнение.
- Останалата част от 200-те не е разбита в този запис.