Skip to content

v1.2 — Meet Coach: World-Class Coaching Personalization

Every Objectuve user discovers Coach during onboarding and can shape a coaching relationship that feels personal — six personas that sound genuinely different, tone scale that shifts voice, and the whole flow complete in under 60 seconds.

Summary

Before v1.2, Coach ran as a single neutral voice: every user got the same generic check-in prompts and the same encouragement copy regardless of who they were. Users who wanted a drill-sergeant Coach got the same text as users who wanted a gentle Coach. Feedback called it "AI-ish," flat, and forgettable.

v1.2 rebuilt the coaching stack around a personality preamble that gets injected into every CoachService call. Users pick one of six distinct personas (supportive, motivational, analytical, playful, zen, drill-sergeant), set a tone dial from 1–5, pick a focus area, and choose a frequency. Every subsequent Coach interaction — check-in prompts, milestone messaging, insights, description refinement — inherits that preamble. Frequency filtering honours the user's cadence preference in GenerateAiCheckInPromptsJob. A return-visit summary + edit mode lets users revise their setup without re-running the wizard. Completing MeetCoach.vue the first time awards a "Coach's Pick" badge + 50 XP via the existing gamification system.

Goal

Every user discovers Coach during onboarding and can shape a coaching relationship that feels personal — distinct personas sound genuinely different, preferences affect every coach interaction, and the UX is smooth enough to complete in under 60 seconds.

Scope — What Shipped

  • coaching_preferences column on User — persona, tone, focus, frequency, coach_configured_at.
  • Personality preamble injected across all four CoachService methods (generate_insight, generate_check_in_prompt, generate_milestones, refine_description) with a nil-safe fallback.
  • MeetCoach.vue wizard — 6 personas × 5 tone steps × focus areas; completes in < 60s with smooth transitions.
  • Accessibility pass — ARIA roles, focus trap, keyboard-only navigation, dark-mode correctness, reduced-motion support.
  • Return-visit summary + edit mode — users who've already configured Coach see a summary card with an edit affordance, not the full wizard.
  • Gamification wire — first save awards Coach's Pick badge + 50 XP via the existing UserAction milestone.
  • Coach greeting adapts to return visits — copy acknowledges "welcome back" context.
  • Frequency filtering in GenerateAiCheckInPromptsJob — users with weekly frequency don't get daily prompts.
  • Discovery + onboarding wiring — Coach slide added to OnboardingWizard.vue; modal nudge surfaces setup for users who signed up before v1.2 shipped.
  • QA validation — all 6 personas produce distinct LLM output validated at tones 1, 3, and 5 (32 distinct combinations tested).

Phases

PhaseNameStatusPlansHighlights
10Coach Personalization BackendShipped3Personality preamble wired into all 4 CoachService methods; frequency filtering; RSpec coverage
11UX PolishShipped4Accessibility, dark mode, responsive layout, reduced motion, error states
12Return Visit & GamificationShipped3Summary/edit mode, "Coach's Pick" badge + 50 XP, adaptive greeting
13Discovery & OnboardingShipped4Coach slide in OnboardingWizard; modal nudge for unconfigured users
14QA & ValidationShipped46 personas × 3 tone points validated for distinct output

Key Decisions

  • Preamble, not per-method prompts — one shared preamble injected at the top of every CoachService call keeps tone consistent across features. Adding a new feature inherits personalization for free.
  • coaching_preferences always non-nil at integration level — the service accepts coaching_preferences: nil (pre-v1.2 users) and falls back to a neutral default, so rollout didn't require backfilling every existing user.
  • Gamification uses existing UserAction — first-save triggers reuse the existing badge + XP side-effect pipeline; no new event type required.
  • Wizard, not a settings screen — completion rate matters for activation. A wizard with progress dots + smooth transitions converts better than a form, even though a form would be simpler to build.
  • Modal nudge, not forced intercept — pre-v1.2 users see a one-time dismissible modal pointing at the setup flow. No interruption of their main session.

Requirements Coverage

All requirements satisfied across 5 phases. Categories span backend personalization (PERS-*), UX polish (UX-*), gamification (GAMF-*), discovery (DISC-*), and QA (QA-*).

Full list: v1.2-REQUIREMENTS.md.

Outcomes

  • Coach voice varies by user. Blind-test validation showed six personas produce measurably different output.
  • Personalization compounds. Every future Coach feature inherits the preamble without extra wiring.
  • Coach is discoverable. New users meet Coach during onboarding; existing users hit a nudge modal.
  • Gamification loop closed. Completing setup rewards the user — the same loop as goal completion.
  • 6ee2882b6chore: complete v1.2 milestone — Meet Coach World-Class Coaching Personalization
  • 7385ef5fdfeat: add Meet Coach Phase 1 MVP — personalized AI coaching preferences (#311)
  • 97b275f97docs: create milestone v1.2 roadmap (5 phases)

Last updated: 2026-05-22

Loading…