Hôm nay mình sẽ hướng dẫn anh em cài Ponytail cho Claude Code bằng hai lệnh, rồi dùng nó rà lại phần code vừa sửa. Sau khi đọc xong, anh em có thể giao một việc nhỏ, yêu cầu công cụ dùng lại phần có sẵn trong dự án và tự mình rà soát những chỗ cần kiểm tra.
Mình soạn hướng dẫn này từ tài liệu chính thức của tác giả. Phần chạy thử bên dưới chỉ kể đúng những gì log ghi, và log đó chỉ thử prompt, không thử cài plugin.
Bước một: Anh em cài Ponytail
Mình chọn Claude Code vì tài liệu ghi sẵn hai lệnh cài cho nó, anh em chỉ cần chép. Anh em gõ lệnh đầu, chờ nó chạy xong rồi mới gõ lệnh thứ hai. Tài liệu dặn gửi thành hai tin riêng, đừng dán cả hai vào một lần.
/plugin marketplace add DietrichGebert/ponytail/plugin install ponytail@ponytail
Anh em mở Claude Code trong terminal, tức cửa sổ gõ lệnh, rồi gõ lần lượt hai lệnh này vào khung chat của nó.
Theo tài liệu, plugin luôn bật trong mọi phiên, và chữ hiện lúc bắt đầu hoặc lúc đổi mức sẽ cho biết đang ở mức nào. Anh em gõ /ponytail-help để mở bảng tra nhanh các lệnh của plugin.
/ponytail-helpBước hai: Anh em giao việc có giới hạn
Anh em nên bắt đầu bằng việc thêm ô chọn ngày vào form. Với người chưa biết code, repo là nơi chứa code của project, còn agent là trợ lý AI thực hiện công việc trong đó theo yêu cầu anh em gửi.

Prompt là yêu cầu anh em gửi cho AI để nó biết cần làm gì, anh em có thể chép mẫu dưới đây vào khung chat để giao việc.
Form của mình cần ô chọn ngày, còn phần code hiện tại đã có Input. Bạn hãy đọc code liên quan, dùng lại phần sẵn có và đừng cài thêm thư viện. Bạn cần giữ nhãn cho ô nhập và kiểm tra để người dùng không chọn ngày quá khứ.
Anh em nói rõ form đang thiếu gì và repo đã có thành phần nào ngay trong yêu cầu gửi ban đầu, để agent biết chỗ nào cần thêm, chỗ nào dùng lại được. Anh em cũng cần nói điều kiện nào phải giữ khi sửa, rồi yêu cầu nó đọc phần liên quan trước để quyết định có thể dùng lại hay cần viết thêm.
Theo tài liệu, agent phải đọc luồng xử lý trước khi chọn giải pháp. Anh em phải giữ validate. Validate là kiểm tra dữ liệu nhập; anh em cũng cần giữ xử lý lỗi, bảo mật và accessibility, tức hỗ trợ người dùng khuyết tật.
Theo tài liệu, cuối mỗi câu trả lời agent sẽ ghi những phần nó bỏ qua hoặc chưa kiểm tra, cùng rủi ro anh em nên biết. Mình sẽ đọc phần này trước khi nhận code.
Bước ba: Anh em rà phần vừa sửa
Sửa xong code, anh em chạy lệnh dưới. Lệnh này bảo công cụ rà lại những chỗ vừa sửa và các file liên quan để anh em biết thay đổi mới có làm hỏng chức năng nào khác hay không.
/ponytail-reviewTheo tài liệu, lượt rà này tìm lỗi, vấn đề bảo mật, tải thực tế và phần code nên cắt bớt. Theo tài liệu, nó còn xét đường xử lý chậm và đoạn logic rủi ro mà chưa có test.
Mỗi phát hiện cần giải thích code đang làm gì, lỗi xảy ra thế nào, cách sửa và hậu quả nếu giữ nguyên, để anh em biết vì sao cần xử lý.
Anh em nên nhờ agent giải thích từng phát hiện bằng một tình huống lỗi cụ thể, để hiểu hậu quả trước khi quyết định sửa. Commit là lần lưu lại thay đổi vào lịch sử code. Anh em gõ /ponytail-review uncommitted để rà phần chưa commit, rồi nhờ nó kiểm tra chuyện form có nhận ngày quá khứ hay không.
Anh em cũng có thể ghi thêm staged, branch hoặc link PR sau lệnh để thu hẹp hay mở rộng phạm vi rà.
Bước bốn: Anh em rà cả repo khi cần
Anh em dùng lệnh dưới khi cần xem vấn đề ngoài phần vừa sửa.
/ponytail-auditTheo tài liệu, nó đọc toàn bộ repo và lập bản đồ code trước khi báo lỗi: điểm vào, luồng dữ liệu và mức tải project dự kiến phải chịu. Sau đó nó xếp các phát hiện theo thứ tự quan trọng để anh em biết nên sửa gì trước.
Với repo lớn, mình sẽ chọn lệnh này. Với một thay đổi nhỏ, anh em có thể bắt đầu từ lượt rà phía trên và yêu cầu giải thích tác động bằng tình huống người dùng gặp trước khi sửa thêm.
Mình đối chiếu với log chạy thử
Log ghi lại lần chạy thử như sau: mình gửi một prompt cho Claude Sonnet bằng claude -p, không kèm file hay công cụ nào. Mốc ngày trong log nằm sau ngày soạn bài, nên mình chưa xác nhận được ngày chạy thử này.
Mình chỉ kể lại đúng nội dung câu trả lời ghi trong log để anh em đối chiếu với các bước phía trên. Yêu cầu là thêm ô chọn ngày cho form React đã có component Input, giữ nhãn và chặn ngày quá khứ.
Theo log, Claude Sonnet trả lời sau 4,6 giây cho yêu cầu thêm ô chọn ngày vào form đặt lịch. Câu trả lời của Claude Sonnet dài 111 chữ, tương ứng 829 ký tự theo số liệu ghi trong log.
Mình thấy code trả về dùng ô chọn ngày có sẵn của trình duyệt. Phần giải thích nêu giả định rằng component Input chuyển các thuộc tính cần thiết xuống ô nhập bên dưới, nên anh em cần kiểm tra thành phần này trước khi giữ code. Nếu Input chưa chuyển id, min, required, phần giải thích trong log gợi ý anh em thêm ...props cho ô nhập.
Phản hồi đã đi đúng hướng dùng lại phần sẵn có. Log chưa chứng minh plugin đã được cài, đoạn code đã chạy trong repo hay phần kiểm tra đã vượt qua test, nên mình chỉ đối chiếu được nội dung câu trả lời.
Lỗi hay gặp
Ngoài ra, plugin có một dải thông tin gọi là band, hiện phía trên khung nhập prompt. Dải này cho anh em xem chi phí, token và kết quả test của việc đang làm. Token là đơn vị công cụ dùng để đếm phần nội dung mà AI xử lý.
Nó cần Claude Code 2.1.290 trở lên và chạy trong terminal hoặc ứng dụng desktop. Nó không hiện trong khung chat VS Code, các phiên trên cloud hoặc khi chạy bằng claude -p, nên anh em kiểm tra chỗ đang dùng trước.
Anh em cài xong là dùng được ngay, vì tài liệu ghi file cấu hình chỉ là tùy chọn. Muốn đổi mức hoạt động, anh em dùng /ponytail với lite, full hoặc ultra; muốn tắt thì chọn off.
Tác giả dặn chỉ cài từ nguồn chính chủ, nên trước khi cài, anh em soi kỹ tên repo trong lệnh phía trên để đối chiếu với repo tác giả. Tác giả nói bản chính chủ không có file .exe hoặc .dll, nên anh em đừng cài bản nào kèm những file này.
Anh em đừng xóa phần kiểm tra chỉ để câu trả lời của agent trông ngắn hơn.



