Cấu trúc thư mục .claude là gì?
Thư mục .claude là nơi tổ chức cấu hình và quy trình làm việc cho Claude Code trong một dự án. Nó có thể chứa settings, custom commands, rules, skills và agents. Nhờ đó, thay vì nhắc lại cùng một hướng dẫn mỗi phiên, bạn biến chúng thành file có cấu trúc.
Bạn có thể xem .claude như trung tâm điều khiển của Claude trong repo. CLAUDE.md mô tả bối cảnh chung, còn .claude/ chứa các phần chuyên sâu hơn: lệnh tùy chỉnh, quy tắc, tự động hóa và workflow có thể tái sử dụng.
Vì sao Anthropic Claude Code cần thư mục .claude?
Anthropic Claude Code có thể làm việc chỉ với prompt trực tiếp, nhưng dự án thật thường cần quy trình ổn định hơn. Thư mục .claude giúp team đưa kiến thức vận hành vào repo: command nào dùng để review, rule nào phải tuân thủ, hook nào chặn thao tác nguy hiểm và skill nào xử lý workflow phức tạp.
Khi bạn tìm "Claude Code project structure" hoặc "tổ chức dự án với Claude Code", trọng tâm không chỉ là đặt file ở đâu. Trọng tâm là biến cách làm việc với AI thành một phần có thể review, version control và chia sẻ giữa các thành viên.
Cấu trúc .claude tiêu chuẩn
Một dự án dùng Claude Code tốt có thể bắt đầu với cấu trúc sau:
your-project/
├── CLAUDE.md
├── CLAUDE.local.md
└── .claude/
├── settings.json
├── settings.local.json
├── commands/
│ ├── review.md
│ ├── fix-issue.md
│ └── deploy.md
├── rules/
│ ├── code-style.md
│ ├── testing.md
│ └── api-conventions.md
├── skills/
│ ├── security-review/
│ │ └── SKILL.md
│ └── deploy/
│ └── SKILL.md
└── agents/
├── code-reviewer.md
└── security-auditor.mdBạn không cần tạo tất cả ngay từ đầu. Với người mới, hãy bắt đầu bằng CLAUDE.md, sau đó thêm commands/ hoặc rules/ khi bạn thấy mình lặp lại cùng một việc nhiều lần.
Vai trò của từng file và thư mục
CLAUDE.md là hướng dẫn chung của team. File này nên được commit để mọi người dùng Claude Code cùng một nền tảng context.
CLAUDE.local.md là ghi chú cá nhân. File này không nên commit, vì nó có thể chứa thông tin máy local hoặc thói quen riêng.
.claude/settings.json chứa cấu hình dùng chung như hooks, MCP servers hoặc permissions của dự án. Nếu cấu hình ảnh hưởng đến cả team, nó nên được quản lý bằng git.
.claude/settings.local.json dành cho cấu hình cá nhân. Ví dụ permission riêng, server local hoặc đường dẫn chỉ tồn tại trên máy bạn.
.claude/commands/ chứa custom slash commands. Mỗi file markdown thường trở thành một lệnh có thể gọi bằng /.
.claude/rules/ chứa các quy tắc dài hạn như coding style, workflow git hoặc quy ước test.
.claude/skills/ chứa workflow nhiều bước, có thể đi kèm scripts, references hoặc assets.
.claude/agents/ chứa mô tả cho subagent chuyên trách như reviewer, security auditor hoặc documentation writer.
Cấu hình settings.json cơ bản
settings.json thường dùng khi bạn muốn cấu hình hành vi ở cấp dự án. Ví dụ dưới đây minh họa một cấu hình hooks đơn giản.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit",
"hooks": [
{
"type": "command",
"command": "npm run lint"
}
]
}
]
}
}Trong thực tế, bạn nên cân nhắc kỹ trước khi chạy lệnh nặng sau mọi edit. Với dự án lớn, chạy build liên tục có thể làm chậm workflow. Hook nên phục vụ quy trình, không biến terminal thành nơi luôn bị nghẽn.
File nào nên commit và file nào không?
Một quy tắc dễ nhớ là: file phục vụ cả team thì commit, file phục vụ riêng máy bạn thì không commit.
Nên commit:
CLAUDE.md.claude/settings.json.claude/commands/.claude/rules/.claude/skills/.claude/agents/
Không nên commit:
CLAUDE.local.md.claude/settings.local.json
Bạn có thể thêm vào
.gitignore:
CLAUDE.local.md
.claude/settings.local.jsonCách phân chia này giúp team chia sẻ quy trình chung mà không làm lộ cấu hình cá nhân hoặc thông tin local.
Những lỗi thường gặp khi tổ chức .claude
- Tạo quá nhiều file ngay từ đầu dù chưa có nhu cầu thật.
- Đưa secret hoặc thông tin cá nhân vào file được commit.
- Viết mọi thứ vào một
CLAUDE.mdquá dài thay vì tách thành rules hoặc commands. - Không đặt tên file rõ ràng, khiến Claude và con người khó hiểu mục đích.
- Tạo hook chạy lệnh quá nặng sau mỗi thao tác nhỏ.
Bài tập thực hành
Hãy thiết kế cấu trúc .claude tối thiểu cho một dự án bạn đang học. Chưa cần viết đủ nội dung, chỉ cần tạo danh sách file nên có.
Gợi ý bắt đầu:
.claude/
├── commands/
│ └── review.md
├── rules/
│ └── code-style.md
└── skills/
└── write-docs/
└── SKILL.mdSau đó trả lời: phần nào cần dùng chung cho team, phần nào chỉ là ghi chú cá nhân?
Câu hỏi thường gặp về .claude folder
Có bắt buộc phải có thư mục .claude không?
Không bắt buộc. Bạn có thể dùng Claude Code chỉ với CLAUDE.md. Tuy nhiên, khi workflow phức tạp hơn, .claude/ giúp tổ chức hướng dẫn rõ ràng và dễ bảo trì.
Nên bắt đầu với commands, rules hay skills?
Hãy bắt đầu với rules nếu bạn muốn Claude luôn tuân thủ quy ước. Dùng commands khi có thao tác lặp lại theo yêu cầu. Dùng skills khi quy trình có nhiều bước và cần tài nguyên đi kèm.
settings.local.json khác gì settings.json?
settings.json là cấu hình chung của dự án. settings.local.json là cấu hình riêng của máy bạn và không nên commit vào repo.
Tóm tắt
Cấu trúc thư mục .claude giúp bạn biến cách làm việc với Claude Code thành một hệ thống rõ ràng. Bạn đã biết vai trò của settings, commands, rules, skills và agents, cũng như file nào nên commit. Ở bài tiếp theo, chúng ta sẽ học chi tiết cách tạo custom commands để tự động hóa các yêu cầu lặp lại.
Bài viết liên quan

Next.js là gì? Tại sao nên dùng Next.js để làm web?
Giới thiệu Next.js — framework React phổ biến nhất. Tìm hiểu ưu điểm, tính năng nổi bật và khi nào nên dùng.

Con bug đầu tiên trong cuộc đời lập trình viên
Câu chuyện hài hước về lần đầu gặp bug và mất 3 tiếng để tìm ra nguyên nhân chỉ là... thiếu dấu chấm phẩy.

Hướng dẫn cài đặt Python chi tiết trên Windows, macOS, Linux
Hướng dẫn từng bước cài đặt Python trên mọi hệ điều hành. Kèm cách kiểm tra và chạy chương trình đầu tiên.