Contract Registry (DOL English V2)
DomainsDOL EnglishProduct2.862 words14 min read
Updated: 2026-03-27 Status: active Owner: Product Design
Purpose
Phần tiêu đề “Purpose”- Tạo một nguồn hợp nhất cho các contract key quan trọng nhất.
- Giảm lệch logic giữa Product Discovery state/decision và UX docs.
- Giúp kiểm tra DoD nhanh khi discovery tiếp tục mở rộng.
Active Contracts
Phần tiêu đề “Active Contracts”Note:
- Một số cột
Impacted UX Docsvẫn giữ file archive nhưHOME_ENG_Home_Post_Login.mdđể bảo toàn trace lịch sử extraction.- Current shell truth phải đọc ở
ENG_Navigation_00_Overview.md,ENG_Navigation_Shell_Contracts.md, vàHOME_ENG_Home_Information_Architecture.md.
| Key | Current Value | Scope | Source Decisions | Impacted UX Docs |
|---|---|---|---|---|
goal_required_policy | none | cross-flow | DEC-0040 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md |
goal_nudge_mode | contextual_only | onboarding/home | DEC-0041 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md |
goal_nudge_daily_cap | 1_per_account | onboarding/home/profile | DEC-0041 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md |
goal_profile_nudge_global_daily_cap | 1_per_account | onboarding/home/profile | DEC-0049 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md |
goal_nudge_soft_snooze_trigger | dismiss_or_ignore_gte_3_in_14d | onboarding/home/profile | DEC-0074 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md, ACC_Logic.md |
goal_nudge_soft_snooze_days | 14 | onboarding/home/profile | DEC-0074 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md |
goal_nudge_soft_snooze_popup_policy | suppress_popup_inline_only | onboarding/home/profile | DEC-0074 | REG_Onboarding_Flow_Documentation.md, HOME_ENG_Home_Post_Login.md |
goal_depth_scope | program_assessment_form_skill | onboarding/metrics/recommendation | DEC-0072 | REG_Onboarding_Flow_Documentation.md, LM_Metrics.md, PRA_Result_Impact_Contracts.md |
goal_versioning_policy | append_only | onboarding/metrics | DEC-0072 | REG_Onboarding_Flow_Documentation.md, LM_Metrics.md |
goal_gap_confidence_gate | comparable_attempts_gte_3_in_30_active_days | metrics/home/result | DEC-0072 | LM_Metrics.md, HOME_ENG_Home_Post_Login.md, PRA_Result_Impact_Contracts.md |
assessment_form_contract | canonical_assessment_form_id_required | onboarding/metrics/recommendation | DEC-0073 | REG_Onboarding_Flow_Documentation.md, LM_Metrics.md, PRA_Result_Impact_Contracts.md |
recommendation_priority | habit_first | result/home/practice management | DEC-0042 | PRA_Result_Flow.md, HOME_ENG_Home_Post_Login.md |
recommendation_set_size | dynamic_3_7_default_5 | result/home/practice management | DEC-0042 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_ignore_streak_threshold | 3 | result/home/practice management | DEC-0045 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_freshness_min_per_set | 1_when_inventory_allows | result/home | DEC-0075 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_topic_repetition_cap_per_set | 2 | result/home | DEC-0075 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Impact_Contracts.md |
recommendation_refresh_without_action_threshold | 2 | result/home | DEC-0075 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, HOME_ENG_Home_Post_Login.md |
reactivation_seed_mode | one_time_first_set_in_session | notification->recommendation handoff | DEC-0076 | SOC_Notifications_Logic.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Flow.md, HOME_ENG_Home_Post_Login.md |
reactivation_seed_quick_win_min | 1_when_inventory_allows | notification->recommendation handoff | DEC-0076 | PRA_Result_Flow.md, PRA_Result_Impact_Contracts.md, HOME_ENG_Home_Post_Login.md |
reactivation_seed_expire_on | first_attempt_start_or_session_end | notification->recommendation handoff | DEC-0076 | PRA_Entry_Routing_Contracts.md, PRA_Result_Flow.md |
reactivation_intent_stage | `lost_streak | inactive_1w | inactive_1m | inactive_1y |
recommendation_available_now_priority | true | result/home composer | DEC-0077 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_locked_teaser_cap_per_set | 1_when_inventory_sufficient | result/home composer | DEC-0077 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Impact_Contracts.md |
recommendation_locked_teaser_position | end_of_set | result/home composer | DEC-0077 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Impact_Contracts.md |
recommendation_locked_teaser_label | lock_reason_plus_minimum_eligible_plan | result/home composer | DEC-0077 | PRA_Result_Flow.md, PRA_Result_Impact_Contracts.md, PAY_Recommendations.md |
recommendation_non_coercive_upgrade | no_forced_upgrade_from_recommendation_browse | recommendation/paywall boundary | DEC-0077 | PRA_Result_Flow.md, PAY_Recommendations.md |
recommendation_primary_reason_label_policy | exactly_one_primary_reason_per_item | result/home composer | DEC-0078 | PRA_Result_Flow.md, PRA_Result_Impact_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_primary_reason_priority_order | recovery_critical>goal_aligned>habit_continuity>freshness>trending_fallback | result/home composer | DEC-0078 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_confidence_levels | `high | medium | low` | result/home composer |
recommendation_low_confidence_cap_per_set | 1_when_inventory_allows | result/home composer | DEC-0078 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Impact_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_low_confidence_position | near_end | result/home composer | DEC-0078 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Impact_Contracts.md, HOME_ENG_Home_Post_Login.md |
recommendation_seed_confidence_preference | high_or_medium_preferred | reminder_handoff/rescue | DEC-0078 | PRA_Result_Flow.md, PRA_Entry_Routing_Contracts.md, PRA_Result_Impact_Contracts.md |
activation_window_days | 7 | post_signup/home | DEC-0079 | HOME_ENG_Home_Post_Login.md, REG_Onboarding_Flow_Documentation.md, LM_Metrics.md |
activation_surface_mode | home_inline_card_only_non_blocking | post_signup/home | DEC-0079 | HOME_ENG_Home_Post_Login.md, REG_Onboarding_Flow_Documentation.md |
activation_ladder_steps | first_attempt->second_attempt_within_48h->3_active_days_in_week1 | post_signup/home | DEC-0079 | HOME_ENG_Home_Post_Login.md, LM_Metrics.md |
activation_completion_or_expiry | complete_step3_or_end_of_day7 | post_signup/home | DEC-0079 | HOME_ENG_Home_Post_Login.md, LM_Metrics.md |
activation_course_urgent_override | course_cta_first_when_next_class_lte48h_or_due_item_lte72h | post_signup/home | DEC-0079 | HOME_ENG_Home_Post_Login.md |
activation_kpi_mode | leading_indicator_only_not_primary_kpi_replacement | metrics/foundation | DEC-0079 | LM_Metrics.md |
activation_program_resolution_order | goal_program->last_explicit_program_intent_14d->trending_easy_available_program | post_signup/home | DEC-0080 | HOME_ENG_Home_Post_Login.md, PRA_Entry_Routing_Contracts.md |
activation_starter_primary_duration_target | 5_10_minutes | post_signup/home | DEC-0080 | HOME_ENG_Home_Post_Login.md |
activation_starter_swap_options_cap | 2_when_inventory_allows | post_signup/home | DEC-0080 | HOME_ENG_Home_Post_Login.md |
activation_step2_continuity_policy | same_program_plus_nearest_assessment_form_continuity | post_signup/home/practice-entry | DEC-0080 | HOME_ENG_Home_Post_Login.md, PRA_Entry_Routing_Contracts.md |
activation_program_fallback_policy | in_program_nearest_ladder_then_cross_program_easy_start_with_notice | post_signup/home | DEC-0080 | HOME_ENG_Home_Post_Login.md, HOME_ENG_Exercise_Banks_00_Overview.md |
activation_diagnostics_metrics | `resolution_source_distribution | week1_completion_by_program_source | step2_same_program_continuity_rate` | metrics |
logged_in_shell_model | resume_last_program_workspace_plus_deep_object | logged_in_navigation | DEC-0096 | ENG_Navigation_Shell_Contracts.md, ENG_UX_00_Overview.md, ENG_Page_Role_Contracts.md, HOME_ENG_Detailed_Baseline.md |
global_today_scope | deprecated_replaced_by_selective_cross_program_aggregate_views | logged_in_navigation_legacy | DEC-0096 | ENG_Navigation_Shell_Contracts.md, ENG_Page_Role_Contracts.md, HOME_ENG_Home_Post_Login.md |
cross_program_aggregate_scope | eligible_views_only_default_current_program_optional_all_programs_toggle | logged_in_navigation | DEC-0096 | ENG_Navigation_Shell_Contracts.md, ENG_Navigation_00_Overview.md, HOME_ENG_Home_Information_Architecture.md |
cross_program_aggregate_confirmed_initial_view | schedule_calendar | logged_in_navigation | DEC-0096 | ENG_Navigation_Shell_Contracts.md, HOME_ENG_Home_Information_Architecture.md |
program_switcher_scope | real_programs_only_no_all_programs_peer_context | logged_in_navigation | DEC-0096 | ENG_Navigation_Shell_Contracts.md, HOME_ENG_Home_Information_Architecture.md |
post_login_default_entry_resolution | valid_returnto_else_last_meaningful_program_workspace_else_same_program_root_else_single_program_workspace_else_onboarding_or_program_choice | logged_in_navigation | DEC-0096 | ENG_Navigation_Shell_Contracts.md, HOME_ENG_Home_Information_Architecture.md, REG_Screen_Flow_Documentation.md |
deep_object_canonical_home_required_fields | `program | object_type | source | canonical_section` |
cross_program_deeplink_switch_policy | explicit_switch_with_visible_context_cue | navigation_runtime | DEC-0095, DEC-0096 | ENG_Navigation_Shell_Contracts.md, HOME_ENG_Home_Information_Architecture.md, CM_Course_Information_Architecture.md |
engagement_ranking_primary_axis | learning_points_week | cross-area engagement rank | DEC-0093 | FEATURE_DOL_English_Platform.md, LM_Metrics.md, FEATURE_Vocab_v2.md |
engagement_ranking_context_breakdowns | `practice_points_week | vocab_care_points_week` | module-level rank breakdown | DEC-0093 |
engagement_account_level_policy | deferred_not_in_current_rollout | cross-area engagement | DEC-0093 | FEATURE_DOL_English_Platform.md, LM_Metrics.md, FEATURE_Vocab_v2.md |
engagement_recognition_layers | `badge | streak | certificate | course_achievement` |
engagement_copy_guardrail | do_not_pair_rank_with_account_level_in_active_docs | documentation and UX wording | DEC-0093 | FEATURE_DOL_English_Platform.md, FEATURE_Vocab_v2.md, VOC_Management_Dashboard.md |
preauth_access_scope | browse_allowed | entry/access | DEC-0043 | HOME_ENG_Home_Pre_Login.md, REG_Screen_Flow_Documentation.md |
auth_gate_point | attempt_start_or_first_persist_action | entry/access | DEC-0043 | REG_Screen_Flow_Documentation.md, PRA_Entry_Routing_Contracts.md |
auth_login_identifier_policy | email_only_primary_plus_verified_login_emails | entry/access/account | DEC-0094 | REG_Login_UX_Blueprint.md, REG_Authentication_Strategy_Analysis.md, ACC_Logic.md |
signup_identity_channel | email_only_with_password_and_email_otp | entry/access | DEC-0094 | REG_Screen_Flow_Documentation.md, REG_Authentication_Strategy_Analysis.md |
signup_duplicate_contact_handoff | login_step_prefill_no_default_otp_send | entry/access | DEC-0056, DEC-0094 | REG_Screen_Flow_Documentation.md, ACC_Logic.md |
phone_contact_role_policy | contact_only_non_auth | account/checkout | DEC-0094 | REG_Account_Management_Strategy.md, ACC_Logic.md, PAY_Checkout_Flows.md |
paid_flow_required_fields | signed_in_plus_verified_email_plus_phone_contact_no_phone_verify | checkout | DEC-0067, DEC-0094 | PAY_00_Overview.md, PAY_Checkout_Flows.md, PAY_Recommendations.md, ACC_Logic.md |
social_local_password_prereq | verified_email_required | account/recovery | DEC-0094 | REG_Account_Management_Strategy.md, ACC_Logic.md |
contact_change_verification_policy | reauth_then_current_email_otp_then_new_email_or_phone_update | account/security | DEC-0094 | REG_Account_Management_Strategy.md, ACC_Logic.md |
payment_cycle_active_model | `monthly_auto_renew | annual_12m_auto_renew | one_time_3_6_non_renew` | payment/catalog/checkout |
ai_tutor_invocation_policy | on_demand_only_no_auto_open | home/practice/learning/course | DEC-0082 | AIT_00_Overview.md, AIT_Master_Product_Spec.md, HOME_ENG_Home_Post_Login.md |
ai_tutor_role_mode | learning_guide_teacher_like_support | ai_tutor_platform | DEC-0082 | AIT_00_Overview.md, AIT_Master_Product_Spec.md |
ai_tutor_grounding_priority | session_context->platform_kb->learner_history->general_fallback | ai_tutor_runtime | DEC-0083 | AIT_Master_Product_Spec.md, SSP_Context_Pack_Adapter_Contracts.md |
ai_tutor_response_provenance_class | `practice | course | blog | history |
ai_tutor_action_recommendation_shape | do_now_plus_learn_more | ai_tutor_response | DEC-0083 | AIT_Master_Product_Spec.md |
ai_tutor_active_attempt_answer_policy | no_final_answer_or_answer_key_or_ready_submit_rewrite | practice_attempt | DEC-0084 | AIT_Master_Product_Spec.md, PRA_Attempt_Flow.md, PRA_Result_Flow.md |
ai_tutor_hint_ladder | orientation->concept_hint->scaffolded_steps->self_check | practice_attempt | DEC-0084 | AIT_Master_Product_Spec.md, PRA_Attempt_Flow.md |
ai_tutor_output_artifact_taxonomy | `concise_answer | guided_checklist | mini_exercise | diagram_or_mindmap_ready |
ai_tutor_progress_insight_trigger | on_user_request_only | ai_tutor_response | DEC-0085 | AIT_Master_Product_Spec.md, LM_Metrics.md |
ai_tutor_action_continuity_rule | non_trivial_output_requires_next_action_or_deeplink | ai_tutor_response | DEC-0085 | AIT_Master_Product_Spec.md |
smart_search_ai_inline_layer_model | layer1_inline_snapshot_and_actions_only | smart_search_runtime | DEC-0086 | SSP_Master_Product_Spec.md, SSP_Implementation_Logic_Contract.md, SSP_Smart_Search_Logic_Explainer.md |
smart_search_ai_tutor_entry_policy | on_demand_cta_only_no_auto_open | smart_search_runtime | DEC-0086 | SSP_Master_Product_Spec.md, SSP_Implementation_Logic_Contract.md, SSP_AI_Keyword_Widget_Map.md |
smart_search_ai_inline_to_tutor_packet_minimum | `inlineFeatureKey | intentId | query | inlineSummary |
smart_search_ai_inline_to_tutor_packet_recommended | `evidence[] | recommendedActions[] | pageContextId | freshnessAt |
smart_search_ai_inline_to_tutor_fallback_policy | open_tutor_with_min_seed_and_notice | smart_search_handoff | DEC-0087 | SSP_Implementation_Logic_Contract.md, SSP_Context_Pack_Adapter_Contracts.md, AIT_Smart_Search_Carryover_Notes.md |
smart_search_ai_inline_to_tutor_telemetry | `search_ai_tutor_handoff_start | search_ai_tutor_handoff_success | search_ai_tutor_handoff_fallback_open` | smart_search_observability |
smart_search_ai_inline_to_tutor_payload_tiers | `full | balanced | lite` | smart_search_handoff |
smart_search_ai_inline_to_tutor_compression_caps | `evidence:3/2/0-1 | actions:3/2/1 | summary:tier_capped` | smart_search_handoff |
smart_search_ai_thi_thu_full_test_mapping | ACT_TEST+AIF_MOCK_FULL_TEST_variant | smart_search_intent_resolution | DEC-0089 | SSP_Intent_Taxonomy_Result_Contract.md, SSP_AI_Keyword_Widget_Map.md, SSP_Implementation_Logic_Contract.md |
ai_tutor_diagram_rendering_mode | visual_native->structured_graph_text->guided_checklist_fallback | ai_tutor_response_rendering | DEC-0090 | AIT_01_Conversation_Modes_and_Output_Contracts.md, AIT_Master_Product_Spec.md, CM_TECH_AI_Deep_Resources.md |
ai_tutor_provenance_visibility_depth | `compact | standard | detailed_on_demand` | ai_tutor_response |
ai_tutor_fallback_disclosure_invariant | general_fallback_always_disclosed | ai_tutor_response | DEC-0091 | AIT_Master_Product_Spec.md, AIT_01_Conversation_Modes_and_Output_Contracts.md |
ai_tutor_sandbox_exception_policy | allow_sample_reference_only_when_non_graded_no_score_impact | ai_tutor_integrity | DEC-0092 | AIT_02_Exercise_Coaching_Integrity_Policy.md, PRA_Attempt_Flow.md, AIT_Master_Product_Spec.md |
Authoring Guardrails
Phần tiêu đề “Authoring Guardrails”- Khi doc active của DOL English nói về
leaderboard,community rank, hoặcglobal rank, dùngpoints/rankwording và neo vàoLearning Pointsnếu là cross-area logic. - Chỉ dùng
levelcho item progression hoặc ghi chú historical/out-of-scope; không ghépRank + Levelcho cùng một learner status line. - Mọi point bucket mới phải khai báo rõ vai trò:
primary rank,context breakdown, hoặcnon-ranking.
Maintenance Rules
Phần tiêu đề “Maintenance Rules”- Khi có DEC mới làm đổi policy-level key, cập nhật registry trong cùng vòng commit.
- Không xoá key cũ đột ngột; đổi giá trị + cập nhật source decision.
- Nếu key không còn active scope, thêm note
deprecatedthay vì xoá lịch sử ngay.