Claude Code Skills: Tạo Slash Command Riêng Trong 5 Phút

Claude Code Skills Là Gì? Hướng Dẫn Tạo Slash Command Riêng (2026)

Claude Code Skills cho phép tạo slash command riêng từ file SKILL.md trong terminal

Riêng Claude Code đã mang về $2,5 tỷ USD doanh thu hàng năm cho Anthropic (Anthropic Series G, tháng 2/2026). Hàng triệu developer đang dùng nó mỗi ngày. Nhưng đã bao nhiêu người thực sự khai thác được hết sức mạnh của nó?

Nếu bạn đang dùng Claude Code là gì, có lẽ bạn đã gặp vấn đề này: lặp đi lặp lại cùng một prompt, output thiếu nhất quán, token bị lãng phí vì phải giải thích context mỗi lần. Nghe quen không?

Giải pháp là Claude Code Skills — hệ thống cho phép bạn tạo slash commands riêng bằng file SKILL.md. Viết instructions một lần, gọi bằng /ten-skill mọi lúc. Giống như viết SOP cho AI của bạn vậy.

Claude Code Skills are reusable instruction files (SKILL.md) with YAML frontmatter that define custom slash commands for Claude Code. They replace the legacy Commands system since January 2026 and can be invoked via /skill-name or triggered automatically based on context.

TL;DR

Claude Code Skills là hệ thống tạo slash command riêng (SKILL.md) cho project. Viết instructions một lần, gọi bằng /ten-skill mọi lúc. Skills thay thế Commands cũ từ tháng 1/2026, tiết kiệm tokens và đảm bảo consistency. 5 bundled skills có sẵn: /compact, /init, /review, /debug, /memory. Theo khảo sát 33.662 developer, 84% đang dùng AI tools trong workflow hàng ngày (Stack Overflow Survey 2025).

Claude Code Skills cho phép tạo slash command riêng từ file
Slide 1/7: Claude Code Skills cho phép tạo slash command riêng từ file
Sơ đồ cách Claude Code đọc file SKILL.md và thực thi instruc
Slide 2/7: Sơ đồ cách Claude Code đọc file SKILL.md và thực thi instruc
Flowchart hướng dẫn chọn giữa Skills Hooks và Plugins trong
Slide 3/7: Flowchart hướng dẫn chọn giữa Skills Hooks và Plugins trong
Sơ đồ cách Claude Code đọc file SKILL.md và thực thi instruc
Slide 4/7: Sơ đồ cách Claude Code đọc file SKILL.md và thực thi instruc
Hướng dẫn từng bước tạo file SKILL.md đầu tiên trong Claude
Slide 5/7: Hướng dẫn từng bước tạo file SKILL.md đầu tiên trong Claude
5 pattern nâng cao của Claude Code Skills gồm dynamic contex
Slide 6/7: 5 pattern nâng cao của Claude Code Skills gồm dynamic contex
Quy trình 16 bước xuất bản blog của ongboit.com với 8 bước đ
Slide 7/7: Quy trình 16 bước xuất bản blog của ongboit.com với 8 bước đ
Cơ chế 2-layer loading: Skills dùng kiến trúc “advertise cheaply, load on demand.” Layer 1 (rẻ): Claude scan description field của các SKILL.md có sẵn khi bắt đầu session, chỉ vài tokens. Layer 2 (đắt): Khi user gọi skill hoặc Claude tự quyết định cần, full content mới được load. Giống như đọc mục lục sách trước, chỉ mở chapter khi cần. Đây là lý do description field quan trọng nhất trong SKILL.md, description kém = Claude không biết khi nào cần load = skill bị bỏ qua.

Claude Code Skills Là Gì?

Claude Code Skills là các file SKILL.md chứa reusable instructions kèm YAML frontmatter, cho phép bạn tạo slash command riêng cho project. Theo tài liệu chính thức, skills được thiết kế để thay thế hệ thống Commands cũ từ tháng 1/2026. Với 84% developer dùng AI tools hàng ngày (Stack Overflow Survey 2025, n=33.662), đây là tính năng giúp bạn làm việc hiệu quả hơn.

Nghĩ đơn giản thế này: SKILL.md giống như bản mô tả công việc cho một tác vụ cụ thể. Thay vì nói đi nói lại “viết blog theo format này, check SEO thế kia, dùng giọng tiếng Việt casual” — bạn viết một lần vào file SKILL.md, rồi gọi bằng /blog-write bất cứ lúc nào.

Lịch sử phát triển

Hệ thống này không xuất hiện qua đêm. Quá trình tiến hóa khá rõ ràng:

  • Giữa 2025: Commands ra đời — các file .md trong thư mục .claude/commands/. Đơn giản nhưng hạn chế.
  • Tháng 1/2026: Skills thay thế Commands. Thêm YAML frontmatter, hỗ trợ auto-trigger, tool restrictions.
  • Tháng 3/2026: Plugins ra mắt — cho phép đóng gói và chia sẻ skills qua npm/registry.

Sự chuyển đổi từ Commands sang Skills không chỉ là đổi tên. Skills mạnh hơn nhiều: có thể tự động trigger dựa trên context, giới hạn tools được phép sử dụng, và hỗ trợ arguments. Nếu bạn đang còn dùng .claude/commands/, nên chuyển sang .claude/skills/ sớm.

Cách hoạt động

Khi bạn gọi một skill (ví dụ /blog-write), Claude Code đọc file SKILL.md tương ứng, load instructions vào context, rồi thực thi theo đúng những gì bạn đã viết. Quá trình này tự động — bạn không cần làm gì thêm ngoài việc gọi lệnh.

Điều quan trọng: skills được load vào system prompt, không phải user prompt. Nghĩa là Claude Code coi chúng như instructions bắt buộc, không phải gợi ý. Đó là lý do tại sao output nhất quán hơn nhiều so với việc paste prompt thủ công.

Sơ đồ cách Claude Code đọc file SKILL.md và thực thi instructions khi user gọi slash command

Skills vs Commands vs Hooks vs Plugins — Khác Nhau Gì?

Đây là câu hỏi gây nhiều nhầm lẫn nhất trong cộng đồng Claude Code. Theo tài liệu chính thức, Skills là phương pháp chính thức để tạo custom instructions từ tháng 1/2026. 46% developer chọn Claude Code là tool yêu thích nhất (Pragmatic Engineer Survey 2026, n=906), nhưng nhiều người vẫn chưa phân biệt được 4 khái niệm này. Nếu bạn cần bài so sánh Skills vs Hooks vs MCP chi tiết hơn, mình đã có bài riêng.

Tính năng Skills Commands (legacy) Hooks Plugins
File format SKILL.md (YAML frontmatter) .md trong .claude/commands/ settings.json Package (npm/registry)
Cách gọi /skill-name hoặc auto-trigger /command-name Tự động (pre/post action) Thông qua skills
Phạm vi Project / Personal Project / Personal Global / Project Distribution (chia sẻ)
YAML frontmatter Có (description, allowed-tools…) Không Không (JSON config) Có (package.json)
Auto-trigger Có (dựa trên description) Không Có (event-based) Thông qua skills
Use case chính Reusable workflows Simple prompts (deprecated) Pre/post automation Chia sẻ skills với community

Khi nào dùng gì?

Dùng Skills khi: Bạn cần tạo workflow có thể lặp lại — viết blog, review code, generate tests, deploy. Đây là lựa chọn mặc định cho 90% trường hợp.

Dùng Hooks khi: Bạn cần automation chạy tự động trước hoặc sau một hành động cụ thể. Ví dụ: tự động chạy linter trước khi commit, hoặc tự động chạy tests sau khi Claude Code sửa code.

Dùng Plugins khi: Bạn muốn đóng gói và chia sẻ skills với team khác hoặc community. Plugins là “packaging layer” bên ngoài skills.

Dùng Commands khi: Không nên dùng nữa. Commands đã deprecated từ tháng 1/2026. Nếu vẫn còn file trong .claude/commands/, nên migrate sang .claude/skills/.

Flowchart hướng dẫn chọn giữa Skills Hooks và Plugins trong Claude Code dựa trên use case

Anatomy Của File SKILL.md — Cấu Trúc Ra Sao?

Một file SKILL.md gồm hai phần chính: YAML frontmatter (metadata) và markdown body (instructions). Theo Anthropic Skill Authoring Best Practices, file nên giữ dưới 500 dòng để đảm bảo hiệu quả xử lý. Cấu trúc này rất giống với các file markdown có frontmatter mà bạn thường thấy trong Hugo, Jekyll, hay Next.js.

YAML Frontmatter

Frontmatter là phần metadata nằm giữa hai dấu --- ở đầu file. Đây là nơi bạn khai báo các thuộc tính quan trọng của skill:

.claude/skills/blog-write/SKILL.md (frontmatter)
---
description: "Write a Vietnamese blog post optimized for SEO and AI citation"
user-invocable: true
allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
context:
  - type: file
    path: "directives/blog-writing-sop.md"
  - type: glob
    pattern: "execution/scripts/*.py"
---

Giải thích từng trường:

  • description — Mô tả skill làm gì. Claude Code dùng đoạn này để quyết định có nên auto-trigger skill không. Viết rõ ràng, cụ thể.
  • user-invocable — Nếu true, bạn gọi được bằng /ten-skill. Nếu false, skill chỉ được trigger tự động.
  • allowed-tools — Danh sách tools mà skill được phép sử dụng. Giới hạn này tăng bảo mật — ví dụ skill chỉ đọc file thì không cần quyền Bash.
  • context — Các file hoặc pattern được tự động load kèm theo skill. Rất hữu ích để cung cấp thêm thông tin mà không cần viết trực tiếp vào body.

Markdown body

Phía dưới frontmatter là nội dung chính — viết bằng markdown thông thường. Đây là nơi bạn đặt instructions, context, examples, và rules cho Claude Code thực thi.

.claude/skills/blog-write/SKILL.md (body)
## Your Role

You are a blog content writing specialist for ongboit.com.
Write articles optimized for both Google rankings and AI citation.

## Writing Rules

- Vietnamese casual tone (minh/ban)
- Answer-first formatting for every H2
- Target: 40-80 words per paragraph, never exceed 150
- Every statistic must have a named source

## Process

1. Read the brief/topic requirements
2. Structure the outline (H2s as questions)
3. Write introduction with hook statistic
4. Write each H2 section with answer-first paragraph
5. Add FAQ section (3-5 items)
6. Write meta description (150-160 chars)

## Output

Save complete HTML to: .tmp/{slug}-blog.html

Bạn thấy đó — body đọc giống như một bản hướng dẫn công việc bình thường. Không cần cú pháp đặc biệt nào. Viết càng rõ ràng và cụ thể càng tốt.

Supporting files pattern

Một skill có thể gồm nhiều file, không chỉ SKILL.md. Cấu trúc thư mục khuyến nghị:

Cấu trúc thư mục skill
.claude/skills/
  blog-write/
    SKILL.md              # File chính (bắt buộc)
    templates/
      blog-template.html  # Template HTML
    examples/
      good-post.md        # Ví dụ output tốt
      bad-post.md         # Ví dụ output xấu
  blog-analyze/
    SKILL.md
  blog-seo/
    SKILL.md

Các file trong thư mục con được tham chiếu qua trường context trong frontmatter. Claude Code sẽ đọc chúng cùng với SKILL.md khi skill được gọi.

Sơ đồ cấu trúc file SKILL.md gồm YAML frontmatter và markdown body với các trường chính

5 Bundled Skills Có Sẵn — Và Cách Dùng Từng Cái

Claude Code đi kèm 5 bundled skills mà bạn có thể dùng ngay mà không cần cấu hình gì. Theo tài liệu chính thức, đây là những skills được Anthropic xây dựng sẵn để xử lý các tác vụ phổ biến nhất. Hiểu và sử dụng thành thạo 5 skills này là bước đầu tiên trước khi tạo skill riêng.

/compact — Nén context conversation

Khi phiên làm việc dài, context window bị đầy dần. /compact nén toàn bộ lịch sử conversation thành bản tóm tắt ngắn gọn, giải phóng không gian cho nội dung mới. Bạn nên gọi khi Claude Code bắt đầu phản hồi chậm hoặc “quên” những gì bạn đã nói trước đó.

Mẹo: truyền kèm custom instructions khi compact. Ví dụ: /compact Giữ lại tất cả quyết định về database schema. Claude Code sẽ ưu tiên giữ những thông tin bạn yêu cầu.

/init — Khởi tạo CLAUDE.md

Chạy /init trong project mới, Claude Code sẽ tự động phân tích codebase (package.json, Dockerfile, cấu trúc thư mục) rồi tạo file CLAUDE.md cơ bản. Nhanh hơn viết tay rất nhiều. Tuy nhiên, bạn nên bổ sung thêm phần Gotchas và conventions riêng — đây là phần /init không tự biết được.

/review — Review code changes

Gọi /review để Claude Code xem xét các thay đổi code hiện tại (staged và unstaged). Nó sẽ tìm bugs, security issues, performance problems, và đề xuất cải thiện. Rất hữu ích trước khi tạo pull request — như có một senior developer review code cho bạn.

/debug — Debug lỗi và failing tests

Khi code bị lỗi hoặc test fail, /debug giúp Claude Code phân tích error message, trace root cause, và đề xuất fix. Bạn có thể truyền kèm error output: /debug Error: Cannot read property 'map' of undefined. Claude Code sẽ đọc code liên quan và tìm nguyên nhân.

/memory — Quản lý hệ thống memory

Lệnh /memory cho bạn xem và quản lý MEMORY.md — hệ thống auto memory của Claude Code. Bạn có thể xem những gì Claude đã ghi nhớ, xóa những mục không còn cần thiết, hoặc thêm ghi chú mới. Nếu project có nhiều tài liệu, kết hợp thêm Obsidian làm knowledge base sẽ giúp Claude truy xuất context chính xác hơn. Đọc thêm về hệ thống memory của Claude Code để hiểu rõ hơn.

Làm Sao Tạo Skill Đầu Tiên Trong 5 Phút?

Tạo một Claude Code skill đơn giản hơn bạn nghĩ — chỉ cần 5 bước và khoảng 5 phút. Theo Anthropic Best Practices, bắt đầu với một skill đơn giản rồi mở rộng dần là cách tiếp cận hiệu quả nhất. Xem thêm bài hướng dẫn tạo skill chi tiết từng bước. Mình sẽ hướng dẫn bằng ví dụ thực tế từ workflow của ongboit.com.

Bước 1: Tạo thư mục skills

Nếu chưa có, tạo thư mục .claude/skills/ trong root project:

Terminal
mkdir -p .claude/skills/generate-commit

Mỗi skill nên nằm trong thư mục riêng để dễ quản lý. Tên thư mục cũng là tên bạn gọi skill trong Claude Code.

Bước 2: Tạo file SKILL.md với frontmatter

.claude/skills/generate-commit/SKILL.md
---
description: "Generate a conventional commit message from staged changes"
user-invocable: true
allowed-tools: ["Bash", "Read"]
---

## Task

Generate a commit message following Conventional Commits format.

## Process

1. Run `git diff --staged` to see current changes
2. Analyze the changes and determine the type:
   - feat: new feature
   - fix: bug fix
   - docs: documentation
   - refactor: code refactoring
   - test: adding tests
   - chore: maintenance
3. Write a clear, concise commit message
4. Format: `type(scope): description`

## Rules

- Subject line max 72 characters
- Use imperative mood ("add" not "added")
- No period at the end
- Include scope when obvious from changes

Bước 3: Test skill

Mở Claude Code trong project và gọi:

Claude Code
/generate-commit

Claude Code sẽ đọc SKILL.md, chạy git diff --staged, phân tích changes, rồi tạo commit message theo đúng format bạn đã định nghĩa. Mỗi lần gọi đều cho kết quả nhất quán.

Bước 4: Iterate và cải thiện

Skill đầu tiên ít khi hoàn hảo ngay. Sau vài lần dùng, bạn sẽ thấy những chỗ cần điều chỉnh. Có thể commit message quá dài? Thêm rule giới hạn. Scope không chính xác? Thêm ví dụ cụ thể. Đây là quá trình lặp — tương tự như viết tests vậy.

Ví dụ thực tế: /blog-write skill của ongboit.com

Để bạn hình dung một skill phức tạp hơn, đây là skill mình dùng hàng ngày để viết blog cho ongboit.com. Skill này không phải tạo trong 5 phút — nó phát triển qua nhiều tuần sử dụng thực tế.

.claude/skills/blog-write/SKILL.md (rút gọn)
---
description: "Write a complete Vietnamese blog post for ongboit.com"
user-invocable: true
allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep"]
context:
  - type: file
    path: "directives/blog-writing-sop.md"
  - type: file
    path: "execution/scripts/analyze_blog.py"
---

## Your Role

Blog content writing specialist for ongboit.com.
Write articles optimized for Google rankings and AI citation.

## Writing Rules (Non-Negotiable)

### Answer-First Formatting
Every H2 section opens with a 40-60 word paragraph containing:
- At least one specific statistic with source
- A direct answer to the heading's implied question

### Paragraph Discipline
- Target: 40-80 words per paragraph
- Hard limit: Never exceed 150 words

## Process
1. Read the brief
2. Structure outline
3. Write intro (100-150 words, hook with stat)
4. Write each H2 section (answer-first)
5. Write FAQ (3-5 items)
6. Write meta description (150-160 chars)
7. Run analyze_blog.py to check quality
8. Save to .tmp/{slug}-blog.html

Skill này đã giúp mình viết hơn 7 bài blog trên ongboit.com chỉ trong vài tuần. Mỗi bài đều theo đúng format, đúng tone, đúng quy trình. Trước khi có skill, mỗi bài mất 30-45 phút chỉ để setup context. Bây giờ? Gọi /blog-write và bắt đầu làm việc ngay. Bạn cũng có thể tạo skill cho lĩnh vực chuyên biệt, ví dụ design skill cho UI/UX hoặc marketing skills cho content marketing.

Hướng dẫn từng bước tạo file SKILL.md đầu tiên trong Claude Code từ tạo thư mục đến test

5 Patterns Nâng Cao Mà Ít Ai Biết

Sau khi thành thạo việc tạo skill cơ bản, đây là 5 pattern nâng cao giúp bạn khai thác tối đa Claude Code Skills. Theo Anthropic Skills Repository trên GitHub, nhiều pattern này được chính Anthropic sử dụng nội bộ. Chưa có bài viết tiếng Việt nào đề cập đến chúng.

Dynamic Context Injection

Bạn có thể inject dynamic data vào skill bằng cú pháp !`command` trong frontmatter. Khi skill được gọi, Claude Code chạy command và đưa output vào context.

Dynamic context injection
---
description: "Deploy to production with pre-flight checks"
user-invocable: true
context:
  - type: command
    command: "git log --oneline -5"
  - type: command
    command: "npm test -- --reporter=summary 2>&1 | tail -5"
---

Trong ví dụ trên, mỗi khi bạn gọi skill, Claude Code tự động chạy git lognpm test, rồi đưa kết quả vào context. Bạn không cần tự paste thông tin này — skill tự lấy.

Arguments và Parameters ($ARGUMENTS)

Skills có thể nhận arguments từ user. Sử dụng biến $ARGUMENTS trong body để tham chiếu đến nội dung người dùng truyền vào:

Sử dụng $ARGUMENTS
---
description: "Generate unit tests for a specific file"
user-invocable: true
---

## Task

Generate comprehensive unit tests for: $ARGUMENTS

## Rules
- Use Jest framework
- Minimum 80% coverage
- Test edge cases

Gọi bằng: /generate-tests src/utils/auth.ts. Biến $ARGUMENTS sẽ được thay bằng src/utils/auth.ts. Đơn giản nhưng cực kỳ hữu ích.

Subagent Execution (context: fork)

Đây là pattern mạnh nhất và cũng ít người biết nhất. Bạn có thể cấu hình skill để chạy trong một sub-agents riêng — tách biệt khỏi conversation chính:

Subagent execution
---
description: "Analyze blog post quality independently"
user-invocable: true
context: fork
allowed-tools: ["Read", "Bash"]
---

Khi context: fork, skill chạy trong một agent riêng, không làm “ô nhiễm” context của conversation hiện tại. Rất hữu ích cho các tác vụ phân tích dài, ví dụ: chạy audit toàn bộ codebase mà không ảnh hưởng đến cuộc trò chuyện đang có. Bạn cũng có thể kết hợp với lệnh /loop để chạy skill lặp lại tự động. Xem thêm bài Skills kết hợp Sub-Agents để biết cách biến skill thành pipeline tự động hóa hoàn chỉnh.

Tool Restrictions (allowed-tools)

Trường allowed-tools không chỉ là best practice — nó là cơ chế bảo mật quan trọng. Bạn có thể giới hạn chính xác những tools mà skill được phép sử dụng:

Tool restrictions
# Skill chỉ đọc, không sửa, không chạy lệnh
allowed-tools: ["Read", "Glob", "Grep"]

# Skill có quyền chạy lệnh shell
allowed-tools: ["Read", "Write", "Bash"]

# Skill có quyền gọi MCP server
allowed-tools: ["Read", "Write", "mcp__wp-mcp-ultimate__*"]

Tại sao quan trọng? Ví dụ skill /analyze-code chỉ cần đọc code — không cần quyền ghi hay chạy bash. Nếu giới hạn đúng, dù skill có “nhầm lẫn” cũng không thể gây hại. Đây là nguyên tắc least privilege áp dụng cho AI.

Progressive Loading (glob patterns)

Với project lớn, bạn không muốn load tất cả files cùng lúc. Sử dụng glob patterns trong context để chỉ load những file liên quan:

Progressive loading với glob
---
description: "Review React components for accessibility"
context:
  - type: glob
    pattern: "src/components/**/*.tsx"
  - type: glob
    pattern: "src/components/**/*.test.tsx"
---

Claude Code chỉ load các file matching pattern. Thay vì đọc toàn bộ codebase, nó chỉ đọc những component và test files liên quan. Tiết kiệm tokens và tăng tốc độ xử lý đáng kể.

5 pattern nâng cao của Claude Code Skills gồm dynamic context subagent tool restrictions và progressive loading

Case Study: Hệ Thống Skills Của Ông Bố IT

Lý thuyết là một chuyện — thực tế lại khác. Mình đã xây dựng và sử dụng hệ thống skills cho ongboit.com suốt nhiều tháng qua, với hơn 7 bài blog được xuất bản hoàn toàn qua workflow này. Nếu bạn muốn xem top skills tốt nhất từ cộng đồng, mình đã tổng hợp trong bài riêng. Anthropic báo cáo Claude Code đạt $2,5 tỷ USD doanh thu (Anthropic Series G, tháng 2/2026) — và skills chính là tính năng giúp mình hiểu tại sao nó đáng giá đến vậy.

Các skills đang sử dụng

Workflow xuất bản blog của ongboit.com gồm 16 bước, và mình đã tự động hóa khoảng 80% bằng skills. Trong đó có cả skills cho SEO và content mà mình rất recommend. Đây là danh sách các skills chính:

Skill Chức năng Gọi bằng
blog-write Viết bài blog đầy đủ từ outline /blog-write
blog-analyze Phân tích chất lượng bài viết (readability, SEO) /blog-analyze
blog-seo Kiểm tra SEO và Rank Math requirements /blog-seo
blog-geo Tạo GeoJSON cho bản đồ interactive /blog-geo
blog-schema Generate schema markup (FAQ, HowTo, Article) /blog-schema
blog-chart Tạo biểu đồ HTML/SVG cho bài viết /blog-chart
blog-image Tìm và xác minh hình ảnh cho bài viết /blog-image

Trước và sau khi có skills

Trước khi có hệ thống skills, quy trình viết blog của mình khá “thủ công”. Mỗi bài bắt đầu bằng việc paste 500-800 từ instructions vào prompt. Rồi giải thích format, tone, conventions. Rồi nhờ Claude Code đọc các bài cũ để tham khảo. Mất 30-45 phút chỉ để “setup” trước khi bắt đầu viết.

Sau khi chuyển sang skills? Gọi /blog-write, paste outline, và bắt đầu. Setup time giảm từ 30-45 phút xuống còn dưới 2 phút. Output nhất quán hơn vì Claude Code luôn đọc cùng một bộ instructions. Và không còn mất tokens cho việc giải thích context lặp đi lặp lại.

Con số ước tính: mỗi bài blog tiết kiệm khoảng 2.000-3.000 tokens chỉ riêng phần setup context. Với 7+ bài đã xuất bản, đó là 14.000-21.000 tokens tiết kiệm được. Chưa kể thời gian con người — khoảng 3-5 giờ tổng cộng.

Workflow 16 bước

Đây là toàn bộ workflow xuất bản blog của ongboit.com, đánh dấu phần nào tự động hóa bằng skills:

  1. Research keyword và competition (thủ công)
  2. Tạo outline chi tiết (thủ công + AI assist)
  3. Viết bài blog/blog-write
  4. Phân tích chất lượng/blog-analyze
  5. Review và chỉnh sửa (thủ công)
  6. Kiểm tra SEO/blog-seo
  7. Tạo schema markup/blog-schema
  8. Tạo biểu đồ/blog-chart
  9. Tìm hình ảnh/blog-image
  10. Upload hình ảnh lên WordPress (thủ công)
  11. Publish lên WordPress qua MCP
  12. Cấu hình Rank Math SEO (thủ công)
  13. Preview và QA (thủ công)
  14. Submit lên Google Search Console (thủ công)
  15. Chia sẻ lên social media (thủ công)
  16. Monitor analytics (thủ công)

8 trong 16 bước được tự động hóa — đó là 50%. Nhưng các bước tự động là những bước tốn nhiều thời gian nhất (viết bài, analyze, SEO check). Nên thực tế, khoảng 80% thời gian làm việc được giảm tải.

Quy trình 16 bước xuất bản blog của ongboit.com với 8 bước được tự động hóa bằng Claude Code Skills

Chia Sẻ Skills Với Team — Làm Thế Nào?

Skills không chỉ dành cho cá nhân — bạn có thể chia sẻ với cả team hoặc community. Theo Anthropic Skills Repository, đã có hàng trăm skills được cộng đồng đóng góp và sử dụng. 46% developer chọn Claude Code là tool yêu thích nhất (Pragmatic Engineer Survey 2026, n=906), và khả năng chia sẻ skills là một lý do lớn.

Project scope — Chia sẻ qua Git

Cách đơn giản nhất: đặt skills trong .claude/skills/ và commit vào git. Mọi thành viên trong team clone repo là có sẵn toàn bộ skills. Không cần cài đặt gì thêm. Không cần config thêm. Giống như chia sẻ CLAUDE.md vậy.

Commit skills vào git
git add .claude/skills/
git commit -m "feat: add team skills for code review and testing"
git push

Personal scope — Skills cá nhân

Skills đặt trong ~/.claude/skills/ (home directory) là cá nhân, áp dụng cho mọi project bạn làm việc. Không commit vào git, không chia sẻ với ai. Phù hợp cho những workflow riêng — ví dụ cách bạn thích format commit message, hay cách bạn thích viết documentation.

Plugins — Chia sẻ rộng với community

Từ tháng 3/2026, Anthropic ra mắt hệ thống Plugins cho phép đóng gói skills thành package và chia sẻ qua registry. Đây là bước tiến lớn — bạn có thể cài đặt skills của người khác giống như cài đặt npm package. Hiện tại còn mới, nhưng rất đáng theo dõi.

Anthropic Skills Repo — Điểm khởi đầu

Nếu bạn chưa biết bắt đầu từ đâu, repo github.com/anthropics/skills là nơi tốt nhất. Ngoài ra, Skill Forge là marketplace giúp bạn tìm và cài đặt skills nhanh hơn. Có sẵn nhiều skills mẫu cho các use case phổ biến: code review, testing, documentation, deployment. Đặc biệt có skills cho developers với các workflow phổ biến như CI/CD, code review, và testing. Fork về, chỉnh sửa cho phù hợp với project của bạn, và bắt đầu sử dụng.

Troubleshooting — Lỗi Thường Gặp Khi Dùng Skills

Dù thiết kế đơn giản, skills vẫn có thể gây ra vấn đề. Theo kinh nghiệm sử dụng thực tế và phản hồi từ cộng đồng, đây là 4 lỗi phổ biến nhất và cách khắc phục. Anthropic cho biết hơn 22.000 developer đã star repo chính thức (GitHub — anthropics/claude-code, 2026), và nhiều issue được báo cáo liên quan đến skills.

Skill không trigger khi gọi

Đây là lỗi phổ biến nhất. Nguyên nhân thường gặp:

  • File không đúng vị trí: SKILL.md phải nằm trong .claude/skills/ten-skill/SKILL.md hoặc ~/.claude/skills/ten-skill/SKILL.md. Kiểm tra lại đường dẫn.
  • Frontmatter sai cú pháp: YAML frontmatter phải bắt đầu và kết thúc bằng ---. Thiếu dấu gạch, thừa khoảng trắng, hay sai indent đều gây lỗi.
  • user-invocable: false: Nếu đặt là false, bạn không thể gọi bằng /ten-skill. Đổi thành true nếu muốn gọi thủ công.

Skill trigger quá thường xuyên (auto-trigger sai)

Ngược lại với lỗi trên — skill tự động trigger khi bạn không muốn. Nguyên nhân: trường description quá rộng. Ví dụ, nếu description là “Help with code” thì gần như mọi yêu cầu đều trigger skill này.

Cách khắc phục: viết description cụ thể hơn. Thay vì “Help with code”, đổi thành “Generate unit tests for TypeScript files using Jest framework”. Càng cụ thể, càng chính xác.

Permission denied — Không đủ quyền

Khi skill có dòng allowed-tools, Claude Code chỉ được phép sử dụng những tools trong danh sách đó. Nếu skill cần chạy Bash nhưng không có trong allowed-tools, bạn sẽ thấy lỗi permission.

Cách khắc phục: thêm tool cần thiết vào allowed-tools. Hoặc bỏ hoàn toàn trường này để skill có quyền sử dụng mọi tools (nhưng kém bảo mật hơn).

Token budget exceeded — Quá nhiều context

Nếu skill có nhiều file context hoặc body quá dài, tổng tokens có thể vượt giới hạn. Triệu chứng: Claude Code chạy chậm, output bị cắt ngắn, hoặc báo lỗi trực tiếp.

Cách khắc phục: giảm kích thước body (giữ dưới 500 dòng). Sử dụng glob patterns thay vì load toàn bộ thư mục. Tách skill lớn thành nhiều skills nhỏ hơn — mỗi skill một trách nhiệm duy nhất.

Một trong những ứng dụng thú vị của skills là kết hợp với kỹ thuật AutoResearch Claude Code để biến một skill thành vòng lặp tự cải tiến qua đêm. Bạn định nghĩa metric cho skill, để agent chạy hàng chục thử nghiệm, rồi giữ cấu hình nào tốt nhất.

Skills càng mạnh hơn khi kết hợp với các integration bên ngoài. Ví dụ, bộ Google Workspace CLI Claude Code cung cấp 100+ pre-built skills cho Gmail, Docs, Calendar và Drive, biến một lệnh terminal thành chuỗi hành động cross-app hoàn chỉnh.

Nếu bạn dùng GitHub, skill claude-github giúp audit toàn bộ repo với score 0-100 — từ README quality đến legal compliance. 8 sub-skills chuyên biệt, cài trong 5 phút.

Firecrawl là một trong những skills hữu ích nhất để thêm vào Claude Code. Xem bài Claude Code Firecrawl để hiểu cách skill này hoạt động và 5 use cases thực tế: từ competitor research đến browser automation.

Câu Hỏi Thường Gặp (FAQ)

Claude Code Skills là gì?

Claude Code Skills là hệ thống cho phép tạo slash command riêng bằng file SKILL.md chứa YAML frontmatter và markdown instructions. Đặt trong .claude/skills/, mỗi skill được gọi bằng /ten-skill hoặc tự động trigger dựa trên context. Skills thay thế hệ thống Commands cũ từ tháng 1/2026 (Anthropic Docs).

Skills khác gì Commands cũ?

Skills có YAML frontmatter (description, allowed-tools, context), hỗ trợ auto-trigger, tool restrictions, và subagent execution. Commands cũ chỉ là file markdown đơn giản trong .claude/commands/, không có những tính năng này. Từ tháng 1/2026, Anthropic khuyến nghị chuyển sang Skills.

Làm sao tạo slash command riêng trong Claude Code?

Tạo thư mục .claude/skills/ten-skill/, viết file SKILL.md với YAML frontmatter (description, user-invocable: true) và markdown body chứa instructions. Sau đó gọi bằng /ten-skill trong Claude Code. Toàn bộ quá trình mất khoảng 5 phút cho skill đơn giản.

Claude Code Skills có miễn phí không?

Skills là tính năng có sẵn của Claude Code, không tính phí riêng. Tuy nhiên, bạn cần subscription Claude Code (tối thiểu gói Pro $20/tháng) để sử dụng. Chi tiết về giá Claude Code có trong bài riêng.

Có bao nhiêu bundled skills có sẵn?

Claude Code có 5 bundled skills có sẵn: /compact (nén context), /init (tạo CLAUDE.md), /review (review code), /debug (debug lỗi), /memory (quản lý memory). Tất cả đều sử dụng được ngay mà không cần cấu hình (Anthropic Docs).

Có thể chia sẻ skills với team không?

Có. Commit thư mục .claude/skills/ vào git để cả team dùng chung. Skills cá nhân đặt trong ~/.claude/skills/. Từ tháng 3/2026, Plugins cho phép đóng gói và chia sẻ skills rộng hơn qua registry. Repo github.com/anthropics/skills có nhiều mẫu để bắt đầu.

Skills có tiết kiệm token không?

Có. Skills được load vào system prompt một lần, thay vì bạn phải paste instructions lặp đi lặp lại mỗi phiên. Từ kinh nghiệm của ongboit.com, mỗi bài blog tiết kiệm 2.000-3.000 tokens phần setup context. Thêm vào đó, trường allowed-tools và glob patterns giúp hạn chế context không cần thiết.

SKILL.md và CLAUDE.md khác nhau thế nào?

CLAUDE.md là file instructions chung cho toàn bộ project, tự động load mỗi phiên. SKILL.md là instructions cho một tác vụ cụ thể, chỉ load khi được gọi (hoặc auto-trigger). Nghĩ đơn giản: CLAUDE.md là “nội quy công ty”, SKILL.md là “quy trình làm việc cụ thể cho từng vị trí”.

Kết Luận

Ba điều quan trọng nhất từ bài này: Xem danh sách đầy đủ trong bài top plugins 2026.

  1. Skills là cách chuẩn hóa workflow với Claude Code. Viết instructions một lần vào SKILL.md, gọi bằng /ten-skill mọi lúc. Nhất quán, tiết kiệm tokens, tiết kiệm thời gian.
  2. Skills có thể tự vẽ diagram. excalidraw-diagram skill tự generate architecture diagram từ mô tả text, với self-validating loop bằng Playwright, 2,018 GitHub stars.
  3. Bắt đầu từ 5 bundled skills (/compact, /init, /review, /debug, /memory), rồi tạo skill riêng cho workflow của bạn. Skill đơn giản nhất chỉ cần 5 phút để tạo.
  4. Skills là living documents — không cần hoàn hảo từ đầu. Dùng, điều chỉnh, dùng lại. Mỗi lần iterate là một lần tốt hơn.

Nếu bạn chưa quen với Claude Code, bắt đầu với bài Claude Code là gìCLAUDE.md Là Gì? để nắm vững cơ sở. Xem thêm roadmap học Claude Code để biết nên học gì tiếp theo. Rồi quay lại đây, tạo skill đầu tiên của bạn. Chỉ 5 phút thôi — nhưng hiệu quả sẽ cảm nhận được ngay từ phiên làm việc kế tiếp.

Sắp tới mình sẽ viết bài về Claude Code Hooks — hệ thống automation pre/post action. Và nếu bạn quan tâm đến việc kết hợp Claude Code với WordPress, đọc bài Claude Code + WordPress MCP nhé. So sánh chi tiết với các tool khác thì có ở bài So Sánh Claude Code vs Cursor vs Copilot.





Similar Posts