❤️ AZDIGI chính thức cập nhật hệ thống blog mới hoàn chỉnh. Tuy nhiên có thể một số bài viết bị sai lệch hình ảnh, hãy ấn nút Báo cáo bài viết ở cuối bài để AZDIGI cập nhật trong thời gian nhanh nhất. Chân thành cám ơn.

Khi làm việc với Claude Code, bạn sẽ nhanh chóng nhận ra rằng có những tác vụ mình thực hiện đi thực hiện lại nhiều lần. Có thể đó là yêu cầu Claude review code theo một checklist cố định, hoặc tạo commit message theo format của team, hoặc chạy một quy trình debug quen thuộc. Thay vì phải gõ lại những prompt dài dòng mỗi lần, Claude Code cung cấp một tính năng gọi là Slash Commands cho phép bạn đóng gói những prompt thường dùng thành các lệnh có thể gọi nhanh chỉ với một vài ký tự.

A clean, modern illustration showing a developer's terminal with Claude Code interface. The terminal displays a slash command menu with several options visible. Use a dark theme with purple and blue accent colors. Minimalist tech style, no text overlay needed.

Về bản chất, Slash Commands là những file Markdown chứa nội dung prompt mà bạn muốn gửi đến Claude. Khi bạn gõ / trong terminal và chọn một command, Claude Code sẽ đọc nội dung file Markdown tương ứng và sử dụng nó như một prompt. Điều này có nghĩa là bạn không cần học thêm bất kỳ ngôn ngữ lập trình hay cú pháp đặc biệt nào – nếu bạn biết viết Markdown, bạn đã biết cách tạo Slash Commands.

Hiểu về cơ chế hoạt động

Trước khi bắt tay vào tạo command đầu tiên, hãy dành một chút thời gian để hiểu cách Claude Code xử lý các Slash Commands. Khi bạn khởi động một phiên làm việc với Claude Code, nó sẽ quét qua các thư mục được quy định sẵn để tìm các file command. Cụ thể, Claude Code tìm kiếm ở hai vị trí chính.

Vị trí đầu tiên là thư mục .claude/commands/ nằm trong project của bạn. Những command được đặt ở đây được gọi là project commands và chúng chỉ khả dụng khi bạn đang làm việc trong project đó. Điều này rất hữu ích khi bạn có những quy trình đặc thù cho từng dự án — ví dụ như một project Python có thể có command để chạy pytest theo cách riêng, trong khi project JavaScript lại có command chuyên cho nó.

Vị trí thứ hai là thư mục ~/.claude/commands/ trong home directory trên máy của bạn. Những command ở đây được gọi là user commands và chúng khả dụng ở mọi project bạn làm việc. Đây là nơi lý tưởng để đặt những command mang tính cá nhân hoặc những workflow bạn sử dụng xuyên suốt nhiều dự án khác nhau.

A simple diagram showing two folder locations for Claude Code commands. On the left side, show a project folder icon with path '.claude/commands/' labeled 'Project Commands - Chỉ dùng trong project này'. On the right side, show a home folder icon with path '~/.claude/commands/' labeled 'User Commands - Dùng được ở mọi project'. Use clean icons, arrows, and minimal colors (blue and gray). White background, Vietnamese labels.

Khi có xung đột tên giữa project command và user command, project command sẽ được ưu tiên. Claude Code cũng hiển thị nguồn gốc của mỗi command trong menu — bạn sẽ thấy nhãn “(project)” hoặc “(user)” đi kèm với mô tả của command để phân biệt.

Tạo command đầu tiên

Hãy bắt đầu với một ví dụ đơn giản nhất. Giả sử bạn thường xuyên yêu cầu Claude review code và muốn Claude tập trung vào một số khía cạnh cụ thể. Thay vì mỗi lần phải gõ một prompt dài, bạn có thể tạo một command để làm điều này.

Đầu tiên, bạn cần tạo thư mục chứa commands nếu chưa có. Mở terminal và chạy lệnh mkdir -p .claude/commands trong thư mục gốc của project.

Sau đó, tạo một file mới có tên review.md trong thư mục vừa tạo. Nội dung của file này chính là prompt bạn muốn gửi đến Claude:

Hãy review đoạn code tôi vừa thay đổi và tập trung vào các khía cạnh sau:

Về mặt logic, kiểm tra xem code có xử lý đúng các edge cases không, có potential bugs nào không, và flow xử lý có hợp lý không.

Về mặt performance, xem xét độ phức tạp thuật toán, có những chỗ nào có thể tối ưu được không, và có memory leaks tiềm ẩn nào không.

Về mặt maintainability, đánh giá code có dễ đọc không, naming conventions có nhất quán không, và có nên tách nhỏ functions không.

Sau khi phân tích, hãy đưa ra danh sách các đề xuất cải thiện theo thứ tự ưu tiên từ quan trọng nhất đến ít quan trọng nhất.

Cấu trúc thư mục và tập tin sau khi tạo:

test_claude/
├── .claude
│   └── commands
│       └── review.md
└── src

Lưu file lại, và command của bạn đã sẵn sàng để sử dụng. Trong phiên làm việc với Claude Code, bạn chỉ cần gõ /review và Claude sẽ nhận được toàn bộ nội dung prompt bạn vừa viết. Điều đáng chú ý là bạn có thể gõ / ở bất kỳ vị trí nào trong input, không nhất thiết phải ở đầu dòng. Claude Code sẽ hiển thị menu autocomplete cho phép bạn chọn command mong muốn.

Làm việc với tham số động

Một command cố định như ví dụ trên đã hữu ích, nhưng sức mạnh thực sự của Slash Commands nằm ở khả năng nhận tham số động. Claude Code hỗ trợ một biến đặc biệt gọi là $ARGUMENTS cho phép bạn truyền thêm thông tin vào command khi sử dụng.

Hãy xem xét một tình huống thực tế: bạn đang làm việc với một issue tracker và thường xuyên cần fix các issues được gán cho mình. Thay vì mỗi lần phải giải thích cho Claude về quy trình xử lý issue, bạn có thể tạo một command có khả năng nhận issue number làm tham số.

Tạo file .claude/commands/fix-issue.md với nội dung sau:

Tôi cần bạn giúp xử lý issue số $ARGUMENTS. Hãy thực hiện theo quy trình sau:

Bước 1: Tìm hiểu issue Trước tiên, hãy tìm và đọc nội dung của issue trong codebase hoặc từ context tôi cung cấp. Nếu không tìm thấy thông tin về issue, hãy hỏi tôi để làm rõ.

Bước 2: Phân tích nguyên nhân Dựa trên mô tả issue, hãy xác định vị trí code liên quan và phân tích nguyên nhân gốc rễ của vấn đề. Giải thích cho tôi hiểu tại sao bug xảy ra.

Bước 3: Đề xuất giải pháp Trình bày giải pháp bạn dự định thực hiện. Nếu có nhiều cách tiếp cận, hãy liệt kê pros/cons của từng cách để tôi có thể đưa ra quyết định.

Bước 4: Implement fix Sau khi tôi đồng ý với giải pháp, hãy tiến hành sửa code. Đảm bảo fix không gây ra regression ở các phần khác.

Bước 5: Viết tests Thêm test cases để cover bug vừa fix, đảm bảo bug không tái xuất hiện trong tương lai.

Bước 6: Tạo commit message Chuẩn bị commit message theo format: "fix(scope): brief description - closes #$ARGUMENTS"

Khi sử dụng command này, bạn gõ /fix-issue 43 và Claude Code sẽ thay thế tất cả các $ARGUMENTS trong template bằng giá trị “43”. Claude sẽ nhận được một prompt hoàn chỉnh với issue number được điền sẵn vào đúng vị trí.

Ví dụ việc sử dụng tham số trong command slash của Claude Code
Ví dụ việc chèn tham số vào command slash

Biến $ARGUMENTS nhận toàn bộ phần text bạn gõ sau tên command. Điều này có nghĩa là bạn có thể truyền nhiều thông tin phức tạp, không chỉ một con số. Ví dụ với command /translate, bạn có thể gõ /translate Vietnamese to English và lúc này $ARGUMENTS sẽ chứa toàn bộ chuỗi “Vietnamese to English”.

Tổ chức commands với thư mục con

Khi số lượng commands tăng lên, việc quản lý chúng trong một thư mục phẳng trở nên khó khăn. Claude Code cho phép bạn tổ chức commands vào các thư mục con, tạo ra một hệ thống phân cấp logic giúp dễ dàng tìm kiếm và bảo trì.

Giả sử team bạn làm việc với nhiều loại công việc khác nhau: frontend, backend, và devops. Bạn có thể tổ chức commands như sau:

.claude/commands/
├── frontend/
│   ├── component.md
│   ├── style-check.md
│   └── accessibility.md
├── backend/
│   ├── api-review.md
│   ├── db-migration.md
│   └── security-audit.md
└── devops/
    ├── deploy-checklist.md
    └── incident-response.md

Khi tổ chức theo cách này, các commands sẽ xuất hiện trong menu với namespace tương ứng. Command component.md trong thư mục frontend/ sẽ hiển thị là /component với mô tả có thêm nhãn “(project:frontend)”. Điều này giúp bạn nhanh chóng nhận ra command thuộc nhóm nào khi có nhiều commands cùng tên nhưng khác mục đích.

Ví dụ việc tổ chức các command trong thư mục
Ví dụ việc tổ chức các command trong thư mục

Một lưu ý quan trọng là tên command được xác định bởi tên file, không phải đường dẫn đầy đủ. Điều này có nghĩa là /component chứ không phải /frontend/component. Thư mục con chỉ đóng vai trò phân loại và hiển thị trong phần mô tả.

Commands dành cho cá nhân và commands dành cho team

A workflow diagram showing two parallel tracks. Left track labeled 'User Commands (~/.claude/commands/)' shows: Personal habits → Available everywhere → Not shared with team. Right track labeled 'Project Commands (.claude/commands/)' shows: Team standards → Committed to Git → Auto-shared when clone. Both tracks converge to a Claude Code terminal icon at the bottom. Use simple icons and arrows, blue color scheme, clean white background, Vietnamese text labels

Việc phân biệt giữa user commands và project commands mở ra khả năng thiết lập workflow linh hoạt cho cả cá nhân và team.

User commands (đặt trong ~/.claude/commands/) là nơi bạn lưu trữ những thói quen làm việc cá nhân. Có thể bạn có cách viết commit message riêng, một checklist review code cá nhân, hoặc những snippet prompt mà bạn thấy hữu ích nhưng không phù hợp để chia sẻ cho cả team. Những commands này sẽ theo bạn đến mọi project và không ảnh hưởng đến người khác.

Project commands (đặt trong .claude/commands/ của project) nên được commit vào version control. Khi một thành viên mới join team và clone repository, họ sẽ tự động có access đến toàn bộ commands mà team đã xây dựng. Điều này tạo ra sự nhất quán trong cách làm việc và giảm thời gian onboarding đáng kể.

Một pattern phổ biến là sử dụng project commands cho những workflow chuẩn của team và user commands cho những customization cá nhân. Ví dụ, team có thể có command /pr-review với checklist chung, nhưng mỗi người có thể có user command /my-review với những điểm họ muốn kiểm tra thêm dựa trên kinh nghiệm cá nhân.

Viết nội dung command hiệu quả

Chất lượng của command phụ thuộc hoàn toàn vào cách bạn viết prompt bên trong. Dưới đây là một số nguyên tắc giúp bạn tạo ra những commands thực sự hữu ích.

Hãy cụ thể và có cấu trúc: Thay vì viết “review code này”, hãy liệt kê rõ những khía cạnh bạn muốn Claude xem xét. Một prompt có cấu trúc giúp Claude hiểu rõ kỳ vọng của bạn và đưa ra output có tổ chức tương ứng.

Cung cấp context khi cần thiết: Nếu command liên quan đến conventions đặc thù của project, hãy mô tả những conventions đó trong prompt. Claude không tự động biết team bạn sử dụng naming convention nào hay prefer pattern gì, trừ khi bạn nói rõ.

Sử dụng ngôn ngữ chỉ dẫn rõ ràng: Những từ như “đầu tiên”, “sau đó”, “cuối cùng” giúp Claude hiểu thứ tự thực hiện công việc. Nếu bạn muốn Claude hỏi trước khi hành động, hãy nói rõ điều đó trong prompt.

Cân nhắc về độ dài: Một command quá ngắn có thể không cung cấp đủ hướng dẫn, nhưng một command quá dài lại chiếm nhiều context và có thể khiến Claude bị overwhelmed. Hãy tìm điểm cân bằng phù hợp với độ phức tạp của tác vụ.

Tips: Bạn có thể sử dụng chính Claude Code để kêu nó tạo commands như ý muốn, hoặc tham khảo từ ChatGPT để có một nội dung command thật chuẩn.

Một số ví dụ thực tế

Để giúp bạn hình dung rõ hơn về cách áp dụng Slash Commands trong công việc hàng ngày, hãy xem qua một số ví dụ từ các tình huống thực tế.

Command cho việc viết documentation:

Tôi cần viết documentation cho đoạn code tôi vừa thay đổi hoặc tạo mới. Hãy giúp tôi tạo documentation theo cấu trúc sau:

Phần Overview: Mô tả ngắn gọn mục đích và chức năng chính của code trong 2-3 câu.

Phần Usage: Cung cấp ví dụ cụ thể về cách sử dụng, bao gồm cả code examples có thể copy-paste được.

Phần Parameters/Props: Nếu có, liệt kê và giải thích từng parameter hoặc prop, bao gồm type, default value, và mô tả.

Phần Return Value: Giải thích giá trị trả về, các trường hợp edge cases, và potential errors.

Phần Notes: Những lưu ý quan trọng, limitations, hoặc best practices khi sử dụng.

Hãy viết documentation bằng tiếng Anh, sử dụng ngôn ngữ kỹ thuật chính xác nhưng vẫn dễ hiểu cho developer mới.

Command cho việc refactor code:

Tôi muốn refactor phần code được chọn hoặc file hiện tại với mục tiêu: $ARGUMENTS

Trước khi thực hiện bất kỳ thay đổi nào, hãy phân tích code hiện tại và trình bày kế hoạch refactor cho tôi review. Kế hoạch nên bao gồm những thay đổi dự kiến, lý do cho mỗi thay đổi, và potential risks nếu có.

Trong quá trình refactor, hãy đảm bảo: - Không thay đổi behavior của code (trừ khi đó là mục tiêu refactor) - Giữ nguyên public API nếu code được sử dụng ở nơi khác - Cập nhật tests nếu cần thiết - Thêm comments giải thích cho những logic phức tạp

Sau khi hoàn thành, hãy tóm tắt những gì đã thay đổi và confirm rằng code vẫn hoạt động như expected.

Command cho việc debug:

Tôi đang gặp một bug và cần sự giúp đỡ để debug. Đây là mô tả vấn đề: $ARGUMENTS

Hãy tiếp cận theo phương pháp systematic debugging:

Đầu tiên, giúp tôi reproduce bug bằng cách xác định các bước cụ thể dẫn đến lỗi. Nếu tôi chưa cung cấp đủ thông tin, hãy hỏi tôi.

Tiếp theo, phân tích code liên quan để xác định các nguyên nhân tiềm năng. Hãy suy nghĩ về các edge cases, race conditions, hoặc những assumptions có thể sai.

Sau đó, đề xuất cách verify từng hypothesis. Điều này có thể bao gồm thêm logging, viết test cases, hoặc sử dụng debugger.

Khi đã xác định được root cause, hãy đề xuất fix và giải thích tại sao fix này giải quyết được vấn đề mà không gây ra side effects khác.

Hãy tiếp cận như một detective — methodical và không bỏ qua bất kỳ chi tiết nào.

Command cho việc viết content chuẩn SEO (có chứa tham số để truyền từ khoá):

Tôi cần bạn viết một bài blog chuẩn SEO về chủ đề: $ARGUMENTS

Hãy thực hiện theo quy trình sau:

BƯỚC 1 - NGHIÊN CỨU KEYWORD Trước khi viết, hãy xác định: - Keyword chính (primary keyword) từ chủ đề tôi cung cấp - 3-5 keywords phụ (secondary keywords) liên quan - 2-3 LSI keywords (từ khóa ngữ nghĩa liên quan)

BƯỚC 2 - LÊN DÀN Ý Tạo outline với cấu trúc: - Tiêu đề H1 chứa keyword chính, hấp dẫn, dưới 60 ký tự - Meta description 150-160 ký tự, có keyword, có CTA - Các heading H2/H3 phân bố keyword tự nhiên - Dự kiến độ dài phù hợp với search intent

BƯỚC 3 - VIẾT NỘI DUNG Yêu cầu khi viết: - Mở bài hook người đọc trong 2-3 câu đầu, đặt keyword trong 100 từ đầu tiên - Mỗi đoạn văn 3-4 câu, dễ scan trên mobile - Keyword density khoảng 1-2%, phân bố tự nhiên không nhồi nhét - Sử dụng transition words để tăng readability - Thêm internal link placeholders dạng [INTERNAL: anchor text về chủ đề X] - Thêm external link placeholders cho sources uy tín dạng [EXTERNAL: mô tả nguồn] - Kết bài có CTA rõ ràng

BƯỚC 4 - TỐI ƯU BỔ SUNG Sau khi viết xong, bổ sung: - Gợi ý 3 tiêu đề thay thế để A/B test - Gợi ý alt text cho 2-3 hình ảnh nên có trong bài - Schema markup suggestion (FAQ, HowTo, hoặc Article) - 5 câu hỏi People Also Ask có thể thêm vào làm FAQ section

YÊU CẦU VỀ TONE VÀ STYLE - Viết bằng tiếng Việt tự nhiên, không dịch máy - Tone thân thiện, dễ hiểu nhưng vẫn chuyên nghiệp - Tránh câu bị động, ưu tiên câu chủ động - Flesch reading ease tương đương lớp 8-9

OUTPUT FORMAT Trình bày theo thứ tự: 1. Meta title 2. Meta description 3. Bài viết đầy đủ với headings được đánh dấu rõ 4. Phần tối ưu bổ sung

Bắt đầu nhé!

Tương tác với các tính năng khác của Claude Code

Slash Commands không tồn tại độc lập mà có thể kết hợp với các tính năng khác của Claude Code để tạo ra workflow mạnh mẽ hơn.

Bạn có thể sử dụng file mentions (@) cùng với commands. Ví dụ, sau khi gọi /review, bạn có thể thêm @src/utils/auth.js để chỉ định cụ thể file nào cần review. Claude sẽ nhận được cả prompt từ command và nội dung file được mention.

Gắn liên kết đến file cụ thể cần AI xử lý
Gắn liên kết đến file cụ thể cần AI xử lý

Commands cũng hoạt động tốt với conversation context. Nếu bạn đã có một cuộc hội thoại với Claude về một vấn đề nào đó, việc gọi command sẽ tiếp tục trong context đó. Claude vẫn nhớ những gì đã thảo luận trước đó và có thể áp dụng command một cách phù hợp với context hiện tại.

Một điểm cần lưu ý là nội dung của command sẽ được thêm vào context window của conversation. Điều này có nghĩa là những command dài sẽ chiếm nhiều tokens hơn. Trong những conversation dài, bạn nên cân nhắc sử dụng commands ngắn gọn hoặc sử dụng /compact để nén context trước khi gọi command.

Những điều cần tránh

Qua quá trình sử dụng, có một số pitfalls phổ biến mà bạn nên tránh.

Đừng tạo quá nhiều commands cho những tác vụ bạn hiếm khi làm. Mỗi command cần thời gian để cải tiến và cập nhật. Nếu bạn chỉ làm một việc gì đó vài lần một năm, có lẽ gõ prompt trực tiếp sẽ hiệu quả hơn việc tạo và maintain một command.

Tránh đặt những thông tin thay đổi thường xuyên vào commands. Ví dụ, nếu coding conventions của team thay đổi mỗi tháng, việc hardcode chúng vào commands sẽ tạo ra gánh nặng cập nhật. Thay vào đó, hãy tham chiếu đến file conventions trong project và để Claude đọc file đó khi cần.

Không nên tạo commands quá generic đến mức không thực sự hữu ích. Một command chỉ nói “hãy giúp tôi” không khác gì việc không có command. Commands nên giải quyết một vấn đề cụ thể hoặc bắt buộc một quy trình cụ thể.

Tải command từ cộng đồng

Bạn có thể tải các mẫu command được cộng đồng chia sẻ (hoặc thậm chí là bán). Nếu bạn chưa có ý tưởng thì có thể thử tìm command có sẵn được chia sẻ miễn phí tại các nguồn như:

https://claudecodecommands.directory/browse

https://www.buildwithclaude.com/commands

Lời kết

Slash Commands là công cụ đơn giản nhưng powerful trong Claude Code. Chúng cho phép bạn biến những prompt phức tạp thành những lệnh một chạm, tạo sự nhất quán trong workflow, và chia sẻ best practices với team một cách dễ dàng.

Bước tiếp theo trong hành trình học Claude Code là tìm hiểu về Agent Skills — một cơ chế mạnh mẽ hơn cho phép bạn cung cấp cho Claude những kiến thức và quy trình phức tạp mà Claude có thể tự động áp dụng khi phù hợp, thay vì cần bạn phải gọi command một cách explicit. Skills mở rộng concept của commands lên một tầm cao mới, và là chủ đề của bài viết tiếp theo trong series này.

Chia sẻ:
Bài viết đã được kiểm duyệt bởi AZDIGI Team

Về tác giả

Thạch Phạm

Thạch Phạm

Đồng sáng lập và Giám đốc điều hành của AZDIGI. Có hơn 15 năm kinh nghiệm trong phổ biến kiến thức liên quan đến WordPress tại thachpham.com, phát triển website và phát triển hệ thống.

Hơn 10 năm phục vụ 80.000+ khách hàng

Bắt đầu dự án web của bạn với AZDIGI