Beyond the bugs fixed, here are comprehensive recommendations from UX design, motivational psychology, and wellness coaching perspectives to make the Mentor Screen more engaging, supportive, and effective.
Priority: HIGH
Current State:
- The mentor mentions achievements in text
- No visual celebration of progress
Issue: Research shows that celebration reinforces behavior better than simple acknowledgment. Visual feedback triggers dopamine release and strengthens habit formation.
Recommendations:
// When user completes a goal/milestone
if (goal.status == GoalStatus.completed) {
_showConfettiAnimation();
_playSuccessSound(); // Optional haptic feedback
}Implementation:
- Use
confettipackage for celebration animation - Trigger on: goal completion, habit streak milestones (7, 30, 100 days), first journal entry
- Make it skippable (dismiss with tap)
Psychological Benefit:
- Dopamine release → strengthens neural pathways
- Creates positive association with progress
Add small achievement badges on the mentor card:
🔥 7-day meditation streak!
⭐ 3 goals completed this month
📝 10 journal entries milestone
Display:
- Small badge icons next to greeting
- Subtle animation when new badge earned
- Tap to see all achievements
Why This Matters:
- Competence need (Self-Determination Theory)
- Tangible evidence of growth
- Encourages continued engagement
Priority: MEDIUM
Current State:
- Shows habit streaks (positive framing)
- Doesn't warn about at-risk streaks
Issue: Loss aversion is 2x stronger than gain motivation. Users are more motivated to avoid losing a 30-day streak than to start a new one.
Recommendations:
When a habit is at risk of breaking (not completed today, has an active streak):
// In mentor card generation logic
if (habit.currentStreak >= 3 && !habit.completedToday) {
urgency = CardUrgency.attention; // Orange border
message = "⚠️ Your ${habit.currentStreak}-day ${habit.title} streak is at risk! "
"Don't let it slip away—take 2 minutes to complete it now.";
primaryAction = MentorAction.navigate(
label: "Protect My Streak",
destination: "habits",
);
}Display:
- Orange urgency border (not red—no panic)
- Empowering language: "protect" not "you're failing"
- Time-remaining indicator: "You have 3 hours left today"
Psychological Benefit:
- Leverages loss aversion
- Creates urgency without anxiety
- Builds habit resilience
Priority: HIGH
Current State:
- When habits break or goals stall, mentor may feel judgmental
- No explicit reframing of setbacks
Issue: Growth mindset research (Carol Dweck) shows that how we frame failures determines whether people persist or give up.
Recommendations:
AVOID:
- ❌ "You missed your meditation habit 3 days in a row"
- ❌ "Your goal hasn't had progress in 10 days"
- ❌ "You're not journaling consistently"
USE:
- ✅ "Your meditation habit took a pause—that's okay! What got in the way? Let's problem-solve together."
- ✅ "Your goal is taking longer than expected. This is normal. Want to break it into smaller steps?"
- ✅ "Journaling less this week? Life gets busy. Even 2 minutes counts."
Implementation:
// Update mentor intelligence service prompts
static const String STALLED_GOAL_PROMPT = '''
When a goal has stalled:
- Don't shame or judge
- Acknowledge the pause as normal
- Ask curious questions: "What got in the way?"
- Offer to adjust the goal (not abandon it)
- Emphasize small steps forward
''';Why This Matters:
- Fixed mindset → "I failed, I'm not good at this" → quits
- Growth mindset → "This didn't work, let's try differently" → persists
Priority: MEDIUM
Current State:
- Mentor suggests normal-sized actions
- No adjustment for user energy/capacity
Issue: When users are overwhelmed (high HALT scores, stalled goals), they need absurdly small first steps, not standard actions.
Recommendations:
// In MentorIntelligenceService
bool _isUserOverwhelmed() {
// Check multiple signals
final recentPulse = pulseEntries.first;
final highHALT = recentPulse.customMetrics.values.any((v) => v >= 4);
final stalledGoals = goals.where((g) => g.daysSinceProgress > 7).length > 2;
final journalIndicatesStress = _detectStressInJournals(journals);
return highHALT || (stalledGoals && journalIndicatesStress);
}Normal Mode:
- "Work on your fitness goal for 30 minutes"
- "Write a journal entry about your progress"
Tiny Wins Mode:
- "Do just ONE push-up (seriously, that's it!)"
- "Write one sentence about how you feel right now"
- "Open your goal list. That's the whole task."
Display:
🪶 TINY WIN MODE
I noticed you're having a tough time right now. Let's make this ridiculously easy:
[ONE Push-Up Challenge]
That's it. Just one. You can do more if you want, but one counts as a complete win.
Why? Because action—any action—breaks the paralysis. And one often becomes two, which becomes three...
Psychological Benefit:
- Lowers activation energy (BJ Fogg's Behavior Model)
- Breaks "all-or-nothing" thinking
- Builds momentum with micro-successes
Priority: LOW (Future Enhancement)
Current State:
- Solo experience (no community)
- No sense of others on similar journeys
Issue: Humans are social creatures. We're more motivated when we know others are struggling too and others have succeeded.
Recommendations:
Show aggregated, anonymized stats:
📊 Community Snapshot
• 847 people are working on fitness goals this week
• The average streak for meditation is 12 days (you're at 15!)
• 92% of users who journal 3x/week report feeling more in control
Why This Matters:
- Reduces isolation ("I'm not alone in this")
- Provides benchmarks without competition
- Leverages social proof
Privacy: All stats anonymized, no individual data shared
Priority: MEDIUM
Current State:
- Mentor card updates automatically based on data changes
- No manual refresh option
Issue: Users want control. Sometimes they want to see new coaching immediately after making changes.
Recommendation:
// Wrap mentor screen ListView in RefreshIndicator
RefreshIndicator(
onRefresh: () async {
// Force reload all data
await Future.wait([
context.read<GoalProvider>().reload(),
context.read<HabitProvider>().reload(),
context.read<JournalProvider>().reload(),
]);
// Clear mentor card cache to force regeneration
setState(() {
_cachedCoachingCard = null;
_lastStateHash = '';
});
// Show success feedback
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Mentor card refreshed!'), duration: Duration(seconds: 1)),
);
},
child: ListView(...),
)UX Benefits:
- Sense of control
- Immediate feedback after bulk changes
- Familiar interaction pattern
Priority: LOW
Current State:
- All information shown at once
- Can feel overwhelming for new users
Recommendation:
Make goals and habits sections collapsible:
ExpansionTile(
title: Text('Current Goals (${activeGoals.length})'),
initiallyExpanded: true,
children: [...goalWidgets],
)Benefits:
- Reduces cognitive load
- Lets users focus on one area
- Cleaner visual hierarchy
Priority: LOW
Current State:
- Generic "Hey, [Name]!"
Enhancement:
String _getTimeBasedGreeting(String userName) {
final hour = DateTime.now().hour;
if (hour < 5) {
return "Up late, $userName? 🌙"; // 12am-5am
} else if (hour < 12) {
return "Good morning, $userName! ☀️"; // 5am-12pm
} else if (hour < 17) {
return "Hey, $userName!"; // 12pm-5pm
} else if (hour < 22) {
return "Good evening, $userName! 🌅"; // 5pm-10pm
} else {
return "Evening, $userName! 🌙"; // 10pm-12am
}
}Psychological Benefit:
- More natural conversation
- Shows contextual awareness
- Builds rapport
Priority: LOW
Current State:
- Card updates silently
- User may not notice change
Recommendation:
// When card regenerates
AnimatedSwitcher(
duration: Duration(milliseconds: 300),
child: _buildCoachingCardContent(
key: ValueKey(_cachedCoachingCard?.id), // Trigger animation on ID change
...
),
)// Show for 3 seconds after regeneration
if (_cardJustUpdated) {
Positioned(
top: 8,
right: 8,
child: Container(
padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: Colors.green,
borderRadius: BorderRadius.circular(12),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.check, size: 12, color: Colors.white),
SizedBox(width: 4),
Text('Updated', style: TextStyle(fontSize: 10, color: Colors.white)),
],
),
),
)
}Priority: HIGH
Current State:
- HALT widget checks basic needs
- No holistic burnout assessment
Issue: Burnout is a major risk for goal-oriented people. Signs include:
- Declining performance despite effort
- Loss of motivation
- Emotional exhaustion
- Cynicism about progress
Recommendation:
class BurnoutSignals {
final bool decliningHabitCompletion; // Habits dropping off
final bool stalledGoalsIncreasing; // More goals stalling
final bool journalIndicatesExhaustion; // "tired", "overwhelmed", "can't"
final bool highTiredScores; // HALT: Tired >= 4 for 3+ days
final bool reducedJournaling; // Was regular, now sparse
bool get atRisk => /* 3+ signals true */;
}Mentor Card (Burnout Detected):
🛑 PAUSE: Burnout Alert
Hey [Name], I'm noticing some concerning patterns:
• Your habits are dropping off
• Several goals have stalled
• You've mentioned feeling exhausted lately
This isn't failure—this is your body/mind asking for a break.
[Take a Wellness Day] [Talk to Someone]
Wellness Day Mode:
- Hide all goals/habits/deadlines for 24 hours
- Show only: journal, HALT check, crisis resources
- Mentor sends supportive messages only (no productivity coaching)
Psychological Benefit:
- Permission to rest (reduces guilt)
- Prevents chronic burnout
- Models self-care
Priority: MEDIUM
Current State:
- Mentor acknowledges setbacks
- Doesn't explicitly teach self-compassion
Issue: Self-criticism after failures increases anxiety and reduces motivation. Self-compassion research (Kristin Neff) shows better outcomes.
Recommendation:
When a goal is abandoned or habit breaks:
💙 Let's Practice Self-Compassion
You just [abandoned a goal / broke a habit]. That's hard. Before we move forward, take a moment:
1️⃣ Common Humanity
"Everyone struggles with goals. I'm not alone in this."
2️⃣ Self-Kindness
"I'm doing the best I can with what I have right now."
3️⃣ Mindful Acceptance
"I feel disappointed, and that's okay. This feeling will pass."
[I Did the Exercise] [Skip for Now]
Why This Matters:
- Reduces shame spiral
- Increases resilience
- Evidence-based intervention
Priority: HIGH
Current State:
- Crisis resources available via SOS button (good!)
- Only accessible from app bar
Enhancement:
Monitor journal entries and HALT checks for crisis language:
// Crisis keywords (simplified for example)
const CRISIS_KEYWORDS = [
'suicidal', 'kill myself', 'end it', 'not worth living',
'hopeless', 'give up on life', 'better off dead'
];
bool _detectCrisisLanguage(String text) {
return CRISIS_KEYWORDS.any((keyword) =>
text.toLowerCase().contains(keyword)
);
}If detected, show immediately (override normal mentor card):
🆘 YOU'RE NOT ALONE
I noticed you're going through something really hard right now.
I'm just an app, but there are real people who want to help:
[Call Crisis Line Now] [Text Chat Support]
You don't have to face this alone. Please reach out.
Include:
- National Suicide Prevention Lifeline: 988
- Crisis Text Line: Text HOME to 741741
- Option to reach out to emergency contact
Why This Matters:
- Life-saving intervention
- Ethical responsibility
- Shows the mentor truly "cares"
Priority: MEDIUM
Current State:
- Actions suggested based on goals/patterns
- Doesn't account for user's current energy level
Enhancement:
Add quick energy check to morning:
🌅 Good morning, [Name]!
Quick check: How's your energy today?
[🔋 Full Tank] [⚡ Decent] [🪫 Running Low]
High Energy:
- "Tackle your [hardest goal]"
- "Do a long reflection journal"
- "Complete multiple habits"
Medium Energy:
- "Work on [moderate goal]"
- "Quick journal check-in"
- "Focus on 1-2 habits"
Low Energy:
- "Rest is productive too"
- "One tiny win is enough"
- "Light journaling or just read past entries"
Why This Matters:
- Respects user's capacity
- Prevents burnout from overcommitment
- Sustainable habit formation
Priority: LOW
Current State:
- Users journal when they want
- No structured weekly review
Enhancement:
Every Sunday evening, show:
📅 Weekly Reflection
Let's look back at your week:
✅ You completed 5 of 7 daily habits
📝 2 journal entries (down from last week)
🎯 Progress on 3 goals
What went well this week? What would you do differently?
[Write Reflection] [Skip This Week]
Benefits:
- Metacognition improves learning
- Pattern awareness
- Celebrates wins that feel small day-to-day
Priority: LOW
Current State:
- One coaching tone for all users
- No customization
Enhancement:
Let users choose mentor personality:
Choose Your Coaching Style:
🤝 Supportive Friend
Warm, encouraging, focuses on self-compassion
🏋️ Tough Love Coach
Direct, challenging, high accountability
🧘 Zen Guide
Calm, reflective, mindfulness-focused
🎯 Strategic Partner
Data-driven, analytical, optimization-focused
Supportive Friend:
- "You're doing great, even when it doesn't feel like it"
- "Be gentle with yourself"
Tough Love:
- "You said this goal mattered. Show up for it."
- "Excuses are optional. Action is required."
Zen Guide:
- "Notice the resistance. What is it teaching you?"
- "Progress isn't linear. Be patient."
Strategic Partner:
- "Your completion rate dropped 23% this week. Let's analyze why."
- "Data shows morning habits have 87% higher compliance for you."
| Improvement | Impact | Effort | Priority | Timeline |
|---|---|---|---|---|
| Celebrate micro-wins visually | High | Medium | HIGH | Sprint 1 |
| Growth mindset language | High | Low | HIGH | Sprint 1 |
| Burnout detection | High | High | HIGH | Sprint 2 |
| Crisis resource prominence | Critical | Medium | HIGH | Sprint 1 |
| Streak protection warnings | Medium | Low | MEDIUM | Sprint 2 |
| Tiny wins mode | Medium | Medium | MEDIUM | Sprint 2 |
| Pull-to-refresh | Low | Low | MEDIUM | Sprint 3 |
| Self-compassion prompts | Medium | Medium | MEDIUM | Sprint 3 |
| Energy-based actions | Medium | Medium | MEDIUM | Sprint 3 |
| Time-based greetings | Low | Low | LOW | Sprint 4 |
| Visual update feedback | Low | Low | LOW | Sprint 4 |
| Weekly reflection | Low | Medium | LOW | Sprint 4 |
| Coaching style preferences | Low | High | LOW | Future |
| Community stats | Low | High | LOW | Future |
- Autonomy: Pull-to-refresh, coaching style choices, opt-in wellness days
- Competence: Visual badges, progress celebration, micro-wins
- Relatedness: Community stats (future), compassionate language
- Motivation: Celebrate wins, loss aversion for streaks
- Ability: Tiny wins mode, energy-based actions
- Prompt: Timely interventions (streak risk, burnout detection)
- Reframe failures as learning
- Emphasize process over outcomes
- "Not yet" language
- Explicit self-compassion exercises
- Common humanity reminders
- Mindful acceptance of emotions
- Celebrate strengths and wins
- Focus on what's working
- Build on positives
If you want to start small, implement these first:
-
Growth mindset language in mentor prompts (1-2 hours)
- Update prompt templates in
MentorIntelligenceService - No UI changes needed
- Update prompt templates in
-
Time-based greetings (30 minutes)
- Simple time-of-day check
- Instant personalization boost
-
Streak protection warnings (2-3 hours)
- Logic already exists for streak tracking
- Just add urgency detection
-
Pull-to-refresh (1-2 hours)
- Wrap ListView in RefreshIndicator
- Clear cache on refresh
-
"Updated just now" badge (1 hour)
- Simple overlay when card regenerates
- Provides visual feedback
- Self-Determination Theory: Deci, E. L., & Ryan, R. M. (2000). Intrinsic and Extrinsic Motivations
- Growth Mindset: Dweck, C. (2006). Mindset: The New Psychology of Success
- Self-Compassion: Neff, K. (2011). Self-Compassion
- Behavior Model: Fogg, B. J. (2009). A Behavior Model for Persuasive Design
- Loss Aversion: Kahneman, D., & Tversky, A. (1979). Prospect Theory
- Burnout Research: Maslach, C., & Leiter, M. P. (2016). Understanding Burnout
- Positive Psychology: Seligman, M. E. P. (2011). Flourish
The Mentor Screen is already well-designed with strong fundamentals. These improvements would elevate it from a good coaching app to an exceptional personal growth companion by:
- Meeting users where they are (energy, motivation, capacity)
- Celebrating progress more effectively
- Preventing burnout proactively
- Responding to crisis appropriately
- Building sustainable habits through psychological principles
The highest priority improvements focus on psychological safety (crisis detection, burnout prevention) and motivation sustainability (micro-wins, growth mindset, self-compassion).
Next Steps:
- Review this document with stakeholders
- Prioritize based on user feedback and team capacity
- Create user stories for Sprint 1 high-priority items
- Consider A/B testing for coaching language variations
- Gather user feedback on implemented changes
Would you like me to create detailed implementation specs for any of these improvements?