Skills vs Agents vs Commands: Khi nào dùng cái gì?
ISC Team
ISC Vibe Marketplace
Claude Code có một hệ sinh thái extension phong phú: Skills, Subagents, Commands, Hooks, MCP. Nếu bạn mới tiếp cận, rất dễ bị confused về khi nào nên dùng cái nào. Bài viết này sẽ phân tích chi tiết từng loại và đưa ra framework quyết định rõ ràng.
Toàn cảnh Extension Ecosystem
5 loại extension trong Claude Code, mỗi loại phục vụ một mục đích khác nhau:
CLAUDE.md → Context luôn có mặt (mỗi request)
↓
Skills → Knowledge + workflow có thể gọi khi cần
↓
Subagents → Execution context độc lập, song song
↓
Hooks → Automation xác định (external scripts)
↓
MCP → Kết nối service bên ngoài1. CLAUDE.md — Context Luôn Có Mặt
File markdown đặc biệt, được load tự động ở đầu mỗi session. Claude sẽ luôn "nhớ" những gì bạn viết trong đây.
Dùng khi: Conventions dự án, rules kiến trúc, constraints bắt buộc.
Không dùng khi: Reference material dài, documentation chi tiết — vì nó tốn context tokens mỗi request.
# My Next.js 15 Project
## Architecture Rules
- App Router only, KHÔNG dùng Pages Router
- Server Components mặc định, chỉ 'use client' khi cần
- Tailwind CSS, không inline styles
## Trước khi commit
1. npm run lint
2. npm test
3. KHÔNG commit file .env
## File quan trọng
- src/lib/stripe.ts — Payment (KHÔNG sửa trực tiếp)Giữ CLAUDE.md dưới 500 dòng. Nội dung dài → tốn context → tốn tiền. Chuyển reference material sang Skills.
2. Skills — Knowledge Có Thể Gọi Khi Cần
Skills là file markdown chứa knowledge hoặc workflow. Descriptions được load lúc đầu session, nhưng full content chỉ load khi được gọi.
Dùng khi: API documentation, deployment checklist, reusable workflows, coding standards.
# /deploy — Production Deployment Workflow
Skill này xử lý deploy lên production.
## Các bước bắt buộc
1. Kiểm tra tests: npm run test
2. Build: npm run build
3. Lighthouse score > 80: npm run lighthouse
4. Hỏi xác nhận trước khi deploy lên Vercel
## Constraints
- Chỉ deploy từ branch main
- Không deploy nếu test failUser gõ /deploy → Claude thực hiện đúng workflow đã định nghĩa.
3. Subagents — Workers Độc Lập, Song Song
Subagents là Claude Code sessions riêng biệt với context window độc lập. Chúng làm việc song song và chỉ báo cáo kết quả về cho parent session.
Dùng khi: Task tốn nhiều context, cần parallelization, muốn isolate kết quả.
Main Agent: "Review toàn bộ codebase"
↓
Spawn 3 subagents song song:
├─ Security Agent → Scan vulnerabilities
├─ Performance Agent → Analyze bottlenecks
└─ Testing Agent → Check test coverage
↓
Mỗi agent làm việc độc lập
↓
Báo cáo về parent
↓
Parent tổng hợp kết quảLợi ích: Không làm đầy context của main session. Mỗi worker có thể có skills chuyên biệt.
4. Hooks — Automation Không Cần LLM
Hooks là shell commands chạy tại các lifecycle events nhất định. Khác với Skills (cần Claude reasoning), Hooks là pure automation — không có LLM tham gia.
| Event | Khi nào | Ví dụ |
|---|---|---|
| PreToolUse | Trước khi tool chạy | Block lệnh nguy hiểm |
| PostToolUse | Sau khi tool chạy thành công | Auto-format, auto-test |
| Stop | Khi agent hoàn thành | Gửi notification |
| UserPromptSubmit | Trước khi xử lý message | Log, filter input |
Dùng khi: Automation xác định, side effects (formatting, testing, git), không cần AI reasoning.
5. MCP — Kết Nối Service Bên Ngoài
Model Context Protocol cho phép Claude kết nối trực tiếp với databases, APIs, GitHub, Slack, và hàng trăm service khác.
# Thêm GitHub MCP
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
# Giờ Claude có thể:
# - Review PRs
# - Tạo issues
# - Query open PRs
# - Suggest code improvements với GitHub contextFramework Quyết Định: Dùng Cái Gì?
| Bạn cần... | Dùng | Lý do |
|---|---|---|
| Nhắc nhở chạy tests mỗi lần | CLAUDE.md | Persistent, mọi session |
| Deployment checklist có thể gọi | Skill | On-demand, reusable |
| Review code security độc lập | Subagent | Isolation, không tốn context chính |
| Auto-format sau khi edit | Hook | Deterministic, không cần AI |
| Query database production | MCP | Real-time external data |
Setup Tối Ưu: Kết Hợp Tất Cả
Một setup trưởng thành kết hợp cả 5 loại:
CLAUDE.md (Next.js + TypeScript conventions)
↓
Skills (/deploy, /review, /debug, API style guide)
↓
Subagents (security audit, perf review — tốn context)
↓
Hooks (auto-format, auto-lint, git notifications)
↓
MCP (GitHub cho PRs, Postgres cho schema queries)Bắt đầu với CLAUDE.md và 2-3 Skills cơ bản. Thêm Hooks khi bạn thấy mình làm một thao tác lặp đi lặp lại. Thêm MCP khi cần real-time data. Subagents cho tasks phức tạp.
Kết Luận
Không có "loại extension tốt nhất" — mỗi loại giải quyết một vấn đề khác nhau. Key insight là: CLAUDE.md cho context, Skills cho knowledge, Subagents cho isolation, Hooks cho automation, MCP cho integration. Hiểu rõ ranh giới này sẽ giúp bạn build một development environment thực sự powerful.