Parent (Marlin) — JTBD → User Stories → Features
Discovery từ góc nhìn bố mẹ. Chuỗi: JTBD (việc bố mẹ đang cố làm) → User Story → Feature (kèm trạng thái ✅ live / 🔵 đang build / ⏳ backlog và REQ tương ứng). Nguyên tắc: mỗi feature phải trace ngược về một JTBD thật của bố mẹ.
Câu lõi: bố mẹ không cần thêm một bảng điểm. Họ cần biết con đang ở đâu, vì sao, và tuần này mình nên làm gì (và không nên làm gì).
Đọc cột "Trạng thái" cho đúng: nó nói về bề mặt dành cho phụ huynh (màn hình trong marlins), không phải trạng thái của REQ. Trạng thái chính thức của mỗi REQ nằm ở PRD-001 §5 — hai chỗ lệch nhau thì PRD-001 thắng. Ví dụ REQ-PAR-06 (depth trade-off) và REQ-VIS-05 (trajectory) là ✔ ở PRD vì engine đã có, nhưng ở đây vẫn ⏳ vì chưa có màn cho phụ huynh.
JTBD-P1 — "Hiểu con tôi đang thực sự ở đâu"
Bố mẹ chỉ thấy điểm số, phải tự đoán. Họ muốn một bức tranh thật, có bằng chứng.
| User Story | Feature | Trạng thái | REQ |
|---|---|---|---|
| Là Marlin, tôi muốn xem readiness của con so với mục tiêu, để biết con còn cách đích bao xa | Child report: readiness bar + điểm ước tính theo blueprint | ✅ live | REQ-PAR-03, REQ-PAR-09 |
| Là Marlin, tôi muốn xem toàn cảnh môn→area→kỹ năng của con với màu trạng thái, để hiểu mảng nào vững/hổng | Report tab "Toàn cảnh" (ring + node grid) | ✅ live | REQ-VIS-08, REQ-PAR-09 |
| Là Marlin, tôi muốn phân biệt "con chưa học" với "hệ thống chưa đủ bằng chứng", để không hiểu lầm | Node state: not_assessed vs unknown vs hong | ✅ live | REQ-VIS-04 |
| Là Marlin, tôi muốn xem con đã học bao lâu, xong những gì | Report tab "Tiến độ" (thời gian, ngày học, kỹ năng vững) | ✅ live | REQ-VIS-07 |
| Là Marlin, tôi muốn ghi lại định kỳ tôi tin con đang thế nào theo từng môn, để thấy niềm tin của mình lệch bao nhiêu so với dữ liệu | Beliefs theo môn (#/child/{id}/beliefs) — đặt cạnh ước tính của hệ; không vào Evidence Registry | ✅ live | REQ-PAR-05 (SRC-051) |
JTBD-P2 — "Tìm ra vì sao con đang gặp khó"
Bố mẹ không biết con thiếu kiến thức / kỹ năng / động lực / thời gian / sai cách.
| User Story | Feature | Trạng thái | REQ |
|---|---|---|---|
| Là Marlin, tôi muốn biết gap gốc đang chặn nhiều phần sau (không phải "yếu toàn bộ môn") | Cockpit gaps xếp hạng critical + prerequisite chain | ✅ live | REQ-PAR-01, REQ-INT-06 |
| Là Marlin, tôi muốn ghi quan sát (con mất tập trung, xem điện thoại…) để hệ thống hiểu nguyên nhân ngoài điểm số | Parent observations (category-tagged → evidence) | ✅ live | REQ-PAR-05, REQ-PAR-10 |
| Là Marlin, tôi muốn phân biệt nguyên nhân: kiến thức vs động lực vs thời gian vs kỹ thuật | Phân loại observation + Parent Model tổng hợp | 🔵 một phần | REQ-PAR-05 |
JTBD-P3 — "Cho tôi biết tuần này nên làm gì"
JTBD mạnh nhất. Bố mẹ muốn hành động cụ thể, không phải report.
| User Story | Feature | Trạng thái | REQ |
|---|---|---|---|
| Là Marlin, tôi muốn nhận khuyến nghị "tuần này nên làm gì" cụ thể | Parent recommendation: headline + support_actions | ✅ live | REQ-PAR-02, WF-12 |
| Là Marlin, tôi muốn biết cả "không nên làm gì" để tránh sai lầm tốn kém | dont_do + "Chưa cần đăng ký thêm lớp" | ✅ live | REQ-PAR-04, REQ-PAR-10 |
| Là Marlin, tôi muốn đặt mục tiêu cho từng con (đỗ trường chuyên nào, lớp chuyên gì, khi nào — hoặc chỉ "thi đỗ tốt nghiệp") | Goals cho từng con (#/child/{id}/goals) → Goal Model | ✅ live | REQ-INT-16 (SRC-050) |
| Là Marlin, tôi muốn xem đúng kế hoạch học mà con thấy, và khai thêm thông tin để nó tính lại | Learning Plan chung (#/child/{id}/plan), không có bản riêng cho phụ huynh | ✅ live | REQ-PAR-15 |
| Là Marlin, tôi muốn nhắc nhở/nhiệm vụ tuần theo lịch (vd 3 ngày xử lý prerequisite X) | Weekly plan cho parent (nhiệm vụ có hạn, đánh dấu hoàn thành) | 🔵 đang code | REQ-PAR-11 |
JTBD-P4 — "Giúp tôi không làm sai (intervention error)"
Phản xạ "điểm thấp → cho học thêm" thường sai nguyên nhân.
| User Story | Feature | Trạng thái | REQ |
|---|---|---|---|
| Là Marlin, tôi muốn được cảnh báo khi định can thiệp sai (thêm lớp khi nguyên nhân là gap nền tảng) | Anti-intervention-error trong parent recommendation | ✅ live | REQ-PAR-04 |
| Là Marlin, tôi muốn thấy trade-off khi muốn "học kỹ hơn" (thêm 4-6h lên L4 nhưng Skill B ưu tiên hơn) | Depth trade-off explanation cho parent | ⏳ backlog | REQ-PAR-06 |
| Là Marlin, tôi muốn hệ thống học cách tôi hay can thiệp (Parent Model) để cá nhân hóa lời khuyên | Parent Model: intervention_style (evidence, không label) | ⏳ backlog | REQ-PAR-08 |
JTBD-P5 — "Giúp cả gia đình phối hợp"
Bố, mẹ, mentor, con nhìn cùng một reality.
| User Story | Feature | Trạng thái | REQ |
|---|---|---|---|
| Là Marlin, tôi muốn con và mentor cùng thấy evidence tôi ghi, để cả nhà đồng bộ | Observation visibility learner_parent + mentor xem | ✅ live (một phần) | REQ-PAR-07 |
| Là Marlin, tôi muốn comment/hỏi mentor ngay trên một recommendation của con | Interaction/comment trên object (target_type) | 🔵 backend sẵn (SDD-005), UI ⏳ | REQ-INX-01, REQ-PAR-07 |
| Là Marlin, tôi muốn mời cả bố (hoặc ông bà) cùng theo dõi con | Invite guardian vào family: card "Bố mẹ & người giám hộ" trên trang Gia đình, link mời qua /join?code=, người nhận vào bằng Google là thấy mọi con (SRC-651) | ✅ live | REQ-ACC-03 |
JTBD-P6 — "Cho tôi hồ sơ xuyên suốt của con"
Đổi trường/trung tâm là mất context.
| User Story | Feature | Trạng thái | REQ |
|---|---|---|---|
| Là Marlin, tôi muốn một hồ sơ duy nhất của con xuyên các school | Canonical learner_id + report đa môn/đa school | ✅ live | REQ-LRN-06, REQ-ACC-04 |
| Là Marlin, tôi muốn xem con còn cách mục tiêu bao xa theo thời gian (past→current→expected) | Trajectory view | ⏳ backlog | REQ-VIS-05 |
Feature mới rút ra (đưa lên PRD)
| REQ mới | Feature | JTBD | Ưu tiên |
|---|---|---|---|
| REQ-PAR-11 | Weekly plan cho Marlin: khuyến nghị thành 2-3 nhiệm vụ có hạn trong tuần, đánh dấu hoàn thành | JTBD-P3 | M |
| REQ-PAR-12 | Parent digest: tóm tắt định kỳ (tuần) qua notification/email — thay đổi đáng chú ý + 1 việc nên làm | JTBD-P1/P3 | S |
Trạng thái tổng (2026-08-15)
- ✅ Đã live: hiểu con (report/overview/progress), tìm gap, khuyến nghị tuần + anti-intervention-error, ghi quan sát, beliefs theo môn, goals cho từng con, Learning Plan chung với con, portrait + lộ trình, hồ sơ xuyên suốt.
- 🔵 Đang/nửa: weekly plan có nhiệm vụ đánh dấu hoàn thành (REQ-PAR-11), shared understanding (comment UI), Parent Model tổng hợp.
- ⏳ Backlog ưu tiên: màn depth trade-off cho phụ huynh (REQ-PAR-06), Parent Model intervention_style (REQ-PAR-08), trajectory view cho phụ huynh (REQ-VIS-05), parent digest (REQ-PAR-12). Lý do giữ chưa làm + điều kiện mở: PRD-001 §7.
Trace
Xếp hạng sáu JTBD này theo tần suất dùng, và site-map ba tầng dựng trên đó: marlins-ia (SRC-572).
Mọi US ở trên trace về REQ-PAR-* / REQ-VIS-* / REQ-INX-* trong PRD-001. Feature mới REQ-PAR-11/12 được thêm vào PRD nhóm REQ-PAR.