Nó làm gì
dispatch-junior là recipe để Builder giao phần implement của một ticket cho một pane junior. Builder commit red test, mở một pane ngay cạnh mình trong cùng tab, launch junior trên runtime mà dòng Junior chỉ định (Grok trước), gửi một brief, chờ, rồi đọc lại cây.
Chỉ phần gõ code được chuyển đi. atdd và tdd, cả hai lượt review, simplify, arm, marker, handback và push vẫn là việc của Builder, chạy trên commit của junior y như trên commit của chính nó.
Khi nào Builder dùng nó
| Trước mặt bạn là | Dùng |
|---|---|
Dòng builder trong ## Junior của orchestrator.md có tên runtime, và red test đã commit |
dispatch-junior |
Dòng ghi none, hoặc không có dòng |
Không dùng: Builder tự implement |
Dòng chỉ một runtime nhưng worktree không có supplement junior-<runtime>.md |
Dừng và báo Thomas |
| Thomas muốn có junior | Không được: Thomas không bao giờ dispatch junior, và junior không bao giờ báo cáo cho Thomas |
Hình dạng của một lần giao việc
- Một pane trong tab của Builder, split sang phải, đặt tên
junior:<ticket-id>. Cwd của nó là worktree của Builder: một worktree, hai người ghi nối tiếp nhau, không bao giờ cùng lúc. - Một lệnh launch có cờ lấy từ dòng Junior. Model và effort đọc từ dòng đó. Pane chạy với
--always-approvevì không ai ngồi đó để trả lời prompt, và với một rule denygit pushdo chính runtime thực thi. - Một brief, gửi theo tên. Ticket, tiêu chí, red test cùng lệnh chạy chính xác, write-set, file chỉ đọc, và head trước đó. Brief thiếu lệnh test hoặc write-set thì không được gửi.
- Chờ bằng watcher script. Builder không sửa worktree khi junior đang giữ nó. Junior kết thúc lượt bằng
JUNIOR-DONEhoặcJUNIOR-BLOCKED, và Builder đọc pane để tìm dòng đó. - Đọc lại trước khi tin. Mọi commit phải có trailer
Implemented-by:. Thay đổi ngoài write-set, red test bị sửa hay base branch bị chạm là vi phạm ranh giới: Builder lấy lại ticket và ghi chú. - Đóng pane lúc handback. Builder đóng pane mà nó đã mở, và báo cáo trả cho Thomas có đúng một dòng
Junior:.
Nó để lại gì
| Chuyện gì xảy ra | Nằm ở đâu |
|---|---|
| Ai viết code | Trailer Implemented-by: <runtime>/<model> trên từng commit |
| Junior đã xong | Dòng cuối JUNIOR-DONE <ticket> head=<sha> tests=<pass hoặc fail> changed=<n> trong pane |
| Câu hỏi junior không tự quyết được | JUNIOR-BLOCKED <ticket> <why>, trả lời bằng brief tiếp theo |
| Có dùng junior | Junior: <runtime>/<model> — <n> commits <first>..<last> trong handback, hoặc Junior: none |
Cái gì không được thực thi cứng
Dispatch mod và các gate của nó đọc pane của Builder, không đọc pane của junior, và git guard của project đọc tên tool của Claude. Vì vậy ranh giới của junior là việc của chính nó, và cách Builder kiểm là đọc log: push, checkout base branch hay commit ngoài write-set đều hiện ra ở đó và kết thúc phiên.