jvinhit//lab

Search posts

Type to search across journal entries.

↑ ↓ navigate ↵ open esc close

Claude Code từ zero đến thành thạo · Phần 9 — Các workflow thường gặp

Công thức prompt cho việc hằng ngày: đọc hiểu codebase lạ, sửa bug, refactor, viết test, tạo PR, viết tài liệu, làm việc với ảnh, tham chiếu file bằng @, và bốn cách chạy Claude theo lịch.

Bảy phần trước nói về cơ chế. Phần này nói về thói quen — những công thức prompt cho việc bạn làm mỗi ngày.

Không có gì bí ẩn ở đây. Giá trị nằm ở chỗ thấy được hình dạng của một prompt tốt: mở rộng dần từ câu hỏi rộng tới câu hỏi hẹp, và luôn kết thúc bằng một bước kiểm chứng.

Đọc hiểu một codebase lạ

Vừa vào project mới và cần hiểu cấu trúc nhanh. Đi từ rộng xuống hẹp:

give me an overview of this codebase
explain the main architecture patterns used here
what are the key data models?
how is authentication handled?

Ba mẹo: bắt đầu bằng câu hỏi rộng rồi thu hẹp dần; hỏi về convention và pattern mà project đang dùng; và xin một bảng thuật ngữ riêng của project — thứ này tiết kiệm rất nhiều thời gian về sau.

Tìm code liên quan

find the files that handle user authentication
how do these authentication files work together?
trace the login process from front-end to database

Dùng ngôn ngữ nghiệp vụ của project khi hỏi, đừng dùng từ chung chung. Và cài một code intelligence plugin cho ngôn ngữ của bạn để Claude có “go to definition” và “find references” chính xác thay vì phải grep.

Sửa bug

I'm seeing an error when I run npm test
suggest a few ways to fix the @ts-ignore in user.ts
update user.ts to add the null check you suggested

Ba thứ nên nói kèm, vì chúng cắt bớt vòng đoán mò của Claude:

  • Lệnh để tái hiện lỗi, để nó tự chạy và lấy stack trace
  • Các bước tái hiện, nếu lỗi cần thao tác cụ thể
  • Lỗi xảy ra lúc có lúc không, hay lần nào cũng vậy — hai trường hợp này dẫn tới hai hướng điều tra hoàn toàn khác nhau

Refactor

find deprecated API usage in our codebase
suggest how to refactor utils.js to use modern JavaScript features
refactor utils.js to use ES2024 features while maintaining the same behavior
run tests for the refactored code

Mẫu bốn bước này — tìm → đề xuất → áp dụng → kiểm chứng — là hình dạng chuẩn cho mọi refactor. Ba điều nên yêu cầu thêm: bảo Claude giải thích lợi ích của cách làm mới; yêu cầu giữ tương thích ngược khi cần; và chia refactor thành từng bước nhỏ kiểm chứng được thay vì một cú lớn.

Viết test

find functions in NotificationsService.swift that are not covered by tests
add tests for the notification service
add test cases for edge conditions in the notification service
run the new tests and fix any failures

Claude đọc file test sẵn có của bạn để khớp phong cách, framework và cách assert đang dùng — nên bạn không cần mô tả convention test, chỉ cần mô tả hành vi muốn kiểm chứng.

Với độ phủ, hãy hỏi thẳng: bảo Claude chỉ ra các edge case bạn có thể đã bỏ sót. Nó phân tích được các nhánh code và đề xuất test cho điều kiện lỗi, giá trị biên, và input bất thường — nhóm dễ quên nhất.

Tạo pull request

Cách nhanh: nói thẳng create a pr for my changes. Cách có kiểm soát hơn:

summarize the changes I've made to the authentication module
create a pr
enhance the PR description with more context about the security improvements

Một chi tiết tiện: khi bạn tạo PR bằng gh pr create, session tự động được liên kết với PR đó. Tìm lại sau bằng claude --from-pr 1234, hoặc dán URL của PR vào ô tìm kiếm của picker /resume (phần 8).

Luôn review PR do Claude sinh ra trước khi submit, và hỏi nó chỉ ra rủi ro hoặc điểm cần cân nhắc trong chính thay đổi đó.

Viết tài liệu

find functions without proper JSDoc comments in the auth module
add JSDoc comments to the undocumented functions in auth.js
improve the generated documentation with more context and examples
check if the documentation follows our project standards

Nói rõ kiểu tài liệu bạn muốn (JSDoc, docstring…), yêu cầu có ví dụ, và ưu tiên tài liệu cho public API, interface và logic phức tạp thay vì phủ đều mọi hàm.

Làm việc trong thư mục không phải code

Claude Code chạy được ở bất kỳ thư mục nào. Chạy nó trong một vault ghi chú, một thư mục tài liệu, hay bất kỳ tập file markdown nào để tìm, sửa và tổ chức lại nội dung y như với code.

Thư mục .claude/ và CLAUDE.md nằm cạnh thư mục cấu hình của công cụ khác mà không xung đột. Claude đọc file mới ở mỗi lần gọi tool, nên nó thấy được thay đổi bạn vừa làm ở ứng dụng khác ngay ở lần đọc kế tiếp.

Làm việc với ảnh

Ba cách đưa ảnh vào hội thoại: kéo thả vào cửa sổ Claude Code; copy ảnh rồi dán bằng Ctrl+V (Cmd+V trên iTerm2 ở macOS); hoặc đưa đường dẫn — Analyze this image: /path/to/your/image.png.

Ảnh dùng được cho bốn nhóm việc:

Describe the UI elements in this screenshot
Here's a screenshot of the error. What's causing it?
This is our current database schema. How should we modify it for the new feature?
Generate CSS to match this design mockup

Dùng ảnh khi mô tả bằng chữ sẽ rối hoặc dài dòng. Bạn dùng được nhiều ảnh trong một hội thoại. Khi Claude nhắc tới một ảnh, ví dụ [Image #1], bấm Cmd+Click (Mac) hoặc Ctrl+Click (Windows/Linux) vào link để mở ảnh bằng trình xem mặc định.

Tham chiếu file bằng @

Dùng @ để đưa thẳng file hoặc thư mục vào, không phải chờ Claude tự đi đọc:

Explain the logic in @src/utils/auth.js
What's the structure of @src/components?
Show me the data from @github:repos/owner/repo/issues

Ba dạng, ba hành vi khác nhau: tham chiếu file đưa toàn bộ nội dung vào hội thoại; tham chiếu thư mục chỉ đưa danh sách file kèm thông tin, không phải nội dung; tham chiếu MCP resource theo dạng @server:resource lấy dữ liệu từ server đã nối.

Hai chi tiết đáng nhớ:

  • Gõ @ để mở menu gợi ý đường dẫn, Enter hoặc Tab để nhận, rồi Enter lần nữa để gửi.
  • Tham chiếu @file cũng kéo theo CLAUDE.md ở thư mục của file đó và các thư mục cha vào context.

Chạy Claude theo lịch

Bốn lựa chọn, khác nhau ở chỗ nó chạy:

Lựa chọnChạy ở đâuHợp với
RoutinesCloud, mặc định do Anthropic quản lýTask cần chạy cả khi máy bạn tắt. Kích hoạt được bằng lịch, API call, hoặc sự kiện GitHub
Desktop scheduled tasksMáy của bạn, qua desktop appTask cần truy cập trực tiếp file local, tool local, hoặc thay đổi chưa commit
GitHub ActionsCI pipeline của bạnTask gắn với sự kiện repo như PR mở, hoặc lịch cron nên nằm cạnh cấu hình workflow
/loopPhiên CLI hiện tạiKiểm tra định kỳ nhanh trong lúc phiên còn mở

Khi viết prompt cho task chạy theo lịch, nói rõ thành công trông như thế nào và làm gì với kết quả. Task chạy tự chủ nên nó không hỏi lại được. Ví dụ: “Review open PRs labeled needs-review, leave inline comments on any issues, and post a summary in the #eng-reviews Slack channel.”

Phần 19 sẽ đi sâu vào routines, scheduled task và /loop.

Hỏi Claude về chính nó

Claude có sẵn quyền truy cập tài liệu của mình và trả lời được câu hỏi về tính năng lẫn giới hạn của nó:

can Claude Code create pull requests?
how does Claude Code handle permissions?
what skills are available?
what are the limitations of Claude Code?

Điểm đáng giá: Claude luôn truy cập được tài liệu Claude Code mới nhất, bất kể bạn đang dùng phiên bản nào. Nên khi bạn không chắc một tính năng còn tồn tại không, hỏi thẳng nó nhanh hơn tra docs.

Muốn học bằng demo thay vì bằng chữ thì chạy /powerup.


Năm workflow ở tầng cao hơn

Sáu công thức trên là prompt. Năm cái dưới đây là cách tổ chức công việc, và mỗi cái sẽ có một phần riêng về sau trong series.

Resume hội thoại cũ — khi một task kéo dài qua nhiều buổi, đừng giải thích lại từ đầu:

claude --continue

Chạy nhiều phiên song song bằng worktree — làm feature ở terminal này trong lúc Claude sửa bug ở terminal kia, mà thay đổi không đụng nhau. Mỗi git worktree là một checkout riêng trên branch riêng:

claude --worktree feature-auth

Chạy cùng lệnh đó với tên khác ở terminal thứ hai là có một phiên song song cô lập. Repo phải có ít nhất một commit thì worktree mới tạo được. (Phần 17.)

Lập plan trước khi sửa — với thay đổi bạn muốn review trước khi nó chạm đĩa:

claude --permission-mode plan

Giao việc nghiên cứu cho subagent — khám phá một codebase lớn sẽ làm đầy context bằng các lượt đọc file. Giao đi để chỉ kết luận quay về:

use a subagent to investigate how our auth system handles token refresh

Subagent đọc file trong context window riêng của nó và báo lại bản tóm tắt. (Phần 16.)

Đưa Claude vào script — chạy không tương tác cho CI, pre-commit hook, hoặc xử lý hàng loạt. Stdin và stdout hoạt động như mọi công cụ Unix:

git log --oneline -20 | claude -p "summarize these recent commits"

(Phần 19.)

Nguồn

Docs gốc cập nhật thường xuyên; khi có mâu thuẫn, tin bản tiếng Anh.