0%
Skip to main content
Quay lại Blog

Vibe coding không còn mù đường — CodeGraph với Claude Code & Cursor

· One min read
Vu Nguyen
Java / Backend Engineer

Vibe coding thường kết thúc bằng hàng chục lần grep và đọc file sai. CodeGraph — đồ thị index local, MCP cho Claude CodeCursor — giúp agent trả lời “luồng này chạy thế nào?” trong vài lần codegraph_explore thay vì đoán mò.

Vibe coding gặp “mù đường”: vì sao tôi gắn CodeGraph vào Claude Code & Cursor

Sau khi chuyển sang Spec-Driven Development với SpecKit, tôi đã biết cần build gì trước khi AI viết code. Nhưng còn một lỗ hổng: agent vẫn phải tự mò trong codebase — grep, ls, đọc file ngẫu nhiên — cho đến khi (hy vọng là) chạm đúng module.

Trên RabbitSVN và các repo native lớn, kiểu “prompt hay + mò đường kém” là combo nguy hiểm: sửa đúng symptom, sai layer, hoặc bỏ sót caller khi refactor.

Tôi bổ sung CodeGraph — công cụ mã nguồn mở của Colby McHenry — như bản đồ semantic 100% local cho agent. Bài này là cách tôi dùng nó để vibe coding có định hướng, không phải bỏ vibe coding hoàn toàn.


1. Vibe coding thiếu gì sau khi đã có spec?

Spec trả lời whatwhy. Khi implement, agent vẫn cần wherehow code hiện tại đang nối với nhau.

Triệu chứng khi chỉ dùng grep + ReadHệ quả
Nhiều tool callContext đầy, token tăng, session dễ “quên” spec
Đọc file không liên quanPatch đẹp cục bộ, sai contract với module khác
Bỏ qua blast radiusĐổi API nhỏ, vỡ UI hoặc sync path ở tầng khác

CodeGraph không thay thế tư duy của bạn — nó pre-index symbol, call path, route và impact radius vào SQLite trên máy, rồi expose qua MCP (tool chính codegraph_explore trên Claude Code, Cursor, Codex, …).


2. CodeGraph là gì (ngắn gọn)?

  • Đồ thị tri thúc mã nguồn (kernel Rust, 20+ ngôn ngữ), lưu trong .codegraph/ — không gửi code ra cloud.
  • Auto-sync khi file đổi (file watcher + debounce), index không “cũ vĩnh viễn”.
  • MCP cho agent: một tool chính — codegraph_explore — trả source có line number, đường gọi giữa symbol, và tóm tắt blast radius trong một lần gọi.
  • CLI + UI: codegraph ui để bạn nhìn cùng graph mà agent đang dùng (callers / callees / flow).

Quy trình tôi dùng (CLI + MCP — hai bước tách biệt):

codegraph-onboarding.sh
curl -fsSL …/install.sh | sh # hoặc: npm i -g @colbymchenry/codegraph
codegraph install # gắn MCP + gợi ý trong CLAUDE.md / AGENTS.md
cd your-project && codegraph init # .codegraph/ + build graph (bắt buộc mỗi repo)
# Khởi động lại Claude Code hoặc Cursor để MCP load

Chi tiết luôn cập nhật trên repo chính thức.

Claude Code & Cursor

codegraph install tự nhận agent đã cài. Tôi thường chọn cả hai:

codegraph-install-agents.sh
codegraph install --target=claude,cursor --yes
BướcClaude CodeCursor
Sau installRestart session / app để MCP server loadRestart Cursor
Gợi ý cho agentThêm section trong CLAUDE.md (installer ghi giúp)AGENTS.md / rules tương ứng
Toolcodegraph_explore qua MCPCùng MCP server, tên tool giống
MẹoNếu session mới “chưa thấy” tool, nhắc “dùng codegraph explore trước” — README gợi ý alwaysLoad trong ~/.claude.json để tool sẵn từ prompt đầuBật MCP trong Settings nếu project mới

codegraph install chỉ cấu hình agent — không index code. Mỗi repo cần codegraph init (hoặc graph cũ + auto-sync khi save).

Gỡ sạch: codegraph uninstall (xóa MCP + marker trong file hướng dẫn agent).


3. Workflow: SpecKit + CodeGraph trong vibe coding có kiểm soát

Hai công cụ bổ sung nhau:

sdd-plus-codegraph.txt
SpecKit: Constitution → Specify → Clarify → Plan → Tasks → Implement
CodeGraph: hỗ trợ Plan + Implement — “X chạy từ đâu?”, “ai gọi Y?”, “đổi Z ảnh hưởng gì?”

Khi nào tôi chủ động nhắc agent dùng graph:

  1. Trước khi sửa — “trace từ UI action xuống SVN command” (RabbitSVN có nhiều tầng).
  2. Khi clarify plan — đối chiếu plan.md với module thật trong repo, tránh invent package/path.
  3. Sau khi agent patch — impact check nhanh trước khi merge (đặc biệt shared util).

Trên Claude Code, câu ngắn kiểu “explore call path từ X đến Y bằng CodeGraph” thường đủ để model gọi MCP. Trên Cursor, cùng ý — kiểm tra MCP CodeGraph đã bật cho workspace.

Khi không cần graph: đổi copy, CSS một chỗ, config Docusaurus — cứ vibe nhẹ, không init cả monorepo vì một dòng.


4. Case study: tìm luồng “status icon” thay vì grep cả đêm

Cùng chủ đề với bài SpecKit (quét trạng thái file / icon trên thư mục lớn), nhưng góc nhìn navigation trong code:

Trước CodeGraph: prompt kiểu “tối ưu status scan” → agent grep status, icon, SVN → đọc 8–15 file → đôi khi nhảy vào layer networking thay vì queue/UI đã có.

Với CodeGraph: một câu explore dạng “how does folder refresh trigger SVN status and update versioning icons?” → nhận call path + snippet quanh entry point và worker/queue liên quan → task implement bám đúng chỗ spec đã chọn.

Kết quả cảm nhận (không phải benchmark chính thức của tôi):

Không graph (thường gặp)Có graph
DiscoveryNhiều grep/read1–4 lần codegraph_explore
Sai layerThường xảy ra trên repo lạGiảm rõ khi đã init
Tài liệu cho sauChat logVẫn có spec/plan + bạn có thể codegraph ui lưu trail

Trên README, nhóm tác giả đo agent có/không index trên nhiều OSS repo: với graph, câu trả lời kiến trúc thường ít tool call và ít token hơn so với vòng discovery thuần — phù hợp với trải nghiệm tôi thấy trên dự án thật.


5. Ưu, nhược và thực tế triển khai

Ưu điểm

  • Local & privacy — index trên máy, phù hợp client như RabbitSVN.
  • Surgical context — ít “đổ cả file” vào context window.
  • Luôn tươi — auto-sync sau khi agent (hoặc bạn) save file.
  • Claude Code & Cursorcodegraph install gắn MCP + snippet hướng dẫn; restart agent là dùng (benchmark chính thức trên README cũng dùng Claude headless).

Hạn chế

  • Chi phí ban đầucodegraph init trên repo rất lớn mất vài phút (lần sau sync từng file nhanh).
  • Không phải silver bullet — agent vẫn có thể bỏ qua MCP nếu prompt không rõ; bạn nên nói thẳng “dùng codegraph explore trước”.
  • Repo chưa index — không có .codegraph/ thì agent quay lại grep như cũ.

Mẹo: chạy codegraph status khi session lạ; mở codegraph ui khi bạn muốn cùng nhìn với agent thay vì tin hoàn toàn vào chat.


6. Lời kết

Vibe coding không xấu — xấu là vibe . SpecKit giúp tôi không build nhầm thứ; CodeGraph giúp agent không sửa nhầm chỗ.

Nếu bạn dùng Claude Code hoặc Cursor (hoặc Codex, Copilot, …) trên codebase lớn, thử cài CodeGraph: installinit một project quan trọng → đặt câu hỏi flow trước khi gõ “implement ngay”. Khác biệt thường thấy ngay ở vòng discovery đầu tiên.

Bạn đã index repo nào với CodeGraph chưa? Chia sẻ trên GitHub — hoặc đọc tiếp bài SpecKit + RabbitSVN nếu bạn muốn hoàn thiện phía đặc tả.


Đọc thêm: CodeGraph trên GitHub · RabbitSVN showcase · SpecKit trên blog