Vấn đề
Khi bắt đầu một dự án bằng vibe coding, vài giờ đầu tiên thật sự là cả một thế giới mới. Chỉ cần ném prompt vào là có mã, có cảm giác như thứ gì đó đang chạy được, và sẽ có khoảnh khắc bạn nghĩ: "Mình thực sự đang làm ra cái này sao?"
Rồi lỗi bắt đầu xuất hiện.
Bảo nó sửa thì chỗ khác lại vỡ, sau 30 phút AI quên mất những gì nó vừa nói trước đó, sau 1 tiếng thì chính mình cũng bắt đầu lẫn không biết rốt cuộc đang làm cái gì. Hôm sau mở lại thì mọi thứ như một tờ giấy trắng. Cuối cùng cứ quay vòng tại chỗ.
Nếu làm nhiều dự án cùng lúc thì còn tệ hơn. Thứ đang làm vào thứ Hai mà muốn nối tiếp vào thứ Năm thì phải thiết lập lại context từ đầu.
Nguyên nhân
Điểm nghẽn không nằm ở mã nguồn. Nó nằm ở trí nhớ.
AI quên khi phiên làm việc bị ngắt, còn mình cũng sẽ quên sau vài ngày. Nhưng vì không ai ghi lại nên dự án cứ liên tục bị khởi tạo lại.
Cách tôi đã thử
Tôi bắt đầu dùng Obsidian như một kho lưu trữ trí nhớ dài hạn cho dự án.
- Obsidian — quản lý toàn bộ ý tưởng, thiết kế, nhật ký phiên làm việc và bản ghi lỗi bằng Markdown
- Claude Desktop + MCP — đóng vai trò "nhạc trưởng", trực tiếp đọc ghi chú Obsidian và thảo luận về thiết kế
- Claude Code + MCP — đóng vai trò "người thực thi", hiện thực hóa các công việc đã thiết kế xong
Vấn đề mất context của Claude Desktop được giải quyết bằng cách ghi lại bàn giao giữa các phiên trong file ngày_handoff.md. Mỗi khi mở một phiên mới, chỉ cần đọc file này là có thể khôi phục lại mạch ngữ cảnh ngay.
Cốt lõi là lặp lại chu trình "ghi chép → thiết kế → triển khai → ghi chép".
Kết quả
Trước đây tôi cứ lặp đi lặp lại cảnh bắt đầu toy project rồi 3 ngày sau lại xóa cả thư mục, nhưng sau khi đổi sang cách này, những dự án từng không thể hoàn thành bắt đầu vận hành theo chu trình hoàn thiện bản đầu → triển khai → kiểm tra → chỉnh sửa, từng cái một. Hiện tại tôi đang quản lý đồng thời hơn 10 dự án bằng Obsidian Canvas.
Gần đây Claude Code có thêm tính năng Auto Memory, nhưng đó là ghi chú do AI viết cho AI, còn cách ở trên là ghi chép do con người viết cho con người. Tôi nghĩ hai thứ này bổ trợ cho nhau.
Tổng kết
Tôi đã hệ thống lại workflow này và công khai thành một cuốn sách trên Wikidocs. Hoàn toàn miễn phí.
"Vì sao vibe coding thất bại — Cẩm nang cộng tác với AI" https://wikidocs.net/book/19307
Có từ phần mở đầu đến Ch.22 cùng phụ lục, và nếu bạn để lại phản hồi ở phần bình luận của từng trang, tôi sẽ phản ánh ngay. Những góp ý thẳng thắn cũng rất được hoan nghênh.
3 bình luận
Dùng Cursor nên tôi chưa gặp trường hợp đó (trường hợp nó quên) nên thỉnh thoảng đọc thấy chuyện này với Claude tôi khá ngạc nhiên. Có những lúc chất lượng thấp hoặc vì không mô tả đủ rõ nên gặp vấn đề thì có, nhưng chuyện nó quên thì chưa từng; còn các trường hợp rắc rối vì lỗi phát sinh ở chỗ khác thì hồi giai đoạn đầu của sản phẩm Cursor tôi có gặp vài lần, nhưng giờ thì không còn nữa. Có phải vì dự án của tôi chưa đủ lớn không?
Tôi làm theo cách này:
Vì tài liệu nằm ngay trong dự án nên không cần quản lý gì đặc biệt riêng. Và Cursor cũng không làm việc liên tục mãi. Dù có bảo nó làm đến cùng thì nó vẫn cứ dừng giữa chừng (nghe nói đây là cơ chế an toàn để tránh rơi vào vòng lặp kỳ quặc, nhưng tôi không hài lòng vì mình không có quyền lựa chọn), khiến tôi buộc phải tiếp tục hội thoại. Nhưng điều đó cũng có ích. Nó cũng giúp tránh khả năng vài tiếng sau quay lại thì mọi thứ đã bị làm lệch hẳn sang hướng vô lý.
Vì mọi thứ đều được xử lý trong một IDE nên không cần gắn thêm dịch vụ khác. Với Claude thì tôi chỉ dùng API để tận dụng chức năng LLM nên không rõ khả năng code ra sao, dù nhiều người nói là rất tốt -- chỉ là mỗi khi thỉnh thoảng thấy các bài viết nói nó quên hoặc bị lỗi, tôi lại nghĩ có khi là vì quy mô dự án của mình còn nhỏ chăng...
Kết lại thì tôi làm theo cách giống như khi quản lý dự án và team ở công ty - tức là quy trình cũng giống khi làm việc với con người: tài liệu hóa và ghi chép, trao đổi, ra quyết định... Không phải workflow mới mẻ gì cả. Vì vậy tôi rất tò mò về những cách làm với Claude theo kiểu workflow nào đó để đạt được "tự động hoàn toàn", và kể cả nếu không hoàn toàn tự động thì tôi cũng đang nghĩ xem làm sao để giảm bớt những lần "họp" quá thường xuyên (ngay cả với team toàn con người, ai cũng cố giảm các cuộc họp quá dày mà).
Nếu dùng qmd thì nó sẽ quản lý cục bộ một cơ sở dữ liệu để quản lý các phiên trước đó!
Cảm ơn vì thông tin hữu ích.