Claude Code có siêu năng lực, nhưng không ai chỉ bạn cách mở khóa. Plugin này làm điều đó.
Hồi mới bắt đầu dùng Claude Code, mình mở terminal, gõ claude, rồi… ngồi nhìn con trỏ nhấp nháy. Mình biết nó có hooks, MCP servers, skills, subagents, plugins — cả một hệ sinh thái extension points mà Anthropic quảng cáo rầm rộ. Nhưng bắt đầu từ đâu? Cái nào thực sự có ích cho project của mình? Cài xong rồi config ra sao?
Hóa ra mình không phải người duy nhất. Lướt qua Reddit, Zenn, Towards AI — cả tá developer cùng một câu hỏi: “Claude Code có quá nhiều thứ, làm sao biết nên dùng gì?”
Anthropic nghe thấy. Họ release claude-code-setup — một plugin official trong marketplace claude-plugins-official, được build bởi chính Isabella He từ Anthropic. Không phải third-party, không phải community hack. Đây là câu trả lời chính chủ cho vấn đề “analysis paralysis” khi tiếp cận Claude Code.
Và sau khi mổ xẻ toàn bộ source code của nó (đặc biệt là cái SKILL.md dài 11KB), mình nhận ra: đây không chỉ là một plugin hữu ích — nó còn là một masterclass về cách viết skill cho Claude Code.
First look: 1 dòng lệnh, 0 config
Không cần clone repo, không cần set environment variable. Mở Claude Code lên, gõ đúng một lệnh:
/plugin install claude-code-setup@claude-plugins-officialMarketplace claude-plugins-official đã được pre-register sẵn khi bạn cài Claude Code — không cần marketplace add gì hết. Sau khi install, plugin nằm im đấy, đợi bạn trigger bằng natural language:
"recommend automations for this project"
"help me set up Claude Code"
"what hooks should I use?"Không cần nhớ slash command, không cần syntax đặc biệt. Claude tự detect intent và load skill lên. Đúng chuẩn “it just works” mà mình thích ở các tool được design cẩn thận.
Vậy bên trong nó có gì?
Architecture deep dive: 1 skill + 5 reference files
Không giống các plugin phức tạp với hàng tá agent, command, MCP config, claude-code-setup có kiến trúc tối giản đến bất ngờ:
claude-code-setup/
├── .claude-plugin/
│ └── plugin.json # Metadata: name, version, author
└── skills/
└── claude-automation-recommender/
├── SKILL.md # Core logic (~11KB)
└── references/
├── hooks-patterns.md
├── mcp-servers.md
├── skills-reference.md
├── plugins-reference.md
└── subagent-templates.md1 skill duy nhất. Không command, không agent, không .mcp.json. Toàn bộ intelligence nằm gọn trong file SKILL.md — và 5 file reference đóng vai trò knowledge base.
Đây là một architectural choice đáng chú ý: thay vì hardcode mọi recommendation vào SKILL.md, Anthropic tách riêng phần “domain knowledge” ra các file reference. Lý do? Khi có MCP server mới hoặc hook pattern mới, họ chỉ cần update file reference — không cần đụng vào core logic. Clean af.
Plugin hoạt động theo 3-phase workflow được định nghĩa rõ ràng trong SKILL.md:
Phase 1: Codebase Analysis — “đọc vị” project của bạn
Claude dùng 4 tools được allowlist trong frontmatter (tools: Read, Glob, Grep, Bash) để scan project:
- Check
package.json,pyproject.toml,Cargo.toml,go.mod→ detect language + framework - Grep dependencies → biết bạn dùng React, Express, Prisma, Stripe hay Supabase
- List directory structure → hiểu project layout
- Check
.claude/vàCLAUDE.md→ biết bạn đã setup gì trước đó
Mọi thứ đều read-only. Không một file nào bị sửa, không một config nào bị chạm vào. Claude chỉ đọc và hiểu, giống như một senior dev mới join team đang đọc codebase lần đầu.
Phase 2: Recommendation Generation — map pattern → automation
Sau khi có bức tranh toàn cảnh, Claude map các “tín hiệu” (signals) từ codebase sang recommendation cụ thể:
| Phát hiện trong codebase | Recommendation |
|---|---|
.prettierrc tồn tại |
PostToolUse hook auto-format |
tsconfig.json |
PostToolUse hook type-check |
.env files |
PreToolUse hook block edit |
| React/Vue/Angular trong deps | Playwright MCP server |
| LangChain/OpenAI SDK | context7 MCP (live docs) |
| Supabase | Supabase MCP (direct DB access) |
Tests directory (tests/, __tests__/) |
PostToolUse hook run related tests |
| GitHub Actions | GitHub MCP server |
Điểm thông minh: nó không chỉ dùng reference lists cố định. SKILL.md instruction rõ ràng: “Use web search to find recommendations specific to the codebase’s tools, frameworks, and libraries” — nghĩa là nếu bạn dùng một tool niche không có trong reference, Claude vẫn tự search và đề xuất được.
Phase 3: Output Report — không overwhelm, chỉ chọn top picks
Đây là chỗ mình thấy Anthropic hiểu tâm lý người dùng. Thay vì dump một list dài 20-30 recommendations khiến bạn choáng, plugin chỉ trả về 1-2 recommendations mỗi category. Nếu bạn muốn nhiều hơn ở category cụ thể, cứ hỏi thêm.
Output format chuẩn của nó:
## Claude Code Automation Recommendations
### Codebase Profile
- **Type**: Python 3.11+
- **Framework**: FastAPI
- **Key Libraries**: SQLAlchemy, Pydantic, pytest
### 🔌 MCP Servers
#### context7 — Live documentation lookup
**Why**: Bạn dùng FastAPI + SQLAlchemy, docs thay đổi thường xuyên
**Install**: `claude mcp add context7`
### ⚡ Hooks
#### Block .env edits
**Why**: Ngăn chặn lộ API keys khi edit file
**Where**: `.claude/settings.json`
...
**Want more?** Ask for additional recommendations for any category.Kèm theo là priority table xếp hạng sao (★★★, ★★, ★) — để bạn biết nên làm gì trước.
Feature walkthrough: 5 categories, 1 bức tranh toàn cảnh
Plugin cover toàn bộ 5 loại automation mà Claude Code hỗ trợ. Mỗi loại có một vai trò khác nhau:
| Category | Mô tả | Ví dụ điển hình |
|---|---|---|
| Hooks ⚡ | Tự động chạy command khi có tool event | Auto-format Prettier sau mỗi lần Edit, block edit file .env |
| MCP Servers 🔌 | Tích hợp external tools/services | context7 (live docs), Playwright (browser), GitHub MCP |
| Skills 🎯 | Packaged workflows tái sử dụng được | gen-test, api-doc, commit, project-conventions |
| Subagents 🤖 | Agent chuyên biệt chạy song song | security-reviewer, performance-analyzer, test-writer |
| Plugins 📦 | Bundle nhiều skills/phức hợp | frontend-design, mcp-builder, hookify |
Điểm đặc biệt: recommendation hoàn toàn context-aware. Không phải kiểu “bạn nên dùng Prettier vì ai cũng dùng” — mà là “mình thấy .prettierrc trong project của bạn rồi, sao không thêm hook auto-format luôn?” Mỗi recommendation đều có Why cụ thể, dựa trên chính codebase của bạn.
Phân tích SKILL.md: Cách Anthropic viết skill “chuẩn chỉnh”
Đây là phần mình tâm đắc nhất. Nếu bạn đang có ý định viết skill cho Claude Code (hoặc bất kỳ AI agent nào), SKILL.md của plugin này là tài liệu tham khảo số 1.
1. Frontmatter — explicit, không mơ hồ
---
name: claude-automation-recommender
description: Analyze a codebase and recommend Claude Code automations...
tools: Read, Glob, Grep, Bash
---3 dòng, mỗi dòng có mục đích rõ ràng:
name: identifier cho skill — dùng để Claude reference khi invokedescription: trigger condition bằng natural language — Claude tự biết khi nào nên load skill nàytools:: đây là chi tiết cực kỳ quan trọng mà nhiều người bỏ qua. Bằng cách whitelistRead, Glob, Grep, Bash, Anthropic đảm bảo skill này không bao giờ có thể edit file. Nó buộc skill phải read-only ở tầng protocol — không chỉ là “instruction nói là read-only”.
Nếu bạn viết một skill mà quên set tools:, Claude có thể dùng bất kỳ tool nào trong context — kể cả Edit, Write. Với một recommender skill, đó là disaster waiting to happen.
2. Workflow — 3 phases rõ ràng, mỗi phase có output cụ thể
Không phải kiểu “làm gì đó rồi trả về kết quả”. Mỗi phase được define với:
- Mục đích: Phase này làm gì?
- Công cụ: Dùng tool gì? (kèm code mẫu bash cụ thể)
- Key indicators: Cần capture thông tin gì? (dạng table cho dễ scan)
- Output: Đầu ra trông như thế nào? (template markdown hoàn chỉnh)
Cách Anthropic structure cái table “Key Indicators to Capture” là một ví dụ tuyệt vời:
| Category | What to Look For | Informs Recommendations For |
|--------------------|---------------------------|-----------------------------|
| Language/Framework | package.json, go.mod... | Hooks, MCP servers |
| Frontend stack | React, Vue, Angular... | Playwright MCP, frontend skills |
| Database | Prisma, Supabase... | Database/backend MCP servers |3 cột: signal → cách detect → dùng để recommend gì. Claude không cần “suy nghĩ” phải làm gì — cứ theo bảng mà làm.
3. Decision Framework — dạy Claude “khi nào” chứ không chỉ “cái gì”
Đây là phần mà 90% skill tutorials bỏ qua. SKILL.md không chỉ liệt kê patterns — nó có hẳn một section “When to Recommend” cho từng loại automation:
### When to Recommend MCP Servers
- External service integration needed (databases, APIs)
- Documentation lookup for libraries/SDKs
- Browser automation or testing
- Team tool integration (GitHub, Linear, Slack)
### When to Recommend Hooks
- Repetitive post-edit actions (formatting, linting)
- Protection rules (block sensitive file edits)
- Validation checks (tests, type checks)
### When to Recommend Skills
- Frequently repeated prompts or workflows
- Project-specific tasks with arguments
- Applying templates or scripts to tasksCái này khác với việc chỉ nói “recommend MCP server nếu thấy database” — nó dạy Claude nguyên tắc quyết định, để Claude có thể tự suy luận cho những tình huống không có trong reference files.
4. Output Templates — không để Claude “tự bịa” format
Thay vì nói “output a report with recommendations”, SKILL.md cho hẳn một template markdown hoàn chỉnh, bao gồm:
## Claude Code Automation Recommendations
### Codebase Profile
- **Type**: [detected language/runtime]
...
### 🔌 MCP Servers
#### [server name]
**Why**: [specific reason]
**Install**: `claude mcp add [name]`
...Template này đảm bảo output consistent, có structure rõ ràng, và quan trọng nhất — luôn có “Why” giải thích lý do. Không có chuyện Claude dump một list tool names rồi để bạn tự Google.
5. Reference Files Architecture — separation of concerns
Như đã nói ở trên, 5 file reference được tách riêng khỏi core logic. Nhưng điểm hay là cách chúng được cấu trúc bên trong: mỗi file reference cũng dùng table format với “Detection → Recommendation” mapping. Consistency xuyên suốt toàn bộ plugin.
Ví dụ từ hooks-patterns.md:
| If You See | Recommend This Hook |
|---------------------|------------------------------|
| Prettier config | Auto-format on Edit/Write |
| ESLint config | Auto-lint on Edit/Write |
| tsconfig.json | Type-check on Edit |
| .env files | Block .env edits |Đơn giản, dễ maintain, dễ mở rộng. Mỗi khi có hook pattern mới, chỉ cần thêm 1 dòng vào bảng.
6. Configuration Tips — không chỉ recommend, còn dạy cách làm
Cuối SKILL.md có section hướng dẫn các best practices:
- Team sharing: Check
.mcp.jsonvào git để cả team dùng chung MCP servers - Debugging: Dùng
--mcp-debugflag khi troubleshoot - Headless mode: Pre-commit hook với
claude -pcho CI/CD pipeline - Permissions: Configure
allowedToolstrong settings.json
Đây là những thứ mà một newbie sẽ không tự nghĩ ra — và cũng không có trong docs chính của Claude Code một cách dễ tìm. Anthropic dùng chính plugin này để “giáo dục” người dùng về toàn bộ extension system.
Bài học cho ai muốn viết skill:
- ✅ Whitelist
tools:trong frontmatter để giới hạn capability - ✅ Dùng reference files cho domain knowledge, không hardcode vào prompt
- ✅ Có decision framework, không chỉ là pattern list
- ✅ Cho template output cụ thể, không để AI tự format
- ✅ Kèm configuration tips — skill không chỉ là “recommend”, còn là “educate”
DX: Cài thì sướng, setup thì… vẫn phải tự làm
Trải nghiệm cài đặt thì 10/10. Một lệnh, không config, natural language trigger. Đúng tinh thần “get out of your way” mà mình mong đợi ở một official plugin.
Nhưng đây là chỗ nhiều người hiểu nhầm (mình thấy kha khá trên Reddit): plugin này không tự động apply bất kỳ config nào. Nó chỉ phân tích và đề xuất. Bạn vẫn phải tự tạo .claude/settings.json, tự viết hook config, tự cài MCP server, tự tạo SKILL.md cho custom skills.
Đây là read-only by design — Anthropic cố tình làm vậy. Lý do? Trust. Nếu plugin tự động sửa file config của bạn mà không hỏi, nó sẽ phá hỏng setup hiện tại. Thay vào đó, nó cho bạn toàn quyền kiểm soát: đọc recommendation → quyết định cái nào phù hợp → tự apply hoặc nhờ Claude làm giúp.
Có một trick hay: sau khi plugin chạy xong, bạn có thể nói với Claude kiểu “cài giúp mình .env block hook và context7 MCP” — Claude sẽ tự đọc lại recommendation report và chạy các bước setup. Không cần copy-paste từng dòng lệnh.
Weaknesses: Những góc khuất ít người nói
Dù mình rating 4/5 sao, có vài điểm cần honest:
1. Chất lượng phụ thuộc hoàn toàn vào project structure
Nếu project của bạn không có package.json, không có pyproject.toml, không có config files rõ ràng (kiểu mấy project legacy script-only), plugin gần như mù. Nó dựa vào structured signals để detect — không có signals = không có recommendations chất lượng.
2. One-shot, không continuous
Plugin chạy một lần rồi thôi. Không có watcher để phát hiện khi bạn thêm dependency mới hoặc thay đổi tech stack. Mỗi lần project evolve, bạn phải tự trigger lại.
3. Không team-aware
Recommendations là per-developer. Không có concept “team shared config” hay “org-wide policy”. Nếu 5 dev trong team cùng chạy, mỗi người có thể nhận recommendation khác nhau tùy vào context Claude đang thấy.
4. Chỉ 1 skill — không phải “project scaffolding”
Nhiều người trên Reddit install xong thắc mắc “sao nó không tự tạo project structure cho mình?” Đây không phải create-react-app hay npm init. Nó là automation recommender, không phải project generator. Expectation mismatch này là lỗi naming nhiều hơn là lỗi implementation.
5. Không có auto-update reference files
Reference files nằm trong plugin, được Anthropic maintain. Khi có MCP server mới hoặc hook pattern mới, bạn phải chờ plugin update (hoặc tự add thêm custom reference). Không có mechanism “live sync” với một upstream knowledge base.
Comparison: Đặt cạnh các official plugin khác
claude-code-setup không phải plugin duy nhất trong hệ sinh thái official. So sánh nhanh:
| Plugin | Vai trò | So với claude-code-setup |
|---|---|---|
| github | Tích hợp GitHub MCP | Bổ trợ: setup recommend GitHub MCP → cài plugin này để có integration |
| commit-commands | Git commit workflow | Bổ trợ: setup recommend commit skill → cài plugin này để có /commit command |
| frontend-design | UI generation skill | Bổ trợ: nếu codebase có React → recommend cài plugin này |
| security-guidance | Auto security review | Khác biệt: security-guidance tự động chạy, setup chỉ recommend |
| claude-mem (third-party) | Memory persistence | Khác phạm trù: setup là “nên dùng gì”, mem là “nhớ được gì” |
Bottom line: claude-code-setup không cạnh tranh với các plugin khác — nó bổ trợ bằng cách giúp bạn khám phá ra chúng. Nó là “meta-plugin”: cài nó trước, rồi nó chỉ bạn nên cài gì tiếp theo.
So với Claude-Mem (plugin memory persistence phổ biến trong cộng đồng): một bên là setup recommender (trả lời câu hỏi “dùng gì?”), một bên là memory layer (trả lời câu hỏi “nhớ gì?”). Hai plugin phục vụ hai needs khác nhau hoàn toàn, và dùng chung với nhau thì càng ngon.
Verdict: ⭐⭐⭐⭐ (4/5)
Ai nên dùng?
- Người mới bắt đầu với Claude Code: Đây là plugin đầu tiên bạn nên cài. Nó giúp bạn hiểu cả hệ sinh thái extension mà không cần đọc hàng trăm trang docs.
- Dev đã dùng Claude Code lâu nhưng chưa tối ưu: Nếu bạn vẫn đang dùng Claude Code “vanilla” không hooks, không MCP, không skills — plugin này sẽ mở ra 1 thế giới automation bạn chưa từng nghĩ tới.
- Ai muốn học cách viết skill cho Claude Code: SKILL.md của plugin này là tài liệu tham khảo xuất sắc. Đọc, phân tích, rồi áp dụng pattern tương tự cho skill của bạn.
Khi nào không nên dùng?
- Project của bạn là script đơn giản, 1-2 file, không có dependencies phức tạp
- Bạn đã có full setup Claude Code với hooks, MCP, skills custom rồi
- Bạn cần tự động apply config (không chỉ recommend) — plugin này không làm việc đó
Bottom line
claude-code-setup giải quyết đúng cái pain point mà hầu hết Claude Code users gặp phải: “biết nó mạnh nhưng không biết bắt đầu từ đâu.” Nó không làm gì quá phức tạp — chỉ phân tích, recommend, và educate. Nhưng làm tốt đúng những thứ đó, với chất lượng code “chuẩn Anthropic”, thì đáng giá hơn nhiều plugin over-engineered ngoài kia.
Và nếu bạn đang có ý định viết skill cho Claude Code: hãy đọc SKILL.md của plugin này ít nhất 2 lần. Mình đã học được nhiều hơn từ 11KB markdown này hơn là từ toàn bộ documentation chính thức về skill authoring.
Đã dùng claude-code-setup chưa? Recommend nào bất ngờ nhất với project của bạn? Chia sẻ ở comment hoặc ping mình qua @luandnh.
Links: