Claude Code: Hướng dẫn tối ưu hóa để biến AI thành "người đồng đội" lập trình thực thụ
Bài viết khám phá sâu về Claude Code, hướng dẫn cách chuyển từ sử dụng cơ bản sang chuyên sâu thông qua việc cấu hình CLAUDE.md, xây dựng Skills, Subagents, và tích hợp MCPs để tối ưu hóa quy trình phát triển phần mềm hàng ngày.

Claude Code là một trong những công cụ mà khoảng cách giữa người dùng bình thường và người dùng thành thạo là cực kỳ lớn. Người dùng thông thường chỉ nhập câu lệnh (prompt), chấp nhận gợi ý và coi nó như một tính năng autocomplete nâng cao. Trong khi đó, những người dùng chuyên nghiệp ("daily driver") coi nó như một tác nhân (agent) có thể lập trình được, có bộ nhớ, các lệnh tùy chỉnh, các phiên song song và một thiết lập dự án tích lũy theo thời gian.
Claude Code
Hướng dẫn này dành cho nhóm người thứ hai — những người đã biết cách sử dụng cơ bản và muốn khai thác tối đa sức mạnh của Claude Code.
Tư duy vượt ra ngoài cơ bản
Khi bạn ngừng coi Claude Code là một chatbot "nhập lệnh và chờ đợi" và bắt đầu coi nó là một tác nhân tự chủ cần có giới hạn, quy trình làm việc của bạn sẽ thay đổi hoàn toàn. Nguyên tắc quan trọng nhất từ Boris Cherny và đội ngũ Anthropic là: hãy cung cấp cho Claude một cách để tự xác minh công việc của chính nó. Nếu không có điều này, bạn là vòng lặp phản hồi duy nhất. Nếu có, Claude sẽ lặp lại cho đến khi mọi thứ thực sự hoạt động, và Boris cho rằng điều này thôi thúc cải thiện chất lượng gấp 2-3 lần.
Một số mô hình thay đổi cách bạn hoạt động hàng ngày:
- Khám phá -> Lập kế hoạch -> Viết code: Sử dụng chế độ Plan (Shift+Tab hai lần) để Claude chỉ đọc và khám phá. Đọc tệp, theo dõi luồng, hiểu mô hình dữ liệu. Sau đó lấy kế hoạch, rồi mới thực thi.
- Tham chiếu, đừng mô tả: Thay vì nói "nhìn vào mô-đun auth", hãy gõ
@src/auth/login.py. Thay vì dán lỗi, hãy chuyển tiếp nó:cat error.log | claude. - Ủy quyền, đừng pair-program: Cat Wu (đội ngũ Claude Code) cho biết: "Mô hình hoạt động tốt nhất nếu bạn coi nó như một kỹ sư mà bạn đang ủy quyền nhiệm vụ, chứ không phải là một lập trình viên đôi mà bạn hướng dẫn từng dòng."
Hiểu đúng về thư mục .claude
Hầu hết mọi người mở .claude/ một lần, thấy CLAUDE.md và không bao giờ nhìn sâu hơn. Thực tế, đây là một hệ thống cấu hình phân tầng.
- Phạm vi dự án (Project scope): Nằm trong
.claude/bên trong repo của bạn, được commit vào git để cả đội chia sẻ. - Phạm vi toàn cầu (Global scope): Nằm trong
~/.claude/và áp dụng cho mọi dự án trên máy của bạn.
Mô hình tư duy: các tệp dự án mô tả dự án, các tệp toàn cầu mô tả bạn.
Các tệp quan trọng bao gồm:
CLAUDE.md: Hướng dẫn được tải mỗi phiên.CLAUDE.local.md: Ghi chú riêng tư của bạn cho dự án (không nên commit vào git).skills/: Các prompt có thể tái sử dụng.agents/: Định nghĩa cho các tác nhân con (subagents).rules/: Hướng dẫn theo chủ đề, có thể giới hạn theo đường dẫn tệp.
Bí mật của CLAUDE.md
CLAUDE.md được tải vào đầu mỗi phiên. Nếu cấu hình sai, Claude sẽ lặp lại cùng một lỗi. Nếu đúng, cùng một câu lệnh sẽ tạo ra kết quả tốt hơn đáng kể.
Boris rất thẳng thắn về hai điều quan trọng hơn cả:
- Giữ nó ngắn gọn: Các tệp dài sẽ chôn vùi các quy tắc quan trọng. Với mỗi dòng, hãy hỏi: "Việc xóa dòng này có gây ra lỗi cho Claude không?". Nếu không, hãy xóa nó.
- Để Claude tự viết quy tắc: Bất cứ khi nào Claude làm sai, hãy bảo nó: "Update CLAUDE.md so you do not repeat this" (Cập nhật CLAUDE.md để bạn không lặp lại điều này). Claude đáng ngạc nhiên là giỏi trong việc chắt lọc các lỗi của chính nó thành các quy tắc chính xác.
Ví dụ về một CLAUDE.md tối giản từ đội ngũ Claude Code:
# Quy trình phát triển
**Luôn sử dụng `bun`, không dùng `npm`.**
# 1. Thay đổi code
# 2. Kiểm tra kiểu (typecheck) nhanh
bun run typecheck
# 3. Chạy test
bun run test -- -t "tên test"
# 4. Kiểm tra lỗi (lint) trước khi commit
bun run lint
# 5. Trước khi tạo PR
bun run lint:claude && bun run test
Đó là toàn bộ tệp. Chỉ chứa các lệnh xây dựng mà Claude không thể đoán được, thứ tự chính xác và nghi thức trước PR. Không có sở thích kiểu code, không có tour codebase.
Skills - Đơn vị của chuyên môn tái sử dụng
Skills cho phép Claude Code chuyển từ "một tác nhân có thể làm mọi thứ" thành "một tác nhân làm những việc cụ thể cực tốt cho dự án của bạn".
Một Skill thực chất là một thư mục chứa tệp SKILL.md với hướng dẫn. Tên thư mục trở thành lệnh slash (ví dụ: /summarize-changes).
Điều khiến Skills trở nên mạnh mẽ:
- Tiết lộ dần (Progressive disclosure): Claude chỉ tải mô tả ngắn gọn khi bắt đầu phiên. Toàn bộ Skill chỉ tải khi thực sự cần.
- Skills là thư mục, không phải tệp: Bạn có thể đóng gói mẫu, tài liệu tham khảo, script.
- Shell nội tuyến: Các dòng bắt đầu bằng
!sẽ chạy lệnh và chèn đầu ra tại thời điểm gọi.
Ví dụ, bạn có thể tạo một Skill cho các quy ước API trong Go, bao gồm các mẫu (templates) cho handler mới, đảm bảo mọi lập trình viên mới đều có thể tạo ra một endpoint tuân thủ quy chuẩn mà không cần đọc toàn bộ codebase.
Xây dựng Subagent tùy chỉnh
Một subagent chạy trong cửa sổ ngữ cảnh (context window) riêng của nó với quyền công cụ riêng và báo cáo lại một bản tóm tắt. Nó có thể đọc năm mươi tệp mà không làm đầy phiên chính của bạn.
Ví dụ, một tác nhân /pr-review có thể được cấu hình để:
- Chạy
git diff main...HEAD. - Đọc các tệp đầy đủ, không chỉ ngữ cảnh diff.
- Kiểm tra chéo với
CLAUDE.mdvà các quy tắc. - Gắn cờ các lỗi bảo mật, các trường hợp edge bị bỏ lỡ, vi phạm quy ước.
- Đưa ra вердикт: SHIP, FIX FIRST, hoặc REWORK.
Việc sử dụng subagent giúp giữ cho phiên chính của bạn sạch sẽ và tập trung vào bức tranh lớn.
MCPs và Plugins - Công cụ sức mạnh
MCP (Model Context Protocol) biến Claude Code từ một tác nhân viết code thành một tác nhân có nhận thức về hệ thống. Máy chủ MCP tiếp xúc các công cụ bên ngoài như cơ sở dữ liệu, công cụ thiết kế, trình theo dõi lỗi hoặc ghi chú của bạn cho Claude.
Các MCP phổ biến cho kỹ sư:
- GitHub: Quản lý repo, PR, issue.
- Context7: Tài liệu thư viện trực tiếp.
- Sentry: Ngữ cảnh lỗi thực tế, stack traces.
- Postgres / Supabase: Truy vấn DB dev trực tiếp.
- Obsidian: Đọc vault ghi chú cá nhân của bạn.
Kết hợp Claude Code với Obsidian thông qua MCP tạo ra một kiến trúc bộ nhớ ba tầng mạnh mẽ: lưu trữ nóng (nhật ký phiên hàng ngày), lưu trữ ấm (ghi chú dự án), và lưu trữ lạnh (quyết định kiến trúc và kiến thức tái sử dụng).
Tối ưu hóa quy trình làm việc hàng ngày
Để thực sự trở thành một "daily driver", hãy cân nhắc các quy trình sau:
- Các phiên song song: Boris và đội ngũ gọi đây là "mở khóa năng suất lớn nhất": ba đến năm git worktree, mỗi cái chạy một phiên Claude riêng. Sử dụng chế độ agent view (
claude agents) làm mặt bằng điều khiển. - Mô hình Người viết/Người đánh giá: Phiên A thực hiện. Phiên B đánh giá trong ngữ cảnh mới. Sao chép đánh giá lại, sửa, lặp lại.
- Lệnh
/goal: Thiết lập một điều kiện hoàn thành. Claude sẽ tiếp tục làm việc cho đến khi điều kiện đó đúng. Ví dụ:/goal all tests in test/auth pass and the lint step is clean. - Compact tại các cột mốc: Sau khi hoàn thành một khối logic:
/compactđể bảo toàn các quyết định đã đưa ra, tệp đã thay đổi và các lệnh test.
Kết luận
Claude Code thực sự phát huy tác dụng khi bạn ngừng coi nó như ChatGPT trong terminal. Bạn ngừng suy nghĩ "tôi cần viết đoạn code này" và bắt đầu suy nghĩ "tôi cần thiết lập Claude để viết đoạn code này tốt".
Thiết lập chính là công việc. Thực hiện chủ yếu là xác minh. Sự thay đổi thực sự xảy ra khi bạn ngừng coi Claude Code là công cụ bạn dùng để viết code và bắt đầu coi nó là thứ bạn huấn luyện, cấu hình và vận hành như một người đồng đội thực thụ.
Bài viết liên quan
Phần mềm
Vivado 2026.1: AMD loại bỏ hỗ trợ Linux trên bản miễn phí gây tranh cãi
24 tháng 5, 2026

Phần mềm
Intel và AMD vá tổng cộng 70 lỗ hổng bảo mật trong Patch Tuesday tháng 5
13 tháng 5, 2026

Phần mềm
Runtime ra mắt hạ tầng sandbox cho coding agents, giúp toàn bộ đội ngũ phát triển phần mềm an toàn
21 tháng 5, 2026
