Lesson Plan — Buổi 1: Mindset + Setup + Chọn đồ án
Metadata
| Thời lượng | 2 giờ (120 phút) |
| Format | Google Meet — camera bắt buộc 30’ đầu, tự chọn sau |
| Công cụ | Google Meet + Slido, Google Classroom (stream Chọn đề), GitHub Classroom |
| Số học viên | 12–15 người (toàn bộ trong main room, không tách nhóm) |
| Mentor cần | 1 lead mentor + 1 trợ giảng on-call (trong Zalo / Google Classroom) |
Mục tiêu cuối buổi
Học viên rời buổi 1 với: 1. Hiểu được tại sao Vibe Coding + BMAD giải quyết được vấn đề của họ. 2. Máy đã cài xong Antigravity IDE / Claude Code, đã clone BMAD, chạy được bmad-help. 3. Đã tự build 1 trang index.html mà không gõ 1 dòng code tay nào. 4. Đã chọn và đăng ký 1 trong 9 đồ án trong GC stream #project-pick. 5. Biết buddy pair của mình và đã DM làm quen. 6. Đã push repo đầu tiên lên GitHub Classroom.
Chuẩn bị trước buổi học (Mentor Checklist)
Hoàn thành ít nhất 24h trước khi meet:
Kiểm tra 15 phút trước giờ học: - [ ] Mở Google Meet, test share screen + audio - [ ] Mở Zalo / Google Classroom — pin message “Chọn đề ở đây 👇” vào GC stream #project-pick - [ ] Mở Slido — load sẵn câu hỏi đầu tiên nhưng chưa hiển thị - [ ] Mở thư mục .claude/skills/ trên máy mentor, sẵn sàng share - [ ] Mở terminal Antigravity IDE, project demo sẵn
Timeline Chi Tiết
🕐 00:00–00:15 | Phần 1 — Check-in + Bốc thăm (15’)
Mục đích: Kiểm tra nhanh học viên đã đọc Primer Pack; tạo không khí lớp trước khi vào demo. Giữ ngắn — buổi 1 là buổi mới gặp nhau, không cần quiz sâu.
Script mở đầu (00:00–00:03)
“Chào cả nhà, mình bắt đầu nhé. Camera bật lên cho nhau thấy mặt — hôm nay buổi đầu, quan trọng lắm.
Trước khi vào học, mình cần biết các bạn đã đọc Primer Pack chưa. Không phải kiểm tra cho vui — mà vì buổi này sẽ build trên nền những gì các bạn đã đọc.
Mình sẽ dùng Random Wheel — hệ thống tự chọn tên, không phải mình chọn. Người được chọn có 2 phút giải thích 1 khái niệm. Cả lớp nghe, bổ sung nếu cần.”
Bốc thăm 2 lượt (00:03–00:13)
Mỗi lượt ~4,5 phút. Chọn ngẫu nhiên 2 chủ đề trong 3 chủ đề dưới đây, mỗi lượt 1 chủ đề.
Chủ đề A — Git (từ 02-git-basics.md) - Câu dễ: “Git là gì? Vì sao lập trình viên cần Git thay vì lưu file bình thường?” - Câu khó hơn: “Branch dùng để làm gì? Cho ví dụ cụ thể một tình huống bạn cần tạo branch.”
Chủ đề B — AI Agent (từ 05-ai-agent-concept.md) - Câu dễ: “AI Agent khác với ChatGPT thông thường ở điểm gì?” - Câu khó hơn: “Context window là gì? Vì sao nó quan trọng khi làm việc với AI?”
Chủ đề C — BMAD Overview (từ 06-bmad-overview.md) - Câu dễ: “BMAD là gì? Tại sao không dùng ChatGPT thẳng cho tiện?” - Câu khó hơn: “Micro-file architecture là gì? Vì sao file spec phải ngắn?”
Cách chạy mỗi lượt: 1. Mở wheelofnames.com → share screen → spin wheel. 2. Gọi tên học viên + đọc câu hỏi. 3. Học viên có 2 phút trả lời (không ngắt). 4. Mentor phản hồi ngắn (30 giây): xác nhận đúng / bổ sung 1 điểm quan trọng. 5. Mở cho cả lớp bổ sung (30 giây).
Tip xử lý “học viên chưa đọc”: Nếu học viên trả lời “Em chưa đọc phần đó” hoặc im lặng > 15 giây, mentor KHÔNG nhục mạ. Nói: “Ok, bạn note lại nhé. Sau buổi này đọc ngay, vì tuần sau mình vẫn hỏi tiếp.” Rồi chuyển sang người khác. Ghi tên vào list riêng để follow up sau.
Slido poll + tổng kết (00:13–00:15)
Mở Slido poll #1 (1 phút): “Bạn thuộc nhóm nào?” → A (Dev), B (Founder), C (chưa biết code). Hiển thị kết quả real-time để cả lớp biết cơ cấu nhóm.
“Qua 2 lượt vừa rồi mình thấy nhóm hiểu khá tốt phần nền. Bạn nào chưa tự tin — đừng lo, mình sẽ dùng những khái niệm đó trong demo hôm nay và sẽ thấy rõ hơn.”
🕐 00:15–00:55 | Phần 2 — Mentor Demo (40’)
Cấu trúc: 5’ slides 5 cơ chế → 10’ tour BMAD skills → 25’ live demo bmad-quick-dev
2A. 5 Cơ chế lõi BMAD (00:15–00:20 | 5’)
Mở slide slides-buoi-01.md — phần “5 Cơ chế lõi”. Mỗi cơ chế đúng 1 phút — đọc tên, 1 câu mô tả, 1 ví dụ ngắn. Không cần giải thích sâu ở đây — demo sẽ làm rõ.
Cơ chế 1 — Micro-file Architecture > “1 file = 1 nhiệm vụ. Khi bạn nhét 3 tính năng vào 1 Story, AI bắt đầu lẫn lộn. Dấu hiệu nhận biết: bạn phải scroll mãi mới thấy hết — đó là lúc cần tách. Thực tế: story tốt thường nằm trong khoảng 60–120 dòng.”
Cơ chế 2 — Agent Personas > “4 agent chuyên biệt: John (PM), Winston (Architect), Sally (UX), Paige (Writer). Mỗi người nhìn từ góc khác nhau — kết quả tốt hơn nhiều so với hỏi 1 AI chung chung.”
Cơ chế 3 — Vibe Loop > “Nhịp tim của khoá: Prompt → code → chạy → lỗi → copy log → ‘fix it’ → chạy lại. Bạn không tự sửa code. Bạn copy và paste.”
Cơ chế 4 — HITL (Human-in-the-Loop) > “AI hỏi bạn trước khi code. ‘Supabase hay Firebase?’ ‘Validation client hay server?’ Bạn trả lời, AI mới code. Không tự đoán.”
Cơ chế 5 — Party Mode > “Trước quyết định lớn: triệu tập tất cả agent vào cùng 1 session. Họ tranh luận — bạn thấy blind spot trước khi commit code.”
2B. Tour cấu trúc BMAD thật (00:20–00:30 | 10’)
“Đủ lý thuyết rồi — giờ mình mở máy cho các bạn xem BMAD trông như thế nào trong thực tế.”
Share screen — mở thư mục .claude/skills/:
📂 .claude/skills/
├── bmad-help/
│ └── SKILL.md
├── bmad-quick-dev/
│ ├── SKILL.md
│ └── workflow.md
├── bmad-create-prd/
│ ├── SKILL.md
│ └── steps/
│ ├── step-01-gather-context.md
│ ├── step-02-define-problem.md
│ └── ...
├── bmad-agent-pm/
│ └── SKILL.md ← persona John
└── bmad-party-mode/
└── SKILL.md
Script tour (2 điểm chính, mỗi điểm ~4 phút):
Điểm 1 — Micro-file trong thực tế: Mở bmad-create-prd/steps/ → count số file → đọc tên 3–4 file đầu. > “Xem này — 9 file, mỗi file dưới 80 dòng. AI đọc từng file theo thứ tự, không bị lú giữa chừng. Đây là Micro-file trong thực tế.”
Điểm 2 — Persona được định nghĩa như thế nào: Mở bmad-agent-pm/SKILL.md → scroll đến phần persona description. > “John được định nghĩa ở đây — background, cách đặt câu hỏi, tone. Khi bạn call bmad-agent-pm, AI đọc file này trước khi trả lời. Đó là lý do John luôn hỏi về user pain point thay vì nhảy vào solution ngay.”
Mở Slido poll #2 (30 giây): “File SKILL.md dùng để làm gì?” → A: Chứa code, B: Định nghĩa persona + hành vi agent, C: Lưu log. → Chốt đáp án B.
2C. Live demo bmad-quick-dev (00:30–00:55 | 25’)
“Bây giờ mình demo thứ mà các bạn sẽ tự làm sau break. Mình build employee info page từ số 0 — không gõ 1 dòng HTML tay. Trang này tương tự trang giới thiệu bản thân các bạn sẽ làm — nhưng cho một nhân viên trong hệ thống HRIS.”
Setup (1 phút): - Mở Antigravity IDE, tạo folder trống hris-demo/ - Đảm bảo học viên thấy: folder rỗng hoàn toàn
Bước 1 — Gọi skill (2 phút): Trong Antigravity IDE chat, gõ:
/bmad-quick-dev
→ Chờ AI hiện HITL question: “Bạn muốn build loại gì? Landing page / Form / Dashboard?” → Trả lời: Employee info page cho HRIS — hiển thị tên nhân viên, phòng ban, chức vụ, avatar placeholder, dark mode toggle
“Thấy không — AI hỏi trước. Không tự đoán. Đây là HITL.”
Bước 2 — AI nhả code (3 phút): AI generate index.html. Mentor KHÔNG xem code ngay, mở thẳng browser.
“Mình không đọc code. Mình chạy luôn.”
Bước 3 — Cố tình tạo lỗi (7 phút): Xoá 1 dòng trong <script> để dark mode bị lỗi → reload browser → lỗi hiện ra.
Copy toàn bộ console error (F12 → Console), paste vào Antigravity IDE chat:
Fix this:
[paste error]
“Đây là Vibe Loop. Tôi không hiểu lỗi này nghĩa là gì. Tôi không cần hiểu. Tôi chỉ copy paste.”
Bước 4 — AI fix (3 phút): AI fix xong → reload → dark mode hoạt động.
“Từ 0 tới employee info page có dark mode: ~13 phút. Số dòng code tôi gõ: 0.”
Bước 5 — Wrap up demo + Slido (3 phút):
“Sau break, các bạn sẽ tự làm đúng quy trình này — trong main room, mỗi người làm cá nhân. Nhớ: không gõ code. Nếu thấy muốn gõ — dừng lại, ném cho AI.”
Mở Slido poll #3: “Bạn có câu hỏi về quy trình demo vừa rồi?” → open text, thu 1–2 câu hay trả lời nhanh trong 2 phút trước break.
🕐 00:55–01:00 | Break (5’)
“Nghỉ 5 phút. 01:00 mình bắt đầu phần warm-up — cả nhà giữ nguyên trong meeting này, không cần join đâu khác. Tranh thủ mở Antigravity IDE nếu chưa xong.”
Mentor làm trong 5 phút: - Kiểm tra Zalo / Google Classroom (stream Chọn đề) — ai đã đăng ký đề trước giờ (nếu có) - Chuẩn bị wheelofnames.com với danh sách tên để spin sau warm-up
🕐 01:00–01:30 | Phần 3 — Warm-up cá nhân (30’)
Announce nhiệm vụ (01:00–01:02)
“Nhiệm vụ 25 phút: dùng
bmad-quick-devbuild trangindex.htmlgiới thiệu bản thân — tên, nghề nghiệp, 1 dự án muốn build trong khoá, dark mode toggle.Quy tắc: không gõ code. Toàn bộ bằng prompt. Cả nhà làm trong meeting này — ai kẹt thì hỏi trong chat hoặc bật mic.”
Build cá nhân (01:02–01:27 | 25’)
Học viên tự làm, toàn bộ trong main room — không tách nhóm.
Mentor và trợ giảng theo dõi chat Google Meet + Zalo nhóm — reply khi có câu hỏi.
Những vấn đề thường gặp và cách xử lý:
| Vấn đề | Xử lý |
|---|---|
| Antigravity IDE chưa cài / lỗi install | Dùng Claude.ai web tạm — paste code vào file tay. Note lại, fix sau buổi học |
| AI generate code không chạy được | Hướng dẫn: copy lỗi → paste vào chat → gõ “fix it” |
| Học viên tự sửa code tay | Nhẹ nhàng: “Thử ném lại cho AI xem sao nhé, rồi so sánh” |
| Dark mode không hoạt động | Gợi ý prompt: “The dark mode toggle is not working. Fix it.” |
| Học viên hoàn thành sớm | Gợi ý thêm: “Thử thêm animation hoặc thêm 1 section mới bằng prompt” |
🕐 01:30–02:00 | Phần 4 — Chọn đồ án + Giao notebook (30’)
4A. Giới thiệu 9 đồ án (01:30–01:40 | 10’)
Mở slide bảng 9 đồ án (xem slides-buoi-01.md).
“Các bạn đã nhận file playbook 9 đồ án trong Primer Pack. Mình điểm qua nhanh để ai chưa đọc kịp vẫn có hình dung.”
| # | Đề | Phù hợp | Độ phức tạp |
|---|---|---|---|
| 1 | HireFlow Lite | HR/Tuyển dụng | ★★★ |
| 2 | PipeTrack | Sales/CRM | ★★ ← điểm khởi đầu tốt |
| 3 | ShipBoard | Vận hành | ★★ |
| 4 | Content Cal | Marketing | ★★★ |
| 5 | ExpenseFlow | Kế toán | ★★★★ ← thử thách |
| 6 | MeetRoom | Hành chính | ★★ |
| 7 | TrainTrack | Đào tạo | ★★★ |
| 8 | BỊ KHOÁ — mentor demo | — | |
| 9 | StockRoom | Kho/Mua hàng | ★★ |
| 10 | TaskSprint | Project Mgmt | ★★★★ |
“Nhóm C (chưa biết code) — mình khuyến khích chọn ★★, tuyệt đối tránh ★★★★ ở buổi đầu.”
Mở Slido poll #4: “Bạn chọn đề số mấy?” → Hiển thị kết quả real-time. Nếu 1 đề bị quá nhiều người chọn → gợi ý chuyển ngay.
4B. Đăng ký chính thức (01:40–01:50 | 10’)
“Ai đã chắc chắn — mở Google Classroom (stream Chọn đề) ngay bây giờ, đăng theo format:
[Họ tên] — Đề #X: [Tên đề] — Lý do chọn (1 câu)Ví dụ: ‘Nguyễn Văn A — Đề #2: PipeTrack — Đang làm sales, muốn build CRM nhẹ cho team 5 người.’
Ai chưa chắc — cứ đăng đề tạm. Bạn có quyền đổi đến hết buổi 2. Sau đó khoá.”
Mentor và trợ giảng theo dõi GC stream real-time: - Nếu học viên chọn #8 (HRIS) → nhắc ngay trong Zalo: “Đề này bị khoá, bạn chọn lại nhé.” - Nếu 1 đề bị > 4 người chọn → mentor gợi ý chuyển sang đề liền kề tương tự.
Trong lúc học viên đăng ký, mentor có thể nhận 1–2 câu Q&A nhanh qua chat.
4C. Giao notebook tuần 2 (01:50–01:56 | 6’)
Mở slide “Homework tuần 2” (xem slides-buoi-01.md).
Bàn giao: - 📓 notebook-02-product-brief.md — 35 step, parameterized cho 9 đề - 📂 Playbook của đề bạn đã chọn (1 trong 9 file playbooks/) - 📖 Đọc trước buổi 2: - nb02-readings/product-thinking-101.md — 60’ đọc - jtbd-framework.md — 45’ đọc
“Notebook tuần 2 có 35 step — ước tính 6 tiếng. Chia ra 2 ngày, mỗi ngày 3 tiếng sẽ thoải mái. Đừng dồn vào đêm trước buổi học — mình sẽ hỏi bốc thăm ngay đầu Buổi 2.
Mỗi step có ô ‘Áp dụng cho đề của bạn’. Playbook đề của bạn liệt kê sẵn các term thay thế — đọc playbook song song với notebook.”
4D. Công bố Buddy Pairs + Kết thúc (01:56–02:00 | 4’)
Mở file buddy-pairs.md, đọc to từng cặp.
Ghép nguyên tắc: - Cùng độ phức tạp đề (★★ với ★★, ★★★ với ★★★) - Khác nhóm A/B/C nếu có thể (dev + non-dev học nhau) - Múi giờ tương đương nếu lớp đa quốc tịch
“Buddy pair là người bạn học của bạn suốt khoá. Mỗi khi kẹt notebook, DM buddy trước — sau đó mới hỏi Zalo / Google Classroom. Nguyên tắc: reply trong 4h, không giải ngay mà hỏi lại để buddy tự nghĩ.
Wrap up buổi 1. Checklist trước khi đi ngủ tối nay: ✅ Push
index.html+chat-log-week1.mdlên GitHub Classroom ✅ Đăng ký đề trongGC stream #project-pick(nếu chưa làm) ✅ DM buddy pair làm quen ✅ Bắt đầu đọcproduct-thinking-101.mdTuần này có gì kẹt → Zalo nhóm khoá (tag @mentor). Mentor hoặc trợ giảng reply trong 4 tiếng trong giờ hành chính.
Hẹn gặp buổi 2 — mang PRD cho đề của các bạn ra nhé!“
Xử lý tình huống khó
| Tình huống | Xử lý |
|---|---|
| Google Meet rớt giữa chừng | Trợ giảng tạo link Google Meet mới, paste vào Zalo nhóm khoá (#general) ngay lập tức |
| Học viên không cài được Antigravity IDE | Dùng Claude.ai web tạm + push code qua GitHub web editor. Fix install sau buổi học. |
| Học viên kẹt cài BMAD skill | Confirm: ls .claude/skills/ có folder chưa. Nếu chưa: git clone <bmad-repo> vào .claude/. |
| Quá nhiều người chọn cùng 1 đề | Mentor gợi ý chuyển đề tương tự: PipeTrack ↔︎ ShipBoard, HireFlow ↔︎ TrainTrack |
| Học viên hỏi câu ngoài phạm vi buổi | “Câu này hay lắm — mình pin lại trả lời trong Zalo / Google Classroom sau buổi.” |
| Buổi trễ > 10 phút | Cắt phần share warm-up (bỏ qua, chỉ hỏi giơ tay ai hoàn thành) + gộp giao notebook vào Zalo sau |
| Học viên im lặng khi bốc thăm > 15 giây | “Ok, bạn note lại nhé, tuần sau mình hỏi tiếp.” — chuyển sang người khác, không kéo dài |