Bộ thiết lập Claude Code · Biên soạn bởi Eroca Thanh
Hầu hết mọi người dừng ở một file CLAUDE.md rồi nghĩ vậy là đủ — trong khi thư mục .claude vẫn để trống. Đây là sơ đồ đầy đủ từng thư mục, kèm khối cấu hình bạn bấm sao chép là dùng được ngay.
Khoảng trống tạo khác biệt
Hầu hết mọi người cài Claude Code, viết một file CLAUDE.md rồi nghĩ vậy là đủ. Trong khi đó thư mục .claude vẫn để trống: không agents, không skills, không hooks để làm giúp bạn những việc lặp đi lặp lại. Chính khoảng trống đó tạo ra toàn bộ sự khác biệt.
Hãy hình dung một dự án Claude Code như một văn phòng. CLAUDE.md là tờ nội quy dán ở cửa — ai vào cũng đọc. Còn .claude là cả bộ máy phía sau: nhân sự chuyên trách (agents), kỹ năng đóng gói (skills), nút bấm tự động (hooks), lệnh tắt (commands).
Khi bộ máy đó trống, Claude chỉ trả lời câu hỏi. Khi bạn lấp đầy nó, Claude bắt đầu làm việc thay bạn — đúng cách bạn muốn, lặp lại được, không phải dặn lại mỗi lần.
Đây là bản đồ bạn sẽ dựng xong sau trang này. Mỗi dòng đều có một mục riêng bên dưới, kèm khối cấu hình bấm sao chép là dùng được.
dự-án-của-bạn/
├── CLAUDE.md # nội quy Claude đọc đầu mỗi phiên
├── CLAUDE.local.md # ghi chú riêng của bạn — không đẩy lên git
├── .gitignore # giấu file "local" và thông tin bí mật
└── .claude/ # toàn bộ cấu hình — nơi tạo khác biệt
├── agents/ # trợ lý chuyên trách theo từng việc
├── skills/ # kỹ năng đóng gói thành quy trình
├── commands/ # lệnh tắt gõ "/" là chạy
├── hooks/ # tự động chạy trước/sau mỗi bước
├── output-styles/ # định dạng câu trả lời theo ý bạn
├── plugins/ # cài thêm nguồn và kết nối dữ liệu (MCP)
├── rules/ # (tuỳ chọn) gom quy tắc tách riêng
└── scripts/ # script phụ trợ cho skills
Ba file gốc
Trước khi vào .claude, có ba file nằm ngay thư mục dự án. Đây là nền móng — làm đúng ba file này, Claude đã hiểu dự án của bạn hơn hẳn phần lớn người dùng.
File quan trọng nhất. Claude đọc nó đầu mỗi phiên để biết dự án của bạn là gì, viết bằng gì, quy ước ra sao. Hãy coi nó như buổi bàn giao việc cho người mới.
# Dự án: [tên dự án của bạn]
## Bối cảnh
Mô tả ngắn dự án làm gì, cho ai.
## Công nghệ
- Ngôn ngữ và thư viện chính
- Cách chạy thử, cách build
## Quy ước
- Giọng văn, cách đặt tên, thư mục nào để làm gì
- Việc luôn làm / việc luôn tránh
## Lệnh hay dùng
- Chạy thử: ...
- Kiểm thử: ...
Giống CLAUDE.md nhưng là ghi chú riêng của bạn — đường dẫn cá nhân, ghi chú nháp, thứ không muốn chia sẻ cho cả nhóm. File này không đẩy lên git.
# Ghi chú riêng (không chia sẻ)
- Đường dẫn trên máy mình: ...
- Việc đang làm dở: ...
- Nhắc riêng cho Claude khi làm với mình: ...
Dặn git bỏ qua những file không nên chia sẻ: ghi chú cá nhân, cấu hình máy, và mọi thông tin bí mật như khoá API hay mật khẩu. Đây là tuyến phòng thủ để bạn không lỡ tay đẩy bí mật lên mạng.
# Ghi chú và cấu hình cá nhân
CLAUDE.local.md
.claude/settings.local.json
# Thông tin bí mật — TUYỆT ĐỐI không đẩy lên
.env
.env.*
*.key
*.pem
Hai thư mục tạo sức mạnh
Nếu chỉ thêm được hai thứ vào .claude, hãy thêm hai thư mục này. Chúng biến Claude từ "người trả lời" thành "người làm được việc chuyên môn, lặp lại theo đúng cách của bạn".
Mỗi agent là một trợ lý có vai riêng, bối cảnh riêng, được gọi ra khi cần — ví dụ một agent chuyên soát lỗi, một agent chuyên tìm tài liệu. Mỗi agent là một file .md mô tả vai trò và những công cụ nó được dùng.
Tạo file .claude/agents/code-review.md:
---
name: code-review
description: Soát lỗi và góp ý chất lượng cho đoạn mã vừa thay đổi.
tools: Read, Grep, Bash
---
Bạn là người soát mã kỹ tính. Khi được gọi:
1. Đọc phần vừa thay đổi.
2. Chỉ ra lỗi đúng/sai, rủi ro bảo mật, chỗ khó đọc.
3. Góp ý ngắn gọn, ưu tiên việc quan trọng trước.
Skill là một việc bạn làm đi làm lại, gói lại một lần để dùng mãi: cách viết bài, cách xuất file, cách dựng báo cáo. Mỗi skill là một thư mục con chứa file SKILL.md; Claude tự đọc phần mô tả để biết khi nào nên dùng.
Tạo file .claude/skills/carousel/SKILL.md:
---
name: carousel
description: Biến một dàn ý thành bộ ảnh carousel nhiều trang theo đúng bố cục thương hiệu. Dùng khi cần làm carousel đăng mạng xã hội.
---
# Carousel — quy trình làm
## Bước 1 — Bóc dàn ý thành từng trang
...
## Bước 2 — Dựng từng trang theo bố cục
...
## Bước 3 — Xuất ảnh và kiểm tra lại
...
Tự động hoá việc lặp
Hai thư mục này lo phần "đỡ tay" cho bạn: gõ một lệnh ngắn thay cho cả đoạn dài, và để máy tự chạy việc nền mà không cần nhắc.
Mỗi file trong đây là một lệnh tắt. Gõ /tên-lệnh là Claude làm đúng việc đã định nghĩa sẵn — không phải gõ lại câu dài mỗi lần.
Tạo file .claude/commands/commit.md:
Xem các thay đổi đang có (git diff), rồi:
1. Tóm tắt thay đổi thành một câu ngắn, rõ.
2. Tạo commit với câu đó theo đúng quy ước dự án.
3. Báo lại cho tôi nội dung commit vừa tạo.
Từ giờ chỉ cần gõ /commit là xong.
Hook là việc chạy tự động tại một thời điểm: khi mở phiên (SessionStart), hay sau mỗi lần Claude dùng công cụ (PostToolUse). Hợp để tự định dạng mã, nhắc nhở, hay ghi nhật ký. Bạn khai báo hook trong file cấu hình.
Thêm vào .claude/settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": ".claude/hooks/format.sh" }
]
}
]
}
}
Rồi tạo file .claude/hooks/format.sh:
#!/usr/bin/env bash
# Tự định dạng lại mã sau mỗi lần Claude sửa file
npx prettier --write . 2>/dev/null || true
Mở rộng và tuỳ biến
Hai thư mục này giúp Claude với tới dữ liệu bên ngoài và trả lời theo đúng phong cách bạn muốn.
Plugin cho Claude dùng thêm công cụ và nối tới dữ liệu của bạn qua MCP: kho tệp, lịch, cơ sở dữ liệu, dịch vụ bạn đang dùng. Cài nhanh bằng lệnh, hoặc khai báo trong file .mcp.json.
Ví dụ nối tới một dịch vụ qua .mcp.json:
{
"mcpServers": {
"vercel": {
"command": "npx",
"args": ["-y", "@vercel/mcp"]
}
}
}
Hoặc cài thẳng từ chợ plugin ngay trong Claude Code:
/plugin marketplace add anthropics/claude-code
/plugin install vercel
Mặc định Claude trả lời theo kiểu trợ lý lập trình. Output style cho bạn đổi sang giọng khác: ngắn gọn cho điện thoại, hay giải thích từng bước cho người mới. Mỗi style là một file mô tả cách trả lời.
Tạo file .claude/output-styles/ngan-gon.md:
---
name: Ngắn gọn
description: Trả lời thật ngắn, đi thẳng vào việc.
---
Luôn trả lời bằng tiếng Việt, câu ngắn.
Ưu tiên các bước đánh số thay cho đoạn văn dài.
Bỏ phần rào đón, nói thẳng kết quả và việc cần làm.
Quyền hạn và phụ trợ
Hai thư mục cuối lo phần "luật chơi" và "tay chân": Claude được phép làm gì, và những đoạn việc kỹ thuật bạn muốn gọi lại cho nhanh.
Phần cấu hình quan trọng nhất là hai file settings, và chúng nằm thẳng ở .claude/ gốc: settings.json (chia sẻ cho nhóm) và settings.local.json (riêng máy bạn). Đây là nơi quyết định Claude được tự làm gì, phải hỏi gì trước, dùng mô hình nào.
Khi bộ quy tắc dài ra, bạn có thể tách bớt thành các file riêng cho gọn — đó là lúc thư mục rules/ phát huy. Còn nền tảng vẫn là file .claude/settings.json:
{
"permissions": {
"allow": [
"Bash(npm run test)",
"Read",
"Edit"
],
"ask": [
"Bash(git push:*)"
]
}
}
Với cấu hình này, Claude được tự chạy kiểm thử và sửa file, nhưng phải hỏi bạn trước khi đẩy mã lên.
Khi một skill cần làm việc kỹ thuật lặp lại — xuất dữ liệu, đổi định dạng, gọi một dịch vụ — bạn tách đoạn đó thành script riêng trong đây, rồi skill chỉ việc gọi. Gọn và dùng lại được nhiều lần.
Ví dụ .claude/scripts/export.ts (rút gọn):
// Xuất danh sách bài viết ra dạng CSV
import { posts } from "../data";
const rows = posts.map((p) => `${p.id},${p.title}`);
console.log(["id,tieu_de", ...rows].join("\n"));
Bắt tay vào làm
Không cần làm hết một lúc. Đây là thứ tự Thanh khuyên: mỗi bước đều dùng được ngay, và bạn thêm dần khi gặp việc lặp lại.
Bàn giao dự án cho Claude: làm gì, viết bằng gì, quy ước ra sao. Đây là bước đổi đời lớn nhất.
Tách ghi chú riêng và giấu bí mật trước khi làm gì thêm.
Chọn đúng việc bạn làm nhiều nhất, gói thành skill. Lần sau chỉ việc gọi.
Một trợ lý chuyên trách (soát lỗi, tìm tài liệu) cho việc cần góc nhìn riêng.
Cho phép việc an toàn, bắt hỏi trước với việc nhạy cảm như đẩy mã.
Khi thấy mình lặp một thao tác, biến nó thành hook hoặc lệnh /.
Chạy đoạn này ngay ở thư mục dự án để tạo sẵn khung .claude/:
mkdir -p .claude/{agents,skills,commands,hooks,output-styles,plugins,scripts}
touch CLAUDE.md CLAUDE.local.md .gitignore
echo "CLAUDE.local.md" >> .gitignore
echo ".claude/settings.local.json" >> .gitignore
echo ".env" >> .gitignore
echo "Đã tạo xong khung .claude/ — giờ điền CLAUDE.md trước nhé."
Bước tiếp theo
Dựng xong .claude/ cho một dự án, bạn đã đi trước phần lớn người dùng. Nhưng đó mới là một văn phòng. Câu hỏi tiếp theo còn thú vị hơn nhiều.
Điều gì xảy ra khi bạn có nhiều dự án cùng lúc? Khi bạn muốn nhiều trợ lý làm việc song song mà không giẫm chân nhau? Khi bạn muốn Claude tự nhớ mọi điều bạn dạy, xuyên suốt mọi phiên và mọi máy?
Lúc đó .claude/ của một dự án lớn lên thành cả một hệ vận hành: nhiều trợ lý có vai và quyền rõ ràng, một bộ nhớ chung tự lớn theo thời gian, một cách điều phối để mọi thứ không loạn. Đó chính là thứ Thanh đang xây và chia sẻ trong khoá học.