
Cotton
Translation workflow
Biến bản dịch được sinh ra thành kết quả có thể rà soát.
Một quy trình dịch cho lời thoại game.
Một race do rà soát tìm ra, các công việc bị kẹt được trả về theo nguyên nhân
Một trường hợp mà chính sách và commit ghi tên Claude cho phần hiện thực và Codex cho rà soát, và một trường hợp giúp chẩn đoán được các công việc bị kẹt.
May 19, 2026
Một thay đổi dừng khi cạn quota được sửa trong cùng PR, kể cả race mà rà soát tìm ra
Con ngườiCon người
Hành độngNgừng chi tiêu khi cạn quota · không fallback tự động
- bàn giaoRàng buộc hiện thực→ Hiện thực checkpoint · halt · tiếp tục thủ công (Claude)
Tác nhân lập trìnhClaude
Hành độngHiện thực checkpoint · halt · tiếp tục thủ công
- bàn giaoRà soát trong cùng PR→ Phát hiện: race · chuyển trạng thái trùng lặp (Codex)
Rà soát · kiểm chứngCodex
Quan sát · phát hiệnPhát hiện: race · chuyển trạng thái trùng lặp
- trả vềRace · tính idempotent→ Trong cùng PR: row lock · khóa điểm duy nhất · chuyển trạng thái nguyên tử (Cùng PR)
ArtifactCùng PR
ArtifactTrong cùng PR: row lock · khóa điểm duy nhất · chuyển trạng thái nguyên tử
- bàn giao→ Fixture cục bộ · bản ghi kiểm tra tích hợp DB (Cùng PR)
ArtifactCùng PR
ArtifactFixture cục bộ · bản ghi kiểm tra tích hợp DB
- không phải lần thực thi được ghi lạiPhạm vi đã kiểm tra→ Không thu thập kết quả CI hay triển khai production mới (Cùng PR)
ArtifactCùng PR
Quy tắc · chưa kiểm chứngKhông thu thập kết quả CI hay triển khai production mới
- Bối cảnh
- Điều kiện do một người đặt ra là ngừng chi tiêu khi hết quota, không có fallback tự động. Claude hiện thực checkpoint, halt và tiếp tục thủ công, và một đợt rà soát Codex chạy qua MCP của dự án phát hiện race và trùng lặp trong các lần chuyển trạng thái.
- Kết quả
- Các lần chuyển trạng thái khi vào và khi tiếp tục chạy trong một khóa, điểm của bộ phán định mang khóa duy nhất để chống trùng lặp, và ranh giới giao dịch đã được đặt. Điều này không có nghĩa mọi race đã bị loại bỏ.
- Giới hạn
- Commit ghi 140 kiểm tra và CHANGELOG tích hợp sau đó ghi 160, nên chúng không được gộp thành một con số lượt chạy. Theo chính sách, rà soát Codex là một bước cục bộ tùy chọn, nên điều này không có nghĩa mọi PR trước đây đều qua nó.
Nguồn và các giới hạn còn lại
- Chính sách ghi lại trình tự: Claude hiện thực, Codex rà soát cục bộ qua MCP của dự án, bản rà soát được đính kèm vào PR, và các bất đồng được điều tra cùng tác nhân rà soát của Claude. Rà soát Codex tự động trong CI đã bị hoãn lại.
- Các kiểm tra phát triển dùng fixture và mock, và lệnh gọi mô hình thật cần phạm vi riêng. Phát hiện từ rà soát được gộp vào cùng PR và squash-merge feature → main.
May 26, 2026
Các công việc bị kẹt được làm cho chẩn đoán được và trả về theo nguyên nhân
Đang phát triểnWorker dịch · hàng đợi
Quan sát · phát hiệnCông việc còn ở draft · đã hết lượt thử
- bàn giaoGiá trị quan sát→ Đối chiếu failedReason · mã thoát · trạng thái draft (Nhà phát triển)
Con ngườiNhà phát triển
Hành độngĐối chiếu failedReason · mã thoát · trạng thái draft
- bàn giao→ Nguyên nhân: NODE_OPTIONS kế thừa xung đột trong tiến trình con (Nhà phát triển)
Con ngườiNhà phát triển
Quan sát · phát hiệnNguyên nhân: NODE_OPTIONS kế thừa xung đột trong tiến trình con
- trả vềXung đột tùy chọn kế thừa→ Bỏ NODE_OPTIONS · giới hạn đồng thời theo tiến trình (Thay đổi mã)
Phiên làm việcThay đổi mã
Hành độngBỏ NODE_OPTIONS · giới hạn đồng thời theo tiến trình
- bàn giao→ Trạng thái hàng đợi: waiting · active · failed · stale (Thay đổi mã)
Phiên làm việcThay đổi mã
Hành độngTrạng thái hàng đợi: waiting · active · failed · stale
- bàn giao→ Quét kẹt: vắng khỏi hàng đợi so với đã hết lượt thử, rẽ nhánh theo việc có kết quả hay không (Thay đổi mã)
Phiên làm việcThay đổi mã
Hành độngQuét kẹt: vắng khỏi hàng đợi so với đã hết lượt thử, rẽ nhánh theo việc có kết quả hay không
- bàn giaoMột chu kỳ→ Quét ở dev: 200 ứng viên → 106 được chuyển · 2 đưa lại hàng đợi · 0 lỗi (Sản phẩm đầu ra)
ArtifactSản phẩm đầu ra
ArtifactQuét ở dev: 200 ứng viên → 106 được chuyển · 2 đưa lại hàng đợi · 0 lỗi
- không phải lần thực thi được ghi lạiGiới hạn của việc diễn giải→ 106 công việc không phải bản dịch thành công (Sản phẩm đầu ra)
ArtifactSản phẩm đầu ra
Quy tắc · chưa kiểm chứng106 công việc không phải bản dịch thành công
- Bối cảnh
- Đối chiếu failedReason của BullMQ, mã thoát của tiến trình con và các công việc còn ở draft cho thấy NODE_OPTIONS được kế thừa xung đột trong tiến trình con. Sau đó, cùng tình huống được làm hiển thị dưới dạng trạng thái hàng đợi.
- Kết quả
- Các công việc bị kẹt được chia thành loại vắng khỏi hàng đợi và loại đã dùng hết lượt thử; loại sau được chuyển, kèm lý do, sang needs_review hoặc needs_credential tùy theo có kết quả hay không. Rà soát của con người vẫn được giữ nguyên.
- Giới hạn
- Giới hạn đồng thời là theo từng tiến trình. Log chạy gốc không có trong tài liệu đã rà soát; số liệu độ trễ bị lược bỏ vì mô hình và effort được yêu cầu không được ghi lại. Chỉ riêng mã build và release không phải bằng chứng triển khai công khai.
Nguồn và các giới hạn còn lại
- CHANGELOG ghi một đề xuất về các nhánh adapter song song, nhưng nó không được biến thành bản ghi thực thi song song thực tế.
- Phần còn lại của 200 không được chia nhỏ trong bản ghi này.