
Skill cho Claude Code viết commit message đúng quy ước
Bỏ việc gõ lại quy ước commit vào prompt mỗi phiên. Một skill copy vào .claude/skills bắt agent theo checklist: type, subject 50 ký tự, body nêu vì sao.
Git log của team nào cũng có fix stuff, wip, update code, asdf. Những dòng có nghĩa lúc 11 giờ đêm thứ Sáu và vô nghĩa vào sáng thứ Hai.
Một dev trên Dev.to mô tả cách anh bỏ hẳn việc gõ lại quy ước commit vào prompt mỗi phiên: viết nó xuống một lần thành skill cho agent. Bài dưới đây tóm phần cài đặt và nội dung quy trình đó.
Vì sao là skill, không phải prompt dán lại
Tác giả nói đã thử cả ba cách và chúng hỏng theo ba kiểu khác nhau. Prompt dán vào thì chạy được nhưng reset mỗi session, và bạn vẫn là người đi bắt lỗi khi agent trượt khỏi quy ước.
Hướng dẫn trong CLAUDE.md thì tốt hơn vì được nạp tự động, nhưng theo bài, chúng phải cạnh tranh sự chú ý với mọi thứ khác trong file đó và dần biến file thành một ngăn kéo tạp nham. Slash command thì gần hơn, nhưng command thường để làm một việc cụ thể, không phải để mô tả cách suy nghĩ qua một quyết định lặp đi lặp lại.
Câu chốt của tác giả đáng nhớ: prompt lưu lại là lời nhắc cho chính bạn, còn skill là checklist cho agent.
Cài bằng một lệnh copy
git clone https://github.com/alapha888/agent-skills-en.git
mkdir -p ~/.claude/skills
cp -r agent-skills-en/skills/git-commit-message ~/.claude/skills/
Bài ghi rõ đó là toàn bộ phần cài: không dependency, không gọi mạng, không đăng ký. Muốn cả team dùng chung thì copy thư mục vào .claude/skills/ trong repo rồi commit, để quy ước được version hoá thay vì phải nhắc nhau.
Tác giả cho biết định dạng này là một chuẩn mở nên không chỉ dùng được với Claude, mà còn chạy trong Codex, Cursor, Gemini CLI và các host khác có hỗ trợ skill. Đây là tuyên bố của tác giả, bài không kèm kết quả kiểm thử trên từng host.
Skill bảo agent làm gì
- Nhìn thay đổi thật trước: chạy
git status --shortvàgit diff --cached --stat. Staging rỗng thì dừng và hỏi người dùng, không bịa commit message. - Chọn đúng một type trong
feat,fix,docs,refactor,test,choredựa trên diff. Một commit trộn nhiều type thì agent yêu cầu tách. - Subject dạng
type: câu mệnh lệnh, tối đa 50 ký tự, mở đầu bằng động từ. Những subject rỗng nghĩa như "update code" hay "fix bug" bị cấm đích danh. - Body dài 1-3 dòng giải thích vì sao, không phải làm gì. Riêng bug fix bắt buộc nêu điều kiện kích hoạt lỗi.
- Xuất ra lệnh chạy được ngay, không phải đoạn text để bạn tự ghép.
Ví dụ bug fix trong bài cho thấy quy tắc "nêu điều kiện kích hoạt" đáng giá ở đâu: body ghi "Trigger: filter first, then turn the page. Cause: page turns dropped the query params." Đó là loại câu cứu người đọc sáu tháng sau khỏi hai mươi phút dựng lại lỗi.
Nó từ chối gì, và không sửa được gì
Skill từ chối bốn thứ: viết message khi staging rỗng, gộp một feature với một refactor vào chung một feat:, dán nhãn chore cho mọi thứ đến mức hệ thống type vô nghĩa, và subject dài lê thê kèm lời tự khen.
Tác giả cũng tự đặt giới hạn: không skill nào sửa được thói quen commit xấu. Nếu bạn git add -A cả buổi chiều rồi xin một message, skill sẽ đúng khi từ chối tách hộ bạn. Nó giả định bạn stage có chủ đích và chỉ lo phần câu chữ.
Làm gì tiếp
Thử trên đúng một repo phụ trước, với vài commit bạn vừa stage thủ công. Nếu subject và body ra đúng dạng bạn muốn hai ba lần liên tiếp, lúc đó mới commit thư mục skill vào repo chính cho cả team.
Và lấy ý tưởng tổng quát hơn: bất kỳ việc nào bạn phải giải thích lại cho agent hằng tuần — định dạng báo cáo, checklist review, quy ước dịch thuật — đều là một skill đang chờ được viết xuống.
Không spam, hủy đăng ký bất kỳ lúc nào.
Bài viết liên quan

Bộ nhớ sửa lỗi cho Claude Code bằng Postgres cục bộ
02 thg 10, 2026
Review code bằng LLM: 3 lượt quét thay vì một prompt
24 thg 9, 2026