diff --git a/crates/llm/src/prompts.rs b/crates/llm/src/prompts.rs index 3e9f908..8893807 100644 --- a/crates/llm/src/prompts.rs +++ b/crates/llm/src/prompts.rs @@ -1,7 +1,12 @@ pub const DECOMPOSE_TASK_SYSTEM: &str = "\ You are a task-decomposition assistant. Given a task description, produce \ between 3 and 7 concrete, physical micro-steps. Each step must be a short \ -imperative sentence, actionable today, with no commentary. Output ONLY a \ +imperative sentence, actionable today, with no commentary. Where the task \ +description contains a natural cue (a place, a time, a preceding action, an \ +object the user will already be holding), phrase that step as \ +\"When [cue], [action]\" so the cue triggers the action. Use this framing \ +only where the cue is genuinely present in the input — do not invent cues. \ +Steps without a natural cue stay as plain imperatives. Output ONLY a \ JSON array of strings."; // Phase 9 content-tag extraction. The model emits a {topic, intent} diff --git a/docs/brief/design-principles.md b/docs/brief/design-principles.md index ea5db71..786f03d 100644 --- a/docs/brief/design-principles.md +++ b/docs/brief/design-principles.md @@ -6,7 +6,7 @@ - **Fonts:** Lexend or Atkinson Hyperlegible Next as defaults. Clean sans-serif with large x-height. OpenDyslexic available as a user option but NOT recommended as default — peer-reviewed evidence (Rello & Baeza-Yates 2016; Kuster et al. 2018) shows it does not outperform standard sans-serif fonts. **Spacing is the active typographic ingredient, not letterform** (see Appendix A3). Italic text must never be used for extended reading — it significantly impairs reading in neurodivergent populations. - **Minimum 16px size, 1.5x line spacing, left-aligned text.** Maximum 75-character line width to prevent line-skipping fatigue. - **Variable font support.** Where possible, implement adjustable typographic axes (spacing, weight, width) so users can dynamically adapt typography to their own fluctuating visual-perceptual thresholds — not just choose between static font options. -- **Bionic Reading toggle.** Optional mode that bolds the first few letters of each word to create artificial fixation points. Helps ADHD brains maintain reading momentum and prevents eyes from skipping lines. Increasingly popular accessibility feature — low implementation cost, high perceived value. Should be a toggle in settings, not default. +- **Bionic Reading toggle.** Optional mode that bolds the first few letters of each word. Independent studies (Strukelj 2024; *Attention, Perception & Psychophysics* 2025; Doyon n=2,074) find no comprehension benefit and small reading-speed *costs* on average — but individual experience varies, and some users genuinely find it more comfortable. Offer as an honest preference toggle ("some people find this helps; the evidence is mixed"), default off, never marketed as "proven for ADHD/dyslexia". See `research-grounded-design-principles.md` §7. - **Rationale:** Decoding text consumes high metabolic energy for dyslexic or ADHD brains. Visual crowding affects both peripheral AND central (foveal) vision in these populations. Every typographic decision should reduce that metabolic cost. #### Colour system diff --git a/src/lib/components/AccessibilityControls.svelte b/src/lib/components/AccessibilityControls.svelte index bb4f3d7..a90cc68 100644 --- a/src/lib/components/AccessibilityControls.svelte +++ b/src/lib/components/AccessibilityControls.svelte @@ -55,6 +55,7 @@ {/each} +
Pick whichever feels easier to read. Evidence on dyslexia-specific fonts is contested — this is preference, not prescription.
@@ -102,7 +103,7 @@ -Add tasks manually. Automatic extraction from your transcripts is coming.
+Add tasks manually, or extract them from a transcript in Dictation.
diff --git a/src/lib/stores/nudgeBus.svelte.ts b/src/lib/stores/nudgeBus.svelte.ts index 6f702c9..6e323e7 100644 --- a/src/lib/stores/nudgeBus.svelte.ts +++ b/src/lib/stores/nudgeBus.svelte.ts @@ -160,7 +160,7 @@ function checkInactivityWithActiveTimer(now: number) { if (now - blurredAt < INACTIVITY_TIMER_THRESHOLD_MS) return; timerNudgeFiredThisSession = true; void deliver( - "Still on that timer?", + "Timer's still running.", "It's been ticking while you've been away. Pick up where you left off, or stop it.", ); }