feat(copy): PR 1.1 — research-grounded copy + prompt corrections

Add cue-anchored "When [cue], [action]" framing to the task-decomposition
prompt where natural cues are present (Gollwitzer-style implementation
intentions, d=0.65 effect size). Soften Bionic Reading and accessibility-
font copy to honest preference framing per the v3 audit (Strukelj 2024;
Doyon n=2,074). Update timer nudge from "Still on that timer?" (which
read as judgmental) to "Timer's still running." Replace stale Tasks
page header copy promising automatic extraction.

Audio envelopes (focusTimer 20ms ramp, sounds.ts 10ms attack) verified
correct per memo §B; no code change needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-26 18:12:58 +01:00
parent ada517440a
commit 0a8cb55447
5 changed files with 11 additions and 5 deletions

View File

@@ -55,6 +55,7 @@
</button>
{/each}
</div>
<p class="text-[11px] text-text-tertiary leading-relaxed">Pick whichever feels easier to read. Evidence on dyslexia-specific fonts is contested — this is preference, not prescription.</p>
</div>
<!-- Font size -->
@@ -102,7 +103,7 @@
</div>
<!-- Bionic reading -->
<Toggle label="Bionic reading" description="Bold the first few characters of each word for faster scanning" bind:checked={bionicChecked} />
<Toggle label="Bionic reading" description="Bolds the first few characters of each word. Some people find it helps; the evidence is mixed. Try it and keep it on if it feels better." bind:checked={bionicChecked} />
<!-- Reduce motion -->
<div class="flex flex-col gap-2">

View File

@@ -312,7 +312,7 @@
</div>
</div>
<p class="text-[11px] text-text-tertiary mt-1">Add tasks manually. Automatic extraction from your transcripts is coming.</p>
<p class="text-[11px] text-text-tertiary mt-1">Add tasks manually, or extract them from a transcript in Dictation.</p>
</div>
<div class="flex-1"></div>

View File

@@ -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.",
);
}