Bỏ qua để đến nội dung

Smart Search Platform - Area Positioning and Page Behavior Blueprint

SharedShared Capabilities3.208 words16 min read
activebyDOL Product Design
  • Chốt một pattern chung để Smart Search thay đổi gợi ý theo areapage mà vẫn giữ trải nghiệm thống nhất toàn nền tảng.
  • Biến định hướng “context-aware search” thành contract có thể triển khai, kiểm thử và mở rộng dài hạn.

1) Pattern chung đề xuất: Area Profile -> Page Context -> Search Composition

Phần tiêu đề “1) Pattern chung đề xuất: Area Profile -> Page Context -> Search Composition”

1.1 Area Profile (định vị theo miền chức năng)

Phần tiêu đề “1.1 Area Profile (định vị theo miền chức năng)”

Mỗi area có một hồ sơ cố định để Search biết nên ưu tiên gì:

  • primaryJobs: nhóm việc chính user muốn làm ngay trong area đó.
  • intentPriorityMap: thứ tự intent P0/P1/P2 của area.
  • lanePolicy: thứ tự lane ở zero-state (Urgency, Momentum, Goal, Insight).
  • placeholderPool: tập placeholder theo ngôn ngữ hành động.
  • quickChipPool: quick chips theo area.
  • aiIntentPolicy: AI intents được ưu tiên/giới hạn trong area.
  • handoffPolicy: route contracts bắt buộc khi đi cross-module.

1.2 Page Context (định vị theo trang cụ thể)

Phần tiêu đề “1.2 Page Context (định vị theo trang cụ thể)”

Trong cùng một area, mỗi page có bias khác nhau:

  • pageContextId (ví dụ course.dashboard, practice.result, vocabulary.dashboard).
  • localSignals (due count, in-progress item, weak skill, required item, streak).
  • entrySource (home, course, practice, notification, deeplink).
  • sessionMode (normal, activation_week1, high_attention).

1.3 Search Composition (cách dựng UI/result từ context)

Phần tiêu đề “1.3 Search Composition (cách dựng UI/result từ context)”

Pipeline chuẩn:

  1. Resolve Area Profile + Page Context.
  2. Build placeholder + zero-state lanes theo policy.
  3. Detect intent (prefix -> phrase -> verb-object -> semantic).
  4. Rank theo baseline + context bias.
  5. Compose Hero Action + Grouped Results + AI lane (khi hợp lệ).
  6. Enforce cap/pivot + fallback + handoff payload.

2) Area Positioning Matrix (đề xuất tối ưu)

Phần tiêu đề “2) Area Positioning Matrix (đề xuất tối ưu)”
AreaPrimary jobsIntent ưu tiênZero-state lane orderHero action mặc địnhAI ưu tiênHandoff trọng yếu
homequyết định vào học nhanh, chọn lane đúngACT_ASSIGNMENT, ACT_SCHEDULE, ACT_VOCAB, ACT_EXERCISEMomentum -> Urgency -> InsightContinue Learning hoặc quick-win theo contextACT_AI_SCHEDULE_PREP, ACT_AI_STATS (nhẹ)Home -> PRA, Home -> Course, Home -> VOC
coursexử lý việc học theo khóa và vận hành lớpACT_PRACTICE, ACT_SCHEDULE, ACT_TEST, ACT_ABSENCE, ACT_RESULTUrgency -> Momentum -> Insightitem due/overdue hoặc next classfull AI set của CM (stats/process/prep/recap/error/plan/explain)Course -> PRA, Course -> VOC, Course -> AI Tutor
learningxác định điểm yếu và bài luyện impact caoACT_EXERCISE, ACT_RESULT, ACT_FEEDBACK, ACT_AI_STATSGoal -> Weakness -> Momentumweakest-impact next exerciseACT_AI_STATS, ACT_AI_ERROR_BANK, ACT_AI_EXPLAIN, ACT_AI_PLAN (high-attention)LM -> PRA với params đầy đủ
practicebắt đầu bài đúng ngữ cảnh, tiếp tục sau resultACT_EXERCISE, ACT_ASSIGNMENT, ACT_DICTATION, ACT_VOCABMomentum -> Goal -> Insightresume attempt hoặc recommended available-nowACT_AI_ERROR_BANK, ACT_AI_EXPLAIN, ACT_AI_TUTORPRA -> VOC payload, PRA -> LM evidence
vocabularyôn từ đến hạn, xử lý từ sai, mở session nhanhACT_VOCAB, ACT_AI_VOCAB_CONNECT, ACT_AI_ERROR_BANKUrgency -> Mistake -> Start SessionÔn ngay (5 phút)ACT_AI_VOCAB_CONNECT, ACT_AI_EXPLAINVOC -> PRA (related exercise), VOC -> AI Tutor
  • Placeholder:
    • Bạn muốn khám phá chương trình hay khóa học phù hợp?
  • Zero-state lanes:
    • Khám phá chương trình.
    • Khám phá khóa học.
    • So sánh lộ trình.
  • Query behavior:
    • query chương trình (ielts, sat, toeic, giao tiếp) -> ưu tiên mở program landing đúng context.
    • query theo nhu cầu (học tối, lịch linh hoạt) -> ưu tiên lane có signal phù hợp.
  • Conversion rule:
    • action cần quyền phải đi auth-first và giữ returnTo.
  • Placeholder:
    • Tìm nhanh skill, phần chấm bài, hoặc lộ trình của chương trình này...
  • Chips:
    • Làm bài vs Kết quả, Điểm đa tiêu chí, Gợi ý từ vựng.
  • Hero rule:
    • query capability (chấm, sửa lỗi, leaderboard) -> mở đúng showcase tab/sub-tab thay vì chỉ cuộn landing.
  • Placeholder:
    • So sánh chương trình theo mục tiêu của bạn (IELTS/SAT/TOEIC)...
  • Chips:
    • IELTS vs TOEIC, SAT vs IELTS, Đề xuất phù hợp.
  • AI behavior:
    • ưu tiên Program Fit Snapshot khi query có pattern so sánh/chọn chương trình.
  • Placeholder:
    • Hôm nay bạn muốn học tiếp gì?
    • Tìm nhanh bài cần làm, lịch học, hoặc ôn từ vựng...
  • Zero-state lanes:
    • Tiếp tục học.
    • Việc cần xử lý 72h.
    • Gợi ý cá nhân hóa.
  • Query behavior:
    • query ngắn: ưu tiên completion dạng action (Làm bài tập, Ôn từ).
    • query rõ nghĩa: ưu tiên route đến module phù hợp + return path.
  • AI behavior:
    • AI không lấn lane action; chỉ lên cao khi user gọi từ khóa AI rõ ràng.
  • Placeholder:
    • Bắt đầu bài đầu tiên trong 5-10 phút...
  • Chips:
    • Bài đầu tiên, Bài thứ hai (48h), Giữ nhịp 3 ngày.
  • Ranking bias:
    • boost quick-win in-program items.
  • Placeholder:
    • Cần phục hồi nhịp học? Bắt đầu từ bài required hôm nay...
  • Chips:
    • Bước ưu tiên hiện tại, Kế hoạch học, Hỏi AI Tutor.
  • Placeholder:
    • Xử lý việc cần làm hôm nay, tiếp tục bài dở hoặc chuẩn bị lớp tới...
  • Zero-state lanes:
    • Due today/overdue.
    • In progress.
    • Next class prep.
  • Hero rule:
    • nếu có due/overdue -> hero là task gần hạn nhất.
    • nếu không -> hero là next class prep.
  • Ranking bias:
    • boost item required=truedue < 24h.
    • pin cảnh báo khẩn (due < 6h) ở hero slot nếu có.
  • Placeholder:
    • Xem lịch học sắp tới, tài liệu cần xem trước và lịch bù...
  • Chips:
    • Buổi học kế tiếp, Tài liệu pre-read, Đặt lớp bù.
  • Hero rule:
    • query chứa thời gian cụ thể (mai, thứ 3, 19:30) -> ưu tiên session gần nhất khớp thời điểm.
  • AI lane:
    • ưu tiên ACT_AI_SCHEDULE_PREP với checklist hành động.
  • Placeholder:
    • Tìm bài tập theo hạn nộp, trạng thái và kỹ năng...
  • Chips:
    • Bài cần nộp hôm nay, Bài quá hạn, Chỉ bài bắt buộc.
  • Ranking bias:
    • required + overdue > required + due soon > in_progress > optional.
  • Action rule:
    • query chứa quá hạn hoặc hôm nay -> auto-apply filter tương ứng.
  • Placeholder:
    • Tìm bài test online/mock/final và mở đúng bài cần làm...
  • Chips:
    • Thi thử sắp tới, Bài test chưa làm, Xem kết quả gần nhất.
  • Hero rule:
    • nếu có test chưa làm và còn hạn -> ưu tiên ACT_TEST ở depth STEP.
  • Placeholder:
    • Mở nhanh recap, slide, feedback hoặc tab chi tiết trong khóa...
  • Chips:
    • Recap buổi gần nhất, Slide buổi tới, Feedback giáo viên.
  • Route rule:
    • query tab-specific (syllabus, recap, attendance, vocabulary) -> deep-link đúng tab thay vì mở overview.
  • Placeholder:
    • Báo nghỉ, đặt lịch bù, xem điểm danh và thao tác lớp học...
  • Chips:
    • Báo nghỉ buổi tới, Đặt lớp 1-1, Xem điểm danh.
  • Hero rule:
    • ưu tiên EXEC intents (ACT_ABSENCE, ACT_BOOKING) khi query rõ thao tác.
  • Guardrail:
    • mọi action EXEC bắt buộc có confirm trước submit.
  • Placeholder:
    • AI tổng hợp tiến độ, kế hoạch gỡ bài và chuẩn bị lớp học...
  • Chips:
    • Thống kê quá trình (AI), Kế hoạch gỡ bài, Checklist trước lớp.
  • Hero rule:
    • query thuộc cụm AI (thống kê, gỡ bài, vì sao tụt) -> ưu tiên widget AI thay vì list page.
  • Placeholder:
    • Khám phá cách học theo khóa và chọn hướng phù hợp...
  • Chips:
    • Xem lộ trình khóa, Tư vấn khóa phù hợp, So sánh với tự học.
  • Hero rule:
    • query về đăng ký, học theo khóa, tư vấn -> boost conversion actions.
  • Placeholder:
    • Tìm khóa theo mục tiêu, lịch học, hoặc hình thức học...
  • Chips:
    • Khóa mới bắt đầu, Lịch buổi tối, Khóa online.
  • Ranking bias:
    • ưu tiên course cards có metadata khớp theo mục tiêu/lịch/hình thức.
    • thiếu metadata -> fallback xem chi tiết + tư vấn.
  • Placeholder:
    • Mở nhanh thông tin khóa, đăng nhập để xem sâu, hoặc đặt tư vấn...
  • Chips:
    • Đăng nhập xem đầy đủ, Đặt tư vấn, Khóa tương tự.
  • Conversion rule:
    • query action rõ (đăng ký, xem chi tiết, tư vấn) -> trả EXEC/STEP tương ứng với returnTo.
  • Placeholder:
    • Tìm điểm yếu cần luyện, khoảng cách mục tiêu và bài nên làm tiếp...
  • Zero-state lanes:
    • Weakest analysis unit.
    • Impact cao 30 ngày hoạt động.
    • Next best exercise.
  • Ranking bias:
    • tăng điểm cho item có confidence cao + comparable-goal hợp lệ.
    • nếu sessionMode=high_attention thì boost recovery_critical.
  • Hero rule:
    • mặc định: Làm bài tiếp theo theo weakest-impact.
    • nếu high_attention=true: hero chuyển sang Bắt đầu kế hoạch phục hồi 7 ngày.
  • Placeholder:
    • Lọc theo skill/section/domain để thấy nhóm cần luyện gấp...
  • Chips:
    • Cần luyện gấp, Nên luyện thêm, Chỉ nhóm confidence cao.
  • Ranking bias:
    • ưu tiên impact_tier=high trong 30 ngày hoạt động.
    • nếu goal_comparison_mode=not_comparable thì hạ ưu tiên numeric-gap card và tăng trend card.
  • Placeholder:
    • Mở nhanh mục tiêu, sửa target và lịch thi theo chương trình...
  • Chips:
    • Đổi mục tiêu, Sửa lịch thi, Xem tiến độ theo goal.
  • Action rule:
    • query chứa mục tiêu, target, lịch thi -> mở goal editor modal in-place.
  • Placeholder:
    • Tìm bài đã lưu theo trạng thái, kỹ năng hoặc tên bài...
  • Chips:
    • Bài đang làm, Bài đã làm, Áp dụng bộ lọc đã lưu.
  • Action rule:
    • giữ contract filter theo status/skill/submittedAt, không reset context khi back.
  • Placeholder:
    • Xem lịch sử tuần/tháng/năm và mở lại bài theo ngữ cảnh...
  • Chips:
    • Lịch sử 7 ngày, Heatmap năm, Mở kết quả gần nhất.
  • Route rule:
    • query chứa tuần/tháng/năm -> preselect đúng time tab khi mở history.
  • Placeholder:
    • Bạn đang cần phục hồi phong độ, bắt đầu kế hoạch học phù hợp ngay...
  • Chips:
    • Kế hoạch học, Bước ưu tiên hiện tại, Bước học thêm.
  • AI lane:
    • cho phép ACT_AI_PLANACT_AI_TUTOR lên top slot.
  • Guardrail:
    • plan ở trạng thái guidance-only, không block flow học bình thường.
  • Placeholder:
    • Tìm bài theo dạng, kỹ năng, hoặc mục tiêu...
  • Zero-state lanes:
    • Resume attempt.
    • Recommended available-now.
    • Quick warm-up.
  • Route rule:
    • mọi STEP phải mang đủ source_context/program/exercise_id/returnTo.
  • Placeholder:
    • Làm tiếp bài tương tự hoặc ôn lỗi vừa sai...
  • Chips:
    • Bài cùng dạng, Fix mistakes, Gửi từ sai sang sổ từ.
  • AI lane:
    • ưu tiên Mistake Clinic + Concept Clarifier.
  • Placeholder:
    • Ôn từ cần tưới hôm nay, mở list đã lưu hoặc bắt đầu phiên 5 phút...
  • Zero-state lanes:
    • Due words today.
    • Mistake-based list.
    • Quick open.
  • Hero rule:
    • nếu due_words_today > 0 -> Ôn ngay (5 phút).
    • nếu due_words_today = 0 -> hero là Mở list gần nhất.
  • Placeholder:
    • Tìm nhanh danh sách từ theo tên/chủ đề và mở ngay trong tab này...
  • Chips:
    • List mới lưu gần đây, List từ bài hay sai, Tạo list mới.
  • Ranking bias:
    • ưu tiên exact match tên list do user tạo hoặc đã lưu.
    • nếu không exact match, fallback theo chủ đề/tag list.
  • Action rule:
    • mở ở subtab hiện tại, giữ returnTo=vocabulary.list_tab.
  • Placeholder:
    • Mở vườn cây, lọc cây cần tưới và ôn ngay từ đây...
  • Chips:
    • Cây cần tưới, Cây sắp héo, Thăm vườn của tôi.
  • Hero rule:
    • query chứa vườn cây hoặc cây cần tưới -> ưu tiên action Mở popup vườn cây.
  • Placeholder:
    • Xem thống kê tuần/tháng và hiệu suất học từ vựng của bạn...
  • Chips:
    • Báo cáo tuần, Xu hướng tháng, Chủ đề đang tập trung.
  • AI lane:
    • ACT_AI_STATS là primary intent trong page này.
    • ưu tiên widget có CTA hành động (Ôn theo chủ đề yếu, Điều chỉnh mục tiêu tuần).
  • Placeholder:
    • Tìm từ trong phiên này hoặc mở nhanh mục tiêu tuần...
  • Chips:
    • Từ sai gần đây, Đổi mục tiêu tuần, Hỏi AI giải thích.
  • Action rule:
    • query chứa mục tiêu tuần -> mở popup goal-setting in-place, không rời session flow.
  • Placeholder:
    • Thiết lập nhắc ôn và giờ học từ vựng phù hợp lịch của bạn...
  • Chips:
    • Nhắc lúc 20:00, Bật DND, Xem nhắc gần nhất.
  • Hero rule:
    • query có giờ cụ thể (7h, 20:30) -> ưu tiên preset reminder action.
AI IntentHomeCourseLearningPracticeVocabulary
ACT_AI_STATSsecondaryprimaryprimarysecondarysecondary
ACT_AI_PRACTICE_PROCESSsecondaryprimarysecondarysecondaryoff
ACT_AI_SCHEDULE_PREPprimaryprimaryoffoffoff
ACT_AI_SESSION_SUMMARYsecondaryprimarysecondaryoffoff
ACT_AI_ERROR_BANKoffprimaryprimaryprimarysecondary
ACT_AI_PLANsecondaryprimarysecondarysecondaryoff
ACT_AI_EXPLAINoffprimaryprimaryprimaryprimary
ACT_AI_VOCAB_CONNECTsecondarysecondaryoffsecondaryprimary
ACT_AI_TUTORon-demandon-demandon-demandon-demandon-demand

Rule bắt buộc:

  • ACT_AI_TUTOR không auto-open ở mọi area.
  • nếu area policy = off, intent vẫn có thể xuất hiện qua disambiguation nhưng không chiếm hero slot.
  • với learning, ACT_AI_PLAN chỉ lên hero khi high_attention=true hoặc query gọi plan/recovery rõ ràng.

5) Placeholder Composition Rules (để đồng nhất UX)

Phần tiêu đề “5) Placeholder Composition Rules (để đồng nhất UX)”
  • Placeholder luôn theo mẫu động từ + mục tiêu gần.
  • Mỗi page có 1 primary placeholder + 1 fallback placeholder.
  • Rotating placeholder chỉ xoay trong pool của pageContextId, không dùng pool toàn cục.
  • Quick chips tối đa 3, luôn chứa ít nhất 1 chip từ local signals.
  • Nếu không có dữ liệu local, fallback sang chip baseline của area.

Công thức khuyến nghị:

  • finalScore = intentPriority + urgencyBoost + momentumBoost + pageContextBoost + recencyBoost + confidenceBoost + entitlementBoost

Context boosts:

  • pageContextBoost:
    • +3 nếu result đúng page hiện tại.
    • +2 nếu cùng area nhưng khác page.
    • +1 nếu cross-area nhưng có continuity signal.
  • entitlementBoost:
    • +2 cho available-now.
    • -2 cho locked item (trừ khi query có ý định unlock/upgrade).

Caps:

  • Prefix completions <= 3.
  • Group results <= 3/group.
  • Low-confidence items <= 1 nếu inventory đủ.
  • Umbrella query exception:
    • nếu query match bundle AI hoặc làm bài/làm bài tập, bỏ cap prefix <=3.
    • render dạng feature catalog theo group để user thấy đầy đủ tính năng liên quan.

7) Completion plan để triển khai ngay (không chia v1/v2)

Phần tiêu đề “7) Completion plan để triển khai ngay (không chia v1/v2)”
  1. Tạo AreaProfileRegistry (SSOT) cho 5 area.
  2. Tạo PageContextResolver để map route hiện tại -> pageContextId + local signals.
  3. Tạo PlaceholderComposerQuickChipComposer dùng registry + signals.
  4. Gắn IntentRouter với aiIntentPolicy (enable/priority/off).
  5. Chuẩn hóa ResultComposer theo Hero + Group + AI lane + caps.
  6. Thêm HandoffGuard cho PRA/VOC route contracts.
  7. Bật telemetry theo page context:
  • search_placeholder_rendered,
  • search_chip_clicked,
  • search_hero_clicked,
  • search_ai_widget_opened,
  • search_cross_module_handoff_success.
  1. QA theo scenario matrix bắt buộc cho 5 area x 2 trạng thái dữ liệu (has_data, no_data).
  • Intent mới hoặc placeholder mới phải đi qua AreaProfileRegistry, không patch cục bộ ở module.
  • Mỗi module chỉ được override copychip labels; không override ranking core nếu chưa có review.
  • Mọi thay đổi cross-area phải cập nhật tài liệu này và SSP_Master_Product_Spec.md cùng lúc.
  • 2026-03-18: Bước ưu tiên hiện tại, Kế hoạch học, Hỏi AI Tutor.
  • 2026-02-28: title: “Smart Search Platform - Area Positioning and Page Behavior Blueprint”