Family Model · Relationship Model · Commitment Model
Chỉ đạo SRC-587: "cần có một số Model (kiểu như Family Model) để liên tục nâng cấp và update thông tin về family và những gì liên quan".
Trang này định nghĩa ba model đó theo đúng khuôn đã dùng cho Learner Model: trạng thái + nguồn + độ tin cậy + thời điểm, cập nhật liên tục chứ không phải một biểu mẫu ai đó điền một lần.
1. Vì sao là Model chứ không phải cột trong bảng
family_contacts (SDD-023 §3) đã giữ được "số điện thoại của mẹ là gì". Nhưng nó không giữ được:
- "Nhà này đang lo nhất chuyện gì?" — câu trả lời đổi theo tháng.
- "Ta biết điều đó từ đâu?" — mẹ tự nói, hay mentor suy ra từ ba lần hỏi cùng một câu?
- "Điều đó còn đúng không?" — một nỗi lo ghi từ tháng Tư có thể đã hết từ lâu.
Ba câu này đều là câu về niềm tin có thời hạn, không phải câu về dữ liệu. Đó là định nghĩa của một Model ở Nemo12.
2. Ba tầng sự thật
Mọi mẩu thông tin trong Family Model mang một trong ba nhãn, và nhãn không bao giờ bị mất khi hiển thị:
| Tag tầng | Nghĩa | Ví dụ |
|---|---|---|
opinion | gia đình tự nói | "Tôi muốn cháu thi Ams" |
fact | Dolphin quan sát thấy | mẹ hỏi về học phí ba lần trong hai tuần |
hypothesis | suy ra, chưa chắc | 6 tuần không mở tin nhắn nào |
Vì sao phải tách: một câu suy luận trình bày như lời gia đình nói là bịa lời người khác. Nếu Dolphin gọi điện và mở đầu bằng "em nghe nói anh chị đang lo về học phí" trong khi thật ra đó là máy đoán, thì cuộc gọi đó hỏng ngay câu đầu.
Đây cũng chính là nguyên tắc đã áp khi bố mẹ và con khai khác nhau (WF-19 §6): giữ cả hai kèm tác giả, không chọn hộ.
3. Family Model — dựng từ note đã gắn tag
Từ 2026-08-26, Family Model không có bảng riêng và không có cột riêng. Nó là một view dẫn xuất gom family_notes theo tag (SDD-024 §2, family-notes-review §10c).
FamilyModel(family_id) = gom family_notes đang active của nhà đó, nhóm theo tag:
goals ← note gắn `goal`
concerns ← note gắn `concern` (bao gồm cả pains — chủ dự án chốt gộp)
insights ← note gắn `insight/dynamics` · `insight/environment` · `insight/motivation`
jtbd ← note gắn `jtbd`
hypotheses ← note gắn `hypothesis`; kết luận là một reply vào chính nó
untagged ← note CHƯA có tag mục: chính là hộp vào
mỗi mẩu mang sẵn: tầng (`fact`/`opinion`/`hypothesis`) · tác giả · ngày · buổi gặp sinh ra nóBa tính chất đi thẳng từ cách dựng này:
- Không sửa tay được. Không có
UPDATEnào lên hồ sơ sống. Muốn đổi thì thêm một note. - Mọi câu truy ngược được về
note_idvàvisit_id. - Thông tin cũ tự mờ đi theo
created_atcủa note gần nhất cùng chủ đề, không cần cộtlast_seen_at— vì tầng note đã giữ sẵn thời điểm.
Vì sao bỏ confidence dạng số
Bản trước gán 0.9 / 0.7 / 0.4 cho ba tầng. Con số đó không đến từ phép đo nào — nó chỉ là ba tầng viết lại bằng số, và một số thập phân gợi ý một độ chính xác không có thật. Nay giữ đúng ba tầng, đọc thẳng ra chữ.
4. Relationship Model
Family Model nói "ta biết gì". Relationship Model nói "quan hệ đang thế nào".
RelationshipModel(family_id) = {
health: ấm | bình thường | đang nguội | im lặng
direction: tốt lên | đi ngang | xấu đi
primary_contact: ai là người thực sự nói chuyện với ta
responsiveness: thời gian phản hồi trung bình
open_loops: số tương tác ta chưa trả lời
last_meaningful: lần trao đổi có nội dung gần nhất
}health không phải điểm số — nó là bốn mức có tên, và mỗi mức luôn đi kèm câu giải thích vì sao. Một con số 63/100 gợi ý một độ chính xác không có thật, và nó dẫn thẳng tới việc xếp hạng gia đình mà PRD-003 §8 đã từ chối.
primary_contact đáng có mặt vì nó hay lệch với role: hồ sơ ghi bố là người liên hệ chính, còn thực tế mọi tin nhắn đều là mẹ trả lời.
5. Commitment Model
CommitmentModel(family_id) = {
open: [{ commitment_id, tóm_tắt, owner, due_at, rủi_ro }]
overdue: [...]
at_risk: [...] -- sắp tới hạn mà chưa có action nào nhúc nhích
closed_without_evidence: [...] -- đã đóng nhưng thiếu bằng chứng
load_by_owner: { user_id: số_việc_đang_mở }
}closed_without_evidence cố ý là một mục nổi bật chứ không phải một bộ lọc ẩn: đó là chỗ hệ thống tự thú nhận nó đang bị dùng sai. Không bày ra thì luật "phải có bằng chứng mới đóng" chỉ là một dòng trong tài liệu.
6. Cái model này KHÔNG làm
| Không | Vì sao |
|---|---|
| Sinh một điểm tổng cho gia đình | Một số tổng che mất thứ nó tổng hợp; xem Q-137 |
| Tự gửi tin cho phụ huynh dựa trên tín hiệu | Model nói cho Dolphin biết, Dolphin quyết định nói gì với gia đình |
| Suy luận về hoàn cảnh kinh tế, sức khoẻ, hôn nhân | Ngoài phạm vi, và là loại suy luận sai thì gây hại thật |
| Dùng dữ liệu học tập của trẻ để chấm phụ huynh | Trộn hai chủ thể; kết quả học của con không phải thước đo về bố mẹ |
Trace
REQ-DOR-04 → §3 · REQ-DOR-06 → §3-4 · PRD-003 §3 · SDD-024 · SDD-025.