[{"type":"Bài học","title":"Vibe Coding là gì, và không là gì","summary":"Hiểu đúng Vibe Coding, phân biệt với AI hỗ trợ code và AI Agent, biết con người phải giữ phần việc nào.","url":"/bai-hoc/vibe-coding-la-gi","text":"Vấn đề thật Bạn có ý tưởng: một trang giới thiệu dịch vụ, một form đặt lịch, một bảng tính giá cho xưởng. Bạn nghe nói \"giờ không cần biết code, cứ bảo AI làm\". Bạn thử. AI ra một giao diện trông rất ổn. Rồi bạn sửa một chữ, nút bấm hỏng. Bạn nhờ AI sửa, nó sửa chỗ này và làm vỡ chỗ khác. Sau hai buổi tối, bạn có một mớ file không dám động vào. Vấn đề không nằm ở AI kém. Vấn đề là bạn đang dùng AI như máy bán hàng tự động : bỏ yêu cầu vào, chờ sản phẩm rơi ra. Bài này giúp bạn đổi cách nhìn đó. Định nghĩa Vibe Coding là cách làm phần mềm trong đó bạn chủ yếu diễn đạt ý định, mục tiêu và yêu cầu bằng ngôn ngữ tự nhiên hoặc hình ảnh, bản vẽ , để AI tạo, sửa và hoàn thiện phần mềm qua nhiều vòng phản hồi. Mức độ bạn trực tiếp viết code tùy người và tùy dự án. Ba chữ cần nhớ: ý định bạn quyết định làm gì , vòng lặp không có chuyện một lần là xong , tùy dự án trang giới thiệu khác xa app có thanh toán . Thuật ngữ này từ đâu ra Andrej Karpathy, một nhà nghiên cứu AI nổi tiếng, dùng cụm \"vibe coding\" vào đầu tháng 2/2025 để tả kiểu làm phần mềm \"cứ theo cảm giác\", nói với AI và chấp nhận code nó viết mà không đọc kỹ. Cụm từ lan rất nhanh và được Collins Dictionary chọn là Từ của năm 2025 xem nguồn cuối bài . Lưu ý: ý gốc của Karpathy là cách làm cho dự án chơi, dự án cuối tuần . Khi bạn làm thứ người khác sẽ dùng thật, bạn cần thêm kỷ luật. Bụi Code dạy chính phần kỷ luật đó. Bốn cách dùng AI khi làm phần mềm Cách dùng Bạn làm gì AI làm gì Ví dụ Tra cứu Hỏi, tự viết code Giải thích, gợi ý đoạn ngắn \"Hàm này trong Excel nghĩa là gì?\" AI hỗ trợ code Viết code là chính Gợi ý, hoàn thành dòng, sửa lỗi nhỏ Gợi ý code trong trình soạn thảo Vibe Coding Mô tả, xem, phản hồi Viết phần lớn code \"Làm trang giới thiệu tiệm mộc, có bảng giá\" AI Agent Giao nhiệm vụ, duyệt kết quả Tự lên kế hoạch, đọc file, chạy lệnh, sửa nhiều bước Agent tự tạo dự án, chạy thử, sửa lỗi build Vibe Coding và AI Agent không phải một . Vibe Coding là cách bạn làm việc . AI Agent là loại công cụ có thể tự thực hiện nhiều bước trong máy hoặc thư mục dự án. Vì sao agent làm Vibe Coding dễ hơn hẳn Chatbot trong khung chat AI Agent trong thư mục dự án Không thấy thư mục dự án của bạn Đọc được cả cây thư mục, hiểu file nào gọi file nào Bạn tự chép code vào file Tự tạo file mới, sửa file cũ Bạn tự chạy lệnh, gặp lỗi đỏ lại chép ngược cho AI Tự chạy lệnh, thấy lỗi, sửa, chạy lại Dễ đứt mạch vì chép qua chép lại Bạn tập trung vào xem kết quả và phản hồi Bạn vẫn vibe code được bằng chatbot thường cho dự án 1–2 file. Dự án nhiều file thì agent đỡ hẳn việc chép tay và ít lỗi \"thiếu ngữ cảnh\" hơn. Đổi lại, agent sửa được nhiều file một lúc, nên bắt buộc phải có checkpoint bài Git . Vòng lặp cốt lõi Ví dụ một vòng: trang quán cà phê Mô tả yếu : \"Làm trang web cho quán cà phê của tôi, có menu và nút đặt bàn trực quan.\" AI phải tự đoán quán bán gì, khách là ai, \"trực quan\" là sao. Mô tả tốt : \"Trang một trang cho quán cà phê nhỏ ở Đà Nẵng, khách chủ yếu xem trên điện thoại. Có menu 12 món chia 3 nhóm, mỗi món có tên và giá VNĐ. Nút 'Đặt bàn' mở Zalo số SỐ . Không cần giỏ hàng, không đăng nhập. Xong khi: xem trên điện thoại không cuộn ngang, giá hiển thị dạng 35.000đ, bấm nút mở đúng Zalo.\" Kiểm chứng: mở trên điện thoại, bấm thử, đối chiếu từng điều kiện \"Xong khi\". Phản hồi chính xác: \"Phần menu chưa hiển thị giá rõ ràng: giá đang là 35000, cần định dạng 35.000đ và in đậm. Chỉ sửa khối menu, không đụng phần khác.\" Người mới hay bỏ bước 3. Họ nhìn giao diện thấy đẹp, coi là xong. Phần lớn rắc rối về sau bắt đầu từ đây. Ai chịu trách nhiệm phần nào Việc Bạn AI Quyết định làm gì, cho ai Chịu trách nhiệm Gợi ý Định nghĩa \"thế nào là xong\" Chịu trách nhiệm Giúp viết rõ Viết code, dựng giao diện Duyệt Làm chính Chạy thử, kiểm tra Chịu trách nhiệm Viết test, tự kiểm một phần Bảo mật, dữ liệu người dùng Chịu trách nhiệm Cảnh báo, gợi ý Quyết định phát hành Chịu trách nhiệm Không Nguyên tắc: AI làm, bạn chịu. Khách hàng không quan tâm lỗi do ai viết. Vì sao \"AI báo xong\" không phải bằng chứng AI rất hay nói \"Tôi đã hoàn thành, mọi thứ hoạt động tốt\" trong khi: Nó chưa chạy thử lần nào. Nó sửa đúng file nhưng quên file khác dùng chung. Nó \"sửa\" test để test qua, thay vì sửa lỗi thật. Nó tưởng tượng ra một thư viện, một hàm không tồn tại. Bằng chứng thật là: bạn tự bấm và thấy chạy; ảnh chụp màn hình; kết quả lệnh build không lỗi; checklist nghiệm thu đã tick từng dòng. Tập thói quen hỏi lại AI: \"Bạn đã chạy thử chưa? Cho tôi xem lệnh và kết quả.\" Prototype, dùng được, sẵn sàng phát hành Mức Nghĩa là Ví dụ Prototype Chạy được cho bạn xem ý tưởng Trang demo trên máy bạn Dùng được Người quen dùng được, lỗi nhỏ chấp nhận Form nội bộ cho 5 đồng nghiệp Sẵn sàng phát hành Người lạ dùng, có dữ liệu thật, phải an toàn Trang nhận đơn hàng có thông tin khách Vibe Coding đưa bạn tới prototype rất nhanh. Từ prototype lên sẵn sàng phát hành mới là phần tốn công: kiểm thử, bảo mật, xử lý lỗi, sao lưu. Đừng nhầm hai mức này. Giới hạn bạn phải biết Lỗi logic: code chạy nhưng tính sai ví dụ giảm giá áp hai lần . Bảo mật: AI có thể để lộ khóa API, quên kiểm tra quyền truy cập. Bảo trì: code AI viết nhanh nhưng có thể rối, lần sau sửa khó. Ngữ cảnh: AI chỉ biết những gì bạn đưa cho nó; cuộc trò chuyện dài thì nó \"quên\" phần đầu. Test thiếu: AI không tự biết bạn cần kiểm những trường hợp nào. Câu cần nhớ: Vibe Coding không loại bỏ việc hiểu sản phẩm. Nó chuyển phần việc của bạn từ gõ code sang mô tả đúng và kiểm tra đúng . Lỗi hay gặp Gửi một câu prompt cho cả app. \"Làm cho tôi app quản lý bán hàng\" sẽ ra một thứ trông giống app, không phải app của bạn. Chia nhỏ xem bài Giao việc cho AI . Không lưu bản ổn định. AI sửa hỏng, bạn không có đường lui. Học Git hoặc ít nhất sao lưu thư mục xem bài Git cho người không code . Bắt đầu bằng dự án khó. Đăng nhập, thanh toán, dữ liệu cá nhân để sau. Bắt đầu với trang tĩnh. Việc làm ngay Lấy một ý tưởng của bạn và trả lời 4 câu, mỗi câu 1–2 dòng: 1. Ai dùng nó, và họ đang gặp khó gì? 2. Nó thuộc mức nào: prototype, dùng được, hay sẵn sàng phát hành? 3. Có dữ liệu cá nhân, tiền, hoặc đăng nhập không? Nếu có: chưa phải dự án đầu tiên. 4. Bạn sẽ kiểm tra thế nào để biết nó chạy đúng? Giữ câu trả lời. Bài 3 sẽ biến chúng thành Project Brief. Tóm tắt Vibe Coding: bạn mô tả, AI viết, bạn kiểm . Lặp lại. Khác AI Agent: một bên là cách làm, một bên là loại công cụ. \"AI báo xong\" không phải bằng chứng. Tự chạy, tự bấm, đối chiếu tiêu chí. Prototype nhanh, sản phẩm thật tốn công. Biết mình đang ở mức nào."},{"type":"Bài học","title":"Chọn công cụ: chatbot, trợ lý code hay AI Agent","summary":"Ba nhóm công cụ AI để làm sản phẩm, mỗi nhóm hợp với việc gì, và cách chọn cho dự án đầu tiên mà không bị cuốn theo quảng cáo.","url":"/bai-hoc/chon-cong-cu-ai","text":"Vấn đề thật Mỗi tuần có một công cụ mới \"đánh bại tất cả\". Bạn mất cả buổi xem video so sánh, đăng ký ba bản dùng thử, cuối cùng chưa làm được gì. Công cụ đổi liên tục; cách chọn thì không. Bài này dạy cách chọn. Tên công cụ trong bài chỉ là ví dụ, kiểm tra ngày 16/10/2026. Bụi Code không nhận tài trợ từ công cụ nào, và không ghi giá vì giá đổi thường xuyên. Hãy xem trang giá chính thức trước khi trả tiền. Ba nhóm công cụ 1. Chatbot đa năng Ví dụ: Claude, ChatGPT, Gemini trên web hoặc app. Hợp với: hỏi khái niệm, viết brief, lên kế hoạch, tạo file HTML đơn giản, giải thích lỗi. Điểm yếu: không thấy thư mục dự án của bạn; bạn phải chép code qua lại; dự án nhiều file sẽ rối nhanh. Dùng khi: bạn đang ở bước nghĩ, hoặc sản phẩm chỉ là 1–2 file. 2. Trình tạo app trên trình duyệt Ví dụ: các nền tảng kiểu \"mô tả là ra app\" như Lovable, Bolt, v0, Replit. Hợp với: prototype nhanh, landing page, app nhỏ có giao diện; thường có sẵn nút đưa lên mạng. Điểm yếu: bạn bị gắn với nền tảng; phần phức tạp dữ liệu, phân quyền dễ thành hộp đen; chi phí tăng theo lượt dùng. Dùng khi: cần cho người khác xem ý tưởng thật nhanh, chưa cần sở hữu toàn bộ code. 3. AI Agent làm việc trên máy hoặc kho code Ví dụ: Claude Code, Cursor, GitHub Copilot ở chế độ agent, Codex. Hợp với: dự án nhiều file, cần chạy lệnh, chạy test, sửa lỗi nhiều bước, làm lâu dài. Điểm yếu: cần cài đặt; phải làm quen với thư mục, terminal cửa sổ gõ lệnh ở mức cơ bản; agent có thể sửa nhiều file một lúc nên bắt buộc có Git. Dùng khi: bạn muốn sở hữu sản phẩm, sửa tiếp nhiều tháng, hoặc dự án đã vượt quá chép dán. Chọn bằng 4 câu hỏi Câu hỏi Nếu trả lời... Nghiêng về Sản phẩm có mấy file / mấy trang? 1–3 trang tĩnh Chatbot hoặc trình tạo app Bạn có cần sửa tiếp lâu dài? Có, nhiều tháng Agent + Git Có dữ liệu người dùng, đăng nhập? Có Agent, và cần người có kinh nghiệm duyệt Bạn cần người khác xem trong hôm nay? Có Trình tạo app Gợi ý cho dự án đầu tiên: một landing page tĩnh, làm bằng chatbot để hiểu từng phần, rồi làm lại bằng agent để thấy khác biệt. Hai lần làm dạy bạn nhiều hơn mười video so sánh. Thiết lập tối thiểu trước khi bắt đầu 1. Một thư mục riêng cho dự án , đặt tên không dấu, không khoảng trắng: tiem moc landing . 2. Một file ghi chú NOTES.md trong thư mục: ghi quyết định, lỗi đã gặp, prompt dùng tốt. 3. Git nếu dùng agent : xem bài Git cho người không code . 4. Trình duyệt có công cụ nhà phát triển Chrome, Edge, Firefox đều có, bấm F12 để xem lỗi. Không đưa vào công cụ AI Mật khẩu, khóa API API key , mã OTP, thông tin ngân hàng. Dữ liệu cá nhân của khách hàng thật tên, số điện thoại, CCCD . Dùng dữ liệu giả. Tài liệu mật của công ty khi chưa được phép. Nếu cần AI làm việc với dữ liệu, tạo dữ liệu mẫu giả giống cấu trúc thật: Lỗi hay gặp Đổi công cụ mỗi khi gặp khó. Lỗi thường nằm ở cách giao việc, không phải công cụ. Đổi công cụ là mất hết ngữ cảnh. Trả tiền gói cao nhất ngay. Dùng bản miễn phí hoặc gói thấp cho tới khi bạn biết mình thiếu gì. Tin bảng xếp hạng. Công cụ \"tốt nhất\" là công cụ bạn dùng thành thạo cho đúng việc. Việc làm ngay 1. Trả lời 4 câu hỏi chọn công cụ cho ý tưởng của bạn. 2. Chọn một công cụ. Viết lý do chọn vào NOTES.md . 3. Tạo thư mục dự án và file NOTES.md . Tóm tắt Chọn theo việc cần làm, không theo quảng cáo. Chatbot để nghĩ và làm nhỏ; trình tạo app để demo nhanh; agent để làm thật và lâu dài. Không đưa bí mật hay dữ liệu thật vào AI. Dùng dữ liệu giả."},{"type":"Bài học","title":"Từ ý tưởng đến Project Brief một trang","summary":"Biến ý tưởng mơ hồ thành một trang brief rõ ràng: ai dùng, làm gì, không làm gì, thế nào là xong. Đây là tài liệu quan trọng nhất bạn đưa cho AI.","url":"/bai-hoc/tu-y-tuong-den-project-brief","text":"Vấn đề thật Bạn bảo AI: \"Làm website cho tiệm mộc của tôi.\" AI phải tự đoán: tiệm bán gì, khách là ai, cần trang nào, màu gì, có đặt hàng không. Nó đoán theo mức trung bình của internet, nên kết quả trông chung chung như mọi website khác . Brief là cách bạn ngừng để AI đoán . Viết brief mất 30–60 phút. Không viết brief, bạn mất nhiều buổi sửa đi sửa lại. Brief khác prompt thế nào Prompt là một lần giao việc: \"Làm phần đầu trang\". Brief là bối cảnh chung cho mọi lần giao việc: sản phẩm là gì, cho ai, giới hạn gì. Bạn viết brief một lần, lưu thành file BRIEF.md trong thư mục dự án, và đưa cho AI ở đầu mỗi phiên làm việc agent thì tự đọc file . Mẫu brief 8 mục Viết từng mục cho đúng Mục 1: Một câu Nếu không viết được một câu, bạn chưa rõ mình làm gì. Yếu: \"Website cho tiệm mộc.\" Tốt: \"Trang giới thiệu giúp khách ở Hà Nội cần đồ gỗ đặt riêng xem mẫu đã làm và gửi yêu cầu báo giá qua Zalo trong dưới 2 phút.\" Mục 3 và 4: Việc chính và việc KHÔNG làm Mục 4 quan trọng ngang mục 3. AI rất thích \"tặng thêm\" tính năng: giỏ hàng, đăng nhập, blog. Mỗi tính năng tặng thêm là một chỗ có thể hỏng. Ghi rõ: Mục 6: Phong cách \"Đẹp, hiện đại\" là vô nghĩa với AI. Hãy cho từ cụ thể và tham khảo có lý do : \"Mộc, ấm, nhiều ảnh sản phẩm thật, chữ to dễ đọc trên điện thoại.\" \"Màu chính nâu gỗ óc chó, nền kem, một màu nhấn xanh rêu cho nút.\" \"Tham khảo site X: thích lưới ảnh; không thích hiệu ứng chuyển động liên tục.\" Mục 8: Tiêu chí nghiệm thu Mỗi tiêu chí phải kiểm được bằng cách bấm hoặc nhìn , không cần tranh luận. Không kiểm được Kiểm được Giao diện đẹp Chữ thân bài ≥ 16px; không có chữ tràn khung ở màn hình 375px Tải nhanh Ảnh ≤ 300KB mỗi ảnh; trang chủ hiện nội dung trong 2 giây trên 4G Dễ liên hệ Nút \"Nhắn Zalo\" thấy được ngay màn hình đầu trên điện thoại, bấm mở đúng Zalo Chuẩn SEO Mỗi trang có title và description riêng Cắt phạm vi: luật 3–1–0 3 việc chính, không hơn. 1 kiểu người dùng chính cho bản đầu người khác phục vụ sau . 0 tính năng cần đăng nhập, thanh toán hoặc lưu dữ liệu cá nhân, trừ khi đó chính là lý do sản phẩm tồn tại. Nếu brief của bạn vi phạm luật này, cắt tiếp. Những thứ bị cắt ghi vào mục \"Để sau\" trong NOTES.md ; bạn không mất chúng. Dùng AI để viết brief nhưng bạn quyết AI giỏi hỏi và sắp xếp . Bạn giỏi biết sự thật về khách hàng của mình. Dùng prompt sau: Ví dụ brief hoàn chỉnh rút gọn Lỗi hay gặp Brief dài 10 trang. Không ai đọc, kể cả AI nó sẽ bỏ sót . Một trang là đủ cho bản đầu. Viết theo giải pháp thay vì vấn đề. \"Cần React và database\" là quyết định kỹ thuật, để AI đề xuất và bạn duyệt. Không cập nhật brief. Khi đổi ý, sửa brief trước, rồi mới bảo AI sửa code. Việc làm ngay 1. Chép mẫu 8 mục vào file BRIEF.md trong thư mục dự án. 2. Dùng prompt ở trên để AI hỏi bạn và giúp điền. 3. Tự đọc lại, áp luật 3–1–0, cắt tiếp nếu cần. 4. Viết ít nhất 5 tiêu chí nghiệm thu kiểm được. Tóm tắt Brief là bối cảnh chung; prompt là từng lần giao việc. Mục \"KHÔNG làm\" giữ dự án khỏi phình to. Tiêu chí nghiệm thu phải kiểm được bằng cách bấm hoặc nhìn. AI hỏi và sắp xếp, bạn quyết định."},{"type":"Bài học","title":"Giao việc cho AI: công thức 5 phần","summary":"Cách viết yêu cầu để AI làm đúng ngay từ lần đầu, và cách chia dự án thành lát cắt nhỏ để sửa chỗ này không hỏng chỗ kia.","url":"/bai-hoc/giao-viec-cho-ai","text":"Vấn đề thật Hai người dùng cùng một công cụ AI. Người thứ nhất nhận code lộn xộn, sửa mãi không xong. Người thứ hai nhận đúng thứ mình cần sau 2–3 vòng. Khác biệt gần như luôn nằm ở cách giao việc , giống như giao việc cho thợ: nói mơ hồ thì nhận sản phẩm mơ hồ. Công thức 5 phần So sánh Yêu cầu yếu: Yêu cầu theo công thức: Yêu cầu thứ hai dài hơn, nhưng tiết kiệm cho bạn 3–4 vòng sửa. Giao việc đa tầng: thêm tầng dữ liệu mẫu khi cần Năm phần trên là các tầng thông tin của một yêu cầu. Người làm nghề gọi cách viết này là giao việc đa tầng layered prompting hoặc kỹ thuật ngữ cảnh context engineering : AI không phải đoán vì mỗi tầng trả lời một câu hỏi nó sẽ hỏi. Khi việc liên quan dữ liệu hoặc giao diện, thêm tầng thứ sáu: Ví dụ: \"Mỗi món có id, tên, giá. Mẫu: {id: 1, ten: \"Cà phê sữa\", gia: 29000} \". Có mẫu, AI làm đúng định dạng ngay lần đầu thay vì tự đặt tên trường rồi bạn phải sửa lại cả trang. Đừng tin các con số kiểu \"cách viết này giảm 90% lỗi\". Không có nghiên cứu nào đo được như vậy cho mọi trường hợp. Điều chắc chắn: yêu cầu rõ thì số vòng sửa giảm , và bạn tự thấy điều đó sau vài dự án. Ba câu thần chú Thêm vào cuối yêu cầu khi việc không nhỏ: 1. \"Trước khi làm, hãy nêu kế hoạch và các giả định, chờ tôi duyệt.\" AI sẽ lộ ra chỗ nó hiểu sai trước khi viết 200 dòng code sai. 2. \"Nếu thiếu thông tin, hỏi tôi. Không tự bịa.\" Đặc biệt với giá, số liệu, tên, nội dung pháp lý. 3. \"Chỉ sửa những gì trong phạm vi. Liệt kê mọi file đã sửa.\" Để bạn biết cần kiểm lại chỗ nào. Chia lát cắt: không bao giờ giao cả app một lần Một lát cắt slice là phần việc nhỏ nhất mà khi xong, bạn mở ra kiểm được . Ví dụ với landing page: Lát cắt Kiểm bằng cách 1 Khung trang + header + footer, chưa nội dung Mở trên máy và điện thoại, menu bấm được 2 Khối đầu trang tiêu đề, mô tả, nút Zalo Nút mở đúng Zalo 3 Khối mẫu đã làm lưới ảnh 9 ảnh hiện đủ, không vỡ trên mobile 4 Bảng giá tham khảo Không cuộn ngang trên 375px 5 Quy trình 4 bước + hỏi đáp Đọc được, hỏi đáp mở/đóng bằng bàn phím 6 SEO, ảnh chia sẻ, favicon Dán link vào Zalo/Facebook thấy ảnh và tiêu đề Quy trình mỗi lát: Lưu checkpoint sau mỗi lát chạy đúng là thói quen quan trọng nhất của bài này. Lát sau AI làm hỏng, bạn quay lại được. Quản lý ngữ cảnh AI không có trí nhớ dài như bạn nghĩ. Cuộc trò chuyện càng dài, phần đầu càng dễ bị \"quên\". Một phiên = một lát cắt. Xong lát thì mở phiên mới, đưa lại BRIEF.md và nói đang ở lát nào. Giữ file NOTES.md : ghi quyết định \"dùng CSS thuần, không Tailwind\" , để đưa cho phiên mới. Dùng agent thì tạo file hướng dẫn Claude Code đọc CLAUDE.md , nhiều công cụ khác có file tương tự . Ghi quy tắc dự án ở đó một lần thay vì nhắc lại mỗi lần. Khi AI làm sai Đừng nói \"sai rồi, làm lại\". Nói sai chỗ nào, mong đợi gì, thấy gì : Bài Debug theo bằng chứng đi sâu hơn phần này. Lỗi hay gặp Sửa nhiều thứ trong một yêu cầu. \"Đổi màu, thêm bảng giá, sửa menu\" → ba lỗi chồng nhau, không biết cái nào gây ra cái nào. Chấp nhận AI \"tặng thêm\". Nếu AI thêm thứ bạn không yêu cầu, bảo nó bỏ đi. Mỗi thứ thừa là một chỗ hỏng tiềm năng. Để AI tự bịa nội dung. Giá, số điện thoại, lời khách khen, số năm kinh nghiệm: bạn cung cấp, hoặc để chỗ trống. Việc làm ngay 1. Từ brief của bạn, chia dự án thành 4–8 lát cắt, mỗi lát có cột \"Kiểm bằng cách\". 2. Viết yêu cầu cho lát 1 theo công thức 5 phần, kèm câu \"nêu kế hoạch trước\". 3. Giao cho AI, duyệt kế hoạch, kiểm kết quả. Tóm tắt 5 phần: Mục tiêu, Bối cảnh, Phạm vi, Ràng buộc, Nghiệm thu. Bắt AI nêu kế hoạch và hỏi lại trước khi làm việc lớn. Chia lát cắt nhỏ, kiểm từng lát, lưu checkpoint sau mỗi lát đúng. Báo lỗi: chỗ sai, mong đợi, thực tế."},{"type":"Bài học","title":"Vì sao AI quên và bịa: hiểu về context","summary":"Hiểu context là gì, vì sao cuộc trò chuyện càng dài AI càng làm kém đi, nhận ra dấu hiệu AI đang 'ngợp', và phân biệt quên với bịa.","url":"/bai-hoc/vi-sao-ai-quen-va-bia","text":"Vấn đề thật Bạn ngồi với AI đã hai tiếng. Lúc đầu mọi thứ mượt: bạn nói, AI làm đúng. Đến tin nhắn thứ 40, bạn bảo \"sửa nút cho to hơn\", AI sửa xong thì menu gãy. Bạn nhắc \"hồi nãy tôi dặn không dùng màu đỏ mà\", AI xin lỗi rồi... lại dùng màu đỏ. Cuối buổi bạn phát hiện trong code có một địa chỉ email mà bạn thề là chưa bao giờ đưa cho AI. Bạn không làm gì sai. Bạn chỉ không biết context là gì — và nó có giới hạn. Context là gì Hãy tưởng tượng AI làm việc trên một cái bàn . Mọi thứ nó cần để làm việc — yêu cầu của bạn, code đã viết, quyết định đã chốt — đều phải nằm trên bàn thì nó mới \"thấy\". Vấn đề: cái bàn có giới hạn . Mỗi mô hình AI có một \"cửa sổ context\" — lượng chữ tối đa nó đọc được một lúc. Vài chục nghìn đến vài trăm nghìn từ, nghe nhiều, nhưng một dự án vài chục file cộng với cuộc trò chuyện dài sẽ lấp đầy nhanh hơn bạn tưởng. Khi bàn đầy, AI phải bỏ bớt đồ ra . Thường là bỏ phần cũ nhất — chính là những ràng buộc bạn dặn từ đầu \"không dùng màu đỏ\", \"dùng CSS thuần\" . Quy tắc vàng: AI chỉ làm đúng với những gì đang nằm trong context. Cái gì không còn trên bàn, coi như chưa từng nói. Vì sao càng dài càng kém Ba lý do, từ nhẹ đến nặng: 1. Thông tin cũ bị đẩy ra. Như đã nói ở trên. Ràng buộc đầu buổi là nạn nhân đầu tiên. 2. AI \"loãng\" sự chú ý. Càng nhiều chữ, AI càng khó biết đâu là quan trọng. Yêu cầu \"chỉ sửa nút\" nằm giữa 40 tin nhắn sẽ yếu đi so với khi nó đứng một mình. Giống như bạn dặn thợ một câu giữa chợ ồn ào. 3. Lịch sử sai tích tụ. Mỗi vòng sửa sai để lại \"vết\": code sai, giả định sai, quyết định đổi ý. AI đọc cả những cái đó và coi như một phần sự thật. Càng sửa loanh quanh, \"sự thật\" trong mắt AI càng nhiễu. Kết luận thực tế: phiên dài không phải là phiên hiệu quả . Người làm nhiều với AI đều có chung thói quen: phiên ngắn, việc nhỏ, xong là chốt. 4 dấu hiệu AI đang \"ngợp\" Học thuộc 4 dấu hiệu này. Thấy 2 trong 4 là dừng phiên, đừng cố: 1. Quên ràng buộc cũ. Bạn dặn rồi mà AI làm ngược lại. Không phải nó láo — là nó không còn thấy. 2. Tự bịa thay vì hỏi. Bịa địa chỉ, bịa số điện thoại, bịa tên hàm. Khi AI bắt đầu \"sáng tạo\" ở chỗ cần chính xác, context đã rối. 3. Sửa chỗ này, hỏng chỗ kia. AI mất bức tranh tổng thể, chỉ còn nhìn thấy miếng ghép trước mặt. 4. Trả lời chung chung, né tránh. \"Tôi đã kiểm tra và mọi thứ có vẻ ổn\" — câu này là chuông báo động, không phải báo cáo. Quên khác bịa — và bịa nguy hiểm hơn Hai hiện tượng khác nhau, cách xử khác nhau: Quên Bịa Là gì Mất thông tin bạn đã đưa Tự điền thông tin bạn chưa đưa Ví dụ Quên \"không dùng màu đỏ\" Tự viết email, số điện thoại, giá tiền Dấu hiệu Bạn phải nhắc lại Mọi thứ trông \"xong\" một cách đáng ngờ Cách trị Nhắc lại / mở phiên mới, đưa lại Cấm từ đầu: \"thiếu thông tin thì hỏi, không tự bịa\" Bịa nguy hiểm hơn vì trông rất thật . Một địa chỉ email bịa đặt nằm giữa code đúng sẽ qua mặt bạn nếu bạn kiểm tra qua loa. Đây là lý do bài Giao việc cho AI dặn: số liệu, tên riêng, nội dung pháp lý — hoặc bạn đưa sẵn, hoặc bắt AI hỏi. Không có lựa chọn thứ ba. Lỗi hay gặp \"Càng nói nhiều AI càng hiểu.\" Ngược lại. Nói nhiều trong một phiên làm AI hiểu kém đi. Muốn AI hiểu: phiên ngắn, yêu cầu gọn, file quy tắc dự án bài tiếp theo . Mắng AI khi nó quên. Vô ích và tốn thời gian. Quên là giới hạn kỹ thuật, không phải thái độ. Việc đúng là mở phiên mới. Nhầm bịa với đúng. Kiểm tra mọi thứ AI \"tự điền\": email, số điện thoại, giá, ngày tháng, tên người. Mất 30 giây, cứu được uy tín của bạn. Cố cứu phiên đã ngợp. \"Thôi ráng thêm chút nữa là xong\" — rồi mất thêm một tiếng. Quy tắc: 2 dấu hiệu ngợp là dừng, tóm tắt, mở phiên mới. Việc làm ngay 1. Mở lại một cuộc trò chuyện dài bạn từng làm với AI nếu còn . Cuộn lên và tìm điểm AI bắt đầu kém đi : tin nhắn thứ mấy? Dấu hiệu đầu tiên là gì trong 4 dấu hiệu trên? Ghi vào NOTES.md . 2. Viết 4 dấu hiệu \"ngợp\" vào NOTES.md của dự án, ngay dưới phần quy tắc. Lần sau thấy 2 dấu hiệu là bạn biết phải làm gì. 3. Kiểm tra một sản phẩm AI từng làm cho bạn: có chỗ nào AI tự bịa email, số liệu, tên mà bạn chưa phát hiện không? Tóm tắt Context là \"cái bàn\" AI làm việc — có giới hạn, đầy thì bỏ đồ cũ ra. Phiên càng dài, AI càng kém: quên ràng buộc, loãng chú ý, tích tụ lịch sử sai. 4 dấu hiệu ngợp: quên ràng buộc cũ, tự bịa, sửa chỗ này hỏng chỗ kia, trả lời chung chung. Bịa nguy hiểm hơn quên vì trông thật — cấm AI tự điền số liệu/tên/địa chỉ ngay từ đầu. Thấy 2 dấu hiệu là dừng phiên. Bài tiếp theo: mở phiên mới mà không mất gì."},{"type":"Bài học","title":"Mở phiên mới mà không mất gì: tóm tắt và quy tắc dự án","summary":"Biết khi nào phải mở phiên mới, cách tóm tắt bàn giao để phiên mới tiếp tục đúng, và cách viết file quy tắc dự án để không phải nhắc lại mỗi lần.","url":"/bai-hoc/phien-moi-khong-mat-gi","text":"Vấn đề thật Phiên trò chuyện của bạn đã dài 3 tiếng. AI bắt đầu quên trước quên sau. Bạn biết nên mở phiên mới — nhưng tiếc: \"Bỏ thì mất hết những gì đã làm, giải thích lại từ đầu mệt lắm.\" Kết quả: bạn ráng thêm một tiếng nữa trong phiên ngợp, mọi thứ càng rối. Đây là ngụy biện chi phí chìm phiên bản Vibe Coding: tiếc công đã bỏ ra nên tiếp tục đổ thêm công vào chỗ sai. Sự thật: mở phiên mới đúng cách chỉ mất 5 phút , và phiên mới làm nhanh gấp đôi phiên ngợp. 3 thời điểm bắt buộc mở phiên mới Không phải \"khi nào rảnh\", mà là 3 thời điểm cụ thể: 1. Thấy 2 trong 4 dấu hiệu \"ngợp\". Bài trước. Quên ràng buộc, tự bịa, sửa chỗ này hỏng chỗ kia, trả lời chung chung — đừng chữa, mở phiên mới. 2. Chuyển sang lát cắt mới. Đây là kỷ luật, không phải tùy chọn. Mỗi lát cắt là một phiên riêng. Bài Giao việc cho AI đã dặn: một phiên = một lát cắt. 3. Sau 2–3 vòng sửa thất bại cùng một lỗi. Như bài Debug theo bằng chứng : dừng, quay về checkpoint, mở phiên mới với mô tả lỗi đầy đủ. Phiên cũ đã đầy giả định sai. Ngoại lệ duy nhất được nói tiếp: việc nhỏ, dưới 10 tin nhắn, AI vẫn đang làm đúng. Còn lại, mở phiên mới là mặc định. Bí quyết: nhờ AI cũ viết tóm tắt cho AI mới Bạn không phải tự viết tóm tắt. Trước khi đóng phiên cũ, nhắn đúng câu này: Rồi sang phiên mới, mở đầu bằng: 5 phút. Phiên mới bắt đầu với đầy đủ sự thật, không rác. File quy tắc dự án: viết một lần, dùng mọi phiên Có những thứ bạn phải nhắc AI mọi phiên : dùng công nghệ gì, cấm gì, phong cách nào. Nhắc bằng miệng thì phiên nào cũng tốn 5 tin nhắn đầu. Cách đúng: viết thành file . Với mọi công cụ, file NOTES.md trong thư mục dự án làm được việc này. Với Claude Code, file CLAUDE.md được AI tự đọc đầu phiên học kỹ ở Khóa Claude Code . Một file quy tắc tốt: Ngắn — dưới 40 dòng. Quy tắc nào cũng phải là thứ bạn thực sự muốn AI tuân thủ mọi lần . Đừng viết văn. Lỗi hay gặp Tiếc phiên cũ. \"Đã nói 3 tiếng rồi, bỏ uổng.\" 3 tiếng đó đã cho bạn code đã commit checkpoint và bài học. Phiên mới + tóm tắt 5 phút lấy lại tất cả cái đáng giữ, bỏ lại toàn rác. Tóm tắt quá dài. Copy cả cuộc trò chuyện sang phiên mới là mang rác sang nhà mới. Chỉ 5 mục trên, không hơn. File quy tắc quá dài. Viết 200 dòng \"hướng dẫn\" thì AI cũng ngợp như bạn. Quy tắc phải ngắn đến mức bạn tự đọc hết trong 1 phút. Mỗi phiên một quy tắc khác nhau. Hôm nay dặn \"không Tailwind\", mai quên, AI thêm Tailwind vào. File quy tắc cố định chấm dứt chuyện này. Việc làm ngay 1. Mở phiên AI hiện tại nếu có , dùng câu lệnh tóm tắt ở trên để lấy bản tóm tắt 5 mục. Đọc lại: có mục nào sai không? Sửa trước khi dùng. 2. Tạo file NOTES.md trong thư mục dự án nếu chưa có , viết ít nhất 5 quy tắc theo mẫu trên: 2 về công nghệ, 2 về nội dung, 1 điều cấm. 3. Mở một phiên mới hoàn toàn, dùng mẫu \"phiên mới\" ở trên với tóm tắt + quy tắc, giao một việc nhỏ. So sánh tốc độ và độ chính xác với phiên cũ dài. Tóm tắt 3 thời điểm mở phiên mới: thấy dấu hiệu ngợp, chuyển lát cắt, sau 2–3 vòng sửa thất bại. Đừng tự tóm tắt — nhờ AI cũ viết bản tóm tắt 5 mục cho AI mới. Quy tắc lặp lại thì viết thành file NOTES.md , không nhắc bằng miệng. File quy tắc ngắn <40 dòng , chỉ chứa điều bạn muốn AI tuân thủ mọi lần. Mở phiên mới đúng cách mất 5 phút, nhanh hơn ráng thêm 1 tiếng trong phiên ngợp."},{"type":"Bài học","title":"Mô tả giao diện để AI làm đúng ý","summary":"Biến cảm giác 'muốn đẹp' thành mô tả AI làm theo được: phong cách, màu, chữ, bố cục, trạng thái. Và cách thoát khỏi kiểu giao diện 'trông như mọi web AI'.","url":"/bai-hoc/mo-ta-giao-dien","text":"Vấn đề thật Bạn bảo AI \"làm đẹp lên\". Nó trả về nền gradient tím xanh, thẻ bo tròn có bóng mờ, chữ Inter, hiệu ứng trượt khắp nơi. Trông \"xịn\", nhưng giống hệt hàng nghìn trang khác do AI làm, và chẳng nói gì về sản phẩm của bạn. AI không có gu riêng. Nó trả về mức trung bình khi bạn không nói rõ. Bài này dạy bạn nói rõ. Năm thứ cần mô tả 1. Cảm giác 3–5 từ cụ thể Mơ hồ Cụ thể Đẹp, hiện đại Mộc, ấm, tin cậy, nhiều ảnh thật Chuyên nghiệp Gọn, nghiêm túc, chữ lớn, ít màu Trẻ trung Bụi, đậm, tương phản mạnh, viền dày 2. Màu Tối đa: một màu nền, một màu chữ, một màu nhấn, một màu viền, một màu báo lỗi. Ghi mã màu nếu có thương hiệu. Nói rõ màu nhấn dùng ở đâu \"chỉ cho nút chính và chữ cần chú ý\" . 3. Chữ Font phải hỗ trợ đủ dấu tiếng Việt . Nhiều font đẹp trên Google Fonts bị lỗi dấu ơ, ư, ỹ hiển thị lệch . Ví dụ font thiết kế riêng cho tiếng Việt: Be Vietnam Pro. Cỡ chữ thân bài từ 16px trở lên. Tối đa 2 font: một cho tiêu đề, một cho nội dung thêm font monospace nếu có code . 4. Bố cục Mô tả theo thứ tự người dùng cuộn , như bạn kể lại trang cho ai đó: 5. Trạng thái AI hay chỉ làm trạng thái \"mọi thứ ổn\". Hỏi thêm: Đang tải thì hiện gì? Không có dữ liệu rỗng thì hiện gì? Lỗi thì báo thế nào, người dùng làm gì tiếp? Nút bị vô hiệu thì trông thế nào? Design token: sửa một chỗ, đổi cả trang Design token là các biến đặt tên cho màu, chữ, khoảng cách. Thay vì AI rải mã màu 3b82f6 khắp 20 file, mọi chỗ dùng var mau nhan . Thêm vào mọi yêu cầu giao diện: \"Chỉ dùng biến trong :root. Không thêm màu mới.\" Đây là cách đơn giản nhất để giao diện không trôi dần sau 10 lần sửa. Thoát khỏi \"giao diện AI\" Dấu hiệu giao diện mặc định của AI và cách tránh: Dấu hiệu Thay bằng Gradient tím xanh Nền một màu, chọn theo thương hiệu Mọi thẻ bo tròn lớn, bóng mờ Chọn một kiểu: bo nhẹ, hoặc viền đậm, nhất quán Emoji làm biểu tượng đầu mục Không biểu tượng, hoặc bộ icon thống nhất Ảnh minh họa chung chung Ảnh thật sản phẩm của bạn Mọi thứ căn giữa Căn trái cho nội dung đọc Số liệu ấn tượng tự bịa \"10.000+ khách\" Bỏ, cho tới khi có số thật Cách giao việc giao diện theo bước 1. Định hướng trước, dựng sau. Dùng prompt Mô tả giao diện cho AI trong thư viện: AI đưa 2 phương án, bạn chọn. 2. Dựng một trang mẫu với đủ thành phần: tiêu đề các cấp, đoạn văn, nút, thẻ, bảng, form. Duyệt trang mẫu trước khi làm các trang thật. 3. Áp cho từng trang theo lát cắt. 4. Kiểm bằng checklist Nghiệm thu giao diện . Gửi ảnh chụp để sửa giao diện Nhiều công cụ AI nhận ảnh. Một ảnh chụp kèm khoanh vùng hiệu quả hơn ba đoạn mô tả: Lỗi hay gặp Sửa giao diện bằng cảm tính từng chút. \"Đậm hơn chút\", \"to hơn chút\" lặp 20 lần. Hãy nói con số: \"chữ tiêu đề 32px, đậm 800\". Chỉ xem trên máy tính. Mở chế độ điện thoại F12, biểu tượng điện thoại sau mỗi lát cắt. Để AI chọn font tự do. Kiểm tra dấu tiếng Việt: gõ thử \"Ỹ ỹ Ữ ữ Ở ở Ặ ặ\". Việc làm ngay 1. Viết 3–5 từ cảm giác cho sản phẩm của bạn và 1–2 trang tham khảo kèm lý do. 2. Chạy prompt Mô tả giao diện cho AI , chọn một phương án. 3. Lưu bảng token vào brief mục 6 và vào file CSS của dự án. Tóm tắt AI trả về mức trung bình khi bạn mô tả mơ hồ. Mô tả 5 thứ: cảm giác, màu, chữ, bố cục theo thứ tự cuộn, trạng thái. Dùng design token, cấm AI thêm màu mới. Kiểm trên điện thoại, bằng bàn phím, và ở trạng thái rỗng, lỗi."},{"type":"Bài học","title":"Dữ liệu và backend: khi nào cần, dùng Supabase an toàn","summary":"Phân biệt khi nào web tĩnh là đủ, khi nào cần nơi lưu dữ liệu. Nắm 3 quy tắc sống còn khi cho AI làm phần dữ liệu với Supabase: bảng rõ ràng, bật RLS, không lộ khóa service_role.","url":"/bai-hoc/du-lieu-va-backend","text":"Vấn đề thật Bạn muốn khách để lại đơn, muốn người học lưu tiến độ, muốn có trang quản trị. AI nói \"dùng Supabase nhé\", tạo bảng, viết code, chạy được. Vài tuần sau bạn phát hiện bất kỳ ai mở Console của trình duyệt cũng đọc được toàn bộ danh sách khách hàng. Đây là lỗi phổ biến nhất khi vibe code app có dữ liệu. Bài này giúp bạn tránh nó. Bước 0: có thật sự cần backend? Bạn cần Cách không cần backend Khách liên hệ, đặt hàng Nút Zalo, Messenger, email Nhận đăng ký, khảo sát Nhúng Google Form, dữ liệu về Google Sheet Hiển thị danh sách sản phẩm Viết thẳng trong file nội dung, sửa rồi deploy lại Nhớ tiến độ của một người trên một máy Lưu trong trình duyệt localStorage Chỉ cần backend khi: nhiều người tạo ra dữ liệu và cần thấy dữ liệu của nhau hoặc của mình trên nhiều máy , có đăng nhập, có phân quyền. Lưu trong trình duyệt: localStorage Với app một người dùng trên một máy sổ chi tiêu cá nhân, danh sách việc, ghi chú , localStorage là đủ: dữ liệu nằm trong trình duyệt, tải lại trang vẫn còn, không cần máy chủ, không tốn tiền. Bụi Code lưu tiến độ học của bạn đúng bằng cách này. Giao việc cho AI: Biết giới hạn trước khi dùng: dữ liệu chỉ có trên trình duyệt đó . Đổi máy, đổi trình duyệt, xóa dữ liệu duyệt web hoặc dùng cửa sổ ẩn danh là mất. Không lưu thông tin nhạy cảm vào đây vì mọi đoạn code chạy trên trang đều đọc được. <div class=\"callout callout warn\" <span class=\"callout title\" Hiểu sai hay gặp: MCP không phải nơi lưu dữ liệu của app</span <p MCP Model Context Protocol là cách để <strong công cụ AI</strong của bạn đọc, ghi vào dịch vụ khác trong lúc làm việc, ví dụ cho Claude Code xem cấu trúc bảng trên Supabase. Nó không phải cơ sở dữ liệu, và website của bạn khi chạy cho khách không dùng MCP. Dữ liệu của app vẫn nằm ở localStorage, Google Sheet hoặc một cơ sở dữ liệu như Supabase. MCP được dạy ở Khóa Claude Code.</p </div Supabase là gì, nói ngắn Supabase là dịch vụ cho bạn một cơ sở dữ liệu Postgres cùng đăng nhập Auth , lưu file Storage và API tự sinh, quản lý qua giao diện web. Nó hợp với vibe coding vì AI biết nó khá rõ và bạn không phải tự dựng máy chủ. Hai thứ bạn phải hiểu trước khi cho AI đụng vào: Hai loại khóa Khóa Ở đâu Quyền anon / publishable Được phép nằm trong code trình duyệt Chỉ làm được những gì RLS cho phép service role / secret Chỉ ở phía máy chủ, biến môi trường Bỏ qua mọi RLS, toàn quyền Tên khóa có thể khác tùy thời điểm; đọc trang API keys trong tài liệu Supabase nguồn cuối bài . RLS: Row Level Security RLS là luật ở cấp cơ sở dữ liệu quyết định ai được đọc, ghi dòng nào . Khi bật RLS cho một bảng mà chưa có luật policy nào, mọi truy cập bằng khóa anon bị chặn. Bạn mở dần bằng policy, ví dụ: \"người dùng chỉ đọc được tiến độ của chính mình\". Quy tắc: Bảng nào có dữ liệu mà trang web đọc bằng khóa anon thì bắt buộc bật RLS . Không có ngoại lệ \"tạm thời\". Mô tả dữ liệu cho AI bằng ngôn ngữ đời thường Bạn không cần biết SQL. Bạn cần mô tả rõ thứ gì, ai sở hữu, ai được làm gì : Kiểm tra bảo mật dữ liệu bắt buộc trước khi công khai 1. Trong trang quản lý Supabase, mở mục bảng: mọi bảng có dấu hiệu RLS enabled . 2. Tìm trong mã nguồn chữ service role , secret : không được xuất hiện trong code chạy ở trình duyệt. 3. Thử bằng hai tài khoản: đăng nhập A tạo dữ liệu; đăng nhập B, xem có thấy dữ liệu A không. Thấy là lỗi nghiêm trọng. 4. Thử khi chưa đăng nhập: mở cửa sổ ẩn danh, thử gọi trang có dữ liệu. 5. Dùng tính năng cảnh báo bảo mật trong trang quản lý Supabase nếu có và xử lý cảnh báo mức cao. Lỗi hay gặp AI tắt RLS \"cho chạy được\". Khi gặp lỗi quyền, AI hay đề xuất tắt RLS. Không chấp nhận. Bảo nó viết policy đúng. Dùng service role ở trình duyệt vì \"anon bị lỗi quyền\". Đây là cách lộ toàn bộ dữ liệu. Thu thập dữ liệu thừa. Không cần số điện thoại thì đừng lưu. Dữ liệu càng ít, rủi ro càng ít. Không sao lưu. Biết cách xuất dữ liệu và đã thử khôi phục ít nhất một lần. Việc làm ngay 1. Với ý tưởng của bạn, đi qua bảng \"Bước 0\". Ghi vào brief: cần hay không cần backend, vì sao. 2. Nếu cần: viết mô tả dữ liệu theo mẫu thứ gì, ai sở hữu, ai làm gì , chưa cần chạy. 3. Chép 5 bước kiểm tra bảo mật dữ liệu vào NOTES.md . Tóm tắt Chỉ thêm backend khi nhiều người tạo dữ liệu và cần đăng nhập, phân quyền. Khóa anon ở trình duyệt được, nhưng chỉ an toàn khi có RLS. Khóa service role chỉ ở máy chủ. Thử bằng hai tài khoản trước khi công khai."},{"type":"Bài học","title":"Debug theo bằng chứng: báo lỗi cho AI đúng cách","summary":"Cách tìm và gửi bằng chứng lỗi (thông báo lỗi, các bước tái hiện, ảnh chụp) để AI sửa đúng nguyên nhân, thay vì đoán mò và sửa lòng vòng.","url":"/bai-hoc/debug-theo-bang-chung","text":"Vấn đề thật \"Nút không bấm được, sửa đi.\" AI đoán một nguyên nhân, sửa. Vẫn không được. AI đoán nguyên nhân khác, sửa thêm. Sau 5 vòng, code đầy những bản vá chồng lên nhau, lỗi gốc vẫn còn, và giờ có thêm lỗi mới. Đó là debug đoán mò . Cách thoát là đưa cho AI bằng chứng : thứ nó không thể tự thấy. Ba nguồn bằng chứng 1. Thông báo lỗi trong Console Trên Chrome, Edge hoặc Firefox: bấm F12 trên Mac: Cmd + Option + I , chọn tab Console . Dòng chữ đỏ là lỗi. Ví dụ một lỗi hay gặp: Bạn không cần hiểu hết. Chỉ cần biết đọc: Loại lỗi: TypeError , đoạn code đang làm việc với một thứ không tồn tại null . Ở đâu: file main.js , dòng 12, cột 28. Nghĩa thường gặp: code tìm một phần tử trên trang ví dụ nút nhưng không thấy, do sai tên, hoặc code chạy trước khi trang tải xong. Chép nguyên văn dòng lỗi gửi cho AI. Đừng tóm tắt \"nó báo lỗi gì đó về null\". 2. Các bước tái hiện Lỗi tái hiện được là lỗi đã sửa được một nửa. Ghi đúng từng bước: 3. Ảnh chụp và bối cảnh Ảnh chụp màn hình lúc lỗi nhiều công cụ AI nhận ảnh . Trình duyệt, thiết bị: \"Safari trên iPhone\" khác \"Chrome trên máy tính\". Lần cuối chạy đúng là khi nào, đã sửa gì sau đó. Đây thường là manh mối quý nhất. Mẫu báo lỗi 5 dòng Dòng \"nêu nguyên nhân trước khi sửa\" ép AI chẩn đoán thay vì vá bừa . Bẻ lái khi AI đi sai hướng \"Bẻ lái\" là chặn AI lại trước khi nó sửa tiếp theo hướng sai. Dùng một trong ba câu sau, tùy tình huống: Câu đầu ép AI suy luận bằng bằng chứng thay vì đoán rồi vá. Hai câu sau khóa phạm vi để lỗi không lan. Quy tắc 2 vòng Nếu AI sửa 2 lần mà lỗi vẫn còn: 1. Dừng. Không bảo \"thử lại\" lần thứ ba. 2. Quay về checkpoint gần nhất chạy đúng xem bài Git . Bỏ hết các bản vá lỗi. 3. Mở phiên mới , đưa brief, mô tả lỗi theo mẫu 5 dòng, kèm thông tin \"đã thử A và B, không được\". 4. Nếu vẫn không được: cắt nhỏ . Tạo một trang thử chỉ chứa đúng phần lỗi, xem lỗi còn không. Lý do: sau vài vòng thất bại, cuộc trò chuyện đầy giả định sai. Phiên mới sạch thường tìm ra nguyên nhân nhanh hơn. Kiểm thử hồi quy: sửa xong phải kiểm lại cái cũ Sửa lỗi A hay làm hỏng B gọi là hồi quy , regression . Sau mỗi lần sửa, kiểm nhanh danh sách việc chính trong brief: Lưu danh sách này vào NOTES.md , dùng lại mỗi lần. Dấu hiệu AI đang sửa lòng vòng Nó nói \"Tôi đã tìm ra nguyên nhân thật sự\" lần thứ hai, thứ ba. Nó thêm code kiểm tra if x !== null khắp nơi thay vì tìm vì sao x là null. Nó xóa hoặc sửa test để test qua. Nó đổi thư viện, đổi cách làm lớn để \"sửa\" một lỗi nhỏ. Thấy các dấu hiệu này: áp quy tắc 2 vòng. Lỗi hay gặp Gửi ảnh chụp toàn màn hình code dài. Gửi text lỗi nguyên văn, AI đọc chính xác hơn. Sửa 3 lỗi một lúc. Sửa một, kiểm, checkpoint, rồi mới tới lỗi sau. Không ghi lại lỗi đã gặp. Lỗi hay quay lại. Ghi vào NOTES.md : lỗi gì, nguyên nhân, cách sửa. Việc làm ngay 1. Mở website bất kỳ, bấm F12, xem tab Console. Tìm hiểu xem có dòng đỏ nào không. 2. Chép mẫu báo lỗi 5 dòng vào NOTES.md . 3. Viết danh sách \"kiểm nhanh sau khi sửa\" cho dự án của bạn từ tiêu chí nghiệm thu trong brief. Tóm tắt Bằng chứng gồm: lỗi nguyên văn, bước tái hiện, mong đợi và thực tế, bối cảnh. Bắt AI chẩn đoán trước khi sửa. Sửa 2 lần không được: dừng, quay checkpoint, phiên mới, cắt nhỏ. Sửa xong phải kiểm lại các việc chính."},{"type":"Bài học","title":"3 thất bại kinh điển và cách thoát","summary":"Ba kiểu thất bại mà người mới Vibe Coding nào cũng gặp: AI xóa nhầm file, deploy xong trang trắng, và sửa một lỗi sinh ra ba lỗi mới. Mỗi case có cách thoát cụ thể.","url":"/bai-hoc/3-that-bai-kinh-dien","text":"Vấn đề thật Thất bại không phải là \"có thể\" — là \"chắc chắn\". Người mới Vibe Coding nào cũng sẽ gặp ít nhất một trong ba kiểu dưới đây. Khác biệt giữa người bỏ cuộc và người đi tiếp không phải là tránh được thất bại, mà là biết cách thoát . Case 1: AI xóa nhầm file Hiện tượng: Bạn nhờ AI \"dọn dẹp\" hoặc \"sửa lại cấu trúc\", quay lại thì mất file bang gia.html — cả tuần làm việc trong đó. Vì sao xảy ra: Bạn giao việc mơ hồ \"dọn dẹp giúp tôi\" mà không khoanh phạm vi. AI hiểu \"dọn\" theo nghĩa đen. Cách thoát: 1. Dừng ngay. Đừng nhờ AI \"viết lại\" — nó sẽ viết phiên bản khác, không phải bản của bạn. 2. Kiểm tra checkpoint: git log oneline tìm commit gần nhất còn file. 3. Khôi phục file từ commit đó hỏi AI: \"khôi phục file bang gia.html từ commit abc123, không đụng gì khác\" . 4. Sau này: commit sau mỗi lát đúng + không bao giờ nói \"dọn dẹp\" mà không liệt kê file được đụng. Bài học: Checkpoint không phải để \"lưu cho vui\". Nó là bảo hiểm. Case 2: Deploy xong trang trắng Hiện tượng: Trên máy chạy hoàn hảo. Deploy lên mạng: trang trắng tinh, không chữ không ảnh. Vì sao xảy ra: 90% là đường dẫn sai . Trên máy bạn, file ảnh ở C:/Users/.../anh/logo.png . Trên server, đường dẫn đó không tồn tại. Hoặc bạn dùng đường dẫn tuyệt đối /images/logo.png trong khi deploy vào thư mục con. Cách thoát: 1. Mở trang đã deploy, bấm F12 → tab Console. Đọc dòng đỏ: nó sẽ ghi 404 và tên file không tải được. 2. Sửa đường dẫn thành tương đối ./images/logo.png hoặc images/logo.png . 3. Deploy lại. Kiểm tra lại trên điện thoại thật. Bài học: \"Trên máy chạy\" chưa phải \"chạy thật\". Luôn kiểm tra bản deploy bằng F12. Case 3: Sửa một lỗi, đẻ ba lỗi mới Hiện tượng: Lát 5 đang sửa lỗi nhỏ. AI sửa xong, menu gãy. Sửa menu, form hỏng. Sửa form, trang trắng. Bạn đang ở vòng xoáy. Vì sao xảy ra: AI đã ngợp context bài Vì sao AI quên và bịa . Nó không còn thấy bức tranh tổng thể, chỉ vá chỗ này rách chỗ kia. Càng sửa, \"sự thật\" trong mắt AI càng nhiễu. Cách thoát: 1. Dừng. Đây là kỷ luật khó nhất. Đừng \"ráng thêm chút nữa\". 2. Quay về checkpoint gần nhất còn chạy đúng git log , khôi phục . 3. Mở phiên mới. Dùng prompt Tóm tắt bàn giao phiên để lấy 5 mục từ phiên cũ. 4. Giao lại việc với phạm vi nhỏ hơn chia lát cắt nhỏ hơn nữa . Bài học: Vòng xoáy sửa lỗi là dấu hiệu, không phải thử thách. Thấy 2 3 vòng không tiến triển là dừng. Lỗi hay gặp \"Làm lại từ đầu cho sạch.\" Hiếm khi đúng. Làm lại mất hết bài học từ lần trước, và bạn sẽ gặp lại đúng 3 case này ở dự án mới. Sửa từ checkpoint nhanh hơn và dạy bạn nhiều hơn. Giấu thất bại. Không ghi lại mình đã sai ở đâu thì lần sau sai y hệt. Mỗi lần thoát được một case, ghi 3 dòng vào BUG LOG.md : hiện tượng, nguyên nhân, cách thoát. Đổ lỗi cho AI. AI là công cụ. Cả 3 case trên đều có nguyên nhân từ cách bạn giao việc và quản lý phiên — và đó là tin tốt, vì bạn sửa được. Việc làm ngay 1. Kiểm tra dự án của bạn: đã có checkpoint commit gần nhất chưa? Nếu chưa, commit ngay bây giờ với tin nhắn rõ ràng. 2. Tạo file BUG LOG.md trong thư mục dự án với 3 cột: Hiện tượng Nguyên nhân Cách thoát. Để trống — nó sẽ đầy dần, và đó là tài sản. 3. Mở trang đã deploy nếu có bằng F12, kiểm tra tab Console có dòng đỏ nào không. Tóm tắt 3 thất bại kinh điển: AI xóa nhầm file, deploy trắng trang, vòng xoáy sửa lỗi. Cách thoát chung: dừng → checkpoint → phiên mới → phạm vi nhỏ hơn. \"Làm lại từ đầu\" hiếm khi là đáp án. Ghi lại thất bại vào BUG LOG.md. Thất bại không tránh được; không biết cách thoát mới là vấn đề."},{"type":"Bài học","title":"Git cho người không code: checkpoint và quay lại","summary":"Git là nút 'lưu game' cho dự án. Học 6 lệnh đủ dùng để lưu bản ổn định, xem AI đã sửa gì, và quay lại khi AI làm hỏng.","url":"/bai-hoc/git-cho-nguoi-khong-code","text":"Vấn đề thật AI vừa sửa 7 file. Trang hỏng. Bạn không nhớ trước đó file trông thế nào. Bạn bảo AI \"quay lại như cũ\", nó cố nhớ và viết lại, nhưng không giống hẳn bản cũ. Nếu có Git, việc này mất 10 giây. Git là gì, nói kiểu đời thường Hãy nghĩ tới lưu game . Mỗi lần qua một màn khó, bạn lưu. Chết ở màn sau thì tải lại bản lưu, không phải chơi lại từ đầu. Repository repo, kho : thư mục dự án có Git theo dõi. Commit: một bản lưu, kèm ghi chú bạn đặt. Diff: so sánh: bản hiện tại khác bản lưu ở dòng nào. Git chạy trên máy bạn, miễn phí. GitHub là dịch vụ lưu kho trên mạng giống Google Drive cho code ; bạn cần nó khi muốn sao lưu hoặc đưa website lên mạng, nhưng không bắt buộc để bắt đầu. Cài đặt Windows: tải Git tại trang chính thức git scm.com, cài với lựa chọn mặc định. Mac: mở Terminal, gõ git version . Nếu máy chưa có, hệ thống sẽ hỏi cài công cụ dòng lệnh; đồng ý. Kiểm tra: Thấy dòng kiểu git version 2.x.x là được. Lần đầu dùng, khai báo tên tên này ghi vào lịch sử, không phải tài khoản : Sáu lệnh đủ dùng Mở Terminal Windows: Git Bash hoặc PowerShell trong thư mục dự án . 1. Bắt đầu theo dõi làm một lần 2. Xem có gì thay đổi Hiện các file đã sửa đỏ hoặc đã chọn để lưu xanh . 3 + 4. Lưu checkpoint git add . chọn mọi thay đổi. git commit m \"...\" lưu, kèm ghi chú. Ghi chú nói cái gì chạy được , không phải \"update\" hay \"sửa\". 5. Xem lịch sử Chuỗi đầu dòng a3f9c21 là mã của bản lưu. 6. Xem AI vừa sửa gì Dòng bắt đầu bằng là bị xóa, + là được thêm. Bạn không cần đọc hiểu code để thấy: \"ồ, nó sửa cả file header, trong khi mình chỉ bảo sửa bảng giá\". Quay lại khi AI làm hỏng Trường hợp 1: chưa commit, muốn bỏ hết thay đổi từ lần lưu gần nhất. Cảnh báo: lệnh này xóa vĩnh viễn các thay đổi chưa commit. Chỉ dùng khi chắc chắn muốn bỏ. Trường hợp 2: muốn bỏ thay đổi của riêng một file. Trường hợp 3: đã commit bản hỏng, muốn quay lại bản trước nhưng vẫn giữ lịch sử. Lệnh này tạo một commit mới \"đảo ngược\" commit gần nhất. An toàn hơn các cách xóa lịch sử mà bạn có thể thấy trên mạng. Nhờ AI dùng Git cho bạn Nếu dùng agent có quyền chạy lệnh , bạn có thể ghi vào file hướng dẫn dự án: Agent làm hộ thao tác, nhưng bạn quyết định khi nào commit : chỉ commit khi đã tự kiểm và thấy chạy đúng. Lỗi hay gặp Commit một lần cuối ngày. Một commit chứa 10 thay đổi thì không quay lại được từng phần. Commit sau mỗi lát cắt. Commit cả file bí mật. Tạo file .gitignore và ghi các file không được lưu, ví dụ .env chứa khóa API . Xem bài Đưa website lên mạng an toàn . Chép lệnh lạ từ mạng. Lệnh có chữ force , hard , rm rf có thể xóa công sức của bạn. Hỏi trước khi chạy. Việc làm ngay 1. Cài Git, chạy git version . 2. Trong thư mục dự án: git init , rồi commit đầu tiên với BRIEF.md và NOTES.md . 3. Sửa một chữ trong NOTES.md , chạy git diff để thấy thay đổi, rồi git restore NOTES.md để bỏ. Tóm tắt Git là lưu game cho dự án. Commit sau mỗi lát chạy đúng. git diff cho bạn thấy AI đã sửa gì. git restore bỏ thay đổi chưa lưu; git revert đảo ngược commit an toàn. Không commit bí mật; không chạy lệnh có force hay hard khi chưa hiểu."},{"type":"Bài học","title":"Đưa website lên mạng an toàn","summary":"Đưa website tĩnh đầu tiên lên Internet, gắn tên miền, và nắm quy tắc sống còn về khóa API và bí mật để không mất tiền vì một dòng code.","url":"/bai-hoc/dua-website-len-mang","text":"Vấn đề thật Website chạy đẹp trên máy bạn. Giờ bạn muốn gửi link cho khách. Bạn tìm \"cách đưa web lên mạng\" và gặp hàng chục khái niệm: hosting, server, DNS, SSL, CI/CD. Hoặc tệ hơn: bạn làm app có gọi AI, đưa lên mạng, và vài ngày sau nhận hóa đơn lớn vì khóa API bị lộ trong code. Bài này đi con đường an toàn và đơn giản nhất. Website tĩnh và website có backend Tĩnh static Có backend Là gì Chỉ gồm file HTML, CSS, JS, ảnh; máy chủ chỉ việc gửi file Có máy chủ chạy code, thường có cơ sở dữ liệu Ví dụ Landing page, portfolio, blog, trang tài liệu Đăng nhập, đặt hàng, lưu dữ liệu người dùng Chi phí Nhiều nơi miễn phí cho dự án nhỏ Thường mất phí, cần quản trị Rủi ro bảo mật Thấp Cao hơn nhiều Dự án đầu tiên: làm web tĩnh. Cần nhận thông tin khách? Dùng nút mở Zalo, Messenger, email, hoặc nhúng Google Form, thay vì tự viết backend. Ba con đường deploy web tĩnh Các dịch vụ dưới đây đều có gói miễn phí cho website tĩnh nhỏ tại ngày kiểm tra. Điều khoản có thể thay đổi; đọc trang chính thức link ở cuối bài . Đường 1: Kéo thả thư mục nhanh nhất, để thử Netlify có tính năng kéo thả thư mục website lên trang web của họ để nhận link ngay. Ưu: vài phút, không cần Git. Nhược: mỗi lần sửa phải kéo thả lại; không có lịch sử. Dùng khi: muốn gửi bản xem thử cho khách ngay hôm nay. Đường 2: GitHub Pages Đưa kho Git lên GitHub, bật Pages trong phần Settings của kho. Ưu: miễn phí, gắn liền với Git; mỗi lần đẩy push code mới là website tự cập nhật. Nhược: cần tài khoản GitHub; với tài khoản miễn phí, kho thường phải để công khai. Đường 3: Cloudflare Pages, Vercel, Netlify nối với GitHub Kết nối kho GitHub, dịch vụ tự build và deploy mỗi lần bạn push. Ưu: có bản xem trước preview cho từng thay đổi trước khi lên chính thức; quay lại bản cũ bằng một nút rollback . Nhược: thêm một tài khoản để quản lý. Dùng khi: dự án bạn sẽ sửa lâu dài. Đây là con đường Bụi Code khuyên. Nhờ AI hướng dẫn từng bước theo đúng công cụ của bạn: Gắn tên miền 1. Mua tên miền tại nhà đăng ký ở Việt Nam có nhiều nhà đăng ký cho đuôi .vn ; đuôi .com mua ở đâu cũng được . 2. Trong dịch vụ deploy, tìm mục Custom domain , nhập tên miền. 3. Dịch vụ sẽ đưa các bản ghi DNS CNAME hoặc A . Vào trang quản lý tên miền, thêm đúng các bản ghi đó. 4. Chờ cập nhật từ vài phút tới vài giờ . Kiểm tra trang mở bằng https:// và có biểu tượng ổ khóa. Bí mật: quy tắc sống còn Khóa API API key giống chìa khóa thẻ tín dụng: ai có nó có thể dùng dịch vụ và bạn trả tiền . Quy tắc 1: Website tĩnh không giấu được bí mật. Mọi thứ trong HTML, CSS, JS đều ai cũng xem được chuột phải → Xem nguồn trang . Không bao giờ đặt khóa API của OpenAI, Anthropic, Google, cổng thanh toán... vào code phía trình duyệt. Quy tắc 2: Bí mật nằm trong biến môi trường environment variable ở phía máy chủ, file .env trên máy bạn, và file .env không bao giờ được commit lên Git. Tạo file .gitignore ở thư mục gốc dự án: Và file .env.example được commit để ghi tên biến, không có giá trị: Câu cần thêm vào yêu cầu mỗi khi app có gọi dịch vụ bên ngoài: Lỡ để lộ khóa thì làm gì 1. Thu hồi revoke khóa ngay trên trang quản lý của dịch vụ, tạo khóa mới. Xóa khỏi code là chưa đủ , vì nó vẫn nằm trong lịch sử Git và có thể đã bị sao chép. 2. Kiểm tra trang thanh toán/sử dụng của dịch vụ xem có lượt dùng lạ không. 3. Đặt giới hạn chi tiêu spending limit nếu dịch vụ hỗ trợ. Kiểm tra trước khi gửi link cho ai Mở link trên điện thoại thật, không chỉ trên máy tính. Bấm mọi nút, mọi liên kết. Console F12 không có lỗi đỏ. Không có chữ \"Lorem ipsum\", \" GIÁ \", số điện thoại giả. Dán link vào Zalo/Facebook: thấy đúng tiêu đề và ảnh xem trước. Không có bí mật trong mã nguồn trang Xem nguồn trang, tìm chữ key , token , secret . Checklist đầy đủ: xem Checklist trước khi deploy trong mục Checklist. Lỗi hay gặp Dùng khóa API trong web tĩnh \"tạm thời\". Không có \"tạm thời\": bot quét mã nguồn công khai liên tục. Deploy thẳng bản chưa kiểm. Dùng bản preview, kiểm xong mới đưa lên chính thức. Quên gia hạn tên miền. Bật tự động gia hạn hoặc đặt nhắc lịch. Việc làm ngay 1. Tạo .gitignore như mẫu trên trong dự án của bạn và commit. 2. Deploy bản hiện tại bằng đường 1 để có link thử. 3. Đi hết \"Kiểm tra trước khi gửi link\" và ghi kết quả vào NOTES.md . Tóm tắt Bắt đầu bằng web tĩnh; nhận thông tin qua Zalo, email, Google Form. Ba đường deploy: kéo thả thử nhanh , GitHub Pages, Cloudflare/Vercel/Netlify lâu dài . Web tĩnh không giấu được bí mật. Khóa API không bao giờ nằm phía trình duyệt. Lộ khóa: thu hồi ngay, xóa code là chưa đủ."},{"type":"Bài học","title":"Prototype hay sản phẩm thật: chấm điểm trước khi cho người khác dùng","summary":"Bảng chấm 6 nhóm để biết sản phẩm của bạn đang ở mức nào, còn thiếu gì, và khi nào cần nhờ người có chuyên môn kỹ thuật xem lại.","url":"/bai-hoc/prototype-hay-san-pham-that","text":"Vấn đề thật AI giúp bạn làm ra thứ trông như sản phẩm trong vài buổi. Nhưng \"trông như\" khác \"là\". Câu hỏi khó nhất không phải \"làm thế nào\" mà là \"đã đủ an toàn để người khác dùng chưa?\" . Bài này cho bạn một cách trả lời có căn cứ thay vì cảm giác. Ba mức phát hành Mức Ai dùng Hậu quả khi lỗi Yêu cầu tối thiểu A. Tự dùng Chỉ bạn Bạn mất thời gian Chạy được việc chính B. Nhóm nhỏ Đồng nghiệp, người quen biết đây là bản thử Phiền, có thể mất dữ liệu thử A + giao diện ổn + sao lưu C. Công khai Người lạ, khách hàng Mất tiền, lộ dữ liệu, mất uy tín, rủi ro pháp lý Đạt hết bảng chấm bên dưới Ghi rõ mức mục tiêu vào brief. Một công cụ nội bộ cho 3 người không cần đạt mức C; một trang nhận đơn hàng bắt buộc đạt C. Bảng chấm 6 nhóm Mỗi dòng: Đạt / Chưa / Không áp dụng . Mức C cần mọi dòng áp dụng đều Đạt. 1. Chức năng Mọi việc chính trong brief chạy đúng, bạn đã tự bấm thử từng việc. Thử với dữ liệu \"xấu\": ô trống, chữ rất dài, số âm, ký tự đặc biệt, tiếng Việt có dấu. Có thông báo lỗi dễ hiểu khi người dùng nhập sai, không hiện mã lỗi kỹ thuật. Sau lần sửa gần nhất đã chạy lại danh sách kiểm nhanh kiểm thử hồi quy . 2. Giao diện và trải nghiệm Xem được trên điện thoại thật 375px và máy tính, không cuộn ngang. Dùng được bằng bàn phím Tab qua các nút, thấy rõ đang ở nút nào . Chữ đủ to, đủ tương phản; không truyền đạt thông tin chỉ bằng màu. Không còn nội dung giả: \"Lorem ipsum\", giá ảo, lời khen bịa. 3. Dữ liệu Biết dữ liệu nằm ở đâu trên máy người dùng, Google Sheet, cơ sở dữ liệu nào . Có sao lưu, và đã thử khôi phục từ bản sao lưu ít nhất một lần. Chỉ thu thập dữ liệu thật sự cần. 4. Bảo mật Không có khóa API, mật khẩu trong code phía trình duyệt hay trong lịch sử Git. Có đăng nhập: người A không xem được dữ liệu của người B thử bằng hai tài khoản . Trang quản trị không truy cập được khi chưa đăng nhập thử mở link trực tiếp ở cửa sổ ẩn danh . Đã chạy kiểm tra phụ thuộc ví dụ npm audit nếu dự án dùng npm và xử lý lỗi mức cao. 5. Vận hành Biết cách quay lại bản trước rollback và đã thử. Có cách biết khi website sập hoặc lỗi ít nhất: tự kiểm định kỳ, hoặc dịch vụ theo dõi miễn phí . Biết chi phí hằng tháng và có giới hạn chi tiêu với dịch vụ tính tiền theo lượt. Ghi lại cách deploy trong README.md để 3 tháng sau bạn hoặc người khác làm lại được. 6. Pháp lý và minh bạch Có trang chính sách riêng tư nếu thu thập bất kỳ dữ liệu cá nhân nào. Thu thập dữ liệu cá nhân tại Việt Nam: tìm hiểu quy định bảo vệ dữ liệu cá nhân hiện hành, hoặc hỏi người có chuyên môn pháp lý. Ảnh, chữ, font có quyền sử dụng. Không hứa điều sản phẩm không làm được. Prompt nhờ AI chấm hộ bạn vẫn là người kiểm AI giúp tìm, nhưng dòng nào ghi Đạt thì bạn phải tự kiểm . Đừng chép báo cáo của AI vào cột Đạt. Khi nào bắt buộc nhờ chuyên gia Nhờ người có kinh nghiệm phát triển phần mềm review trước khi phát hành mức C nếu sản phẩm có bất kỳ thứ nào: Thanh toán, ví, xử lý tiền. Đăng nhập và dữ liệu riêng của từng người. Dữ liệu nhạy cảm: sức khỏe, tài chính, giấy tờ tùy thân, trẻ em. Hơn vài trăm người dùng, hoặc doanh nghiệp phụ thuộc vào nó hằng ngày. Chi phí một buổi review nhỏ hơn nhiều so với chi phí một vụ lộ dữ liệu. Đây không phải thất bại của Vibe Coding; đây là cách làm nghề có trách nhiệm. Lỗi hay gặp Chấm Đạt vì AI nói đạt. AI báo xong không phải bằng chứng bài 1 . Áp mức C cho mọi thứ. Bạn sẽ không bao giờ phát hành. Chọn đúng mức cho đúng sản phẩm. Phát hành rồi mới nghĩ tới sao lưu. Dữ liệu mất ngày đầu thì không có bản nào để khôi phục. Việc làm ngay 1. Ghi mức phát hành mục tiêu A, B hay C vào brief. 2. Chấm sản phẩm của bạn theo 6 nhóm. Đếm số dòng \"Chưa\". 3. Biến mỗi dòng \"Chưa\" thành một lát cắt việc cần làm. Tóm tắt Ba mức: tự dùng, nhóm nhỏ, công khai. Chọn đúng mức. Chấm 6 nhóm: chức năng, giao diện, dữ liệu, bảo mật, vận hành, pháp lý. AI giúp tìm lỗi; bạn tự kiểm từng dòng Đạt. Tiền, đăng nhập, dữ liệu nhạy cảm: nhờ chuyên gia trước khi công khai."},{"type":"Bài học","title":"Dạy AI nhớ bạn và dự án","summary":"Tạo Project có bộ nhớ riêng, điền hồ sơ 8 dòng, để AI tự viết hướng dẫn làm việc với bạn. Cài một lần, dùng mãi mãi.","url":"/bai-hoc/day-ai-nho-ban","text":""},{"type":"Bài học","title":"Bắt AI hỏi trước khi làm","summary":"Một câu lệnh duy nhất giúp AI ngừng đoán mò: bắt nó hỏi bạn 5 câu quan trọng nhất trước khi bắt đầu việc phức tạp.","url":"/bai-hoc/bat-ai-hoi-truoc-khi-lam","text":""},{"type":"Bài học","title":"Một việc, một cuộc trò chuyện","summary":"Chat mới cho chủ đề mới, chỉ định độ dài câu trả lời. Hai thói quen nhỏ giúp AI đỡ lẫn lộn và bạn đỡ đọc dài.","url":"/bai-hoc/mot-viec-mot-cuoc-tro-chuyen","text":""},{"type":"Bài học","title":"Nhờ AI phản biện ý tưởng","summary":"Đừng để AI chỉ biết đồng ý. Ra lệnh cho nó 'phá' ý tưởng của bạn trước khi bạn bỏ tiền và thời gian thật.","url":"/bai-hoc/nho-ai-phan-bien-y-tuong","text":""},{"type":"Bài học","title":"Để AI tự viết prompt","summary":"Khi bạn không biết diễn đạt yêu cầu thế nào cho chuẩn, hãy nhờ chính AI viết prompt chi tiết giúp bạn.","url":"/bai-hoc/de-ai-viet-prompt","text":""},{"type":"Bài học","title":"Bật chế độ suy nghĩ sâu","summary":"Với việc khó, đừng nhận câu trả lời đầu tiên. Bắt AI suy luận từng bước, chỉ ra chỗ không chắc, rồi mới kết luận.","url":"/bai-hoc/bat-che-do-suy-nghi-sau","text":""},{"type":"Bài học","title":"Cài Claude Code và chạy phiên làm việc đầu tiên","summary":"Cài AI Agent chạy ngay trong thư mục dự án trên máy bạn, đăng nhập, giao việc đầu tiên và biết 10 lệnh dùng hằng ngày.","url":"/bai-hoc/cai-dat-claude-code","text":""},{"type":"Bài học","title":"CLAUDE.md và cấu trúc dự án: để AI không phải đoán lại mỗi phiên","summary":"Sắp xếp thư mục dự án và viết file CLAUDE.md ngắn gọn để mỗi phiên làm việc AI đều nắm đúng mục tiêu, lệnh, quy ước và những điều cấm.","url":"/bai-hoc/claude-md-va-cau-truc-du-an","text":""},{"type":"Bài học","title":"Quyền hạn: để AI tự làm mà bạn không mất kiểm soát","summary":"Hiểu các chế độ làm việc của Claude Code, viết quy tắc cho phép, hỏi lại và cấm, và nhận ra những lệnh phải dừng lại đọc kỹ trước khi đồng ý.","url":"/bai-hoc/quyen-han-va-an-toan","text":""},{"type":"Bài học","title":"Mở rộng Claude Code: MCP, Skill và Subagent","summary":"Ba cách mở rộng agent: nối với dịch vụ ngoài bằng MCP, đóng gói quy trình lặp lại thành Skill, và giao việc chuyên biệt cho Subagent. Khi nào dùng, khi nào không.","url":"/bai-hoc/mcp-skill-subagent","text":""},{"type":"Bài học","title":"Hooks: tự động kiểm tra mỗi khi AI sửa file","summary":"Gắn lệnh kiểm tra vào các thời điểm cố định trong phiên làm việc, để quy tắc được thực thi bằng máy thay vì trông vào trí nhớ của AI hay của bạn.","url":"/bai-hoc/hooks-tu-dong-kiem-tra","text":""},{"type":"Bài học","title":"Quy trình ship có kiểm soát: kế hoạch, nhánh, review, bản xem trước","summary":"Ghép mọi thứ đã học thành một vòng lặp đưa thay đổi lên mạng đều đặn mà không làm hỏng bản đang chạy: lập kế hoạch, làm trên nhánh, tự kiểm, review, xem trước, rồi mới phát hành.","url":"/bai-hoc/quy-trinh-ship-lien-tuc","text":""},{"type":"Bài học","title":"Chọn ý tưởng SaaS kiếm được tiền","summary":"Hiểu SaaS là gì, vì sao nó là mô hình kinh doanh tốt nhất cho người làm một mình, và chốt 1 ý tưởng cụ thể để xây trong khóa này.","url":"/bai-hoc/chon-y-tuong-saas","text":""},{"type":"Bài học","title":"Viết Project Brief với AI trong 30 phút","summary":"Dùng AI để biến ý tưởng thành tài liệu 1 trang rõ ràng: làm gì, cho ai, tính năng nào trước, thành công là gì.","url":"/bai-hoc/viet-project-brief-30-phut","text":""},{"type":"Bài học","title":"Dựng database và đăng nhập với Supabase","summary":"Tạo database, bảng users, phân quyền an toàn và chức năng đăng nhập chỉ trong 1 buổi với Supabase + AI.","url":"/bai-hoc/dung-database-supabase","text":""},{"type":"Bài học","title":"Xây landing page bán được hàng","summary":"Viết headline, mô tả lợi ích, bảng giá và nút kêu gọi hành động. Landing page là 'nhân viên bán hàng' làm việc 24/7 của bạn.","url":"/bai-hoc/xay-landing-page","text":""},{"type":"Bài học","title":"Code tính năng chính cùng AI","summary":"Biến Brief thành tính năng chạy được. Giao việc cho AI theo lát cắt nhỏ, kiểm tra từng bước.","url":"/bai-hoc/code-tinh-nang-chinh","text":""},{"type":"Bài học","title":"Thu tiền thật với Stripe","summary":"Tích hợp Stripe để khách hàng trả tiền bằng thẻ. Webhook tự động kích hoạt tài khoản khi thanh toán thành công.","url":"/bai-hoc/thu-tien-stripe","text":""},{"type":"Bài học","title":"Đưa SaaS lên mạng","summary":"Deploy frontend lên Vercel, kết nối domain riêng, bật chế độ production cho Stripe và Supabase.","url":"/bai-hoc/dua-saas-len-mang","text":""},{"type":"Bài học","title":"Có khách hàng trả tiền đầu tiên","summary":"Launch sản phẩm, tìm 10 người dùng đầu tiên và chốt sale đầu tiên. Đây là bài quan trọng nhất khóa học.","url":"/bai-hoc/khach-hang-dau-tien","text":""},{"type":"Bài học","title":"Skill: dạy AI làm việc theo phong cách của bạn","summary":"Prompt dùng 1 lần rồi quên. Skill là khả năng tái sử dụng — cài đặt 1 lần, dùng mãi mãi chỉ với 1 lệnh.","url":"/bai-hoc/skill-la-gi","text":"Prompt và Skill khác nhau thế nào? Prompt giống như công thức nấu ăn bạn tra Google mỗi lần: mỗi lần nấu phải tìm lại, đọc lại từ đầu. Skill giống như công thức gia truyền bạn đã thuộc: chỉ cần nghĩ \"nấu phở\" là tay tự làm, đúng vị nhà mình. Prompt Skill Mẫu câu lệnh tĩnh Khả năng tái sử dụng có nhớ Mỗi lần dùng phải điền lại Cài đặt 1 lần, dùng mãi mãi Không nhớ phong cách bạn Tự áp dụng phong cách đã lưu VD: copy đoạn dài mỗi lần VD: gõ \"viết email xin nghỉ\" là xong 3 bước dựng 1 skill cá nhân Bước 1: Định nghĩa phong cách làm 1 lần duy nhất Trả lời các câu hỏi sau về cách BẠN làm việc: Bước 2: Lưu lại Lưu đoạn trên vào nơi dễ tìm: file ghi chú, /admin cá nhân, hoặc phần \"Skill của tôi\" trên Bụi Code sắp có . Bước 3: Dùng với 1 lệnh Từ nay, mỗi lần cần, chỉ cần gõ: AI sẽ tự đọc phong cách bạn đã lưu và áp dụng. Ví dụ thực tế Chị Lan, kế toán , dựng skill \"Email công việc\": Lần 1 15 phút : định nghĩa phong cách — xưng \"Em\", tone lịch sự ngắn gọn, chữ ký có SĐT Lần 2 trở đi 30 giây : gõ \"Dùng skill Email công việc để xin nghỉ phép thứ 6\" → xong Trước đây mỗi email mất 10 phút. Giờ mất 30 giây. Thư viện skill theo lĩnh vực Bụi Code đang xây dựng thư viện skill cho từng đối tượng: 📊 Văn phòng: Email 1 lệnh, Tóm tắt họp, Báo cáo tuần, Phân tích số liệu 👩‍🏫 Giáo viên: Soạn giáo án, Tạo đề kiểm tra, Nhận xét học sinh 🎓 Học sinh: Tóm tắt bài học, Dàn ý bài văn, Giải thích khái niệm Mỗi skill đều có sẵn mẫu \"Cài đặt 1 lần\" — bạn chỉ cần điền thông tin của mình. Bài tập thực chiến 1. Chọn 1 việc bạn làm hàng tuần viết email, báo cáo, tóm tắt... 2. Dùng mẫu Bước 1 để định nghĩa phong cách của bạn 15 phút 3. Lưu lại, rồi thử dùng với 1 lệnh ngắn 4. So sánh: lần này nhanh hơn bao nhiêu so với làm thủ công? Câu hỏi cùng ngẫm Việc nào trong công việc của bạn lặp đi lặp lại nhiều nhất? Nếu có 1 skill cho việc đó, bạn tiết kiệm được bao nhiêu thời gian mỗi tháng?"},{"type":"Bài học","title":"Giải phẫu một skill thật: học cách viết skill từ repo pháp lý","summary":"Mổ xẻ skill opc-vn-business-law (pháp lý – thuế – kế toán VN) để rút ra 6 bài học viết skill dùng được thật: bảng hiệu description, tách quy trình khỏi kiến thức, cổng chống bịa, script thay vì để AI tự tính, biết nói không, và skill có hạn sử dụng.","url":"/bai-hoc/giai-phau-skill-that","text":"Sau bài này bạn làm được Nhìn một skill bất kỳ và đánh giá được nó \"viết cho có\" hay \"viết để dùng\". Viết skeleton skill cho công việc lặp lại của chính mình, đủ để AI dùng đúng ngay lần đầu. Vấn đề thật Nhiều người viết skill xong rồi thất vọng: AI không bao giờ tự mở skill, hoặc mở rồi vẫn trả lời bừa theo kiến thức cũ trong đầu nó. Vấn đề không phải AI \"lười\" — mà là skill viết như tài liệu để người đọc, không phải để máy làm theo. Bài này không dạy lý thuyết suông. Chúng ta mổ xẻ một skill thật của người Việt, đang chạy thật trên GitHub: opc vn business law — cẩm nang pháp lý, thuế, kế toán cho doanh nghiệp một người tại Việt Nam, viết cho Claude Code / Codex / OpenCode. Nó được chọn làm mẫu vì ba lý do: nội dung đã được kiểm chứng đúng người viết bài này đã đối chiếu từng tuyên bố pháp lý với báo chí và văn bản gốc , cấu trúc đầy đủ như một sản phẩm không phải demo , và nó giải quyết đúng bài toán khó nhất của skill kiến thức: làm sao để AI không bịa . 1. Giải phẫu nhanh: một skill hoàn chỉnh gồm những gì Clone về nó là repo public, miễn phí bạn sẽ thấy cấu trúc này: Ghi nhớ hình ảnh này: SKILL.md mỏng quy trình , references dày kiến thức , scripts làm toán, evals để kiểm, MAINTAINING để sống lâu. Sáu bài học dưới đây đều rút ra từ từng thành phần này. 2. Bài học 1: Description là \"bảng hiệu\" — viết cho agent đọc Mở đầu SKILL.md là một khối frontmatter, trong đó quan trọng nhất là description : \"Cẩm nang pháp lý – thuế – kế toán cho doanh nghiệp một người tại Việt Nam... BẮT BUỘC dùng khi người dùng hỏi 'doanh nghiệp một người', 'có cần kế toán trưởng không', 'OPC', 'Điều 20 khoản 8'... kể cả khi người dùng không nói chữ 'skill' .\" Đây là điểm hầu hết skill tự viết đều sai: description viết chung chung kiểu \"skill hỗ trợ pháp lý\". Agent đọc description để quyết định có mở skill hay không — nên description phải là danh sách từ khóa kích hoạt cụ thể, càng giống câu người dùng thật hỏi càng tốt. Mẹo: lấy 5–10 câu hỏi thật mà bạn từng phải trả lời, nhét nguyên văn vào description. 3. Bài học 2: Tách quy trình khỏi kiến thức SKILL.md của skill mẫu chỉ ~350 dòng, và nó không chứa kiến thức pháp lý chi tiết . Nó chứa: Bản đồ tài liệu : \"cần biết gì → đọc file nào\" một cái bảng . Nguyên tắc bắt buộc : 6 luật chơi xem bài học 3 và 5 . Quy trình A–E : mỗi loại câu hỏi đi theo checklist các bước nào, đọc file nào trước. Toàn bộ kiến thức nằm ở references/ . Vì sao phải tách? Vì agent có ngân sách đọc hạn chế — nhồi tất cả vào một file, agent sẽ đọc lướt và bỏ sót. Tách ra, agent chỉ đọc đúng 1–2 file cần cho câu hỏi hiện tại. Nguyên tắc: SKILL.md trả lời câu \"làm thế nào\", references trả lời câu \"cái gì\". 4. Bài học 3: Cổng chống bịa — thành phần đáng copy nhất Nguy hiểm nhất của AI tư vấn pháp lý là bịa điều luật một cách tự tin . Skill mẫu chống bằng một file duy nhất: references/00 legal status.md — \"nguồn sự thật\" liệt kê từng văn bản với trạng thái IN FORCE đang hiệu lực / DRAFT dự thảo / REPLACED đã thay thế , kèm mốc hết hạn rà soát. Và trong SKILL.md có luật sắt: \"Trước khi trích dẫn bất kỳ điều luật nào, xác định nó thuộc nhóm nào. Nếu không chắc trạng thái, nói rõ 'cần kiểm tra lại' thay vì đoán. Đây là lỗi nguy hiểm nhất.\" Bài học tổng quát: mọi skill kiến thức đều cần một \"cổng sự thật\" — một nơi duy nhất, được cập nhật, trả lời câu \"thông tin này còn đúng không\". Với skill bảng giá: đó là file giá + ngày cập nhật. Với skill quy trình nội bộ: đó là phiên bản quy trình đang hiệu lực. Không có cổng này, skill của bạn sẽ thối rữa theo thời gian mà không ai hay. 5. Bài học 4: Đừng để AI tự tính — đóng gói thành script Khi cần so sánh \"thuế theo % doanh thu\" vs \"thuế kê khai\", skill cấm AI tự tính nhẩm . Thay vào đó có scripts/so sanh thue.py : nhập doanh thu, lợi nhuận, tỷ lệ → in ra hai con số, chênh lệch, điểm hòa vốn, kèm giả định đang dùng và disclaimer . Lý do thực tế: AI tính toán số học không ổn định — cùng một phép tính, hỏi hai lần có thể ra hai kết quả. Script thì luôn đúng và luôn ghi rõ \"tôi đang giả định gì\". Quy tắc rút ra: phần nào cần chính xác tuyệt đối tính toán, định dạng, tra cứu có cấu trúc thì viết code, đừng viết lời dặn. 6. Bài học 5: Skill tốt biết nói \"không\" Một nửa SKILL.md là các luật từ chối và chuyển giao : Danh sách 10 \"cờ đỏ\" tranh chấp, nợ thuế, yếu tố nước ngoài, M&A... — gặp là dừng, chuyển luật sư/kế toán hành nghề. Bảng \"yêu cầu bất hợp pháp → cách trả lời\": \"làm hai sổ để giảm thuế\" → từ chối, giải thích rủi ro hình sự, đề xuất phương án hợp pháp. Disclaimer bắt buộc cuối mỗi câu trả lời tư vấn , đúng một câu chữ mẫu. Nhiều người viết skill chỉ nghĩ đến \"làm sao cho AI trả lời được\", quên mất \"khi nào AI phải dừng\". Một skill không có ranh giới là một cái bẫy — với pháp lý thì bẫy đó có thể khiến người dùng bị truy thu thuế. Viết skill = viết cả phần \"việc này tôi không làm\". 7. Bài học 6: Skill có hạn sử dụng Điểm khiến skill này vượt xa \"demo cho vui\": nó được đối xử như sản phẩm sống . MAINTAINING.md : lịch rà soát hàng tháng thuế , hàng quý dự thảo luật , 6 tháng toàn bộ ; checklist trước mỗi lần phát hành; quy trình rollback khi phát hiện sai. evals/evals.json : bộ câu hỏi kiểm thử — sau mỗi lần cập nhật nội dung, chạy lại để chắc skill không trả lời sai đi. CHANGELOG.md + đánh số phiên bản: v1.0.0 → v1.0.2, mỗi bản ghi rõ đổi gì. Và sự thật phũ phàng tác giả cũng ghi rõ: PROMO.md — skill miễn phí này là \"mồi\" để kéo người vào cộng đồng và bán dịch vụ training AI 1:1 cho doanh nghiệp. Bài học cho bạn: đừng tốn công duy trì skill miễn phí trừ khi nó phục vụ một mục đích lớn hơn thương hiệu, cộng đồng, bán dịch vụ, hoặc chính công việc của bạn . Thực hành: dựng skeleton skill của bạn trong 20 phút Đừng bắt đầu bằng việc viết nội dung. Bắt đầu bằng khung xương — tạo 4 file trống sau cho một công việc bạn lặp lại hàng tuần ví dụ: \"soạn báo giá\", \"viết content\", \"tổng hợp báo cáo\" : 1. SKILL.md — viết 3 mục: description kèm 5 câu hỏi thật của bạn bài học 1 , bảng \"cần gì → đọc file nào\" bài học 2 , và 1 luật \"khi nào phải dừng\" bài học 5 . 2. references/00 su that.md — cổng sự thật của bạn: thông tin nào trong skill này thay đổi theo thời gian, và ai/cách nào cập nhật nó bài học 3 . 3. scripts/ — một việc tính toán hoặc định dạng mà hôm nay bạn vẫn để AI tự làm bài học 4 . Viết script 20 dòng là đủ. 4. evals.md — 5 câu hỏi kiểm thử: sau này mỗi lần sửa skill, tự hỏi lại 5 câu này bài học 6 . Xong 4 file trống có khung là bạn đã hơn 90% skill trôi nổi trên mạng. Nội dung điền dần sau — khung đúng quan trọng hơn nội dung đầy. Ghi nhớ Description là bảng hiệu: nhét câu hỏi thật của người dùng vào, đừng viết chung chung. SKILL.md viết \"làm thế nào\", references viết \"cái gì\" — đừng nhồi tất cả vào một file. Mọi skill kiến thức cần một \"cổng sự thật\" có ngày hết hạn. Cái gì cần chính xác tuyệt đối thì viết code, đừng dặn bằng lời. Viết rõ \"việc này tôi không làm\" ngay từ đầu. Skill là sản phẩm sống: có lịch rà soát, có bộ kiểm thử, có changelog — hoặc đừng làm."},{"type":"Prompt","title":"Phỏng vấn để viết Project Brief","summary":"AI hỏi bạn từng câu để rút ý tưởng mơ hồ thành brief 8 mục, không tự bịa thông tin.","url":"/thu-vien/viet-project-brief","text":"Khi nào dùng Bạn mới có ý tưởng, chưa viết gì. Dùng ở đầu mọi dự án. Chuẩn bị 2–3 câu mô tả ý tưởng. Nếu có: link tham khảo, ảnh, tài liệu sẵn có. Prompt Kết quả tốt trông thế nào AI hỏi trước, không viết ngay. Brief có mục \"KHÔNG làm\" cụ thể; tiêu chí nghiệm thu có con số hoặc hành động bấm thử. Chỗ chưa biết được đánh dấu CHƯA RÕ thay vì bị lấp bằng thông tin bịa. Dấu hiệu AI làm sai Tự viết brief dài ngay lần đầu, đầy tính năng bạn không nhắc. Tiêu chí kiểu \"giao diện đẹp, thân thiện\". Tự điền giá, số năm kinh nghiệm, số khách hàng. Bước tiếp theo Dùng prompt Chia dự án thành lát cắt ."},{"type":"Prompt","title":"Chia dự án thành lát cắt","summary":"Biến brief thành 4-8 phần việc nhỏ, mỗi phần có cách kiểm riêng, để làm từng bước không vỡ.","url":"/thu-vien/chia-lat-cat","text":"Khi nào dùng Sau khi có brief, trước khi viết dòng code đầu tiên. Chuẩn bị File BRIEF.md đã duyệt. Prompt Kết quả tốt trông thế nào Mỗi lát làm xong trong một phiên làm việc. Cột \"Kiểm bằng cách\" là hành động cụ thể \"bấm nút Zalo, mở đúng số\" , không phải \"kiểm tra hoạt động tốt\". Dấu hiệu AI làm sai Một lát tên \"Xây dựng toàn bộ giao diện\". Bắt đầu viết code dù bạn bảo chờ duyệt. Bước tiếp theo Dùng prompt Giao việc 5 phần cho lát 1."},{"type":"Prompt","title":"Giao việc 5 phần","summary":"Khung yêu cầu chuẩn cho mỗi lát cắt: Mục tiêu, Bối cảnh, Phạm vi, Ràng buộc, Nghiệm thu.","url":"/thu-vien/giao-viec-5-phan","text":"Khi nào dùng Mỗi lần giao một lát cắt cho AI. Chuẩn bị Brief, kế hoạch lát cắt, biết lát nào đã xong. Prompt Kết quả tốt trông thế nào AI nêu kế hoạch ngắn, đúng phạm vi, hỏi lại chỗ chưa rõ. Sau khi làm, AI phân biệt \"đã chạy thử\" và \"chưa chạy thử\". Dấu hiệu AI làm sai Sửa file ngoài phạm vi. Báo \"mọi thứ hoạt động hoàn hảo\" mà không nói đã kiểm bằng cách nào. Bước tiếp theo Tự kiểm theo mục Nghiệm thu. Đúng thì commit. Sai thì dùng Báo lỗi 5 dòng ."},{"type":"Prompt","title":"Mô tả giao diện cho AI","summary":"Biến cảm nhận 'muốn đẹp' thành mô tả mà AI làm theo được: phong cách, màu, chữ, bố cục, tham khảo.","url":"/thu-vien/mo-ta-giao-dien","text":"Khi nào dùng Trước khi AI dựng giao diện lần đầu, hoặc khi giao diện đang \"trông chung chung\". Chuẩn bị 3–5 từ mô tả cảm giác; 1–3 link tham khảo kèm lý do thích/không thích; màu thương hiệu nếu có. Prompt Kết quả tốt trông thế nào Hai phương án khác nhau rõ rệt, không phải hai biến thể của cùng một kiểu. Font được chọn hiển thị đúng dấu tiếng Việt. Có biến CSS để mọi trang dùng chung. Dấu hiệu AI làm sai Đề xuất gradient tím xanh và hiệu ứng kính mờ cho mọi thứ phong cách mặc định của AI . Không nhắc tới tương phản hay chữ trên điện thoại. Bước tiếp theo Đưa phương án đã chọn vào brief mục 6, rồi giao lát cắt giao diện."},{"type":"Prompt","title":"Báo lỗi 5 dòng","summary":"Mẫu báo lỗi có bằng chứng, buộc AI chẩn đoán nguyên nhân trước khi sửa.","url":"/thu-vien/bao-loi-5-dong","text":"Khi nào dùng Bất cứ khi nào có thứ chạy sai. Chuẩn bị Thông báo lỗi nguyên văn Console, F12 , các bước tái hiện, ảnh chụp nếu cần. Prompt Kết quả tốt trông thế nào Chẩn đoán trước, sửa sau. Bản sửa nhỏ, đúng chỗ. Có bước kiểm lại cụ thể. Dấu hiệu AI làm sai Sửa ngay không chẩn đoán; thêm if x khắp nơi. Lần thứ hai nói \"đã tìm ra nguyên nhân thật sự\". Áp quy tắc 2 vòng : dừng, quay checkpoint, mở phiên mới. Bước tiếp theo Chạy danh sách kiểm nhanh kiểm thử hồi quy , rồi commit."},{"type":"Prompt","title":"Review độc lập trước phát hành","summary":"AI đóng vai người kiểm tra QA và bảo mật, chỉ báo cáo có bằng chứng, chưa sửa.","url":"/thu-vien/review-truoc-phat-hanh","text":"Khi nào dùng Trước khi gửi link cho người khác dùng, hoặc trước mỗi lần phát hành lớn. Chuẩn bị Brief có mức phát hành A/B/C , mã nguồn, danh sách việc chính. Prompt Kết quả tốt trông thế nào Mỗi phát hiện có bằng chứng cụ thể, mức độ hợp lý. Có danh sách \"không kiểm được\", để bạn tự kiểm. Dấu hiệu AI làm sai Báo cáo chung chung \"nên cải thiện bảo mật\" không chỉ file, dòng. Tự ý sửa code. Bước tiếp theo Biến từng phát hiện \"Chặn phát hành\" và \"Nghiêm trọng\" thành lát cắt, sửa từng cái."},{"type":"Prompt","title":"Quét bí mật trước khi deploy","summary":"Tìm khóa API, mật khẩu, token lọt vào code hoặc lịch sử Git trước khi đưa lên mạng.","url":"/thu-vien/kiem-tra-bi-mat","text":"Khi nào dùng Trước lần deploy đầu tiên, và mỗi khi thêm tích hợp dịch vụ bên ngoài. Chuẩn bị Dự án có Git. AI cần đọc được mã nguồn agent hoặc bạn dán các file liên quan. Prompt Kết quả tốt trông thế nào Danh sách rõ ràng, có lệnh và kết quả kiểm lịch sử Git. Với khóa đã lộ, AI khuyên thu hồi khóa , không chỉ xóa khỏi code. Dấu hiệu AI làm sai Chỉ xóa khóa khỏi code và báo \"đã an toàn\". Đề xuất \"giấu\" khóa trong JavaScript bằng cách mã hóa hoặc làm rối vẫn lộ . Bước tiếp theo Đi hết Checklist trước khi deploy ."},{"type":"Prompt","title":"Viết README để 3 tháng sau còn làm tiếp được","summary":"Tài liệu ngắn ghi cách chạy, cách deploy và các quyết định quan trọng của dự án.","url":"/thu-vien/viet-readme","text":"Khi nào dùng Khi dự án đã chạy được, và cập nhật sau mỗi thay đổi lớn. Chuẩn bị Dự án đã chạy; NOTES.md có ghi các quyết định. Prompt Kết quả tốt trông thế nào Bạn làm theo README trên máy khác mà chạy được. Có mục \"sửa nội dung thường gặp\" cho việc hằng ngày. Dấu hiệu AI làm sai README chung chung kiểu mẫu, có lệnh không tồn tại trong dự án. Ghi giá trị bí mật vào README. Bước tiếp theo Tự làm theo README từ đầu một lần để kiểm."},{"type":"Prompt","title":"Tóm tắt bàn giao phiên","summary":"Nhờ AI cũ gói gọn công việc thành 5 mục để phiên mới tiếp tục đúng, không mang rác sang.","url":"/thu-vien/tom-tat-ban-giao","text":"Khi nào dùng Trước khi đóng một phiên làm việc dài để mở phiên mới chuyển lát cắt, AI bắt đầu ngợp, hoặc sau 2–3 vòng sửa thất bại . Chuẩn bị Phiên hiện tại đã có checkpoint commit cho phần làm đúng. Prompt Kết quả tốt trông thế nào Đủ 5 mục, mỗi mục ngắn và cụ thể. Mục 3 nói rõ \"đã thử gì\" chứ không chỉ \"đang lỗi\". Bạn đọc xong là đủ để giao việc cho phiên mới mà không cần mở lại phiên cũ. Dấu hiệu AI làm sai Tóm tắt lan man, copy cả lịch sử trò chuyện. Thiếu mục 4 quy tắc — phiên mới sẽ phải hỏi lại. Viết những thứ \"dự định làm\" như thể đã làm xong. Bước tiếp theo Mở phiên mới, dán tóm tắt + file quy tắc dự án, giao lát tiếp theo bằng Giao việc 5 phần ."},{"type":"Prompt","title":"Viết file quy tắc dự án","summary":"Biến những quy tắc trong đầu bạn thành file NOTES.md để mọi phiên AI đều bắt đầu với cùng một sự thật.","url":"/thu-vien/viet-quy-tac-du-an","text":"Khi nào dùng Khi bạn thấy mình phải nhắc AI cùng một quy tắc từ phiên này sang phiên khác công nghệ, điều cấm, phong cách . Chuẩn bị Liệt kê 5 10 quy tắc bạn hay phải nhắc lại. Prompt Kết quả tốt trông thế nào Dưới 40 dòng, đọc hết trong 1 phút. Mỗi dòng là một quy tắc cụ thể, kiểm được không phải khẩu hiệu . AI hỏi lại chỗ chưa rõ thay vì tự điền. Dấu hiệu AI làm sai Viết 200 dòng \"hướng dẫn chi tiết\" — quá dài, AI cũng ngợp. Thêm quy tắc bạn không hề nói tự bịa . Dùng từ chung chung: \"code sạch\", \"tối ưu\", \"chuyên nghiệp\". Bước tiếp theo Lưu thành NOTES.md trong thư mục dự án. Đầu mỗi phiên mới, đưa file này cho AI đọc trước khi giao việc."},{"type":"Prompt","title":"Bắt AI hỏi lại trước khi làm","summary":"Thêm 3 câu thần chú vào cuối yêu cầu để AI lộ chỗ hiểu sai trước khi viết 200 dòng code sai.","url":"/thu-vien/hoi-lai-truoc-khi-lam","text":"Khi nào dùng Mọi yêu cầu không nhỏ — đặc biệt khi bạn chưa chắc mình đã diễn đạt đủ rõ. Chuẩn bị Yêu cầu đã viết dù sơ sài cũng được . Prompt Kết quả tốt trông thế nào AI nêu kế hoạch ngắn 3 7 bước , đúng phạm vi bạn định. AI chỉ ra ít nhất 1 chỗ bạn nói chưa rõ nếu có . Bạn phát hiện hiểu lầm TRƯỚC khi có code sai. Dấu hiệu AI làm sai Nói \"Đã hiểu!\" rồi làm luôn, bỏ qua bước kế hoạch. Kế hoạch chung chung, không nêu file cụ thể. Không hỏi gì dù yêu cầu của bạn còn thiếu thông tin rõ ràng. Bước tiếp theo Duyệt kế hoạch sửa chỗ sai , rồi để AI làm. Sau khi xong, kiểm theo mục Nghiệm thu của bạn."},{"type":"Prompt","title":"Debug cùng AI theo bằng chứng","summary":"Biến 'sai rồi, làm lại' thành báo cáo lỗi 5 dòng để AI sửa đúng chỗ ngay lần đầu.","url":"/thu-vien/debug-cung-ai","text":"Khi nào dùng Khi có lỗi: trang trắng, nút không bấm được, dữ liệu sai, hiển thị vỡ trên điện thoại. Chuẩn bị Mô tả được: thấy gì, mong đợi gì. Mở được công cụ kiểm tra của trình duyệt F12 để đọc thông báo lỗi. Prompt Kết quả tốt trông thế nào AI nêu 1 2 nguyên nhân có cơ sở trích dẫn dòng code/log cụ thể , không đoán mò. Bản sửa nhỏ, đúng phạm vi, kèm cách kiểm. Lỗi hết và các phần khác không bị ảnh hưởng. Dấu hiệu AI làm sai Sửa ngay không cần chẩn đoán \"để tôi sửa cho bạn\" . Viết lại cả file trong khi lỗi chỉ ở 3 dòng. Báo \"đã sửa xong\" mà không nói đã kiểm bằng cách nào. Bước tiếp theo Tự kiểm theo cách AI nói. Đúng thì commit. Sau 2–3 vòng không xong: dừng, quay về checkpoint, mở phiên mới với báo cáo này."},{"type":"Prompt","title":"Review code AI viết","summary":"Nhờ một phiên AI khác (hoặc cùng AI với vai trò mới) soi code trước khi bạn tin nó.","url":"/thu-vien/review-code-ai","text":"Khi nào dùng Sau khi AI viết xong một lát cắt quan trọng form liên hệ, xử lý dữ liệu, thanh toán — trước khi bạn commit. Chuẩn bị Code đã xong, bạn đã tự kiểm bằng mắt thường. Prompt Kết quả tốt trông thế nào Tìm ra ít nhất 1 vấn đề thật kể cả nhỏ — review mà \"mọi thứ hoàn hảo\" là review dỏm. Mỗi vấn đề chỉ rõ dòng/vị trí cụ thể. Không lan man sang chuyện phong cách code. Dấu hiệu AI làm sai Chỉ khen \"code rất tốt, sạch sẽ\" mà không tìm lỗi. Bịa lỗi không tồn tại để cho có. Tự ý viết lại cả đoạn code khi bạn chỉ nhờ review. Bước tiếp theo Sửa các mục LỖI trước, cân nhắc mục RỦI RO. Xong thì dùng Review độc lập trước phát hành cho toàn trang."},{"type":"Prompt","title":"Đặt tên và cấu trúc dự án","summary":"Nhờ AI đề xuất cấu trúc thư mục và quy tắc đặt tên ngay từ đầu để 3 tháng sau vẫn tìm được file.","url":"/thu-vien/dat-ten-va-cau-truc","text":"Khi nào dùng Đầu dự án, trước khi viết dòng code đầu tiên. Hoặc khi dự án bắt đầu rối không biết file nào ở đâu . Chuẩn bị Mô tả dự án 3 5 câu: làm gì, mấy trang/màn hình chính, có dữ liệu người dùng không. Prompt Kết quả tốt trông thế nào Cây thư mục dưới 15 mục, tên thư mục tự giải thích. Quy tắc đặt tên có ví dụ đúng/sai cụ thể. Không đề xuất quá mức không microservice cho landing page . Dấu hiệu AI làm sai Đề xuất cấu trúc phức tạp không tương xứng quy mô. Tên chung chung: utils, helpers, misc, data2. Quên file hồ sơ BRIEF.md, NOTES.md . Bước tiếp theo Chốt cấu trúc, tạo thư mục và file hồ sơ. Ghi quy tắc đặt tên vào NOTES.md để mọi phiên sau tuân thủ."},{"type":"Prompt","title":"Tạo dữ liệu mẫu","summary":"Có 2-3 dòng dữ liệu thật hoặc giống thật trước khi làm giao diện để AI không tự đặt tên trường rồi bắt bạn sửa cả trang.","url":"/thu-vien/tao-du-lieu-mau","text":"Khi nào dùng Trước khi nhờ AI làm bất kỳ giao diện nào hiển thị danh sách: sản phẩm, bài viết, bảng giá, đánh giá. Chuẩn bị Biết mỗi mục cần những trường gì tên, giá, ảnh... . Có 1 2 ví dụ thật càng tốt. Prompt Kết quả tốt trông thế nào Đủ 5 mục, trường nhất quán 100% không mục thừa/mục thiếu trường . Dữ liệu hợp lý với ngành không \"bàn ăn giá 5000đ\" . Chỗ thiếu để CẦN ĐIỀN thay vì bịa. Dấu hiệu AI làm sai Mỗi mục một kiểu trường khác nhau. Bịa thông tin nhạy cảm số điện thoại, địa chỉ thật . Giá/số liệu phi thực tế. Bước tiếp theo Dùng bộ dữ liệu này làm \"tầng dữ liệu mẫu\" trong Giao việc 5 phần khi nhờ AI làm giao diện."},{"type":"Prompt","title":"Kịch bản kiểm thử thủ công","summary":"Biến 'kiểm tra giúp tôi' thành danh sách bước cụ thể: bấm gì, thấy gì là đúng.","url":"/thu-vien/kich-ban-kiem-thu","text":"Khi nào dùng Sau mỗi lát cắt, trước khi commit. Đặc biệt cho trang có form, nút bấm, hoặc hiển thị trên điện thoại. Chuẩn bị Mô tả ngắn trang/tính năng cần kiểm và thiết bị bạn có máy tính + điện thoại . Prompt Kết quả tốt trông thế nào Có cả đường chính, đường sai, và mobile — không chỉ \"bấm thử xem được không\". Mỗi bước có kết quả đúng rõ ràng không phải \"kiểm tra xem ổn không\" . Dưới 20 bước cho một tính năng. Dấu hiệu AI làm sai Chỉ liệt kê tính năng chung chung, không có bước cụ thể. Quên kiểm trên điện thoại. Không có trường hợp nhập sai. Bước tiếp theo Làm theo từng bước, tick dần. Lỗi tìm được thì dùng Debug cùng AI theo bằng chứng . Hết lỗi thì commit."},{"type":"Prompt","title":"Thêm tính năng vào code có sẵn","summary":"Khung yêu cầu an toàn khi nhờ AI đụng vào code đang chạy: đọc trước, khoanh vùng, không phá cái cũ.","url":"/thu-vien/them-tinh-nang","text":"Khi nào dùng Khi code đã chạy ổn và bạn muốn thêm/sửa một tính năng không phải làm mới từ đầu . Chuẩn bị Biết file nào liên quan. Đã commit checkpoint trước khi bắt đầu. Prompt Kết quả tốt trông thế nào AI đọc code cũ trước, nêu đúng file sẽ chạm. Chỉ ra được \"vùng cấm\" phần đang chạy đúng . Tính năng mới chạy, tính năng cũ vẫn chạy. Dấu hiệu AI làm sai Làm luôn không đọc code cũ. Viết lại cả file trong khi chỉ cần thêm 20 dòng. Đổi tên hàm/biến cũ không lý do, gây hỏng chỗ khác. Bước tiếp theo Kiểm cả tính năng mới VÀ các tính năng cũ liên quan. Đúng hết thì commit."},{"type":"Prompt","title":"Giải thích code cho người không chuyên","summary":"Nhờ AI dịch code thành tiếng người: đoạn này làm gì, đụng vào thì sao.","url":"/thu-vien/giai-thich-code","text":"Khi nào dùng Khi AI đưa code mà bạn không hiểu nó làm gì — trước khi bạn đồng ý dùng hoặc sửa nó. Chuẩn bị Copy đoạn code cần hiểu đừng đưa cả file 500 dòng, chỉ đoạn liên quan . Prompt Kết quả tốt trông thế nào Bạn đọc xong hiểu được \"đoạn này làm gì\" mà không cần biết code. Biết chính xác sửa chỗ nào cho nhu cầu của mình. Biết chỗ nào cấm đụng. Dấu hiệu AI làm sai Giải thích bằng thuật ngữ khó hơn cả code \"hàm này implement observer pattern...\" . Dịch từng dòng thay vì giải thích ý chính. Không chỉ ra được chỗ cần sửa cho nhu cầu của bạn. Bước tiếp theo Khi đã hiểu, bạn mới đủ tự tin để yêu cầu sửa bằng Thêm tính năng vào code có sẵn hoặc Debug cùng AI ."},{"type":"Prompt","title":"Viết nội dung chuẩn SEO","summary":"Nhờ AI viết bài/mô tả vừa hay với người đọc vừa đúng cấu trúc Google thích.","url":"/thu-vien/viet-noi-dung-chuan-seo","text":"Khi nào dùng Khi cần viết mô tả sản phẩm, bài giới thiệu, hoặc nội dung trang để người ta tìm thấy trên Google. Chuẩn bị Biết từ khóa chính khách sẽ gõ gì để tìm, ví dụ: \"xưởng mộc quận 7\" và 2 3 ý chính cần truyền tải. Prompt Kết quả tốt trông thế nào Có H1 + H2 đúng cấu trúc, từ khóa xuất hiện tự nhiên. Mỗi câu đều có thông tin cụ thể không \"chất lượng vượt trội\" . Có câu kêu gọi hành động rõ ràng. Dấu hiệu AI làm sai Nhồi từ khóa 10 lần trong 200 từ. Viết chung chung, đổi tên sản phẩm nào cũng dùng được. Bịa số liệu \"10 năm kinh nghiệm\", \"5000 khách hàng\" . Bước tiếp theo Điền các chỗ CẦN ĐIỀN , đọc lại bằng mắt người có muốn đọc tiếp không? , rồi đăng."},{"type":"Prompt","title":"Soát lỗi trước khi đưa lên mạng","summary":"Danh sách kiểm tra cuối cùng trước khi deploy: link gãy, ảnh vỡ, bí mật lộ, mobile.","url":"/thu-vien/chuan-bi-deploy","text":"Khi nào dùng Ngay trước khi deploy lần đầu, và trước mỗi lần deploy bản cập nhật lớn. Chuẩn bị Website chạy ổn trên máy bạn. Đã đọc bài Đưa website lên mạng. Prompt Kết quả tốt trông thế nào Mỗi mục có kết quả rõ ràng kèm vị trí file/dòng cụ thể. Không bỏ sót nhóm nào trong 6 nhóm. Chỉ báo cáo, không tự ý sửa. Dấu hiệu AI làm sai Báo \"mọi thứ ổn\" sau 10 giây không kiểm thật . Tự sửa luôn khi bạn chỉ nhờ soát. Bỏ qua nhóm BÍ MẬT nhóm quan trọng nhất . Bước tiếp theo Sửa các mục LỖI dùng Debug cùng AI nếu cần , soát lại, rồi deploy theo bài Đưa website lên mạng ."},{"type":"Prompt","title":"Email chuyên nghiệp 1 lệnh","summary":"Viết email công việc đúng phong cách của bạn. Cài đặt 1 lần, dùng mãi mãi chỉ với 1 lệnh.","url":"/thu-vien/email-1-lenh","text":"Khi nào dùng Mỗi khi cần viết email công việc: xin nghỉ, báo cáo, đề xuất, phản hồi khách hàng. Cài đặt 1 lần phong cách riêng của bạn Copy đoạn dưới, điền thông tin của bạn, lưu lại. Từ nay chỉ cần dùng 1 lệnh. Prompt dùng hàng ngày Kết quả tốt trông thế nào Đọc lên nghe như chính bạn viết, không \"AI quá\". Người nhận hiểu ngay cần làm gì. Dấu hiệu AI làm sai Dùng từ ngữ quá trang trọng hoặc quá xuồng xã so với phong cách bạn. Email dài dòng, lan man, không có lời kêu gọi hành động rõ ràng."},{"type":"Prompt","title":"Tóm tắt họp 3 phút","summary":"Biến ghi chú họp lộn xộn thành biên bản rõ ràng: quyết định, việc cần làm, người phụ trách.","url":"/thu-vien/tom-tat-hop","text":"Khi nào dùng Sau mỗi cuộc họp, khi bạn có ghi chú nhanh, ghi âm đã chuyển thành text, hoặc trí nhớ lộn xộn. Chuẩn bị Ghi chú thô của cuộc họp càng chi tiết càng tốt, không cần sắp xếp . Prompt Kết quả tốt trông thế nào Nhìn vào bảng việc cần làm là biết ngay ai làm gì, khi nào xong. Người không dự họp đọc vẫn hiểu. Dấu hiệu AI làm sai Bịa ra quyết định hoặc deadline không có trong ghi chú. Tóm tắt quá chung chung, không trích được việc cụ thể."},{"type":"Prompt","title":"Báo cáo tuần tự động","summary":"Nhập số liệu thô → có ngay báo cáo tuần trình bày đẹp, đúng cấu trúc công ty bạn.","url":"/thu-vien/bao-cao-tuan","text":"Khi nào dùng Cuối tuần cần gửi báo cáo cho sếp: việc đã làm, số liệu, khó khăn, kế hoạch tuần tới. Cài đặt 1 lần Prompt Kết quả tốt trông thế nào Sếp đọc 5 phút nắm hết tình hình. Số liệu nổi bật, không bị chìm trong chữ. Dấu hiệu AI làm sai Viết chung chung \"hoàn thành tốt công việc\" mà không có số liệu cụ thể. Không tuân theo cấu trúc bạn đã cài đặt."},{"type":"Prompt","title":"Hỏi số liệu, có ngay insight","summary":"Paste bảng số liệu → AI phân tích xu hướng, điểm bất thường và gợi ý hành động.","url":"/thu-vien/phan-tich-so-lieu","text":"Khi nào dùng Khi có bảng số liệu doanh thu, chi phí, KPI... cần hiểu nhanh: đang tốt hay xấu, vì sao, nên làm gì. Chuẩn bị Bảng số liệu copy từ Excel, có tiêu đề cột rõ ràng . Prompt Kết quả tốt trông thế nào Đọc xong biết ngay tình hình và việc cần làm. Mọi nhận định đều có căn cứ từ số liệu cụ thể. Dấu hiệu AI làm sai Đưa ra kết luận chung chung không chỉ rõ dựa trên con số nào. Bịa ra nguyên nhân không có căn cứ \"do thị trường khó khăn\" trong khi số liệu không thể hiện ."},{"type":"Prompt","title":"Soạn giáo án 15 phút","summary":"Nhập chủ đề → có ngay giáo án đầy đủ mục tiêu, hoạt động, câu hỏi theo phong cách dạy của bạn.","url":"/thu-vien/soan-giao-an","text":"Khi nào dùng Mỗi khi cần soạn giáo án cho tiết học mới, muốn tiết kiệm thời gian mà vẫn chất lượng. Cài đặt 1 lần Prompt Kết quả tốt trông thế nào Cầm giáo án lên lớp dạy ngay được, không cần sửa nhiều. Có hoạt động tương tác, học sinh không buồn ngủ. Dấu hiệu AI làm sai Giáo án chung chung, áp dụng cho môn nào cũng được. Không phù hợp với lứa tuổi quá khó hoặc quá dễ ."},{"type":"Prompt","title":"Tạo đề kiểm tra 5 phút","summary":"Nhập nội dung bài học → có ngay đề kiểm tra đủ 3 mức độ: nhận biết, thông hiểu, vận dụng.","url":"/thu-vien/tao-de-kiem-tra","text":"Khi nào dùng Khi cần ra đề kiểm tra 15 phút, 1 tiết, hoặc bài tập về nhà có cấu trúc rõ ràng. Chuẩn bị Nội dung bài học tên bài, các ý chính, hoặc paste tài liệu . Prompt Kết quả tốt trông thế nào Đề phủ đều kiến thức trọng tâm, phân loại được học sinh. Đáp án chính xác, thang điểm hợp lý. Dấu hiệu AI làm sai Câu hỏi quá dễ toàn nhận biết hoặc quá khó so với trình độ lớp. Đáp án sai hoặc có 2 đáp án đều đúng."},{"type":"Prompt","title":"Tóm tắt bài học để ôn thi","summary":"Paste bài dài → có ngay bản tóm tắt ý chính, công thức cần nhớ, câu hỏi tự kiểm tra.","url":"/thu-vien/tom-tat-on-thi","text":"Khi nào dùng Trước kỳ thi cần ôn nhanh, hoặc khi bài học quá dài cần nắm ý chính. Chuẩn bị Nội dung bài cần tóm tắt SGK, slide, ghi chú . Prompt Kết quả tốt trông thế nào Đọc 10 phút nắm được toàn bộ bài. Tự trả lời được câu hỏi kiểm tra mà không nhìn đáp án. Dấu hiệu AI làm sai Tóm tắt quá dài, gần như chép lại bài gốc. Bỏ sót ý quan trọng hoặc thêm ý không có trong bài."},{"type":"Prompt","title":"Nhận xét học sinh cá nhân hóa","summary":"Nhập điểm mạnh/yếu → có ngay lời nhận xét chân thành, cụ thể cho từng em, đúng giọng văn của bạn.","url":"/thu-vien/nhan-xet-hoc-sinh","text":"Khi nào dùng Cuối kỳ cần viết nhận xét học bạ cho cả lớp, muốn mỗi em đều có lời nhận xét riêng, không chung chung. Cài đặt 1 lần Prompt Skill So sánh: Prompt cơ bản không phải Skill Thấy khác biệt không? Prompt cơ bản: mỗi lần phải mô tả lại từ đầu, kết quả chung chung, không giống giọng bạn. Skill: cài đặt 1 lần, lần sau chỉ cần điền thông tin học sinh → nhận xét đúng chất của bạn, phụ huynh nào đọc cũng biết là cô/thầy viết. Kết quả tốt trông thế nào Mỗi em có nhận xét riêng, không em nào giống em nào. Phụ huynh đọc thấy cô/thầy hiểu con mình. Dấu hiệu AI làm sai Nhận xét chung chung áp dụng cho ai cũng được \"Em học tốt, cần cố gắng hơn\" . Tone quá cứng nhắc hoặc quá sáo rỗng."},{"type":"Prompt","title":"Dàn ý bài văn chi tiết","summary":"Nhập đề bài → có ngay dàn ý mở bài, thân bài, kết bài với luận điểm và dẫn chứng gợi ý.","url":"/thu-vien/dan-y-bai-van","text":"Khi nào dùng Khi gặp đề văn khó, chưa biết bắt đầu từ đâu, cần dàn ý rõ ràng để triển khai. Prompt cơ bản để so sánh Vấn đề: Dàn ý chung chung, không biết bạn học lớp mấy, văn nghị luận hay tự sự, cần chi tiết đến mức nào. Prompt nâng cao Skill Thấy khác biệt không? Prompt cơ bản: ra dàn ý chung chung, có thể quá khó hoặc quá dễ so với bạn. Skill: AI biết bạn lớp mấy, cần thể loại gì → dàn ý vừa sức, bạn chỉ việc triển khai. Kết quả tốt trông thế nào Nhìn dàn ý là biết viết gì ở mỗi đoạn. Dẫn chứng cụ thể, không phải tự nghĩ. Dấu hiệu AI làm sai Viết hộ cả bài văn thay vì chỉ lập dàn ý. Dàn ý quá sơ sài chỉ có tiêu đề các phần ."},{"type":"Prompt","title":"Giải thích khái niệm khó bằng ví dụ đời thường","summary":"Hỏi khái niệm khó hiểu → AI giải thích bằng ví dụ gần gũi, đến khi bạn hiểu thì thôi.","url":"/thu-vien/giai-thich-khai-niem","text":"Khi nào dùng Khi đọc SGK mà không hiểu, thầy cô giảng nhanh quá, cần ai đó giải thích lại từ từ. Prompt cơ bản để so sánh Vấn đề: AI giải thích theo kiểu sách vở, có thể vẫn khó hiểu, không biết bạn đang vướng ở đâu. Prompt nâng cao Skill Thấy khác biệt không? Prompt cơ bản: định nghĩa sách vở, đọc xong vẫn mơ hồ. Skill: AI biết bạn vướng ở đâu, dùng ví dụ phù hợp tuổi, còn kiểm tra xem bạn hiểu chưa. Kết quả tốt trông thế nào Đọc xong vỗ đùi \"À, hóa ra là vậy!\" Trả lời được câu hỏi kiểm tra của AI. Dấu hiệu AI làm sai Giải thích bằng 1 định nghĩa khác cũng khó hiểu không kém. Ví dụ không liên quan hoặc quá xa lạ với lứa tuổi."},{"type":"Checklist","title":"Nghiệm thu giao diện","summary":"Kiểm từng trang trước khi coi là xong: hiển thị, điện thoại, bàn phím, nội dung.","url":"/checklist/nghiem-thu-giao-dien","text":"Hiển thị chung Mỗi trang có đúng một tiêu đề chính H1 nói rõ trang làm gì. Chữ thân bài từ 16px trở lên, dễ đọc trên nền. Màu, font, khoảng cách nhất quán giữa các trang. Không có chữ tràn khung, ảnh méo, phần tử chồng lên nhau. Điện thoại 375px và máy tính bảng Không có thanh cuộn ngang trên toàn trang. Menu mở và đóng được; bấm một mục thì menu đóng. Nút đủ to để bấm bằng ngón tay, không sát nhau. Bảng rộng cuộn ngang riêng hoặc chuyển thành dạng thẻ. Đã xem trên ít nhất một điện thoại thật, không chỉ chế độ giả lập. Bàn phím và hỗ trợ tiếp cận Bấm Tab đi qua mọi nút và liên kết theo thứ tự hợp lý. Luôn thấy rõ đang ở phần tử nào viền focus . Mọi ô nhập có nhãn; ảnh có mô tả alt phù hợp. Không truyền đạt thông tin chỉ bằng màu ví dụ lỗi có cả chữ, không chỉ viền đỏ . Nội dung và hành vi Không còn \"Lorem ipsum\", CẦN ĐIỀN , số liệu hay lời khen giả. Mọi nút và liên kết đều làm đúng việc; không có liên kết \" \" vô nghĩa. Trạng thái rỗng, đang tải, lỗi được hiển thị có ý nghĩa nếu có tương tác . Console F12 không có lỗi đỏ."},{"type":"Checklist","title":"Trước khi deploy","summary":"Đi hết danh sách này trước khi đưa bản mới lên mạng hoặc gửi link cho người khác.","url":"/checklist/truoc-khi-deploy","text":"Mã nguồn và bí mật Không có khóa API, mật khẩu, token trong code phía trình duyệt. .env có trong .gitignore ; lịch sử Git chưa từng chứa bí mật. Đã commit bản đang chuẩn bị deploy, ghi chú rõ ràng. Build và kiểm tra Lệnh build chạy không lỗi nếu dự án có bước build . Đã chạy danh sách kiểm nhanh các việc chính sau lần sửa cuối. Không có liên kết nội bộ hỏng. Đã kiểm trên bản xem trước preview trước khi lên bản chính thức. Trên mạng Trang mở bằng https và có ổ khóa. Mỗi trang có tiêu đề và mô tả riêng. Dán link vào Zalo hoặc Facebook thấy đúng tiêu đề và ảnh xem trước. Trang 404 hiển thị và có đường quay về. Vận hành Biết cách quay lại bản trước rollback và đã thử ít nhất một lần. Biết chi phí hằng tháng; đã đặt giới hạn chi tiêu với dịch vụ tính theo lượt. README ghi cách deploy đã được cập nhật."},{"type":"Checklist","title":"Mẫu báo lỗi","summary":"Mẫu ghi lỗi để gửi cho AI hoặc người hỗ trợ, đủ bằng chứng để sửa đúng nguyên nhân.","url":"/checklist/mau-bao-loi","text":"Mẫu Trước khi gửi, tự kiểm Đã tái hiện lỗi ít nhất 2 lần theo đúng các bước ghi trên. Thông báo lỗi được chép nguyên văn, không tóm tắt. Đã ghi lần cuối chạy đúng và thay đổi gần nhất. Chỉ báo một lỗi trong một lần gửi. Đã xóa thông tin nhạy cảm khóa, mật khẩu, dữ liệu khách khỏi nội dung gửi."},{"type":"Dự án","title":"Landing page giới thiệu dịch vụ","summary":"Làm từ đầu tới lúc có link chạy thật: một trang giới thiệu dịch vụ nhỏ, có mẫu sản phẩm, bảng giá tham khảo và nút nhắn Zalo. Không backend, không dữ liệu cá nhân.","url":"/du-an/landing-page-dich-vu","text":"Ví dụ trong dự án là giả định. \"Mộc Lâm\" là một xưởng mộc tưởng tượng để minh họa. Thay bằng dịch vụ của bạn: tiệm bánh, gia sư, sửa điều hòa, studio ảnh, xưởng cơ khí... Cấu trúc giống nhau. Bạn sẽ có gì khi xong Một trang web chạy trên điện thoại và máy tính, có tên miền miễn phí của dịch vụ deploy hoặc tên miền riêng nếu bạn mua . Bộ file BRIEF.md , NOTES.md , README.md và lịch sử Git sạch. Một quy trình bạn lặp lại được cho dự án tiếp theo. Cần biết trước: bài 1, 3, 4. Nên đọc bài 7, 8, 9 trong lúc làm. Công cụ: một chatbot hoặc agent bất kỳ, trình duyệt, Git khuyên dùng . Phạm vi Có Không có Một trang dài, 6 khối Giỏ hàng, thanh toán Lưới 9 ảnh mẫu đã làm Đăng nhập, tài khoản Bảng giá tham khảo Form lưu dữ liệu khách Nút nhắn Zalo có nội dung soạn sẵn Blog, đa ngôn ngữ SEO cơ bản, ảnh chia sẻ Trang quản trị Luồng người dùng Mọi quyết định thiết kế phục vụ luồng này. Thứ gì không giúp khách đi tới nút Zalo là thứ có thể bỏ. Bố cục 6 khối 1. Đầu trang: tên, một câu giá trị, nút Zalo, một ảnh sản phẩm đẹp nhất. 2. Mẫu đã làm: lưới 9 ảnh, mỗi ảnh có tên, loại gỗ, kích thước. 3. Bảng giá tham khảo: 4 loại sản phẩm, khoảng giá, dòng lưu ý. 4. Quy trình 4 bước: Nhắn yêu cầu → Khảo sát, báo giá → Làm, cập nhật ảnh → Giao, lắp đặt. 5. Hỏi đáp: 4–6 câu khách hay hỏi. 6. Liên hệ: nút Zalo lần nữa, địa chỉ xưởng, giờ làm việc. Chặng 1: Brief Dùng prompt Phỏng vấn để viết Project Brief trong thư viện. Ví dụ brief hoàn chỉnh của Mộc Lâm có trong bài Từ ý tưởng đến Project Brief . Lưu thành BRIEF.md . Kiểm: brief có mục KHÔNG làm; có ít nhất 5 tiêu chí nghiệm thu kiểm được. Chặng 2: Chuẩn bị nội dung thật Đây là chặng hay bị bỏ qua nhất, và là lý do nhiều landing page trông giả. AI không biết sự thật về dịch vụ của bạn. Chuẩn bị trong thư mục noi dung/ : 9 ảnh sản phẩm thật, đặt tên không dấu: ban an oc cho.jpg . File noi dung.md : Ảnh nặng làm trang chậm. Nhờ AI hướng dẫn nén ảnh, hoặc dùng công cụ nén ảnh trực tuyến, mục tiêu dưới 300KB mỗi ảnh, cạnh dài khoảng 1600px. Kiểm: không còn ô GIÁ , SỐ THẬT chưa điền trước khi phát hành. Chặng 3: Giao diện Dùng prompt Mô tả giao diện cho AI . Chọn một phương án, ghi vào brief mục 6. Kiểm: có bảng biến CSS màu, font, khoảng cách ; font hiển thị đúng dấu tiếng Việt. Chặng 4: Dựng trang theo lát cắt Dùng prompt Chia dự án thành lát cắt , rồi Giao việc 5 phần cho từng lát. Kế hoạch gợi ý: Lát Nội dung Kiểm bằng cách 1 Khung trang, biến CSS, header, footer Mở được, không lỗi Console 2 Khối đầu trang + nút Zalo Bấm nút trên điện thoại, Zalo mở đúng số 3 Lưới ảnh mẫu 1 cột trên điện thoại, 3 cột trên máy tính; ảnh không méo 4 Bảng giá Không cuộn ngang ở 375px 5 Quy trình + hỏi đáp Hỏi đáp mở/đóng được bằng chuột và bàn phím 6 Liên hệ + SEO + ảnh chia sẻ + favicon Dán link vào Zalo thấy tiêu đề và ảnh Sau mỗi lát chạy đúng: git add . và git commit m \"Lat N: ...\" . Nút Zalo có nội dung soạn sẵn Liên kết dạng https://zalo.me/ SỐ ĐIỆN THOẠI mở trang chat Zalo với số đó. Bụi Code chưa tìm thấy tài liệu chính thức nào của Zalo về việc điền sẵn nội dung tin nhắn qua liên kết tại ngày 16/10/2026 . Cách làm chắc chắn chạy: đặt ngay cạnh nút một đoạn gợi ý để khách bấm sao chép: Đây là ví dụ điển hình về việc phải kiểm thử thật : AI có thể khẳng định một tham số liên kết \"điền sẵn tin nhắn\" tồn tại. Bấm thử trên điện thoại trước khi tin. Chặng 5: Kiểm thử Test case Bước Mong đợi T1 Mở trang trên điện thoại Thấy tên, câu giá trị và nút Zalo mà không cần cuộn T2 Bấm nút Zalo đầu trang Mở Zalo, đúng số T3 Bấm \"Sao chép tin nhắn mẫu\" Có thông báo đã chép; dán ra đúng nội dung T4 Cuộn tới bảng giá ở 375px Không cuộn ngang toàn trang T5 Dùng Tab từ đầu tới cuối trang Đi qua mọi nút, thấy rõ viền focus T6 Mở hỏi đáp bằng Enter Câu trả lời hiện ra T7 Dán link vào Zalo/Facebook Đúng tiêu đề, mô tả, ảnh T8 Mở F12, tab Console Không lỗi đỏ T9 Xem nguồn trang, tìm \"key\", \"token\" Không có bí mật T10 Tìm chữ \" GIÁ \", \"Lorem\" Không còn Sau đó dùng prompt Review độc lập trước phát hành với mức phát hành C công khai , và Checklist nghiệm thu giao diện . Chặng 6: Deploy Theo bài Đưa website lên mạng an toàn : 1. Bản thử nhanh: kéo thả thư mục để có link gửi bạn bè góp ý. 2. Bản chính: đẩy lên GitHub, kết nối Cloudflare Pages, Vercel hoặc Netlify. 3. Đi hết Checklist trước khi deploy . 4. Viết README.md bằng prompt Viết README . Rủi ro và cách xử lý Rủi ro Cách xử lý AI bịa giá, số năm kinh nghiệm, lời khen Ràng buộc \"để CẦN ĐIỀN , không bịa\" trong mọi yêu cầu; kiểm T10 Ảnh nặng, trang chậm trên 4G Nén ảnh dưới 300KB; dùng loading=\"lazy\" cho ảnh dưới màn hình đầu Sửa lát sau làm hỏng lát trước Commit sau mỗi lát; chạy lại T1–T8 sau mỗi lần sửa Giao diện \"giống mọi website AI\" Dùng ảnh thật, mô tả phong cách cụ thể, bỏ hiệu ứng mặc định Bộ hồ sơ 4 file làm một lần, dùng mọi dự án Dự án chuyên nghiệp không chỉ có code. Bốn file dưới đây là \"hồ sơ\" của dự án — tạo chúng trong lúc làm, không phải sau khi xong. 1. BRIEF.md — đã có ở Chặng 1 Một trang: làm gì, cho ai, phạm vi có/không có. Viết trước khi code. 2. ACCEPTANCE.md — tiêu chí nghiệm thu Copy bảng test case ở Chặng 5 vào file này, thêm 2 cột: 3. BUG LOG.md — nhật ký lỗi Mỗi lỗi gặp trong lúc làm, ghi 3 dòng xem bài 3 thất bại kinh điển : 4. TEST PLAN.md — kế hoạch kiểm thử Trước Chặng 5, viết file này: kiểm những gì, trên thiết bị nào, theo thứ tự nào. Dùng prompt Kịch bản kiểm thử thủ công để tạo nội dung, lưu kết quả vào đây. Mở rộng sau khi xong không làm trong dự án này Nhúng Google Form để nhận yêu cầu báo giá có cấu trúc lưu ý chính sách riêng tư . Thêm trang chi tiết cho từng mẫu. Gắn analytics không cookie để biết khách bấm nút Zalo bao nhiêu lần."},{"type":"Mẹo","title":"Đặt tên file trước khi hỏi AI","summary":"Một cái tên rõ giúp AI hiểu file chứa gì mà không cần mở ra đọc.","url":"/meo/dat-ten-file-truoc-khi-hoi","text":""},{"type":"Mẹo","title":"Chụp màn hình lỗi thay vì mô tả bằng lời","summary":"'Nó bị vỡ' không giúp được gì. Một ảnh chụp màn hình đáng giá 200 từ mô tả.","url":"/meo/chup-man-hinh-loi","text":""},{"type":"Mẹo","title":"Một phiên, một việc","summary":"Phiên trò chuyện càng ngắn, AI càng chính xác. Xong việc là mở phiên mới.","url":"/meo/mot-phien-mot-viec","text":""},{"type":"Mẹo","title":"Đọc thông báo lỗi trước khi dán cho AI","summary":"Dòng đầu của thông báo lỗi thường đã nói rõ vấn đề. Đọc nó mất 10 giây.","url":"/meo/doc-loi-truoc-khi-dan","text":""},{"type":"Mẹo","title":"Lưu lại khi AI hỏi câu hay","summary":"Câu hỏi hay của AI là khuôn mẫu để bạn tự hỏi mình lần sau.","url":"/meo/luu-cau-hoi-hay","text":""},{"type":"Mẹo","title":"Kiểm tra trên điện thoại trước khi khoe","summary":"Hơn nửa người xem web bằng điện thoại. Đừng để lần đầu bạn thấy bản mobile là lúc khách chê.","url":"/meo/kiem-tra-dien-thoai-truoc","text":""},{"type":"Bài tập","title":"Viết tay thành văn bản chuẩn","summary":"Chụp ảnh bản viết tay → AI đánh máy lại chuẩn font, canh lề, sẵn sàng in.","url":"/bai-tap/viet-tay-thanh-van-ban","text":"Tình huống Sếp đưa bạn tờ giấy viết tay ghi chú cuộc họp, yêu cầu đánh máy lại thành văn bản chuẩn để lưu hồ sơ. Chuẩn bị Ảnh chụp bản viết tay rõ nét, đủ sáng Biết yêu cầu format: font gì, cỡ bao nhiêu, canh lề thế nào Các bước Bước 1: Chụp ảnh Chụp thẳng góc, đủ sáng, không bị lóa. Nếu nhiều trang, chụp từng trang. Bước 2: Dùng prompt Bước 3: Kiểm tra Đọc lại toàn bộ, sửa những chỗ không rõ Copy vào Word, áp dụng font và canh lề In thử 1 bản xem đẹp chưa Tiêu chí hoàn thành Văn bản sạch đẹp, sếp ký duyệt không cần sửa gì thêm. Mẹo Chữ viết tay càng rõ, AI đọc càng chính xác Với tài liệu nhiều trang, làm từng trang 1 để dễ kiểm soát Luôn giữ ảnh gốc để đối chiếu khi cần"},{"type":"Bài tập","title":"Ảnh chụp sổ thành bảng Excel","summary":"Chụp ảnh ghi chép lộn xộn → AI trích xuất thành bảng sạch, copy vào Excel.","url":"/bai-tap/anh-chup-thanh-excel","text":"Tình huống Đi họp ghi chép nhanh vào sổ tay, chữ xấu, gạch xóa lung tung. Về công ty cần nhập vào Excel để báo cáo. Chuẩn bị Ảnh chụp trang sổ càng rõ càng tốt Biết bảng Excel cần có những cột nào Các bước Bước 1: Chụp ảnh Chụp từng trang sổ. Nếu chữ quá xấu, chụp gần hơn. Bước 2: Dùng prompt Bước 3: Chuyển vào Excel Copy bảng markdown Paste vào Excel dùng Text to Columns nếu cần Điền những chỗ ? bằng cách xem lại sổ hoặc hỏi đồng nghiệp Tiêu chí hoàn thành Bảng Excel đầy đủ, không thiếu dòng nào so với sổ gốc. Mẹo Ghi chép có cấu trúc ngay từ đầu VD: luôn ghi ngày trước sẽ giúp AI trích xuất chính xác hơn Với số liệu, kiểm tra kỹ con số — AI đôi khi đọc nhầm 6 thành 8"},{"type":"Bài tập","title":"Nhập hóa đơn vào Excel hàng loạt","summary":"Chụp ảnh nhiều hóa đơn → AI trích xuất hàng loạt vào bảng Excel đúng cột.","url":"/bai-tap/nhap-hoa-don-excel","text":"Tình huống Cuối tháng có 20 30 hóa đơn giấy cần nhập vào file Excel theo dõi. Nhập tay mất cả buổi, dễ sai số. Chuẩn bị Ảnh chụp từng hóa đơn đánh số thứ tự: HD01, HD02... File Excel mẫu biết cần những cột nào Các bước Bước 1: Chụp ảnh hàng loạt Chụp từng hóa đơn, đặt tên file theo thứ tự để không nhầm. Bước 2: Dùng prompt cho từng hóa đơn Bước 3: Gộp vào Excel Làm lần lượt từng hóa đơn Copy từng bảng vào file Excel tổng Kiểm tra cột tổng tiền: dùng hàm SUM để đối chiếu Tiêu chí hoàn thành Nhập xong tất cả hóa đơn, tổng tiền khớp với hóa đơn gốc, không sai số nào. Mẹo Làm 5 hóa đơn đầu cẩn thận, từ hóa đơn thứ 6 sẽ nhanh vì quen mẫu Luôn kiểm tra cột \"Tổng cộng\" bằng máy tính tay với 3 hóa đơn đầu để chắc AI đọc đúng số Hóa đơn mờ/nhòe: chụp lại, đừng cố đoán"},{"type":"Bài tập","title":"Phiếu giao hàng không khớp mẫu Excel","summary":"Phiếu giao hàng và file Excel khác cấu trúc → AI tự ánh xạ đúng cột.","url":"/bai-tap/phieu-giao-hang-khac-mau","text":"Tình huống Phiếu giao hàng của nhà cung cấp có cấu trúc khác với file Excel công ty bạn. VD: phiếu ghi \"Số lượng thùng\" nhưng Excel cần \"Số lượng cái\". Hoặc phiếu không có cột \"Mã hàng\" nhưng Excel bắt buộc phải có. Chuẩn bị Ảnh phiếu giao hàng File Excel mẫu xem có những cột nào Bảng quy đổi nếu có: 1 thùng = bao nhiêu cái, mã hàng tương ứng... Các bước Bước 1: Phân tích sự khác biệt Liệt kê ra: Phiếu có gì mà Excel không có → bỏ qua Excel cần gì mà phiếu không có → đánh dấu CẦN BỔ SUNG Tên gọi khác nhau nhưng cùng ý → ghi chú ánh xạ Bước 2: Dùng prompt Bước 3: Kiểm tra và bổ sung Điền những ô BỔ SUNG bằng cách tra cứu hoặc hỏi kho Kiểm tra số lượng sau quy đổi có hợp lý không Tiêu chí hoàn thành Dữ liệu khớp 100% với Excel mẫu, số lượng sau quy đổi chính xác. Mẹo Lần đầu làm 1 phiếu thật kỹ, ghi lại bảng ánh xạ Từ phiếu thứ 2, chỉ cần dùng lại bảng ánh xạ đã lưu → nhanh gấp 3 lần Đây chính là 1 \"skill\" đáng để lưu lại dùng lâu dài!"},{"type":"Bài tập","title":"Tạo giấy mời hàng loạt","summary":"1 mẫu giấy mời + danh sách khách → AI tạo hàng loạt giấy mời cá nhân hóa cho từng người.","url":"/bai-tap/giay-moi-hang-loat","text":"Tình huống Công ty tổ chức sự kiện, cần gửi giấy mời cho 50 khách. Mỗi giấy mời phải có tên riêng, không thể gửi 1 mẫu chung. Chuẩn bị Nội dung giấy mời mẫu Danh sách khách Excel: Họ tên, Chức danh, Công ty Các bước Bước 1: Chuẩn bị mẫu Bước 2: Dùng prompt Bước 3: Xuất và gửi Copy từng giấy mời vào Word Kiểm tra tên không bị sai chính tả quan trọng nhất! In hoặc gửi email Tiêu chí hoàn thành 50 giấy mời, mỗi cái đúng tên người nhận, không có lỗi chính tả tên riêng. Mẹo Tên người Việt dễ sai dấu: kiểm tra kỹ từng tên trước khi in Với khách VIP, đọc lại 2 lần và nhờ đồng nghiệp check chéo Lưu mẫu đã dùng để lần sau chỉ cần thay danh sách khách"},{"type":"Thuật ngữ","title":"Vibe Coding","summary":"Cách làm phần mềm bằng cách mô tả ý định bằng ngôn ngữ tự nhiên để AI viết phần lớn code, qua nhiều vòng phản hồi.","url":"/thuat-ngu#vibe-coding","text":"Bạn mô tả trang giới thiệu tiệm bánh, AI viết HTML/CSS, bạn xem và yêu cầu sửa. Là cách làm Bụi Code dạy, kèm phần kỷ luật để ra sản phẩm thật."},{"type":"Thuật ngữ","title":"AI Agent","summary":"Công cụ AI tự lên kế hoạch và thực hiện nhiều bước: đọc file, sửa code, chạy lệnh, kiểm kết quả.","url":"/thuat-ngu#ai-agent","text":"Agent tự tạo dự án, chạy build, thấy lỗi và sửa. Agent làm được nhiều hơn chatbot, nên cũng phá được nhiều hơn. Cần Git và duyệt kỹ."},{"type":"Thuật ngữ","title":"Trợ lý code AI (AI coding assistant)","summary":"AI gợi ý, hoàn thành và sửa code ngay trong trình soạn thảo khi bạn viết.","url":"/thuat-ngu#ai-coding-assistant","text":"Bạn gõ tên hàm, AI gợi ý cả thân hàm. Phù hợp khi bạn đã viết code được; khác với việc giao cả nhiệm vụ cho agent."},{"type":"Thuật ngữ","title":"Prompt","summary":"Nội dung bạn gửi cho AI để yêu cầu nó làm gì.","url":"/thuat-ngu#prompt","text":"Một yêu cầu viết theo công thức 5 phần. Prompt rõ thì kết quả đúng nhanh hơn."},{"type":"Thuật ngữ","title":"Ngữ cảnh (Context)","summary":"Toàn bộ thông tin AI đang \"thấy\" khi trả lời: cuộc trò chuyện, file bạn đưa, hướng dẫn.","url":"/thuat-ngu#context","text":"Brief, các file code liên quan, lỗi trước đó. AI chỉ biết những gì trong ngữ cảnh. Thiếu ngữ cảnh, nó đoán."},{"type":"Thuật ngữ","title":"Project Brief","summary":"Tài liệu một trang mô tả sản phẩm: cho ai, làm gì, không làm gì, thế nào là xong.","url":"/thuat-ngu#brief","text":"File BRIEF.md với 8 mục. Là bối cảnh chung cho mọi lần giao việc, giúp AI ngừng đoán."},{"type":"Thuật ngữ","title":"MVP (Minimum Viable Product)","summary":"Phiên bản nhỏ nhất của sản phẩm vẫn giải quyết được vấn đề chính.","url":"/thuat-ngu#mvp","text":"Landing page có mẫu, giá và nút Zalo; chưa có giỏ hàng. Làm nhỏ để ra được sản phẩm thật, rồi mới mở rộng."},{"type":"Thuật ngữ","title":"Tiêu chí nghiệm thu (Acceptance criteria)","summary":"Các điều kiện kiểm được để xác nhận một việc đã xong.","url":"/thuat-ngu#acceptance-criteria","text":"\"Ở màn hình 375px không có cuộn ngang.\" Không có tiêu chí thì không biết khi nào xong, và AI báo xong sớm."},{"type":"Thuật ngữ","title":"Lát cắt (Slice)","summary":"Phần việc nhỏ nhất mà khi xong bạn mở ra kiểm được.","url":"/thuat-ngu#lat-cat","text":"\"Khối đầu trang + nút Zalo\". Làm và kiểm từng lát giúp sửa chỗ này không hỏng chỗ kia."},{"type":"Thuật ngữ","title":"Frontend","summary":"Phần chạy trên trình duyệt của người dùng: giao diện, nút bấm, hiệu ứng.","url":"/thuat-ngu#frontend","text":"HTML, CSS, JavaScript của trang. Mọi thứ ở frontend đều ai cũng xem được, nên không đặt bí mật ở đây."},{"type":"Thuật ngữ","title":"Backend","summary":"Phần chạy trên máy chủ: xử lý dữ liệu, đăng nhập, gọi dịch vụ trả phí.","url":"/thuat-ngu#backend","text":"Máy chủ nhận đơn hàng và lưu vào cơ sở dữ liệu. Có backend thì rủi ro và chi phí tăng. Dự án đầu nên tránh."},{"type":"Thuật ngữ","title":"API","summary":"Cách để hai phần mềm nói chuyện với nhau theo quy ước định sẵn.","url":"/thuat-ngu#api","text":"Website gọi API của dịch vụ bản đồ để hiện bản đồ. Nhiều API tính tiền theo lượt và cần khóa bí mật."},{"type":"Thuật ngữ","title":"Khóa API (API key)","summary":"Chuỗi bí mật chứng minh bạn có quyền dùng một API. Ai có khóa thì dùng được, bạn trả tiền.","url":"/thuat-ngu#api-key","text":"Khóa để gọi dịch vụ AI. Lộ khóa có thể mất tiền. Không bao giờ đặt ở frontend."},{"type":"Thuật ngữ","title":"Biến môi trường (Environment variable)","summary":"Giá trị cấu hình (thường là bí mật) đặt ngoài code, đọc lúc chạy.","url":"/thuat-ngu#env","text":"File .env chứa khóa API trên máy bạn, không commit lên Git. Giữ bí mật tách khỏi mã nguồn."},{"type":"Thuật ngữ","title":"Bí mật (Secret)","summary":"Thông tin không được để lộ: mật khẩu, khóa API, token.","url":"/thuat-ngu#secret","text":"Chuỗi kết nối cơ sở dữ liệu. Lộ bí mật: thu hồi ngay, xóa khỏi code là chưa đủ."},{"type":"Thuật ngữ","title":"Cơ sở dữ liệu (Database)","summary":"Nơi lưu dữ liệu có cấu trúc để đọc, ghi, tìm kiếm.","url":"/thuat-ngu#database","text":"Bảng đơn hàng gồm mã, khách, sản phẩm, trạng thái. Có cơ sở dữ liệu là phải lo sao lưu, phân quyền, bảo mật."},{"type":"Thuật ngữ","title":"Kho mã (Repository, repo)","summary":"Thư mục dự án được Git theo dõi lịch sử thay đổi.","url":"/thuat-ngu#repository","text":"Thư mục tiem-moc-landing sau khi chạy git init. Có kho mã thì có lịch sử để quay lại."},{"type":"Thuật ngữ","title":"Git (Version control)","summary":"Công cụ lưu lịch sử thay đổi của dự án, như nút lưu game.","url":"/thuat-ngu#git","text":"git commit sau mỗi lát cắt chạy đúng. Quay lại được khi AI làm hỏng."},{"type":"Thuật ngữ","title":"Commit","summary":"Một bản lưu trong Git, kèm ghi chú.","url":"/thuat-ngu#commit","text":"git commit -m \"Lat 2: nut Zalo chay dung\" Commit nhỏ, thường xuyên thì quay lại được từng bước."},{"type":"Thuật ngữ","title":"Build","summary":"Bước chuyển mã nguồn thành các file sẵn sàng chạy trên mạng.","url":"/thuat-ngu#build","text":"Lệnh npm run build tạo thư mục dist. Build lỗi là chưa deploy được. Build qua là một bằng chứng tối thiểu."},{"type":"Thuật ngữ","title":"Deploy","summary":"Đưa phiên bản mới của website/app lên máy chủ để người khác truy cập.","url":"/thuat-ngu#deploy","text":"Đẩy code lên GitHub, Cloudflare Pages tự deploy. Deploy là lúc lỗi tới tay người dùng. Kiểm trước khi deploy."},{"type":"Thuật ngữ","title":"Debug","summary":"Tìm nguyên nhân lỗi và sửa.","url":"/thuat-ngu#debug","text":"Đọc lỗi trong Console, tái hiện, sửa đúng chỗ. Debug theo bằng chứng nhanh hơn đoán mò."},{"type":"Thuật ngữ","title":"Test case","summary":"Một kịch bản kiểm thử: các bước làm và kết quả mong đợi.","url":"/thuat-ngu#test-case","text":"\"Bấm nút Zalo → Zalo mở đúng số.\" Biến \"chạy được\" thành thứ kiểm lại được mỗi lần sửa."},{"type":"Thuật ngữ","title":"Kiểm thử hồi quy (Regression testing)","summary":"Kiểm lại các chức năng cũ sau khi sửa, để chắc không bị hỏng theo.","url":"/thuat-ngu#regression","text":"Sửa bảng giá xong, kiểm lại menu và nút Zalo. Sửa chỗ này hỏng chỗ kia là lỗi phổ biến nhất khi làm với AI."},{"type":"Thuật ngữ","title":"Xác thực (Authentication)","summary":"Kiểm tra bạn là ai (đăng nhập).","url":"/thuat-ngu#authentication","text":"Nhập email và mật khẩu. Làm sai là người lạ vào được tài khoản người khác."},{"type":"Thuật ngữ","title":"Phân quyền (Authorization)","summary":"Kiểm tra bạn được làm gì sau khi đã đăng nhập.","url":"/thuat-ngu#authorization","text":"Khách chỉ xem đơn của mình; quản trị xem mọi đơn. Lỗi phân quyền là nguồn lộ dữ liệu hay gặp. Thử bằng hai tài khoản."},{"type":"Thuật ngữ","title":"CLAUDE.md","summary":"File mô tả dự án, quy ước và điều cấm mà Claude Code đọc ở đầu mỗi phiên.","url":"/thuat-ngu#claude-md","text":"\"Chỉ dùng HTML, CSS thuần. Không đọc .env.\" Không phải giải thích lại mỗi phiên, AI ít làm lệch hơn."},{"type":"Thuật ngữ","title":"MCP (Model Context Protocol)","summary":"Chuẩn kết nối để công cụ AI đọc, ghi vào dịch vụ khác (GitHub, Notion, cơ sở dữ liệu) trong lúc làm việc.","url":"/thuat-ngu#mcp","text":"Cho Claude Code xem cấu trúc bảng trên Supabase. Mở rộng việc AI làm được; nhưng chỉ kết nối dịch vụ bạn tin. MCP không phải nơi lưu dữ liệu cho website."},{"type":"Thuật ngữ","title":"Skill","summary":"Bản hướng dẫn một quy trình lặp lại, Claude dùng khi phù hợp hoặc khi bạn gọi bằng /tên-skill.","url":"/thuat-ngu#skill","text":"Skill \"kiểm tra trước khi xong\": build, liệt kê file sửa, nêu cách kiểm. Đóng gói cách làm của bạn để không phải dặn lại."},{"type":"Thuật ngữ","title":"Subagent","summary":"Trợ lý AI chuyên biệt chạy trong ngữ cảnh riêng, với lời dặn và bộ công cụ riêng.","url":"/thuat-ngu#subagent","text":"Subagent reviewer chỉ được đọc, không được sửa. Tách vai trò, giới hạn quyền, giữ phiên chính gọn."},{"type":"Thuật ngữ","title":"Hook","summary":"Lệnh tự chạy tại thời điểm cố định trong phiên làm việc của agent, như trước khi sửa file hoặc sau khi sửa xong.","url":"/thuat-ngu#hook","text":"Chặn mọi thao tác sửa file .env. Lời dặn có thể bị quên, hook thì luôn chạy."},{"type":"Thuật ngữ","title":"Bản xem trước (Preview deployment)","summary":"Bản website tạm có đường dẫn riêng, dựng từ một nhánh chưa gộp vào bản chính.","url":"/thuat-ngu#preview-deploy","text":"Vercel tạo link riêng cho nhánh them-faq. Kiểm thay đổi trên môi trường thật trước khi người dùng thấy."},null,{"type":"Thuật ngữ","title":"SaaS (Software as a Service)","summary":"Phần mềm dưới dạng dịch vụ: người dùng thuê theo tháng/năm thay vì mua một lần, dùng qua trình duyệt không cần cài đặt.","url":"/thuat-ngu#saas","text":"Netflix, Spotify, Notion đều là SaaS — trả tiền hàng tháng để dùng. Là mô hình kinh doanh Bụi Code dạy trong khóa SaaS: xây 1 lần, thu tiền đều đặn."},{"type":"Thuật ngữ","title":"Landing Page","summary":"Trang web đơn dùng để giới thiệu sản phẩm và thuyết phục khách hàng đăng ký/mua hàng.","url":"/thuat-ngu#landing-page","text":"Trang có headline, mô tả lợi ích, bảng giá và nút \"Dùng thử miễn phí\". Là \"nhân viên bán hàng\" 24/7 của SaaS."},{"type":"Thuật ngữ","title":"Stripe","summary":"Cổng thanh toán quốc tế cho phép website/app nhận tiền bằng thẻ Visa/Mastercard.","url":"/thuat-ngu#stripe","text":"Khách bấm \"Nâng cấp\", chuyển đến trang Stripe, nhập thẻ, tiền về tài khoản bạn. Cách đơn giản nhất để SaaS thu tiền thật từ khách quốc tế."},{"type":"Thuật ngữ","title":"Webhook","summary":"Cơ chế để một dịch vụ tự động gửi thông báo đến server của bạn khi có sự kiện xảy ra.","url":"/thuat-ngu#webhook","text":"Khi khách thanh toán xong, Stripe gửi webhook báo \"đã nhận tiền\", server tự động nâng cấp tài khoản. Tự động hóa quy trình, không cần kiểm tra thủ công."},{"type":"Thuật ngữ","title":"Supabase","summary":"Dịch vụ backend có sẵn: database Postgres + đăng nhập + API, không cần tự xây server.","url":"/thuat-ngu#supabase","text":"Tạo project, có ngay database và chức năng đăng nhập trong 5 phút. Người không chuyên backend vẫn xây được app có database."},{"type":"Thuật ngữ","title":"RLS (Row Level Security)","summary":"Tính năng bảo mật của database: mỗi người dùng chỉ thấy/sửa được dữ liệu của chính mình.","url":"/thuat-ngu#rls","text":"User A không thể đọc đơn hàng của User B dù cùng dùng chung bảng. Bắt buộc bật cho mọi app có nhiều người dùng."},{"type":"Thuật ngữ","title":"Vercel","summary":"Nền tảng deploy website: đẩy code lên GitHub là có link chạy thật trong 1 phút.","url":"/thuat-ngu#vercel","text":"Code xong, push lên GitHub, Vercel tự build và cho link .vercel.app. Đưa sản phẩm lên mạng nhanh nhất, miễn phí ban đầu."},{"type":"Thuật ngữ","title":"Tên miền (Domain)","summary":"Địa chỉ website dạng tenban.com thay vì tenban.vercel.app.","url":"/thuat-ngu#domain","text":"Mua tenban.com giá ~250k/năm, trỏ về Vercel. Trông chuyên nghiệp, khách hàng tin tưởng hơn."},{"type":"Thuật ngữ","title":"CTA (Call To Action)","summary":"Nút kêu gọi hành động: \"Đăng ký ngay\", \"Dùng thử miễn phí\", \"Mua ngay\".","url":"/thuat-ngu#cta","text":"Nút màu nổi bật ở cuối landing page dẫn đến trang đăng ký. Không có CTA rõ ràng, khách đọc xong rồi đi mất."},{"type":"Thuật ngữ","title":"Bảng giá (Pricing)","summary":"Phần hiển thị các gói cước của SaaS: tên gói, giá, tính năng đi kèm.","url":"/thuat-ngu#pricing","text":"Gói Cơ bản 99k, Pro 199k (nổi bật), Doanh nghiệp 499k. Khách so sánh và chọn gói phù hợp, tăng tỷ lệ mua."},{"type":"Thuật ngữ","title":"Churn","summary":"Tỷ lệ khách hàng hủy dịch vụ trong 1 tháng. Churn 5% nghĩa là 100 khách thì 5 người bỏ.","url":"/thuat-ngu#churn","text":"SaaS 100 khách, churn 10%/tháng thì sau 7 tháng mất một nửa. Chỉ số sống còn của SaaS — giữ khách rẻ hơn tìm khách mới."},{"type":"Thuật ngữ","title":"MRR (Monthly Recurring Revenue)","summary":"Doanh thu định kỳ hàng tháng: tổng tiền thuê bao đang hoạt động.","url":"/thuat-ngu#mrr","text":"50 khách × 199k = 9.95 triệu MRR. Thước đo sức khỏe của SaaS — MRR tăng đều là tín hiệu tốt."},{"type":"Thuật ngữ","title":"Cursor","summary":"Trình soạn thảo code tích hợp AI: gõ mô tả, AI viết code ngay trong editor.","url":"/thuat-ngu#cursor","text":"Bôi đen đoạn code, bấm Ctrl+K, gõ \"thêm validation\", AI sửa luôn. Công cụ phổ biến cho vibe coding, thay thế VS Code truyền thống."},{"type":"Thuật ngữ","title":"Windsurf","summary":"IDE tích hợp AI tương tự Cursor, nổi bật với tính năng \"Cascade\" hiểu toàn bộ codebase.","url":"/thuat-ngu#windsurf","text":"Hỏi \"hàm này dùng ở đâu?\", Windsurf tìm và giải thích trong cả dự án. Lựa chọn thay thế Cursor, miễn phí hào phóng hơn."},{"type":"Thuật ngữ","title":"Claude Code","summary":"Công cụ AI chạy trong terminal, có thể đọc/ghi file, chạy lệnh, tự làm nhiều bước.","url":"/thuat-ngu#claude-code","text":"Gõ \"thêm chức năng đăng nhập\", Claude Code tự tạo file, viết code, chạy test. Mạnh hơn chatbot vì làm việc trực tiếp với code thật."},{"type":"Thuật ngữ","title":"LLM (Large Language Model)","summary":"Mô hình AI ngôn ngữ lớn: được huấn luyện trên lượng văn bản khổng lồ để hiểu và sinh ngôn ngữ.","url":"/thuat-ngu#llm","text":"GPT-4, Claude, Gemini đều là LLM. Hiểu bản chất giúp bạn dùng AI hiệu quả hơn, không thần thánh hóa."},{"type":"Thuật ngữ","title":"Token","summary":"Đơn vị tính của AI: khoảng 3-4 ký tự tiếng Anh = 1 token. AI tính phí theo token.","url":"/thuat-ngu#token","text":"Đoạn chat 1000 từ tốn ~1500 token. Gói API tính tiền theo triệu token. Hiểu token giúp kiểm soát chi phí khi dùng API."},{"type":"Thuật ngữ","title":"Cửa sổ ngữ cảnh (Context Window)","summary":"Lượng văn bản tối đa AI \"nhớ\" được trong 1 cuộc trò chuyện.","url":"/thuat-ngu#context-window","text":"Claude có context 200k token ≈ 500 trang sách. Vượt quá là AI quên đầu bài — cần chia nhỏ việc."},{"type":"Thuật ngữ","title":"Ảo giác AI (Hallucination)","summary":"Hiện tượng AI tự bịa thông tin nghe rất thuyết phục nhưng sai sự thật.","url":"/thuat-ngu#hallucination","text":"AI bịa ra thư viện không tồn tại, bịa số liệu thống kê. Luôn kiểm chứng thông tin quan trọng, đừng tin 100%."},{"type":"Thuật ngữ","title":"Kỹ thuật viết prompt (Prompt Engineering)","summary":"Nghệ thuật viết yêu cầu cho AI sao cho ra kết quả đúng ý nhất.","url":"/thuat-ngu#prompt-engineering","text":"Thay vì \"viết code\", viết \"viết hàm Python kiểm tra email, trả về True/False, có docstring\". Prompt tốt = kết quả tốt. Đây là kỹ năng cốt lõi."},{"type":"Thuật ngữ","title":"Few-shot","summary":"Kỹ thuật cho AI xem vài ví dụ mẫu trước khi yêu cầu làm việc tương tự.","url":"/thuat-ngu#few-shot","text":"\"Đây là 3 email mẫu. Viết email thứ 4 theo phong cách này.\" AI bắt chước phong cách nhanh hơn giải thích bằng lời."},{"type":"Thuật ngữ","title":"Chuỗi suy luận (Chain of Thought)","summary":"Yêu cầu AI trình bày từng bước suy nghĩ trước khi đưa đáp án.","url":"/thuat-ngu#chain-of-thought","text":"\"Hãy suy nghĩ từng bước rồi mới trả lời.\" Tăng độ chính xác cho bài toán phức tạp."},{"type":"Thuật ngữ","title":"Nhiệt độ (Temperature)","summary":"Tham số điều chỉnh độ \"sáng tạo\" của AI: thấp = chính xác, cao = bay bổng.","url":"/thuat-ngu#temperature","text":"Viết code để 0.2 (chính xác), viết truyện để 0.9 (sáng tạo). Chỉnh đúng giúp AI phù hợp với từng việc."},{"type":"Thuật ngữ","title":"Embedding","summary":"Cách biến văn bản thành dãy số để AI so sánh độ giống nhau về ý nghĩa.","url":"/thuat-ngu#embedding","text":"Tìm kiếm \"cách nấu phở\" ra cả bài \"hướng dẫn làm phở bò\" dù từ khác nhau. Nền tảng của tìm kiếm thông minh và chatbot hiểu ngữ nghĩa."},{"type":"Thuật ngữ","title":"RAG (Retrieval Augmented Generation)","summary":"Kỹ thuật cho AI tra cứu tài liệu của bạn trước khi trả lời, giảm bịa đặt.","url":"/thuat-ngu#rag","text":"Chatbot công ty tra cứu sổ tay nội bộ rồi mới trả lời nhân viên. AI trả lời đúng theo dữ liệu của bạn, không bịa."},{"type":"Thuật ngữ","title":"Tinh chỉnh (Fine-tuning)","summary":"Huấn luyện thêm cho AI trên dữ liệu riêng để nó giỏi việc đặc thù.","url":"/thuat-ngu#fine-tuning","text":"Fine-tune AI trên 1000 email công ty để viết đúng phong cách. Khi prompt không đủ, fine-tune là bước tiếp theo (tốn kém hơn)."},{"type":"Thuật ngữ","title":"Nhánh (Branch)","summary":"Bản sao code để thử nghiệm riêng, không ảnh hưởng bản chính.","url":"/thuat-ngu#branch","text":"Tạo nhánh \"them-tinh-nang\", làm xong ổn mới gộp vào main. Thử nghiệm thoải mái không sợ hỏng bản đang chạy."},{"type":"Thuật ngữ","title":"CI/CD","summary":"Tự động kiểm tra và deploy mỗi khi có code mới.","url":"/thuat-ngu#ci-cd","text":"Push code → tự chạy test → test đỗ → tự deploy. Ship nhanh mà vẫn an toàn, không cần làm tay."},{"type":"Thuật ngữ","title":"SEO (Search Engine Optimization)","summary":"Tối ưu để Google xếp hạng website cao khi người dùng tìm kiếm.","url":"/thuat-ngu#seo","text":"Bài viết \"cách nấu phở\" lên top Google → có traffic miễn phí. Kênh marketing miễn phí và bền vững nhất."},{"type":"Thuật ngữ","title":"UX (User Experience)","summary":"Trải nghiệm người dùng: dùng sản phẩm có dễ, có sướng không.","url":"/thuat-ngu#ux","text":"Nút \"Mua\" to rõ vs nút bé tí khó bấm — UX khác nhau. UX tốt = khách ở lại lâu, mua nhiều hơn."},{"type":"Thuật ngữ","title":"UI (User Interface)","summary":"Giao diện người dùng: những gì mắt thấy, tay bấm được.","url":"/thuat-ngu#ui","text":"Màu sắc, font chữ, bố cục nút bấm. UI đẹp tạo ấn tượng đầu, UX tốt giữ chân."},{"type":"Thuật ngữ","title":"Tương thích di động (Responsive)","summary":"Website tự điều chỉnh hiển thị đẹp trên cả điện thoại và máy tính.","url":"/thuat-ngu#responsive","text":"Mở web trên điện thoại vẫn đọc được, không phải zoom. 70% người Việt lướt web bằng điện thoại."}]