Auto Mode

Auto Mode là trái tim của GSD-2 - một vòng lặp thực thi hoàn toàn tự động, từ việc chọn task đến commit thay đổi, không cần bạn can thiệp thủ công giữa mỗi bước.

Vòng lặp thực thi

Mỗi vòng lặp của auto-mode đi qua sáu bước kế tiếp nhau. Vòng lặp tiếp tục cho đến khi hết task, gặp blocker cần replan, hoặc người dùng yêu cầu dừng:

1. Chọn task tiếp theo

Auto-mode đọc trạng thái slice, tìm task pending đầu tiên theo thứ tự ưu tiên và phụ thuộc.

2. Giao cho executor agent

Task plan (T##-PLAN.md) được chuyển làm hợp đồng thực thi cho agent. Agent nhận đủ context để chạy độc lập.

3. Thực thi và xác minh

Agent viết code, chạy lệnh xác minh, và kiểm tra các tiêu chí trong task plan. Nếu xác minh thất bại, agent debug trong giới hạn cho phép.

4. Ghi lại summary

Kết quả được ghi vào T##-SUMMARY.md và cơ sở dữ liệu GSD - bao gồm những gì đã làm, quyết định đưa ra, và bằng chứng xác minh.

5. Commit thay đổi

Tất cả thay đổi được commit với message có ý nghĩa rút ra từ summary. Mỗi task có một commit độc lập.

6. Tiến đến task tiếp theo hoặc hoàn thành

Nếu còn task pending trong slice, vòng lặp tiếp tục. Nếu tất cả task hoàn thành, slice được đánh dấu done và auto-mode chuyển sang slice tiếp theo.

Leo thang (Escalation)

Trong quá trình thực thi, agent có thể gặp những điểm mơ hồ mà quyết định ở đó ảnh hưởng đến các task tiếp theo - nhưng chưa đủ nghiêm trọng để là một blocker. Khi đó, agent leo thang (escalate) bằng cách gửi câu hỏi có cấu trúc kèm theo các lựa chọn và khuyến nghị của mình.

Nếu continueWithDefaulttrue, auto-mode tiếp tục bằng lựa chọn được khuyến nghị và ghi lại leo thang để bạn xem xét sau. Nếu là false, auto-mode tạm dừng cho đến khi bạn phản hồi.

Để giải quyết một leo thang đang chờ, dùng lệnh:

bash
/gsd escalate resolve <taskId> <choice>
Leo thang không phải lỗi

Leo thang là cơ chế thiết kế - agent đang yêu cầu thông tin bổ sung thay vì đoán mò. Xem nội dung leo thang trong file summary của task để hiểu context trước khi chọn. Thông thường, lựa chọn được khuyến nghị là đúng và bạn chỉ cần xác nhận.

Blocker và Replan tự động

Khi agent phát hiện rằng kế hoạch slice hiện tại không còn hợp lệ - ví dụ API sai, thiếu capability, hoặc không tương thích kiến trúc - nó đánh dấu blocker_discovered: true và mô tả vấn đề trong summary.

Auto-mode phát hiện cờ này và tự động kích hoạt replan slice: kế hoạch được điều chỉnh để phản ánh thực tế mới, các task còn lại được cập nhật hoặc thay thế, rồi vòng lặp tiếp tục từ trạng thái mới.

Điểm quan trọng: blocker chỉ dành cho các vấn đề làm vô hiệu hóa kế hoạch, không phải cho bug thông thường hay lỗi nhỏ mà agent có thể tự xử lý trong phạm vi task. Replan quá thường xuyên thường là dấu hiệu kế hoạch ban đầu thiếu chi tiết.

Auto-commit

Mặc định, auto-mode tạo một commit git sau mỗi task hoàn thành. Message commit được rút ra từ trường oneLiner trong task summary - thường là một câu mô tả ngắn gọn những gì đã thay đổi. Loại commit (feat, fix, docs, v.v.) được suy ra tự động từ tiêu đề task.

Kết quả là lịch sử git luôn sạch sẽ và có ý nghĩa - mỗi commit khớp với đúng một task, và bạn có thể git bisect hoặc git revert theo từng task bất cứ lúc nào.

Dừng lại an toàn

Bạn có thể yêu cầu auto-mode dừng sau khi hoàn thành task hiện tại bằng lệnh:

bash
/gsd stop

Auto-mode sẽ không dừng giữa chừng trong một task - nó luôn hoàn thành task đang chạy, ghi summary và commit trước khi dừng. Điều này đảm bảo trạng thái dự án luôn nhất quán. Lần sau, khi bạn chạy /gsd auto lại, nó sẽ tiếp tục chính xác từ task tiếp theo chưa hoàn thành.