Study operating system
How to complete the course and retain a real result
1. Design states before components
Define idle, submitting, streaming, validating, completed, cancelled, retryable error, and terminal error first. Buttons, spinners, and answer text must project controlled system state rather than hide logic across several boolean flags.
2. Separate preview from validated result
A partial stream improves perceived speed but is not a final domain result. Render untrusted text safely, and present structured output, citations, and proposed actions as confirmed only after schema and application-side validation.
3. Test without mouse or magic
Run every lab with keyboard-only navigation, screen-reader status announcements, slow network, cancellation, malformed payloads, duplicate events, and prompt-injected content. Verify observable UI state and side effects, not just a polished screenshot.
4. Capture UX evidence
Record state-transition traces, accessibility audits, error recovery, citation opening, approval decisions, time to first useful feedback, and task completion. A median response time alone does not show whether users understood the system state and retained control.