Claude Certification Guide
0% chương trình học đã hoàn thành

Tra cứu nhanh: Lĩnh vực 3 — Cấu hình & Quy trình làm việc với Claude Code

Hệ Thống Phân Cấp Cấu Hình

Settings được nạp theo thứ tự sau, mục sau ghi đè mục trước:

Ưu TiênVị TríPhạm ViCó Commit Vào Git?
1 (thấp nhất)~/.claude/CLAUDE.mdToàn cục theo người dùng, mọi dự ánKhông
2.claude/CLAUDE.md (gốc dự án)Toàn dự án
3CLAUDE.md (bất kỳ thư mục nào)Thư mục đó và các thư mục con
4 (cao nhất).claude/rules/*.mdCó điều kiện, khớp theo đường dẫn

Quy tắc chính: Phạm vi càng cụ thể càng ghi đè phạm vi rộng hơn. Một CLAUDE.md cấp thư mục ghi đè bản cấp dự án đối với các tệp trong thư mục đó.

.claude/rules/ — Rules Có Điều Kiện

Các tệp trong .claude/rules/ dùng frontmatter YAML với trường paths để nạp có điều kiện:

yamlCopy

---
paths:
  - "src/api/**"
  - "src/middleware/**"
---
Always validate authentication tokens before processing API requests.
Use structured error responses with proper HTTP status codes.

Rules chỉ được nạp khi Claude Code thao tác trên các tệp khớp với glob pattern. Điều này ngăn các rules không liên quan chiếm dụng không gian context window.

Hệ Thống Skill

Thuộc TínhSkill Của Dự ÁnSkill Cá Nhân
Vị trí.claude/skills/~/.claude/skills/
Điểm vàoSKILL.md trong thư mục skillSKILL.md trong thư mục skill
Chia sẻ với độiCó (được commit)Không (cá nhân)

Thuộc tính của skill:

  • allowed-tools — Giới hạn tool mà skill được phép dùng
  • context: fork — Chạy trong context được fork để việc thực thi skill không làm ô nhiễm cuộc hội thoại chính

Skill là các module năng lực tái sử dụng được. Chúng đóng gói một quy trình làm việc (ví dụ: "chạy test", "deploy lên staging") với quyền truy cập tool bị giới hạn.

Command

LoạiVị TríPhạm Vi
Command của dự án.claude/commands/Chia sẻ với đội
Command cá nhân~/.claude/commands/Chỉ cá nhân

Command được gọi bằng tiền tố /. Chúng là các template — prompt định sẵn có thể chứa placeholder $ARGUMENTS cho input của người dùng.

Khác biệt so với skill: Command là các template prompt. Skill là các module năng lực có giới hạn tool và context cô lập.

Hook — Thực Thi Tất Định

HookKích Hoạt KhiDùng Cho
PreToolUseTrước khi một tool thực thiChặn lệnh gọi nguy hiểm, xác thực tham số, yêu cầu xác nhận
PostToolUseSau khi tool trả kết quảXác thực output, làm sạch kết quả, ghi log kiểm toán, kích hoạt tác vụ phụ

Tính chất then chốt: Hook có tính tất định — chúng chạy như code, không phải như hướng dẫn cho mô hình. Chúng không thể bị vượt qua bằng prompt injection hay suy luận của mô hình.

So sánh với hướng dẫn trong prompt:

  • Prompt: "Không bao giờ xóa tệp production" → Mang tính xác suất, có thể bị vi phạm
  • Hook PreToolUse chặn rm trên đường dẫn /prod/ → Tất định, không thể bị vi phạm

Chế Độ Làm Việc

Chế ĐộKhi Nào Dùng
Plan modeNhiệm vụ phức tạp, nhiều cách tiếp cận khả dĩ, cần suy nghĩ trước khi hành động
Thực thi trực tiếpPhạm vi rõ ràng, nhiệm vụ được định nghĩa tốt, không có sự mơ hồ về cách tiếp cận
Cờ -p (không tương tác)Pipeline CI/CD, quy trình tự động, không có con người hiện diện

Dấu hiệu cần plan mode: Nhiệm vụ phức tạp, có nhiều cách tiếp cận hợp lệ, hoặc hậu quả của một cách tiếp cận sai là lớn. Plan mode buộc Claude phải phác thảo cách tiếp cận trước khi thực thi.

Cờ -p: Chạy Claude Code ở chế độ không tương tác. Thiết yếu cho tích hợp CI/CD. Không có prompt xác nhận, không có input tương tác — lệnh phải tự chứa đầy đủ.

Cờ CLI (Headless & Không Tương Tác)

-p là cờ được kiểm tra nhiều nhất, nhưng cũng cần biết phần còn lại của bộ công cụ headless.

CờTác Dụng
-p / --printChế độ không tương tác (print) cho CI/CD và piping
-c / --continueTiếp tục cuộc hội thoại gần nhất trong thư mục này
-r / --resume <id|name>Resume một phiên cụ thể
--bareChế độ tối giản: bỏ qua hook, skill, plugin, MCP, memory, và CLAUDE.md để chạy script nhanh hơn
--output-format text|json|stream-jsonĐịnh dạng output cho -p (json và stream-json có thể parse được)
--json-schema '<schema>'Xác thực output cuối cùng theo một JSON Schema
--max-turns <n>Giới hạn số lượt agentic ở chế độ print
--permission-mode <mode>default, acceptEdits, plan, auto, dontAsk, bypassPermissions
--allowedTools / --disallowedToolsCho phép hoặc từ chối lệnh gọi tool mà không cần hỏi
--add-dir <path>Thêm một thư mục làm việc có thể đọc/sửa
--model <alias|name>Đặt model cho phiên

System prompt — append vs replace (câu hỏi thi ưa dùng):

CờHiệu Ứng
--append-system-prompt "<text>"Thêm vào prompt mặc định; giữ nguyên hướng dẫn tool và chỉ dẫn an toàn
--system-prompt "<text>"Thay thế toàn bộ prompt mặc định; bạn phải tự cung cấp mọi thứ nó cần

Các biến thể *-file (--append-system-prompt-file, --system-prompt-file) nạp cùng nội dung văn bản đó từ một tệp.

Kỹ Thuật Đưa Phản Hồi

  • Ví dụ cụ thể tốt hơn mô tả bằng văn xuôi. Cho xem code bạn muốn, không phải một đoạn văn mô tả nó.
  • Gộp các sửa lỗi độc lập trong một tin nhắn. Sắp trình tự các sửa lỗi phụ thuộc lẫn nhau (sửa A trước, rồi sửa B phụ thuộc vào A).
  • Phiên review độc lập: Không bao giờ review code trong cùng phiên đã viết ra nó. Mô hình vẫn giữ thiên kiến suy luận từ phiên viết code. Hãy bắt đầu một phiên mới để review.
  • Hiệu chỉnh mức độ nghiêm trọng: Dùng ví dụ để chỉ ra điều gì là vấn đề nghiêm trọng so với một điểm nhỏ về phong cách. Không có hiệu chỉnh, mô hình coi mọi vấn đề đều quan trọng như nhau.

Quyền Hạn & Bảo Mật

  • Quyền hạn được kiểm soát ở cấp tool — bạn cấp hoặc từ chối quyền truy cập từng tool cụ thể.
  • Trường allowedTools trong cấu hình agent/skill giới hạn bộ tool.
  • Nguyên tắc đặc quyền tối thiểu: Mỗi agent/skill chỉ nên có quyền truy cập những tool mà nó thực sự cần.
  • Settings cấp dự án (.claude/) được commit và chia sẻ. Settings cá nhân (~/.claude/) thì không.

Quy Tắc Quyết Định Cho Kỳ Thi

Nếu câu hỏi nói...Đáp án khả năng cao là...
"được đảm bảo thực thi", "không thể bị vượt qua"Hook (PreToolUse/PostToolUse)
"hướng dẫn phong cách", "cách tiếp cận ưu tiên"Hướng dẫn trong prompt tại CLAUDE.md
"chỉ áp dụng cho một số đường dẫn tệp cụ thể".claude/rules/ với frontmatter paths
"quy trình tái sử dụng với tool bị giới hạn"Skill (.claude/skills/)
"template prompt có tham số"Command (.claude/commands/)
"pipeline CI/CD", "tự động", "không tương tác"Cờ -p
"thêm rules nhưng giữ hành vi coding mặc định"--append-system-prompt (không phải --system-prompt)
"chạy script nhanh, bỏ qua cấu hình dự án/hook/skill"--bare
"output CI có thể parse bằng máy / được xác thực theo schema"--output-format json + --json-schema
"review chất lượng code đã sinh"Phiên độc lập (không phải phiên đã viết code)
"nhiều cách tiếp cận, nhiệm vụ phức tạp"Plan mode trước
"sở thích cá nhân, không chia sẻ"~/.claude/ (cấu hình cấp người dùng)

Các Bẫy Thi Thường Gặp

BẫyĐáp Án Đúng
"Đặt hết rules vào CLAUDE.md của dự án"Sai — hãy dùng .claude/rules/ cho rules theo đường dẫn
"Hook là guardrail dựa trên prompt"Sai — hook là code tất định, không phải hướng dẫn cho prompt
"Review code trong cùng phiên đã viết ra nó"Sai — mô hình vẫn giữ thiên kiến suy luận; hãy dùng phiên độc lập
"Skill và command là một"Sai — skill có giới hạn tool và context được fork; command là template prompt
"CLAUDE.md của người dùng ghi đè CLAUDE.md của dự án"Sai — dự án có ưu tiên cao hơn cấp người dùng toàn cục
"Cờ -p bật plan mode"Sai — -p bật chế độ không tương tác (piped) cho CI/CD
"--append-system-prompt thay thế system prompt"Sai — nó chỉ thêm vào và giữ nguyên phần mặc định; --system-prompt mới thay thế