Vn commit
Generate terse commit messages with Vietnamese body + English Conventional Commits subject. Subject ≤50 chars (hard cap 72), English imperative. Body in Vietnamese, chỉ viết khi "why" không rõ từ diff. Use when user says "/vn-commit", "write a commit in Vietnamese", "commit tiếng Việt", or invokes /vn-commit. Auto-triggers when staging changes and vietnamese-dev skill is active.From its SKILL.md
npx -y skills add DevLungTung/vietnamese-dev --skill vn-commitAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.3 KB, as published. Nobody here has run it
Commit message gọn, chính xác. Conventional Commits. English subject (chuẩn quốc tế), body tiếng Việt khi cần giải thích.
Rules
Subject line (English):
- Format:
<type>(<scope>): <imperative summary>—<scope>optional - Types:
feat,fix,refactor,perf,docs,test,chore,build,ci,style,revert - Imperative: "add", "fix", "remove" — không "added" / "adds" / "adding"
- ≤50 chars nếu được, hard cap 72
- Không dấu chấm cuối
- Theo convention project về capitalization
Body (tiếng Việt, chỉ khi cần):
- Bỏ luôn nếu subject đã tự giải thích
- Chỉ thêm body cho: why không rõ, breaking change, migration note, linked issue
- Wrap 72 chars
- Bullet
-không* - Reference issue/PR cuối:
Closes #42,Refs #17
User muốn subject tiếng Việt: nếu user yêu cầu all-VN (team nội bộ), viết <type>(<scope>): <động từ mệnh lệnh tiếng Việt>. Ví dụ: feat(api): thêm endpoint GET /users/:id/profile. Default vẫn là English.
KHÔNG BAO GIỜ viết:
- "Commit này làm X", "Tôi", "chúng ta", "bây giờ", "hiện tại" — diff nói what rồi
- "Theo yêu cầu của..." — dùng Co-authored-by trailer
- "Generated with Claude Code" hoặc bất kỳ AI attribution nào
- Emoji (trừ khi project convention dùng)
- Lặp lại tên file khi scope đã nói
Examples
Diff: new endpoint for user profile
- ❌ "feat: add a new endpoint to get user profile information from the database"
- ✅
feat(api): add GET /users/:id/profile Mobile client cần profile data không kèm full user payload để giảm LTE bandwidth khi cold-launch screen. Closes #128
Diff: breaking API change
- ✅
feat(api)!: rename /v1/orders to /v1/checkout BREAKING CHANGE: client trên /v1/orders phải migrate sang /v1/checkout trước 2026-06-01. Route cũ trả 410 sau ngày đó.
Diff: bug fix với why rõ từ diff
- ✅
fix(auth): use <= for token expiry comparison - (Không body — diff nói đủ rồi)
Diff: performance refactor
- ✅
perf(dlob): cache orderbook snapshot 100ms Hot path gọi getOrderbook mỗi tick, O(n log n) sort. Cache 100ms giảm CPU từ 45% → 12% ở load thường.
Auto-Clarity
Luôn viết body đầy đủ cho:
- Breaking change — future debugger cần context
- Security fix — reference CVE hoặc issue
- Data migration — ghi rollback plan
- Revert commit — giải thích tại sao revert
Không nén những cái này thành subject-only.
Boundaries
Skill này chỉ sinh commit message. KHÔNG chạy git commit, KHÔNG stage file, KHÔNG amend. Output message trong code block sẵn sàng paste. "stop vn-commit" hoặc "normal mode": revert về verbose English commit style.