Sáu epic. Mỗi epic gỡ một nỗi đau có thật.
Nhân viên Casa đang ghi chi tiết ra giấy rồi gõ lại vào Word, và không ai biết khách đã nhận bản nào. Đây là sản phẩm thay việc đó.
- Nỗi đau gốc: Melo và Andrew ghi ra giấy rồi gõ lại vào Word, không có số phiên bản. Sky nói ra ngày 07/09.
- Mốc Sky đặt: một báo giá trong 10 phút, có ngày sửa cuối, giá lấy từ Odoo.
- Sáu epic. Bốn cái đầu là MVP. E5 để sau. E6 mỏng nhưng phải có ngay từ đầu.
- Chín blocker. Nặng nhất: đặt chỗ thật chưa từng thử, và chưa ai có khóa truy cập theo vai.
Hình 1Cả câu chuyện trên một trang, và chỗ cắt bản đầu
Hình 2Ai đứng ở đâu, và trao nhau cái gì
| Tác nhân | Đau chỗ nào | Thắng được gì | Epic liên quan |
|---|---|---|---|
| Eloa và trợ lý | Gõ tay hai lần, một lần vào Word, một lần vào Odoo | Một chỗ làm việc duy nhất, báo giá xong là Odoo có | E1 E2 E3 E4 |
| Melo và Andrew | Ghi ra giấy, không có số phiên bản, khách hỏi lại thì không truy được | Bản có số và ngày, mở lại được bất cứ lúc nào | E1 E3 |
| Đại lý quốc tế | Chờ lâu, phải hỏi đi hỏi lại mới ra giá | Một link, thấy giá của mình, không cần tài khoản | E3 E6 |
| Sky | Luật giá nằm trong đầu vài người, không ai kiểm được | Một bảng giá duy nhất trong Odoo, sửa một chỗ là đúng khắp nơi | E2 E6 |
| Phillip | Odoo phình vì bản nháp và file đính kèm | Odoo chỉ nhận bản đã chốt, nháp nằm ngoài | E4 E5 |
| Bếp, tàu, xe | Nhận lệnh qua tin nhắn trong group chat, dễ sót | Bản vận hành theo ngày, sinh thẳng từ folio | E5 |
Nhận tin và bóc tách
MVPNỗi đau
Melo và Andrew ghi chi tiết chuyến ra giấy, rồi gõ lại vào Word. Yêu cầu đến bằng ba thứ tiếng, qua WhatsApp, email và form web. Mỗi lần gõ lại là một lần có thể sai.Sky, họp 07/09/2026 · 00:24:44
Tác nhân
- Eloa và trợ lý
- Melo
- Andrew · thị trường Trung Quốc
- Khách lẻ
- Đại lý
User story
- Eloa dán tin nhắn của khách vào, hệ thống trả lại một chuyến đã điền sẵn, không phải gõ lại.
- Mỗi trường ghi rõ khách nói, AI suy ra hay là mặc định, kèm câu trích nguyên văn.
- Thiếu thông tin thì hệ thống hỏi lại vài câu, không bịa ra con số.
- Khách điền form web bằng tiếng Việt, Anh hoặc Trung, bản nháp hiện ngay cho nhân viên.
Hôm nay → Sau khi có
| Hôm nay | Sau khi có | Cải tiến gì |
|---|---|---|
| Ghi ra giấy, rồi gõ vào Word | Dán tin nhắn, ra chuyến đã điền | Bỏ hẳn một lần gõ tay |
| Tin tiếng Trung phải dịch trước | Bóc tách thẳng ba thứ tiếng | Andrew không phải làm phiên dịch |
| Không rõ con số nào do ai đưa ra | Mỗi trường có nguồn và câu trích | Tranh cãi với khách có bằng chứng |
Blocker
Chưa có dữ liệu thật để đo. Cần khoảng 30 tin nhắn hỏi giá thật, đã xoá tên và số điện thoại, từ Eloa. Không có thì không biết bóc tách đúng bao nhiêu phần trăm, và không dám đưa cho nhân viên dùng.
Dựng và tính giá
MVPNỗi đau
Đang có hai bảng giá không khớp nhau: bảng trong công cụ của Sky, và bảng trong Odoo. Giá báo cho khách có thể khác giá xuất hoá đơn. Giảm giá thì tuỳ người ngồi làm.Đối chiếu công cụ estimator với /rates trên staging, 17/09/2026
Tác nhân
- Eloa và trợ lý
- Sky · chốt luật giá
- Phillip · giữ Odoo
User story
- Eloa đổi phòng hoặc ngày lặn, giá cập nhật dưới một giây, không phải bấm tính lại.
- Nhân viên thấy giá bán, giá vốn và lãi; đại lý và khách chỉ thấy giá bán.
- Giá luôn từ Odoo. Trong ứng dụng không tồn tại bảng giá thứ hai.
- Sửa tay một dòng thì phải ghi lý do, và dòng đó được đánh dấu trên báo giá.
Hôm nay → Sau khi có
| Hôm nay | Sau khi có | Cải tiến gì |
|---|---|---|
| Nhân chia tay trong Word | Odoo tính, 0,40 giây | Hết sai số học |
| Hai bảng giá, lệch nhau | Một nguồn giá duy nhất | Báo giá bằng đúng hoá đơn |
| Giảm giá tuỳ người ngồi làm | Luật theo loại khách | Đại lý 30%, hướng dẫn viên 15%, giống nhau mọi lần |
Blocker
Ba lỗi hợp đồng API, đã đo được ngày 17/09. Một, thiếu diveFrom và diveTo thì engine lấy khoảng ngày mẫu tháng 10/2026, ngày lặn thật rơi ra ngoài, toàn bộ tiền lặn biến mất mà vẫn trả về 200 và cảnh báo rỗng. Hai, vanA và vanD là số trong công cụ của Sky nhưng spec đòi chuỗi, gửi số là 422. Ba, /rates không liệt kê refresher và rescue dù engine vẫn tính đúng hai khóa đó.
Phiên bản, gửi và theo dõi
MVPNỗi đau
Không có version control. Nhân viên chụp màn hình gửi khách, rồi không ai biết khách đang cầm bản nào. Mỗi lần khách đổi ý là một vòng hỏi đi hỏi lại. Sky từng định bắt đại lý tự điền chỉ vì nản và vì mất quá nhiều thời gian.Sky, họp 07/09/2026 · 00:24:44 và 00:26:07
Tác nhân
- Eloa và trợ lý
- Khách lẻ
- Đại lý · không đăng nhập
User story
- Eloa gửi bản 3, và giá của bản 3 không bao giờ đổi, kể cả khi bảng giá thay đổi sau đó.
- Eloa xem bản 2 khác bản 3 chỗ nào, không phải đọc lại từ đầu.
- Đại lý mở link là thấy giá của mình, không cần tài khoản — chốt ngày 07/09.
- Eloa thấy bản nào đang chờ khách, bản nào đã hết hạn, trên một danh sách.
Hôm nay → Sau khi có
| Hôm nay | Sau khi có | Cải tiến gì |
|---|---|---|
| Chụp màn hình gửi tay | Link có số phiên bản | Biết chắc khách đang cầm bản nào |
| Không rõ báo giá còn hiệu lực không | Hết hạn sau 14 ngày | Không phải giữ giá cũ vô thời hạn |
| Không ai biết đang chờ ai | Danh sách theo trạng thái | Nhìn ra được đường ống bán hàng |
Blocker
Điều khoản đặt cọc đang mâu thuẫn. Công cụ của Sky ghi một đằng, trao đổi trong họp nói một nẻo. Điều khoản này in thẳng lên báo giá gửi khách, nên phải để Eloa và Sky chốt một câu trước khi làm màn hình gửi.
Đặt chỗ một lần vào Odoo
MVPNỗi đau
Chốt giá xong, nhân viên vẫn phải gõ tay toàn bộ vào Odoo để thu tiền. Nhập hai lần thì số lệch, và không ai biết bản nào mới đúng. Chính Sky mô tả đây là cách làm tạm trong khi chờ hệ thống.Sky, họp 07/09/2026 · 00:57:25
Tác nhân
- Eloa và trợ lý
- Phillip · giữ Odoo
- Kế toán
User story
- Eloa bấm Đặt chỗ, và Odoo có folio với đúng con số của báo giá, không lệch một đồng.
- Bấm hai lần, mạng chập chờn, bấm lại — vẫn chỉ ra một folio.
- Không gì ghi vào Odoo ngoài cú bấm đó. Bản nháp nằm ngoài, AI không có đường vào.
- Submit lỗi thì Eloa thấy lý do bằng tiếng người, và bản nháp không mất.
Hôm nay → Sau khi có
| Hôm nay | Sau khi có | Cải tiến gì |
|---|---|---|
| Gõ tay lại toàn bộ vào Odoo | Một cú bấm | Hết nhập hai lần, hết lệch số |
| Bấm lại thì tạo bản trùng | Khóa chống trùng | Không bao giờ có hai folio cho một chuyến |
| Mọi bản nháp đều đổ vào Odoo | Odoo chỉ nhận bản đã chốt | Odoo không phình, đúng lo ngại của Sky |
Blocker
Đây là epic rủi ro nhất, vì chưa ai chạy thử. Tôi đã gọi thật 14 lần vào staging nhưng chưa gọi submit lần nào, vì nó tạo hồ sơ thật trong hệ thống của Phillip — cần một câu đồng ý. Ngoài ra payload submit chưa có danh sách khách, và spec chưa có Idempotency-Key. Ba việc này đều thuộc Phillip.
Bàn giao vận hành
SAU MVPNỗi đau
Bếp, tàu và xe nhận lệnh qua tin nhắn trong group chat. Số suất ăn, số bình, giờ đón đều nằm rải rác trong hội thoại, và có những thứ Odoo không giữ được: ghi chú tự do, yêu cầu ăn kiêng, file đính kèm.Yêu cầu vận hành nêu trong họp 07/09; Sky lo Odoo phình vì đính kèm, họp 15/09
Tác nhân
- Bếp
- Tàu lặn
- Xe đưa đón
- Eloa và trợ lý
User story
- Bếp thấy số suất theo từng ngày và ghi chú ăn kiêng, không phải đọc lại hội thoại.
- Tàu thấy ngày lặn, số bình, ai là thợ lặn và trình độ của từng người.
- Xe thấy giờ đón, số xe, tên khách cho cả chiều đến và chiều đi.
Hôm nay → Sau khi có
| Hôm nay | Sau khi có | Cải tiến gì |
|---|---|---|
| Nhắn tay trong group chat | Bản vận hành sinh từ folio | Không sót khách, không sót bữa |
| File gửi qua chat rồi trôi | Đính kèm có chỗ lưu cố định | Tìm lại được sau nhiều tháng |
Blocker
Chưa chốt quy cách đính kèm. Định dạng nào, dung lượng tối đa bao nhiêu, lưu ở đâu. Sky không muốn để trong Odoo vì sợ phình. Đây là việc tôi nợ Phillip từ buổi 15/09 và chưa trả.
Vai trò và dấu vết
MỎNG, TRONG MVPNỗi đau
Công cụ hiện tại giữ tài khoản viết cứng trong mã nguồn và quyền truy cập cơ sở dữ liệu mở cho mọi người. Đại lý mà mở nhầm màn hình là thấy giá vốn và lãi. Không ai thu hồi được quyền của ai.Ghi nhận trong CLAUDE.md của repo: auth là hằng số ACCOUNTS, RLS mở
Tác nhân
- Eloa và trợ lý
- Đại lý
- Khách lẻ
- Sky
- Phillip
User story
- Đại lý mở link không cần đăng nhập, và không bao giờ thấy giá vốn hay lãi.
- Chỉ nhân viên đã đăng nhập mới sửa được giá hay bấm đặt chỗ.
- Mọi lần sửa tay và mọi lần đặt chỗ đều ghi lại người, giờ và giá trị cũ.
Hôm nay → Sau khi có
| Hôm nay | Sau khi có | Cải tiến gì |
|---|---|---|
| Tài khoản viết cứng trong mã nguồn | Khóa cấp theo vai | Thu hồi được quyền của một người |
| Không biết ai đã sửa gì | Nhật ký thao tác | Truy được khi khách khiếu nại |
Blocker
Spec của Phillip chưa có phần securitySchemes. Mười bốn lần gọi thử của tôi đều là ẩn danh, nên chưa ai kiểm chứng được hành vi khi gọi với tư cách nhân viên. Không có khóa theo vai thì E6 không làm được, và E2 cũng không tách nổi giá vốn.
Gom lạiChín blocker, mỗi cái chặn epic nào và ai gỡ được
| Blocker | Chặn | Ai gỡ | Trạng thái |
|---|---|---|---|
| Đặt chỗ thật chưa từng gọi, vì nó tạo folio thật trên staging | E4 | Sky hoặc Phillip | chờ một câu |
Spec chưa có securitySchemes, chưa ai có khóa theo vai | E6 E2 | Phillip | đã xin 14/09 |
| Payload đặt chỗ chưa có danh sách khách | E4 | Phillip | hứa 14/09 |
Chưa có Idempotency-Key trong spec, bấm hai lần là hai folio | E4 | Phillip | chưa nêu |
Thiếu diveFrom và diveTo thì mất sạch tiền lặn, vẫn trả về 200 | E2 | Phillip | đã đo 17/09 |
vanA và vanD là số trong công cụ Sky nhưng spec đòi chuỗi | E2 | Phillip | đã đo 17/09 |
Hai bảng giá lệch nhau, /rates thiếu refresher và rescue | E2 | Eloa xác nhận giá, Phillip sửa bảng | chưa hẹn |
| Chưa có 30 tin nhắn hỏi giá thật, đã ẩn danh | E1 | Eloa, qua Sky | đã xin 07/09 |
| Chưa chốt quy cách và nơi lưu file đính kèm | E5 | Anthony đề xuất, Sky duyệt | tôi nợ từ 15/09 |
Cần SkyBa câu, trả lời xong là team chạy được
1 · Cho phép gọi đặt chỗ thật một lần trên staging?
Nó tạo một folio thật trong hệ thống của Phillip. Không gọi thì E4 xây mù, và mock server không có phản hồi thật để bám vào.
2 · Vạch cắt đặt sau E4 — đồng ý không?
Bản đầu gồm E1 tới E4 cộng E6 ở mức mỏng. E5 để sau. Nếu Sky muốn bếp và tàu có bản vận hành ngay từ bản đầu thì vạch cắt phải dời, và lịch dài thêm.
3 · Ai là người chốt giá và điều khoản đặt cọc?
Hai bảng giá đang lệch và điều khoản cọc đang mâu thuẫn. Cần một người có tên, không phải một nhóm. Tôi đề xuất Eloa xác nhận con số, Sky ký.
Ranh giớiNgoài scope, và chi phí hạ tầng
Ngoài scope bản đầu
- Dive Passport — cổng thợ lặn tự khai chứng chỉ, y tế, người liên hệ khẩn. Tách ra từ 07/09 theo đề xuất của Jett. Vẫn là yêu cầu bắt buộc của Sky, chỉ là không nằm trong bản này.
- Chatbot trong WhatsApp — sinh báo giá thẳng trong group chat mà không mở công cụ. Sky nêu ngày 07/09, xếp ưu tiên thấp.
- Ký điện tử, thanh toán, CRM — Phillip đang làm riêng, nối sau.
- Sửa báo giá thẳng trong Odoo — chốt ngày 07/09 là không làm trong bản đầu.
Chi phí hạ tầng, giai đoạn xây dựng
- Khoảng 60 tới 90 USD một tháng trong lúc xây: nơi chạy BFF, cơ sở dữ liệu giữ bản nháp, chi phí gọi mô hình AI, tên miền.
- Đây là ước lượng, chưa phải hoá đơn. Phần AI là phần dao động nhất, vì phụ thuộc số tin nhắn thật mỗi ngày — con số mà hiện chưa ai biết.
- Odoo.sh không nằm trong con số này — Casa đã trả rồi, và tôi chưa biết Casa đang dùng gói nào.
Bản PDF: tiếng Việt · tiếng Anh · tài liệu API cho Trung và Nhật