PKD / LITE

Claude Code CLI: Từ phiên tương tác đến quy trình kiểm thử

Claude Code CLI giúp đưa một yêu cầu lập trình vào terminal và kiểm tra kết quả ngay trong dự án.

  ____ _        _   _ ____  _____   ____ ___  ____  _____
 / ___| |      / \ | |  _ \| ____| / ___/ _ \|  _ \| ____|
| |   | |     / _ \| | | | |  _|  | | | | | | | | |  _|
| |___| |___ / ___ \ |_| | | |___ | |__| |_| | |_| | |___
 \____|_____/_/   \_\____/|_____| \____\___/|____/|_____|
             CLI PLAYBOOK FOR AUTOMATION TESTING & DEV

🧭 Mô hình tổng thể

Yêu cầu → Đọc repo → Thực hiện thay đổi
                       ↓
             Chạy kiểm tra → Xem diff
                       ↓
                  Người dùng duyệt

Claude Code có thể đọc và sửa tệp, chạy lệnh theo quyền được cấp, rồi trả kết quả trong phiên terminal. Người dùng vẫn cần kiểm tra diff và kết quả lệnh trước khi chấp nhận thay đổi.

🖥️ Cài đặt và xác thực

Tài liệu Anthropic hiện nêu Node.js 18+ và hỗ trợ macOS, Linux cùng Windows qua WSL hoặc Git for Windows. Cách cài đặt npm tiêu chuẩn:

npm install -g @anthropic-ai/claude-code
cd ten-du-an
claude

Khi khởi động lần đầu, chọn phương thức đăng nhập được tài khoản của mình hỗ trợ. Có thể dùng Claude.ai với gói phù hợp, Anthropic Console, hoặc cấu hình nền tảng doanh nghiệp. Cách cài đặt và lựa chọn đăng nhập có thể thay đổi; xem hướng dẫn cài đặt chính thức trước khi thiết lập.

🧠 Cung cấp hướng dẫn bằng CLAUDE.md

CLAUDE.md lưu chỉ dẫn dự án như lệnh kiểm thử, quy ước code và ranh giới cần tuân thủ. Claude Code tự nạp các tệp memory phù hợp vào ngữ cảnh; có thể dùng /memory để xem những tệp nào đang được áp dụng. Nội dung trong tệp này là hướng dẫn, không thay thế việc kiểm tra thay đổi.

Ví dụ nội dung cho dự án Playwright TypeScript:

# Quy ước dự án

## Lệnh
- Chạy toàn bộ test: `npx playwright test`
- Chạy một file: `npx playwright test tests/<file>.spec.ts`

## Quy ước
- Ưu tiên locator theo vai trò người dùng như `getByRole` và `getByLabel`.
- Dùng assertion chờ trạng thái thay vì `page.waitForTimeout()`.
- Đọc hướng dẫn dự án trước khi sửa file.

Với dự án áp dụng Spec-Driven Development (SDD), thêm chỉ dẫn về thứ tự đọc spec và traceability. Giữ CLAUDE.md ngắn; để nội dung chi tiết ở tài liệu chuẩn của repo thay vì sao chép checklist vào nhiều nơi:

# SDD workflow

## Source of truth
- Đọc `AGENTS.md` trước khi phân tích hoặc sửa repository.
- Với thay đổi implementation, đọc `specs/TECHNICAL-DESIGN.md` và spec/ADR liên quan.
- Khi tài liệu mâu thuẫn, theo thứ tự ưu tiên được quy định trong `AGENTS.md`.

## Trước khi implement
- Xác định Business Requirement, Use Case, Entity/Rule và Acceptance Criteria (AC).
- Lập traceability: Requirement → Use Case → Entity/Rule → AC → Test → Code.
- Làm theo thứ tự task trong technical design; không tự đổi business rule hoặc schema.

## Kiểm tra và hoàn tất
- Mỗi behavior test phải gắn với mã AC.
- Chạy format, validation, test, build và E2E checks theo `AGENTS.md`.
- Cập nhật spec, tài liệu vận hành và changelog liên quan trong cùng thay đổi.
- Nếu thay đổi schema, public URL, privacy hoặc chi phí vận hành, cập nhật ADR
  và chờ owner xác nhận trước khi implement phần bị ảnh hưởng.

Các dòng trên là ví dụ; hãy thay tên và đường dẫn bằng tài liệu thực tế của dự án. Claude Code hiện có thể đọc AGENTS.md; có thể dùng CLAUDE.md để bổ sung lối vào và quy ước dành riêng cho Claude. Tránh tạo hai bản checklist khác nhau vì chỉ dẫn mâu thuẫn có thể làm agent áp dụng sai workflow.

Xem hướng dẫn quản lý memory để biết cách tổ chức chỉ dẫn và nhập thêm tệp.

⌨️ Các lệnh CLI thường dùng

Lệnh Công dụng
claude Mở phiên tương tác trong thư mục hiện tại
claude "giải thích dự án này" Mở phiên với yêu cầu khởi đầu
claude -p "tóm tắt log này" Chạy ở chế độ không tương tác rồi thoát
claude -c Tiếp tục phiên gần nhất trong thư mục hiện tại
claude -r <session-id> Chọn hoặc khôi phục phiên theo mã phiên
claude --help Xem trợ giúp của phiên bản đang cài

Trong phiên tương tác, /clear bắt đầu ngữ cảnh mới và /compact rút gọn ngữ cảnh hiện tại. Tập lệnh slash có thể thay đổi theo phiên bản và cấu hình; kiểm tra danh sách trong CLI đang dùng. Tham khảo CLI reference.

🧪 Quy trình kiểm thử với Playwright

Với task kiểm thử, giao yêu cầu có phạm vi cụ thể: nêu file liên quan, hành vi cần kiểm tra, tiêu chí pass và giới hạn chỉnh sửa. Sau khi CLI hoàn tất, tự xem diff, chạy test và xác minh kết quả.

Ví dụ một yêu cầu kiểm thử đăng nhập:

Đọc cấu trúc dự án và hướng dẫn trong CLAUDE.md.
Tạo Page Object cho trang đăng nhập hiện có, rồi viết test cho
đăng nhập thành công và sai mật khẩu. Chỉ sửa các file cần thiết.
Chạy test liên quan và báo file đã đổi cùng kết quả thực tế.

Quy trình gọn:

Mở phiên → Giao task có tiêu chí → Xem diff → Chạy test → Duyệt

Không nên yêu cầu agent tự lặp vô hạn cho đến khi “mọi test đều pass”. Nếu test thất bại, cần xem log và xác định test, môi trường hay implementation là nguyên nhân trước khi sửa tiếp.

🧩 Tạo Skill cho quy trình verification

Skill là bộ hướng dẫn có thể tái sử dụng, đặt trong SKILL.md. Skill phù hợp khi thường xuyên lặp lại cùng một checklist hoặc quy trình nhiều bước. Với Skill dùng chung trong repo, tạo thư mục .claude/skills/<tên-skill>/; gọi trực tiếp bằng /<tên-skill>. Phần description giúp Claude nhận biết khi nào nên tự dùng Skill. Xem hướng dẫn Skills chính thức.

Ví dụ dưới đây tạo /verification, một Skill chỉ kiểm tra thay đổi và báo bằng chứng, không tự sửa file. Dùng tên riêng này để tránh nhầm với Skill /verify được Claude Code cung cấp sẵn ở một số phiên bản.

Tạo file .claude/skills/verification/SKILL.md:

---
name: verification
description: Kiểm tra thay đổi sau khi sửa code hoặc tài liệu; dùng khi cần chạy kiểm tra phù hợp và báo kết quả có bằng chứng.
---

# Verification

1. Xem `git status` và diff để xác định file thuộc task; bỏ qua thay đổi không liên quan.
2. Đọc hướng dẫn repo và tìm command kiểm tra đã có sẵn, chẳng hạn trong `package.json`.
3. Chọn kiểm tra hẹp nhất phù hợp với loại thay đổi. Trước khi chạy command có tác động lớn, hãy nêu rõ tác động và xin xác nhận.
4. Chỉ chạy kiểm tra; không sửa file, cài dependency, commit hoặc push.
5. Báo command đã chạy, pass/fail, lỗi chính và kiểm tra nào chưa chạy cùng lý do.
6. Không kết luận pass nếu không có output xác nhận; phân biệt lỗi môi trường với lỗi sản phẩm.

Mở hoặc tiếp tục phiên Claude Code trong repo rồi gọi /verification. Kiểm tra xem Skill đã đọc đúng diff, chọn command phù hợp và báo trung thực các kiểm tra bị bỏ qua chưa. Nếu vừa tạo thư mục .claude/skills/ trong phiên hiện tại mà Skill chưa xuất hiện, dùng /reload-skills hoặc khởi động lại phiên. Quy trình áp dụng ở dự án thật phải theo hướng dẫn và chính sách quyền của repo đó.

🔐 Quyền chạy lệnh và mức tự động

Claude Code áp dụng quyền cho thao tác đọc, sửa tệp và chạy lệnh; các thao tác nhạy cảm có thể cần người dùng chấp thuận. Hãy cấp quyền vừa đủ cho task và xem lại lệnh trước khi phê duyệt.

--dangerously-skip-permissions bỏ qua lời nhắc quyền. Không dùng cờ này như cách mặc định để chạy test hoặc CI; chỉ cân nhắc trong môi trường cách ly đã kiểm soát, sau khi hiểu rõ phạm vi lệnh có thể được thực hiện. Chi tiết nằm trong tài liệu bảo mật Anthropic.

✅ Kết luận

Claude Code CLI hữu ích khi task có phạm vi rõ, chỉ dẫn dự án cập nhật và cách kiểm tra kết quả cụ thể. Skill giúp chuẩn hóa checklist lặp lại như /verification; quyết định chấp nhận diff và kết quả kiểm thử vẫn cần dựa trên bằng chứng mà người dùng kiểm tra được.

🎒 Tóm tắt bỏ túi (Take away)

Điểm chính Hành động
Hướng dẫn dự án Ghi lệnh và quy ước vào CLAUDE.md; kiểm tra /memory.
Quy trình lặp lại Tạo project Skill trong .claude/skills/<tên>/SKILL.md; thử gọi trực tiếp rồi rà kết quả.
Giao task Nêu phạm vi, tiêu chí hoàn thành và file được phép sửa.
Kiểm tra kết quả Đọc diff, chạy test liên quan và đối chiếu log.
Quyền CLI Chỉ cấp quyền cần thiết; tránh bỏ qua xác nhận theo mặc định.