Practice Flow - Attempt Flow
DomainsDOL EnglishUX908 words5 min read
Shell Fit
Phần tiêu đề “Shell Fit”Attemptlà deep execution flow bên trong destinationLuyện tập, không phải destination độc lập.- Mọi entry từ
Home,Khóa học, search, notification, hoặc recommendation phải resolve quaPRA_Entry_Routing_Contractstrước khi vào attempt.
Purpose
Phần tiêu đề “Purpose”- Vấn đề: Attempt là bước dùng nhiều nhất trong sản phẩm, nếu thiếu baseline rõ ràng sẽ gây mất dữ liệu và submit lỗi.
- Đối tượng chính: Team UX/Product/Engineering triển khai màn làm bài cho mọi entry context.
- Tín hiệu thành công: User làm bài mượt, không mất đáp án, submit ổn định, và chuyển sang Result đúng 1 lần.
Elements / Scope
Phần tiêu đề “Elements / Scope”- Attempt chỉ nằm giữa
Entry RoutingvàResult. - Input contract bắt buộc:
source_context,program,exercise_id,returnTo.
- Attempt modes:
untimed(default cho luyện tập thường),timed(simulation/full-test).
- Core states:
loading,active,saving,submit_review,submitting,submit_retry_needed,timeout_submit(timed only),submitted.
Logic
Phần tiêu đề “Logic”- Attempt start guard:
- chỉ khởi tạo khi metadata entry hợp lệ,
- metadata lỗi -> fallback theo
PRA_Entry_Routing_Contracts.
- Draft safety:
- hệ thống lưu tiến độ liên tục trong lúc làm bài,
- khi mạng yếu/mất mạng, giữ draft cục bộ và sync lại khi có mạng,
- user quay lại attempt chưa nộp sẽ resume từ draft mới nhất hợp lệ.
- draft
untimedgiữ tối đa 7 ngày kể từ hoạt động gần nhất. - draft
timedchỉ hợp lệ trong cửa sổ countdown còn hiệu lực.
- Submit review:
- trước nộp hiển thị summary tổng số câu đã làm/chưa làm,
- nếu bài có nhiều section thì có thể mở breakdown theo section,
- không chặn cứng nếu còn câu chưa trả lời.
- Submit integrity:
- submit phải idempotent để chặn double-submit do click lặp hoặc retry race,
- submission thành công chỉ tạo 1 finalized attempt.
- Timed behavior:
- timed mode dùng countdown authoritative,
- hết giờ chuyển sang
timeout_submitvà tiếp tục pipeline sang Result.
- Failure resilience:
- submit lỗi tạm thời giữ nguyên state câu trả lời,
- hệ thống auto-retry tối đa 3 lần cho lỗi transient,
- sau ngưỡng auto-retry vẫn cho manual retry và hiển thị support CTA,
- user retry được ngay không mất tiến độ.
- Pipeline boundary:
- chỉ submission thành công mới tạo
attempt_idfinalized và chuyển Result, submitted_atlà mốc nguồn cho streak/progress metrics.
- chỉ submission thành công mới tạo
- AI Tutor coaching integrity (active attempt):
- khi
active_attempt = truevà learner mở AI Tutor từ attempt context:- runtime bắt buộc bật
exercise_coachingmode, - response dùng
safety_mode = exercise_coaching_integrity.
- runtime bắt buộc bật
- nếu Practice Attempt có AI inline hint/suggest ngay trong màn làm bài, surface đó phải theo archetype
coaching_rail:- chỉ hiển thị
micro hint,scaffolded step, hoặcself-check, - không render plan, report, hay summary card kiểu dashboard,
- không cạnh tranh với vùng làm bài chính.
- chỉ hiển thị
- output bị giới hạn theo hint ladder:
orientation_hint -> concept_hint -> scaffolded_steps -> self_check.
- trong active attempt, AI Tutor không được:
- đưa đáp án cuối,
- đưa option đúng trực tiếp,
- viết full bài nộp thay learner.
- nếu learner lặp yêu cầu “cho đáp án luôn”:
- AI nhắc ngắn policy integrity,
- tiếp tục ở hint level hợp lệ kế tiếp, không hạ guardrail.
- sandbox exception (non-graded only):
- chỉ khi
non_graded_sandbox=truevàno_score_or_streak_impact=true, - AI có thể đưa
sample/reference answercó label rõ. - exception không áp dụng cho attempt chấm điểm hoặc submission impact flows.
- chỉ khi
- khi
UI / Behavior
Phần tiêu đề “UI / Behavior”- Ưu tiên tập trung làm bài, giảm nhiễu.
- Luôn có tín hiệu trạng thái rõ:
Đang lưu,Đang nộp,Nộp thất bại - thử lại. - Với timed mode:
- hiển thị countdown rõ ràng,
- gần hết giờ có cảnh báo nhẹ.
- không có nút manual pause.
- khi user rời tab/background, timer vẫn tiếp tục chạy.
- Exit attempt:
- user được rời màn bất kỳ lúc nào,
- quay lại thì resume (nếu chưa nộp).
- Submit thành công:
- điều hướng thẳng
Attempt -> Result.
- điều hướng thẳng
Dependencies / Integration
Phần tiêu đề “Dependencies / Integration”PRA_Entry_Routing_Contracts.mdPRA_Result_Flow.mdPRA_Result_Impact_Contracts.mdLM_Metrics.md(submitted timestamp attribution)../AI Tutor Platform/AIT_02_Exercise_Coaching_Integrity_Policy.md
Change log
Phần tiêu đề “Change log”- 2026-03-16: Chốt Practice Attempt inline AI theo archetype
coaching_rail; active attempt chỉ cho micro-hint/scaffold/self-check, không dùng summary/report card. - 2026-03-01: Bổ sung sandbox exception boundary theo DEC-0092 (chỉ non-graded/no-impact, không leak sang graded attempts).
- 2026-03-01: Bổ sung AI Tutor guided-mode contract trong active attempt: bắt buộc
exercise_coaching, hint ladder 4 tầng, và hard-block final answer/answer key/full rewrite. - 2026-02-21: Deepening policy: timed no-pause + background countdown continuity, draft TTL (
untimed=7 ngày), submit review tổng + section breakdown, và auto-retry 3 lần + support CTA. - 2026-02-21: Thay placeholder bằng baseline active: timed/untimed, draft safety, submit review non-blocking, idempotent submit, timeout-submit path, và retry resilience.
- 2026-02-07: Tạo placeholder draft ban đầu.