- Một dev chia sẻ workflow review code với Cursor chỉ gồm 3 prompts (Security, Performance, Code Quality) chạy với @codebase trước mỗi lần delivery.
- Đơn giản, deterministic output (file + line + severity + fix), bù được những gap mà prompt mặc định của Cursor bỏ sót như IDOR, CORS wildcard, rate limiting trên auth endpoints.
- Bài này phân tích từng prompt, đối chiếu với prompt official của Cursor, và những giới hạn cần biết trước khi tin 100%.
TL;DR
Một workflow review code cực ngắn đang lan trên X: chỉ 3 prompts, chạy với @codebase trong Cursor trước mỗi lần giao code cho client. Tác giả @Hartdrawss tuyên bố bắt được ~90% lỗi trước khi client thấy. Output có format chuẩn (file, line, severity, fix), nên dán thẳng vào TODO list. Bài này bóc tách 3 prompts đó, so với prompt security mặc định của Cursor, và chỉ ra những gì workflow này không làm được.
Workflow gồm gì?
Toàn bộ ý tưởng: chạy 3 prompts theo thứ tự với scope @codebase, mỗi prompt yêu cầu output dạng file + line + severity (Critical/High/Medium) + exact fix. Sau khi chạy xong: fix Critical, document Medium thành known issues, để khách hàng nhận một codebase clean.
Prompt 1 — Security Audit
Quét 7 nhóm lỗ hổng: API routes thiếu authentication, secrets/API keys hardcode trong source, SQL injection qua string concatenation, CORS wildcard trong production, sensitive fields trả về trong API response, thiếu rate limiting trên auth endpoints, và IDOR (user A truy cập data của user B).
Prompt 2 — Performance Audit
Tìm: N+1 queries, missing database indexes trên cột WHERE/JOIN, synchronous operations chặn event loop, missing pagination trên list endpoints, unnecessary re-renders hoặc thiếu memoization (React).
Prompt 3 — Code Quality
Soi maintainability: business logic nằm trong route handlers (thay vì service layer), functions làm nhiều việc, missing error handling cho async ops, naming convention không nhất quán, duplicated logic giữa các file.
Vì sao quan trọng với vibe coder?
Khi bạn ship code AI-generated tốc độ cao, rủi ro security tăng không tuyến tính. Nghiên cứu được Checkmarx tổng hợp cho thấy code có AI co-author có misconfigurations cao hơn 75% và security vulnerabilities cao hơn 2.74x so với code human-only. Endor Labs ước tính khoảng 40% code AI sinh ra chứa dependency có vuln, vì LLM gợi ý package theo độ phổ biến chứ không theo security posture.
Cursor đã thừa nhận vấn đề này: họ vận hành một Agentic Security Review nội bộ review 3,000+ PR/tuần, bắt 200+ vulnerabilities mỗi tuần. Vấn đề là indie dev và freelancer không có CI nội bộ kiểu đó. 3 prompts của @Hartdrawss là phiên bản manual, lightweight, ai cũng dùng được ngay trong IDE.
So với prompt mặc định của Cursor
Theo phân tích của Snyk, prompt security review mặc định của Cursor focus vào: injection, authn/authz bypass, permission boundary, secret leakage, SSRF, XSS, request forgery, path traversal, unsafe deserialization.
| Vuln category | Cursor official prompt | 3-prompt workflow |
|---|---|---|
| SQL injection | ✅ | ✅ |
| Authn/authz bypass | ✅ | ✅ (API routes thiếu auth) |
| Secret leakage | ✅ (briefly) | ✅ (explicit) |
| SSRF / XSS / Path traversal | ✅ | ❌ |
| Unsafe deserialization | ✅ | ❌ |
| IDOR | ❌ | ✅ |
| CORS wildcard | ❌ | ✅ |
| Rate limiting trên auth | ❌ | ✅ |
| Sensitive fields trong response | Một phần | ✅ |
Kết luận: dùng cả hai song song. Prompt official mạnh ở web vuln cổ điển, 3-prompt workflow phủ business-logic vuln mà LLM thường bỏ sót.
Khi nào nên chạy?
- Freelancer / agency: trước mỗi lần handover cho client — đúng use case gốc.
- Solo founder: trước khi merge PR vào main, thay cho code review của team không có.
- Vibe coder: sau mỗi feature lớn được Cursor/Composer generate, trước khi deploy.
- Onboard codebase mới: chạy 3 prompts để map nhanh hotspot lỗ hổng + tech debt thay vì đọc tay từng file.
- Pre-release gate: kết hợp với SAST (Semgrep, CodeQL) và dependency scanner (Snyk, Dependabot) thành layer review.
Giới hạn cần nhớ
Không có magic bullet. Snyk chỉ ra LLM có thể confidently flag SQL injection trong một query đã parameterize đúng (false positive), hoặc bỏ sót vuln thật (false negative). Workflow này có 4 giới hạn cụ thể:
- Không deterministic: chạy 2 lần có thể ra 2 kết quả khác nhau. Không thay thế SAST/DAST chuẩn.
- Context window: repo lớn có thể vượt context, agent chỉ thấy một phần codebase.
- Không cover supply-chain: prompt chỉ scan code tĩnh, không check package vuln — vẫn cần Dependabot hoặc Snyk.
- Con số 90% là claim, không phải audit: không có nghiên cứu độc lập xác nhận. Coi như best-effort heuristic.
Quy tắc vàng vẫn đúng: AI output never bypass human review. 3 prompts là safety net, không phải safety standard.
Tích hợp thế nào cho gọn?
Cách dùng tối ưu cho indie dev: lưu 3 prompts thành Cursor Custom Mode (Settings → Modes → New Mode) hoặc bỏ vào .cursor/rules/review.md để chạy 1-click. Sau đó tạo PR template kèm checkbox "Đã chạy 3-prompt review" để tự ép mình.
Trend xa hơn: Cursor đang đẩy mạnh Background Agents chạy nền trên CI, GitHub Copilot Workspace cũng đi cùng hướng. Workflow manual 3-prompt sẽ là baseline trước khi infra agent đủ rẻ và đủ tin cậy. Hiện tại, đây vẫn là cách nhanh nhất để vibe coder không vibe luôn cả lỗ hổng vào production.
Nguồn: @Hartdrawss trên X, Cursor Blog, Snyk, Checkmarx, Endor Labs.


