Lệnh /goal đặt một điều kiện hoàn thành, và Claude tiếp tục làm việc hướng tới điều kiện đó mà không cần bạn nhắc từng bước. Sau mỗi lượt, một model nhỏ và nhanh kiểm tra xem điều kiện đã đạt chưa. Nếu chưa, Claude bắt đầu lượt tiếp theo thay vì trả quyền điều khiển lại cho bạn. Goal tự động xoá khi điều kiện được đáp ứng.
Dùng goal cho việc lớn có điểm kết thúc kiểm chứng được:
- Migrate một module sang API mới cho đến khi mọi call site compile và test pass
- Triển khai một design doc cho đến khi mọi tiêu chí nghiệm thu đều đạt
- Tách một file lớn thành nhiều module nhỏ cho đến khi mỗi file dưới một ngưỡng kích thước
- Xử lý một backlog issue có nhãn cho đến khi hàng đợi trống
So sánh các cách giữ phiên tiếp tục chạy
Phần tiêu đề “So sánh các cách giữ phiên tiếp tục chạy”Ba cách sau giữ phiên hiện tại tiếp tục chạy giữa các prompt. Chọn dựa trên điều gì khởi động lượt tiếp theo:
| Cách tiếp cận | Lượt tiếp theo bắt đầu khi | Dừng khi |
|---|---|---|
/goal | Lượt trước kết thúc | Model xác nhận điều kiện đã đạt |
/loop | Một khoảng thời gian trôi qua | Bạn dừng, hoặc Claude tự quyết việc đã xong |
| Stop hook | Lượt trước kết thúc | Script hoặc prompt của bạn tự quyết định |
/goal và Stop hook đều kích hoạt sau mỗi lượt. /goal là một shortcut gắn với phiên: bạn gõ điều kiện và nó chỉ có hiệu lực cho phiên hiện tại. Stop hook nằm trong file settings, áp dụng cho mọi phiên trong phạm vi của nó, và có thể chạy script (kiểm tra tất định) hoặc prompt (model đánh giá).
Auto mode tự duyệt tool call trong một lượt nhưng không tự khởi động lượt mới - Claude dừng khi tự thấy việc đã xong. /goal thêm một bộ đánh giá riêng kiểm tra điều kiện sau mỗi lượt, nên việc hoàn thành do một model mới quyết định thay vì chính model đang làm việc. Hai cái bổ trợ nhau: auto mode bỏ prompt theo từng tool, /goal bỏ prompt theo từng lượt.
Dùng /goal
Phần tiêu đề “Dùng /goal”Mỗi phiên chỉ có một goal hoạt động. Cùng một lệnh dùng để đặt, kiểm tra, và xoá goal tuỳ tham số.
Đặt goal
Phần tiêu đề “Đặt goal”Chạy /goal theo sau là điều kiện bạn muốn đạt được. Nếu đã có goal đang hoạt động, goal mới sẽ thay thế.
/goal all tests in test/auth pass and the lint step is cleanĐặt goal khởi động một lượt ngay lập tức, với chính điều kiện đó làm chỉ dẫn - không cần gửi prompt riêng. Trong lúc goal hoạt động, chỉ báo ◎ /goal active hiện thời gian goal đã chạy.
Goal không thay đổi permission. Ở chế độ permission mặc định, Claude vẫn hỏi trước các tool call mà settings của bạn chưa cho phép sẵn. Muốn các lượt chạy không giám sát, kết hợp /goal với auto mode.
Sau mỗi lượt, bộ đánh giá trả về một lý do ngắn giải thích vì sao điều kiện đạt hay chưa đạt. Lý do gần nhất hiện trong status view và transcript để bạn thấy Claude đang hướng tới điều gì tiếp theo.
Viết điều kiện hiệu quả
Phần tiêu đề “Viết điều kiện hiệu quả”Bộ đánh giá xét điều kiện của bạn dựa trên những gì Claude đã thể hiện trong hội thoại - nó không tự chạy lệnh hay đọc file, nên hãy viết điều kiện là thứ mà output của Claude có thể chứng minh được. “Mọi test trong test/auth đều pass” hiệu quả vì Claude chạy test và kết quả nằm trong transcript để bộ đánh giá đọc.
Một điều kiện tốt qua nhiều lượt thường có:
- Một trạng thái kết thúc đo được: kết quả test, exit code của build, số lượng file, hàng đợi rỗng
- Một cách kiểm tra rõ ràng: Claude chứng minh thế nào, ví dụ “
npm testexit 0” hay “git statussạch” - Ràng buộc quan trọng: điều gì không được thay đổi trên đường đi, ví dụ “không sửa file test nào khác”
Điều kiện tối đa 4.000 ký tự. Muốn giới hạn goal chạy bao lâu, thêm mệnh đề về lượt hoặc thời gian, ví dụ or stop after 20 turns. Claude báo cáo tiến độ so với mệnh đề đó mỗi lượt và bộ đánh giá xét từ hội thoại.
Kiểm tra trạng thái
Phần tiêu đề “Kiểm tra trạng thái”/goalNếu goal đang hoạt động, trạng thái hiện: điều kiện, đã chạy bao lâu, số lượt đã đánh giá, token đã dùng, và lý do gần nhất từ bộ đánh giá.
Nếu không có goal đang hoạt động nhưng có goal đã đạt trước đó trong phiên, trạng thái hiện điều kiện đã đạt cùng thời lượng, số lượt, và token đã dùng.
Xoá goal
Phần tiêu đề “Xoá goal”/goal clearClaude in Goal cleared: kèm điều kiện để xác nhận, hoặc No goal set nếu không có gì đang hoạt động. stop, off, reset, none, cancel đều là alias của clear. Chạy /clear để bắt đầu hội thoại mới cũng xoá goal đang hoạt động.
Resume với goal đang hoạt động
Phần tiêu đề “Resume với goal đang hoạt động”Goal còn hoạt động khi phiên kết thúc sẽ được khôi phục khi bạn resume phiên đó bằng --resume hoặc --continue. Điều kiện được giữ nguyên, nhưng số lượt, đồng hồ, và mốc token đều reset về 0 khi resume. Goal đã đạt hoặc đã xoá thì không được khôi phục.
Chạy non-interactive
Phần tiêu đề “Chạy non-interactive”/goal hoạt động ở chế độ non-interactive, trong Desktop app, và qua Remote Control. Đặt goal với -p chạy vòng lặp đến khi hoàn thành trong một lần gọi:
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"Với output text mặc định, không có gì in ra cho đến khi điều kiện đạt, nên một goal chạy nhiều lượt có thể trông như bị treo. Thêm --output-format stream-json --verbose để in từng message khi vòng lặp chạy.
Ngắt process bằng Ctrl+C để dừng goal non-interactive trước khi điều kiện đạt.
Cách đánh giá hoạt động
Phần tiêu đề “Cách đánh giá hoạt động”/goal là một wrapper quanh một Stop hook dạng prompt, gắn với phiên. Mỗi khi Claude kết thúc một lượt, Claude Code gửi điều kiện và hội thoại đến giờ cho model nhỏ nhanh đã cấu hình (mặc định là Haiku trên Claude API). Model trả lời có/không kèm lý do ngắn:
- Không: Claude tiếp tục làm việc, lấy lý do làm chỉ dẫn cho lượt kế tiếp
- Có: Claude Code xoá goal và ghi lại một mục “đã đạt” vào transcript
Muốn đánh giá bằng model khác, đặt ANTHROPIC_DEFAULT_HAIKU_MODEL.
Bộ đánh giá chạy trên provider mà phiên của bạn đang cấu hình. Nó không gọi tool, nên chỉ đánh giá được những gì Claude đã thể hiện trong hội thoại. Token đánh giá tính trên model nhỏ nhanh của provider và thường không đáng kể so với chi phí lượt chính.
Yêu cầu
Phần tiêu đề “Yêu cầu”/goal chỉ chạy ở workspace bạn đã chấp nhận trust dialog, vì bộ đánh giá là một phần của hệ thống hooks. /goal cũng không khả dụng khi disableAllHooks được đặt ở bất kỳ cấp settings nào, hoặc khi allowManagedHooksOnly được đặt trong managed settings. Trong mỗi trường hợp, lệnh sẽ báo lý do thay vì im lặng không làm gì.
Xem thêm
Phần tiêu đề “Xem thêm”/loopđể chạy lại theo khoảng thời gian thay vì đến khi điều kiện đạt- Prompt-based hook để tự viết logic đánh giá riêng
- Auto mode để tự duyệt tool call, giúp mỗi lượt goal chạy không giám sát
- So sánh các cách lập lịch để chạy việc độc lập với phiên đang mở
lượt xem