Skip to content

Friction-reduction redesign: saved characters, custom length, print fixes#4

Merged
jon-tidd merged 1 commit into
mainfrom
claude/affectionate-bose-542b8e
May 19, 2026
Merged

Friction-reduction redesign: saved characters, custom length, print fixes#4
jon-tidd merged 1 commit into
mainfrom
claude/affectionate-bose-542b8e

Conversation

@jon-tidd
Copy link
Copy Markdown
Owner

Summary

Story Studio overhaul aimed at reducing friction to generating stories. Snapshot tag pre-friction-redesign-2026-05-19 marks the prior state for easy revert.

Saved characters with descriptions

  • Tap-to-select chips for each saved kid (Mason / Miles / Alice). Multi-select for stories that feature more than one character together.
  • New per-character description field ("long brown hair, loves dinosaurs") that auto-weaves into every story prompt — no more re-typing in the personal-touches box.
  • Inline pencil to edit; explicit Delete in the editor.

Length redesign

  • Three preset chips (Quick 3 / Standard 6 / Long 10 min) + a Custom minute input (1–20).
  • Backed by a 130 wpm bedtime read-aloud constant in lib/data.ts. The prompt now instructs the model with a hard word-count target and acceptable range, with a CRITICAL LENGTH REQUIREMENT block.
  • Post-generation, actual word count + minutes are surfaced so users see when the model misses the target.

Direct-edit age

  • Age inputs in StoryForge + ChildManager are type=\"text\" inputmode=\"numeric\" with native spinners suppressed.

Always-landing routing

  • Returning visitors no longer auto-route to the dashboard. Landing first, every load. StoryForge still has saved-character chips at the top so they're one tap from generating.

Print fixes

  • Virtue label badge is now navy text on solid pale yellow with a dark gold border (was barely-visible translucent gold).
  • Discussion box + family-activity panels get page-break-inside: avoid so they don't get split across pages.
  • print-color-adjust: exact forces printers to respect backgrounds.

Other polish

  • "Another like this" regenerate button after generation.
  • Last 8 stories saved to localStorage and reopenable from a collapsed library section.
  • "Help me choose" virtue picker promoted from text-link to a visible chip.
  • Custom story length: API max_tokens bumped 3000 → 8000 so longer custom stories don't truncate (Sonnet bills on actual output, not the cap).

Test plan

  • TypeScript clean
  • Local preview verified end-to-end (character chips, multi-select, custom minutes, prompt contents, on-screen virtue label colors, printable HTML structure, story library)
  • Vercel preview after deploy
  • Print one story and verify the virtue label is visible + discussion box stays on a single page

🤖 Generated with Claude Code

…ixes

Story Studio overhaul:
- Saved characters with descriptions ("Mason, 7, long brown hair, loves
  dinosaurs"). Tap chips to select, multi-select for multi-kid stories,
  pencil to edit. Descriptions auto-wove into every story prompt.
- Custom story length: 3 preset chips (Quick 3 / Standard 6 / Long 10)
  plus a Custom minute input (1-20). Backed by a 130-wpm bedtime
  read-aloud constant so the prompt instructs the model with a real
  word-count target and acceptable range. Post-generation, the actual
  word count + minutes are surfaced so users see when the model misses.
- Age input becomes direct-edit (type=text, inputmode=numeric, native
  spinners suppressed). No more up/down arrows.
- Post-generation polish: "Another like this" regenerate button, last-8
  stories saved to localStorage and reopenable via collapsed library.

Routing:
- Returning visitors always land on the marketing page now, never the
  dashboard. (StoryForge has saved-character chips at the top so they're
  still one tap from generating.)

Print:
- Virtue label badge is navy text on solid pale yellow with dark gold
  border — visible in print instead of barely-there translucent gold.
- Discussion box and family-activity panels get page-break-inside:avoid
  so they don't get cut across pages.
- print-color-adjust:exact forces printers to respect backgrounds.

API:
- Bumped max_tokens from 3000 → 8000 so longer custom stories don't get
  truncated. Sonnet bills on actual output so the cap is free headroom.

Snapshot tag pre-friction-redesign-2026-05-19 marks the prior state for
easy revert.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 19, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
virtueforge Ready Ready Preview, Comment May 19, 2026 3:27am

@jon-tidd jon-tidd merged commit d3392f5 into main May 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant