--- phase: quick plan: 260329-tk2 subsystem: ui/lesson tags: [ux, companion, onboarding, child-friendly] one_liner: "Added 2.5-second child-friendly German companion instructions before practice and words phases in the lesson screen" key_files: modified: - src/ui/screens.ts decisions: - "Companion text cleared before exercise starts (after delay) so it doesn't distract during actual typing" - "async/await conversion matches existing discover phase pattern for consistency" metrics: duration: 5min tasks: 1 files: 1 completed: 2026-03-29 --- # Quick Task 260329-tk2: Ueben-Phase kindgerechte Erklaerung statt nichts ## Summary Added child-friendly companion instructions at the start of the practice ("Ueben") and words ("Woerter") phases. Previously these phases showed no explanation, leaving a 7-year-old without guidance on what to do. Now each phase begins with a 2.5-second companion message before the exercise starts. ## Tasks Completed | Task | Name | Commit | Files | | ---- | ---- | ------ | ----- | | 1 | Add companion instructions for practice and words phases | 4cb5fa6 | src/ui/screens.ts | ## Changes Made **src/ui/screens.ts:** - `runPracticePhase()` converted from callback-based `Promise` return to `async function` - Before exercise begins, shows: "Jetzt kannst du ueben! Druecke die Taste zu dem Buchstaben, der herunterfaellt." - `runWordsPhase()` converted from callback-based to `async function` - Before exercise begins, shows: "Jetzt kommen ganze Woerter! Tippe die Buchstaben nacheinander ein." - Both functions display companion area, wait 2500ms, then clear text before starting exercise - `cancelled` check after delay ensures clean abort if user navigates away during the intro ## Deviations from Plan None - plan executed exactly as written. ## Verification - `npx vitest run`: 85/85 tests passed - `npx tsc --noEmit`: No TypeScript errors ## Known Stubs None.