Bộ thiết lập Claude Code · Biên soạn bởi Eroca Thanh

Một thư mục quyết định Claude Code
là phép màu hay món đồ chơi

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.

8 thư mục trong .claude/ 3 file gốc 15 khối bấm sao-chép 15 phút thiết lập
Xem sơ đồ ↓

Khoảng trống tạo khác biệt

Thư mục .claude — nơi Claude Code thật sự thông minh lên

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.

Toàn cảnh một thư mục dự á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
💡 Bạn không cần dựng hết trong một ngày. Bắt đầu từ CLAUDE.md, rồi thêm dần từng thư mục khi gặp việc lặp lại. Trang này đi theo đúng thứ tự đó.

Ba file gốc

Bắt đầu từ ba file ở thư mục 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.

1 CLAUDE.md

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ử: ...

2 CLAUDE.local.md

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: ...

3 .gitignore

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
⚠️ Không bao giờ để khoá API hay mật khẩu nằm trong CLAUDE.md. File đó được chia sẻ cho cả nhóm và có thể lên git. Bí mật để ở file .env rồi đưa vào .gitignore.

Hai thư mục tạo sức mạnh

agentsskills — trợ lý riêng và kỹ năng đóng gói

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".

📁 agents/ — trợ lý chuyên trách

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.

📁 skills/ — kỹ năng đóng gói thành quy trình

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
...
💡 Phân biệt dễ nhớ: agent là "ai làm" (một trợ lý có vai), còn skill là "làm thế nào" (một quy trình đóng gói). Hai thứ bổ trợ nhau.

Tự động hoá việc lặp

commandshooks — lệnh tắt và nút bấm tự động

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.

📁 commands/ — lệnh tắt gõ "/"

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.

📁 hooks/ — tự chạy trước hoặc sau mỗi bước

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
💡 Hook viết bằng shell (.sh) hay Python (.py) đều được — chọn ngôn ngữ bạn quen. Điều quan trọng là nó chạy tự động, bạn không phải nhớ bấm.

Mở rộng và tuỳ biến

pluginsoutput-styles — kết nối dữ liệu và đổi giọng trả lời

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.

📁 plugins/ — cài nguồn và kết nối dữ liệu (MCP)

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

📁 output-styles/ — định dạng câu trả lời theo ý bạn

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.
💡 MCP là cách Claude "đọc được" dữ liệu của bạn một cách an toàn. Bạn cấp quyền tới đâu, Claude dùng tới đó — luôn nằm trong tầm kiểm soát của bạn.

Quyền hạn và phụ trợ

rulesscripts — đặt luật chơi và gọi việc phụ

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.

📁 rules/ — quy tắc tách riêng

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.

📁 scripts/ — script phụ trợ cho skills

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"));
💡 Mẹo an toàn: nhớ để settings.local.json trong .gitignore. File đó là quyền riêng trên máy bạn, không nên chia sẻ cho cả nhóm.

Bắt tay vào làm

Lộ trình thiết lập trong 15 phút

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.

1

Viết CLAUDE.md

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.

2

Tạo .gitignore và CLAUDE.local.md

Tách ghi chú riêng và giấu bí mật trước khi làm gì thêm.

3

Thêm một skill đầu tiên

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.

4

Thêm một agent

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.

5

Đặt quyền trong settings.json

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ã.

6

Thêm hook và lệnh tắt khi cần

Khi thấy mình lặp một thao tác, biến nó thành hook hoặc lệnh /.

Dựng nhanh khung thư mục

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é."
💡 Sau bước này, mở Claude Code lên là nó đã đọc CLAUDE.md của bạn. Mỗi thư mục con bạn điền thêm sẽ làm nó mạnh lên một bậc.

Bước tiếp theo

Khi một .claude/ là chưa đủ

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.

💡 Nếu trang này hữu ích, bước kế là xem cách ghép tất cả lại thành một hệ thống chạy được mỗi ngày — không chỉ cho một dự án, mà cho cả công việc của bạn.
Xem AI CONTENT OS — Thử Thách 90 Ngày →