Thư viện prompt
Tuyển tập prompt dùng được ngay, xếp theo giai đoạn của một vòng phát triển: khám phá → thiết kế → xây dựng → phát hành → vận hành. Phần trong {...} là chỗ bạn thay bằng thông tin của mình (giá trị trong ví dụ chỉ để minh hoạ).
Mỗi prompt có hai phiên bản - Tiếng Việt và English - chọn tab rồi bấm icon copy ở góc khối code để sao chép nguyên văn.
Đọc cùng Best practices và Quy trình thường gặp để hiểu vì sao các prompt này hiệu quả.
Khám phá & hiểu codebase
Phần tiêu đề “Khám phá & hiểu codebase”Làm quen repo mới
cho tôi tổng quan codebase này: kiến trúc, các thư mục chính, và các phần ghép với nhau ra saogive me an overview of this codebase: architecture, main directories, and how the pieces fit togetherMô tả điều bạn muốn biết, không phải file cần đọc. Claude tự khám phá và trả về bản tóm tắt.
Giải thích code lạ
giải thích {src/scheduler/queue.ts} làm gì và dữ liệu chảy qua nó thế nào. Viết ra dưới dạng {một trang HTML có sơ đồ, rồi mở trong browser}explain what {src/scheduler/queue.ts} does and how data flows through it. Write it up as {an HTML page with a diagram, then open it in the browser}Nêu file và định dạng câu trả lời bạn muốn.
Tìm nơi xử lý một hành vi
chúng ta {kiểm tra loại file được upload} ở đâu?where do we {validate the type of an uploaded file}?Tìm theo hành vi thay vì theo tên file - dùng được cả khi bạn không biết file tên gì.
Kiểm tra trước khi xoá
nếu tôi xoá {hàm retryWithBackoff} thì cái gì sẽ hỏng?if I delete {the retryWithBackoff function}, what would break?Danh sách nơi gọi và ảnh hưởng lan toả cho biết đây là dọn dẹp một dòng hay một thay đổi cần phối hợp.
Truy vết code hình thành thế nào
đọc lịch sử commit của {internal/auth/session.go} và tóm tắt nó đã tiến hoá ra sao và vì saoread the commit history of {internal/auth/session.go} and summarize how it evolved and whyTrỏ tới commit history khi câu hỏi là vì sao, không phải cái gì.
Ước lượng phạm vi thay đổi
lên kế hoạch {thêm dark mode toggle vào settings} thì cần sửa gì?plan out {adding a dark mode toggle to settings} - what would need to change?Danh sách file cho biết đây là một component hay một thay đổi xuyên suốt.
Hỏi câu hỏi sản phẩm
tôi là {PM}. Dẫn tôi qua những gì xảy ra khi user {bấm Export to PDF}, từ UI xuống tới kết quảI'm a {PM}. Walk me through what happens when a user {clicks Export to PDF}, from the UI down to the resultNêu vai trò của bạn để câu trả lời được đặt ở đúng tầng.
Thiết kế & lập kế hoạch
Phần tiêu đề “Thiết kế & lập kế hoạch”Lập kế hoạch thay đổi nhiều file
lên kế hoạch refactor {module payment} để {hỗ trợ nhiều loại tiền tệ}. Liệt kê các file bạn sẽ sửa, nhưng chưa sửa gì cảplan out a refactor of {the payment module} to {support multiple currencies}. List the files you'd change, but don't change anything yetThêm “chưa sửa gì” tách khám phá khỏi thay đổi. Muốn mặc định như vậy: nhấn Shift+Tab vào plan mode.
Viết spec bằng phỏng vấn
tôi muốn xây {rate limit theo từng workspace}. Hãy phỏng vấn tôi về cách triển khai, UX, edge case và các đánh đổi đến khi bao hết mọi thứ, rồi viết spec vào SPEC.mdI want to build {per-workspace rate limiting}. Interview me about the implementation, UX, edge cases, and trade-offs until it's fully covered, then write the spec to SPEC.mdNhờ được phỏng vấn thay vì tự viết spec - Claude hỏi có cấu trúc đến khi yêu cầu đủ rõ.
Biến biên bản họp thành ticket
đọc {@meeting-notes.md} và viết ra các action item, rồi tạo một ticket {Linear} cho mỗi cái kèm acceptance criteriaread {@meeting-notes.md} and write out the action items, then create a {Linear} ticket for each one with acceptance criteriaBỏ qua bước chép tay. Cần MCP kết nối tracker.
Vạch edge case trước khi làm
liệt kê các error state, empty state và edge case của {luồng upload file} mà thiết kế cần baolist the error states, empty states, and edge cases of {the file upload flow} that the design needs to coverHỏi cái còn thiếu, không phải cái đang có.
Mockup → prototype chạy được
[dán mockup]
dựng một prototype tôi bấm thử được, khớp layout và các trạng thái trong ảnh[paste mockup]
build a clickable prototype that matches the layout and states in the imagePrototype bấm được trả lời những câu hỏi mockup tĩnh không trả lời được.
Triển khai từ ảnh thiết kế
[dán thiết kế]
triển khai thiết kế này, rồi chụp ảnh kết quả, so với ảnh gốc và sửa các khác biệt[paste design]
implement this design, then screenshot the result, compare it against the original image, and fix the differencesTạo cho Claude một vòng lặp tự kiểm chứng: render → so sánh → sửa, không cần bạn chỉ từng chỗ.
Xây dựng
Phần tiêu đề “Xây dựng”Triển khai
Phần tiêu đề “Triển khai”Theo pattern có sẵn
xem {webhook handler của GitHub} được triển khai thế nào để hiểu pattern, rồi làm {webhook handler cho Stripe} theo đúng cách đólook at how {the GitHub webhook handler} is implemented to understand the pattern, then build {the Stripe webhook handler} the same wayKhông có mẫu tham chiếu, Claude dùng “best practice” chung. Có mẫu, nó khớp đúng quy ước codebase bạn.
Tính năng nhỏ, rõ ràng
thêm endpoint {/health} trả về {version của app và uptime}add a {/health} endpoint that returns {the app version and uptime}Nêu input/output, đừng nêu cách xây.
Công cụ nội bộ nhỏ
tạo {một Kanban board kéo-thả có ba cột} bằng HTML, CSS và vanilla JavaScript, rồi mở trong browserbuild {a drag-and-drop Kanban board with three columns} using HTML, CSS, and vanilla JavaScript, then open it in the browserKhông cần project, framework hay build step.
Làm một issue trọn vẹn
đọc issue #{312}, triển khai bản sửa, và chạy testread issue #{312}, implement the fix, and run the testsĐưa số issue thay vì bản tóm tắt - Claude tự đọc full ticket nên không bỏ sót yêu cầu.
Sinh tài liệu cho code
tìm {các hàm public trong src/auth/} chưa có comment {JSDoc} và thêm vào, khớp style đang dùng trong filefind {the public functions in src/auth/} that don't have {JSDoc} comments and add them, matching the style already used in the fileNêu phạm vi và định dạng.
Sửa copy khắp codebase
tìm mọi nơi viết "{Sign up free}" hoặc biến thể gần giống, cho tôi xem từng chỗ kèm ngữ cảnh, rồi đổi hết thành "{Start free trial}". Đừng đụng vào test và changelogfind every place that says "{Sign up free}" or a close variant, show me each one with context, then change them all to "{Start free trial}". Don't touch tests or the changelogYêu cầu cả biến thể và nói rõ cái gì bỏ qua.
Viết bản nháp theo mẫu cũ
đọc {các privacy impact assessment} trong {legal/pia/} để học cấu trúc và văn phong, rồi viết một bản mới cho {tích hợp analytics mới}read {the privacy impact assessments} in {legal/pia/} to learn the structure and tone, then write a new one for {the new analytics integration}Trỏ tới một thư mục công việc đã hoàn thiện thay vì mô tả văn phong bằng lời.
Viết test, chạy, sửa lỗi
viết test cho {app/parsers/feed.py}, chạy chúng, và sửa các test failwrite tests for {app/parsers/feed.py}, run them, and fix any failuresGộp cả viết + chạy + sửa vào một prompt để Claude tự lặp, không dừng lại chờ chỉ dẫn.
TDD
viết test cho {luồng reset password} trước, rồi triển khai đến khi test passwrite tests for {the password reset flow} first, then implement until they passTest định nghĩa thời điểm công việc hoàn tất.
Lấp lỗ hổng từ báo cáo coverage
đọc {coverage/coverage-summary.json} và thêm test cho các file coverage thấp nhất đến khi mỗi file trên {80}%read {coverage/coverage-summary.json} and add tests for the lowest-coverage files until every file is above {80}%Trỏ tới báo cáo thật thay vì đoán xem cái gì chưa có test.
Refactor
Phần tiêu đề “Refactor”Migrate một pattern
migrate mọi thứ từ {logging API cũ} sang {structured logger}: xác định mọi nơi cần đổi, rồi thực hiệnmigrate everything from {the old logging API} to {the structured logger}: identify every place that needs to change, then do itYêu cầu liệt kê trước nghĩa là các call site nằm trong câu trả lời - bạn kiểm được có bỏ sót không.
Port sang ngôn ngữ khác
port {module Python này} sang {Rust}, giữ nguyên {public API và hành vi test}port {this Python module} to {Rust}, keeping {the public API and test behavior} unchangedNói rõ cái gì phải giữ nguyên, không chỉ nói ngôn ngữ đích.
Tối ưu theo mục tiêu đo được
tối ưu {query search} để đưa {p95 latency} từ {2s} xuống dưới {500ms}optimize {the search query} to bring {p95 latency} from {2s} down under {500ms}Nêu chỉ số và ngưỡng → định nghĩa “xong” không còn mơ hồ.
Sửa bug hiển thị chính xác
{nút login} tràn {20px} khỏi {viền card} trên {mobile}. Sửa đi.{the login button} overflows {20px} past {the card border} on {mobile}. Fix it.Phản hồi hình ảnh chính xác cho ra bản sửa chính xác: nêu đúng element, số đo, viewport.
Review
Phần tiêu đề “Review”Review trước khi commit
review các thay đổi chưa commit của tôi và chỉ ra thứ gì trông rủi ro trước khi tôi commitreview my uncommitted changes and point out anything that looks risky before I commitClaude đọc toàn bộ file đã đổi, không chỉ các dòng diff - nên bắt được thứ tự review nhanh bỏ sót. Lệnh tương đương: /code-review.
Review pull request
review PR #{247} và tóm tắt những gì đã đổi, rồi liệt kê các điểm đáng loreview PR #{247} and summarize what changed, then list the points of concernClaude review với cả codebase trong ngữ cảnh, không chỉ diff.
Review thay đổi hạ tầng
[dán output terraform plan]
cái này sẽ làm gì, và có gì ở đây gây vấn đề không?[paste terraform plan output]
what will this do, and is there anything here that could cause a problem?Output plan dày và khó đọc - dán vào để nhận bản diễn giải bằng lời trước khi apply.
Review bảo mật
dùng một subagent review {src/api/} về các vấn đề bảo mật và báo lại những gì tìm đượcuse a subagent to review {src/api/} for security issues and report back what it findsSubagent chạy trong ngữ cảnh riêng nên một lượt audit dài không làm đầy phiên chính.
Review nội dung trước khi gửi
review {launch-post.md} về {các tuyên bố thiếu căn cứ, thiếu ghi nguồn, và vấn đề brand guideline} và liệt kê những gì tôi nên sửa trước khi gửi cho {legal}review {launch-post.md} for {unsupported claims, missing citations, and brand guideline issues} and list what I should fix before sending it to {legal}Nêu rõ các mối quan tâm để lượt review có trọng tâm.
Điều hướng khi Claude đi lệch
Phần tiêu đề “Điều hướng khi Claude đi lệch”Sửa hướng tiếp cận sai
chưa đúng: {chữ ký hàm phải giữ tương thích ngược}. Thử cách khác đinot quite: {the function signature needs to stay backward compatible}. Try a different approachNêu ràng buộc Claude bỏ sót, không chỉ nói “sai” - cho nó một điều kiện cụ thể để thoả mãn ở lần thử lại.
Thu hẹp phạm vi thay đổi
nhiều quá. Chỉ giữ các thay đổi ở {logic validation trong src/forms/} và hoàn tác phần còn lạithat's too much. Keep only the changes to {the validation logic in src/forms/} and revert the restKhi hướng đúng nhưng thay đổi quá rộng - giữ một phần thay vì tua lại tất cả.
Biến một lần sửa thành quy tắc
bạn cứ {dùng default export trong khi dự án này dùng named export}. Thêm một quy tắc vào CLAUDE.md để việc này không xảy ra nữayou keep {using default exports when this project uses named exports}. Add a rule to CLAUDE.md so this stops happeningMột lời sửa trong chat không chia sẻ được cho team; một quy tắc trong CLAUDE.md thì có, và được đọc ở đầu mỗi phiên.
Phát hành
Phần tiêu đề “Phát hành”Giải quyết merge conflict
giải quyết merge conflict trong branch này và giải thích bạn giữ gì từ mỗi bênresolve the merge conflicts in this branch and explain what you kept from each sideNêu trạng thái bạn muốn, không nêu marker nào cần giữ. Yêu cầu giải thích để lượt merge có thể review được.
Commit với message tự sinh
commit các thay đổi này với message tóm tắt những gì tôi đã làmcommit these changes with a message summarizing what I didClaude suy ra message từ diff và khớp style commit hiện có của repo.
Mở PR từ một ticket
tìm ticket {Linear} về {timeout khi login} và mở một PR triển khai nófind the {Linear} ticket about {login timeouts} and open a PR that implements itBỏ được các lần chuyển ngữ cảnh giữa tracker, editor và GitHub.
Viết release notes từ git
so sánh {v2.3.0} với {v2.4.0} và viết release notes nhóm theo feature, fix và breaking changecompare {v2.3.0} with {v2.4.0} and write release notes grouped by feature, fix, and breaking changeĐưa hai mốc tham chiếu và cấu trúc bạn muốn.
Viết CI workflow
viết một GitHub Actions workflow {chạy test và deploy lên staging} mỗi lần push vào {main}write a GitHub Actions workflow that {runs tests and deploys to staging} on every push to {main}Mô tả khi nào chạy và làm gì; YAML được sinh khớp với lệnh build/test của dự án.
Vận hành
Phần tiêu đề “Vận hành”Debug
Phần tiêu đề “Debug”Tìm và sửa test fail
test {UserAuth} đang fail, tìm nguyên nhân và sửathe {UserAuth} test is failing, find the cause and fix itMô tả triệu chứng; bạn không cần biết file nào hỏng. Claude chạy test để thấy lỗi, truy vào source rồi sửa.
Điều tra lỗi được báo
user đang thấy {lỗi 500} ở {/api/settings}. Điều tra và cho tôi biết chuyện gì đang xảy rausers are seeing {a 500 error} on {/api/settings}. Investigate and tell me what's going onNêu triệu chứng và vị trí; dán stack trace/log nếu có.
Sửa lỗi build tận gốc
[dán lỗi build]
sửa nguyên nhân gốc và xác nhận build thành công[paste build error]
fix the root cause and confirm the build succeedsYêu cầu “nguyên nhân gốc + kiểm chứng” ngăn kiểu vá bề mặt chỉ làm lỗi im đi.
Sự cố
Phần tiêu đề “Sự cố”Điều tra sự cố production
{endpoint checkout bắt đầu trả 500 từ một tiếng trước}. Kiểm tra log, các lần deploy gần đây và thay đổi config, rồi cho tôi biết nguyên nhân khả dĩ nhất{the checkout endpoint started returning 500s an hour ago}. Check the logs, recent deploys, and config changes, then tell me the most likely causeLiệt kê các nguồn bằng chứng cần đối chiếu, không liệt kê các bước cần làm.
Chẩn đoán từ ảnh console
[dán screenshot]
đây là ảnh {GCP Kubernetes dashboard}. Giải thích vì sao {pod này} lỗi và cho tôi đúng các lệnh để sửa[paste screenshot]
this is a screenshot of {the GCP Kubernetes dashboard}. Explain why {this pod} is failing and give me the exact commands to fix itCloud console cho thấy vấn đề nhưng không cho lệnh sửa - Claude dịch dashboard thành lệnh kubectl/gcloud/aws.
Truy vấn log bằng tiếng nói tự nhiên
cho tôi xem mọi {lần login thất bại} của {auth service} trong {24 giờ qua}. Viết query, chạy nó, và cho tôi biết điều gì đáng chú ýshow me every {failed login} for {the auth service} in {the last 24 hours}. Write the query, run it, and tell me what stands outHỏi câu hỏi thay vì viết SQL. Claude cho xem cả query lẫn kết quả để bạn kiểm được cái gì đã chạy.
Dữ liệu
Phần tiêu đề “Dữ liệu”Phân tích một file dữ liệu
đọc {@reports/q1-signups.csv}, tóm tắt các pattern chính, và ghi kết quả ra {một trang HTML có biểu đồ, rồi mở trong browser}read {@reports/q1-signups.csv}, summarize the main patterns, and write the result to {an HTML page with charts, then open it in the browser}Một câu hỏi dùng-một-lần không cần một script dùng-một-lần.
Sinh biến thể từ dữ liệu hiệu năng
đọc {@ads-performance.csv}, tìm các {headline} kém hiệu quả, và sinh {20} biến thể mới dưới {90} ký tựread {@ads-performance.csv}, find the underperforming {headlines}, and generate {20} new variants under {90} charactersNêu ràng buộc ngay từ đầu để phần sinh ra nằm trong giới hạn.
Tự động hoá
Phần tiêu đề “Tự động hoá”Biến việc lặp lại thành skill
tạo một skill /{ship} cho dự án này, {chạy linter và test, rồi viết nháp commit message}create a /{ship} skill for this project that {runs the linter and tests, then drafts a commit message}Nêu các bước một lần; tái dùng như một lệnh.
Thêm hook cho hành vi lặp
viết một hook {chạy prettier} sau mỗi lần {sửa file .ts hoặc .tsx}write a hook that {runs prettier} every time {a .ts or .tsx file is edited}Hooks biến một hành vi thành tự động, thay vì thứ bạn phải nhớ để yêu cầu.
Kết nối một tool qua MCP
cài {MCP server của Sentry} để bạn đọc được {báo cáo lỗi} của tôi trực tiếpset up {the Sentry MCP server} so you can read my {error reports} directlyKết nối nguồn một lần thay vì dán dữ liệu mỗi phiên. Xem MCP.
Ghi lại điều cần nhớ
tóm tắt những gì chúng ta đã làm trong phiên này và đề xuất nội dung thêm vào CLAUDE.mdsummarize what we did this session and suggest what to add to CLAUDE.mdHỏi trước khi bạn quên - Claude biết nó đã phải tự mò ra những gì trong phiên.
Điều gì làm các prompt này hiệu quả
Phần tiêu đề “Điều gì làm các prompt này hiệu quả”Các prompt trên có chung vài pattern. Nhận ra chúng giúp bạn tự chỉnh mọi prompt ở đây cho việc của mình.
Mô tả kết quả, không mô tả các bước. Nói bạn muốn gì và để Claude tự tìm file.
thêm rate limiting cho public API và bảo đảm các test hiện có vẫn passadd rate limiting to the public API and make sure the existing tests still passCho nó cách tự kiểm chứng. Yêu cầu chạy, test, so sánh, xác nhận ngay trong cùng prompt để Claude tự lặp thay vì dừng sau một lần thử.
viết migration, chạy nó trên dev database, và xác nhận schema khớpwrite the migration, run it against the dev database, and confirm the schema matchesTrỏ tới một mẫu tham chiếu. Nêu file, test hoặc pattern cần khớp để code mới nhất quán với những gì bạn đã có.
thêm trang settings theo đúng layout của trang profileadd a settings page that matches the layout of the profile pageNêu mục tiêu đo được. Khi mục tiêu là hiệu năng hay coverage, hãy đưa chỉ số và ngưỡng để việc “hoàn thành” không còn mơ hồ.
đưa bundle size xuống dưới 200KB và cho tôi xem bạn đã bỏ những gìbring the bundle size under 200KB and show me what you cutĐưa nguyên vật liệu thật. Dán lỗi, log, screenshot, output plan trực tiếp vào prompt, hoặc gõ @ để tham chiếu file. Claude đọc nguồn thay vì đọc bản mô tả của bạn về nguồn.
vì sao build fail? @build.logwhy is the build failing? @build.logNói rõ bạn muốn câu trả lời thế nào. Nêu định dạng, độ dài, hoặc đối tượng đọc để phần giải thích khớp với cách bạn sẽ dùng nó.
giải thích logic retry thanh toán dưới dạng một trang HTML có sơ đồ, rồi mở trong browserexplain the payment retry logic as an HTML page with a diagram, then open it in the browserBước tiếp theo
Phần tiêu đề “Bước tiếp theo”Các prompt ở đây là điểm khởi đầu. Khi một prompt đã hiệu quả với dự án của bạn, bước tiếp theo là làm nó lặp lại được: lưu thành một skill để cả team chạy như một /command, và ghi các quy ước Claude đã học vào CLAUDE.md để mỗi phiên bắt đầu với ngữ cảnh đó thay vì Claude học lại từ đầu.