Slash commands & Skills chuyên sâu
Commands và Skills đã hợp nhất thành một hệ thống: cách viết SKILL.md, bảng điều khiển frontmatter, và quy trình đóng gói quy trình team thành skill dùng chung.
Phần "vũ khí" của Claude Code: biến quy trình của team thành lệnh 1 chạm và tri thức tự nạp. Đối chiếu docs chính thức (code.claude.com/docs/en/skills) và trạng thái sản phẩm đến 04/07/2026. [Trung cấp → Nâng cao] — học sau khi xong Bài 3.1–3.4. Bộ skill mẫu cài được ngay cho stack Vue/PHP/Node: folder
templates/claude-code-skills/.
B1. Bức tranh lớn: commands và skills đã HỢP NHẤT
Điều quan trọng nhất phải hiểu trước (thay đổi từ v2.1.101, 04/2026):
- Trước đây có 2 hệ: custom commands (
.claude/commands/*.md) và skills (.claude/skills/*/SKILL.md). Giờ là MỘT hệ thống: file đặt ở đâu trong 2 chỗ đó đều tạo ra/ten-lenhvà hoạt động như nhau. .claude/skills/là đường chuẩn (canonical) — được khuyến nghị vì có thêm: file phụ trợ đi kèm, frontmatter điều khiển, và Claude tự nạp khi phù hợp. File.claude/commands/cũ vẫn chạy; trùng tên thì skill thắng.- Câu thần chú: "một slash command giờ đây chỉ là một skill không có tính năng phụ".
- Vẫn tồn tại nhóm built-in commands (logic cứng của CLI như
/clear,/model) — không phải skill, không tuỳ biến được (xem B2). - Skills theo chuẩn mở Agent Skills — viết một lần, dùng được trên Claude Code, claude.ai và API. Đây là lý do skill là khoản đầu tư "ăn chắc" nhất của công ty.
B2. Bản đồ built-in commands (logic cứng — gõ /help để xem menu đúng version của bạn)
| Nhóm | Lệnh | Ghi nhớ |
|---|---|---|
| Context | /clear xoá sạch · /compact [gợi ý focus] nén tóm tắt · /context xem gì đang chiếm chỗ | Đổi task → /clear; tiếp tục task dài → /compact chủ động TRƯỚC khi context đầy |
| An toàn & hoàn tác | /rewind quay checkpoint (nay khôi phục được cả trước /clear) · /diff xem mọi thay đổi Claude đã làm · /permissions pre-approve lệnh an toàn | Thói quen vàng: /diff trước mỗi commit |
| Cấu hình | /init sinh CLAUDE.md · /memory sửa memory · /config (hỗ trợ key=value) · /model · /effort chỉnh độ suy nghĩ · /output-style | — |
| Phiên & điều hướng | /resume mở lại phiên cũ · /usage hạn mức · /doctor chẩn đoán (kể cả vì sao skill không kích hoạt) · /export xuất transcript · gõ / để tìm trong transcript | — |
| Hệ mở rộng | /mcp quản lý & OAuth MCP (thêm: claude mcp login/logout từ shell) · /agents subagents · /hooks · /skills liệt kê & quản lý skill · /plugin | /skills là chỗ debug đầu tiên khi skill "không thấy đâu" |
| Chế độ nhập | !lệnh shell mode (chạy lệnh thật, Claude đọc output) · @file chèn file vào prompt · # ghi nhanh vào memory · Shift+Tab xoay permission mode · Esc dừng | ! npm test rồi hỏi "vì sao fail?" — Claude đã thấy output |
| Skill built-in (bản chất là skill, Anthropic cài sẵn) | /code-review, /security-review, /simplify (đơn giản hoá code), /debug (quy trình debug bài bản: reproduce→isolate→hypothesize→fix), /batch (lặp thao tác trên nhiều file), /loop (chạy lặp — vd /loop 5m /kiem-tra poll mỗi 5 phút; trước khi chạy loop không giám sát, đọc 5 điều kiện an toàn ở Bài 3.5) | Dùng /debug thay vì tả bug bằng lời — nó ép quy trình chuẩn |
B3. Giải phẫu một skill
Skill = một thư mục, bắt buộc có SKILL.md, tuỳ chọn thêm file phụ trợ:
.claude/skills/ten-skill/
├── SKILL.md # bắt buộc: frontmatter + hướng dẫn
├── templates/ # tuỳ chọn: mẫu output, ví dụ
└── scripts/ # tuỳ chọn: script Claude được phép chạyVị trí đặt: .claude/skills/ trong repo (commit vào Git → cả team dùng chung) hoặc ~/.claude/skills/ (cá nhân, theo bạn qua mọi repo).
SKILL.md tối thiểu:
---
name: tom-tat-thay-doi
description: Tóm tắt thay đổi chưa commit và cảnh báo rủi ro. Dùng khi user hỏi "có gì thay đổi", cần commit message, hoặc muốn review diff.
---
## Thay đổi hiện tại
!`git diff HEAD`
## Hướng dẫn
Tóm tắt các thay đổi trên trong 2-3 gạch đầu dòng, sau đó liệt kê rủi ro
(thiếu error handling, giá trị hardcode, test cần cập nhật). Diff rỗng thì nói rõ.Ba cơ chế "ma thuật" trong body:
- Cú pháp
!`lệnh`(dynamic context injection): Claude Code CHẠY lệnh và thay dòng đó bằng output TRƯỚC khi Claude đọc — skill luôn làm việc trên dữ liệu tươi. $ARGUMENTS/$1 $2: hứng phần gõ sau tên lệnh./fix-issue 123→$ARGUMENTS= "123".@file: tham chiếu file cụ thể.
B4. Frontmatter — bảng điều khiển hành vi (phần hay nhất)
| Field | Tác dụng | Khi nào dùng |
|---|---|---|
name | Tên lệnh — phải trùng tên thư mục; dùng chuỗi 1 dòng | Luôn khai |
description | Quan trọng nhất: Claude match mô tả này với prompt của user để quyết định tự nạp. Công thức: làm gì + dùng khi nào (kèm cụm từ user hay gõ). ⚠️ Chỉ dùng chuỗi 1 dòng — YAML multiline (>-, ` | `) làm indexer đọc sai |
disable-model-invocation: true | CHỈ user gọi được bằng /ten — Claude không bao giờ tự chạy (mô tả cũng bị gỡ khỏi context) | Mọi thứ có side effect: /commit, /deploy, /gui-bao-cao. Không để Claude "tự thấy code ổn nên deploy" |
user-invocable: false | CHỈ Claude tự nạp — không hiện trong menu / | Tri thức nền: quy ước API, ngữ cảnh hệ thống legacy — "biết khi cần" chứ không phải "hành động" |
allowed-tools | Giới hạn tool trong skill (vd Read Grep Glob = read-only; Bash(git *) = chỉ lệnh git) | Skill review an toàn tuyệt đối; skill commit không được sửa file |
context: fork | Chạy trong subagent cô lập — output dài không làm bẩn hội thoại chính | Skill khám phá codebase, phân tích dài dòng |
agent | Loại subagent khi fork: Explore / Plan / general-purpose | Đi kèm context: fork |
argument-hint | Gợi ý autocomplete tham số | Skill có tham số |
paths | Chỉ kích hoạt khi đang làm việc trên file khớp pattern | Skill quy ước riêng cho src/api/** |
Ma trận quyết định nhanh — đặt kiến thức/quy trình vào đâu:
| Bạn có... | Đặt vào | Vì |
|---|---|---|
| Chuẩn mực áp MỌI phiên (lệnh test, convention chung) | CLAUDE.md | "Hiến pháp" — luôn nạp |
| Quy trình chạy KHI CẦN (deploy, tạo report, review) | Skill | "Đạo luật" — nạp theo tình huống, tiết kiệm context |
| Việc nặng cần chạy song song/cô lập | Subagent (hoặc skill context: fork) | Giữ context chính sạch |
| Việc PHẢI xảy ra 100% máy móc (format sau edit, chặn lệnh nguy hiểm) | Hook | Skill/CLAUDE.md là "nhờ", hook là "ép" |
| Cần DỮ LIỆU/HỆ THỐNG ngoài (Jira, DB) | MCP | Skill là tri thức, MCP là cánh tay |
Quy tắc kiểm tra sức khoẻ: nhiều skill hơn MCP server = đang làm đúng; ngược lại = đang trả "thuế context" oan.
B5. Progressive disclosure — vì sao cài 30 skill mà không "béo" context
- Khởi động: Claude chỉ nạp name + description mỗi skill (~100 token/skill; tổng ngân sách metadata ~2% context window).
- Kích hoạt: prompt khớp description (hoặc bạn gõ
/ten) → nạp toàn bộ body. - Thực thi: file phụ trợ/script chỉ được đọc khi thật sự cần.
Hệ quả thực dụng: body ngắn (<500 dòng, lý tưởng <5K token — mỗi dòng là chi phí lặp lại mọi lượt sau khi nạp); tài liệu dày → tách ra file phụ trợ; chỉ viết điều Claude KHÔNG tự biết (đừng dạy lại git là gì).
B6. Viết skill "được dùng" thay vì skill "phủ bụi" — quy trình 5 bước
- Chọn đúng ứng viên: việc bạn đã lặp ≥3 lần với cùng một prompt dài → đó là skill. (Mẹo: nhờ chính Claude: "Nhìn lại phiên này, quy trình nào đáng đóng gói thành skill? Viết SKILL.md.")
- Viết description như người dùng nói: kèm cụm từ họ thật sự gõ ("commit", "có gì thay đổi", "review diff") — description là cơ chế trigger.
- Chọn chế độ invocation theo B4 (side effect → disable-model-invocation; tri thức nền → user-invocable: false).
- Test vòng ngắn: sửa SKILL.md có hiệu lực NGAY trong phiên (hot reload; chỉ tạo thư mục skills mới toanh mới cần restart). Không kích hoạt →
/skillsxem có được nhận không,/doctorxem description có bị tràn ngân sách, thêm từ khoá; kích hoạt lung tung → thu hẹp description, thêmpaths, hoặc chuyển sang gọi tay. - Chia sẻ: commit
.claude/skills/vào repo (theo dự án) · nhân bản skill tốt lên các repo khách hàng · đóng plugin khi muốn phân phối trọn gói skill + subagent + hooks + MCP config (/plugin, marketplace nội bộ qua Git repo).
An toàn: skill = phần mềm. Chỉ cài từ nguồn tin cậy/tech lead duyệt; đọc script đi kèm trước khi cài; skill bên thứ ba có thể chứa chỉ dẫn độc hại (prompt injection).
B7. Skills ngoài Claude Code — đòn bẩy cho non-dev
Cùng chuẩn Agent Skills chạy trên claude.ai/Cowork: admin/champion upload skill cho tổ chức (Settings → Capabilities/Skills tuỳ gói) — vd skill "chuẩn proposal công ty", "format báo cáo QA", "quy trình đối soát" — mọi người dùng thống nhất mà không cần biết kỹ thuật. Anthropic có sẵn bộ skill tài liệu (pptx/xlsx/docx/pdf) và repo mẫu github.com/anthropics/skills + skill skill-creator hỗ trợ tự tạo skill bằng hội thoại.
B8. Lộ trình xây "thư viện skill công ty" (khuyến nghị)
- Sprint 1 (dev): cài 5 skill mẫu trong
templates/claude-code-skills/vào 1 repo pilot → dùng 2 tuần → tinh chỉnh description theo cách team thật sự gõ. - Sprint 2 (mỗi phòng): champion đóng gói 1 quy trình phòng mình thành skill claude.ai (dùng skill-creator).
- Sprint 3: gom skill đã "sống sót" vào 1 Git repo
claude-skillsnội bộ làm plugin marketplace; đưa việc review skill mới vào quy trình như review code. - KPI thô: skill nào 30 ngày không ai gọi → sửa description hoặc khai tử.