Growth Loop — Product Documentation¶
The execution engine that turns your Life Blueprint into daily habits, weekly reflections, and 90-day sprints.
Version 1.0 · Last updated April 2026 Route:
/growth-loop· Page:DailyGrowthPage.tsxGate: requires Discovery + Life Design completed + paid plan Unlocks: Relationship Lens (with extra conditions)
Table of Contents¶
- What Is the Growth Loop?
- Where It Sits in the Journey
- The Four Tabs
- Tab 1 — Overview
- Tab 2 — Habit Tracker
- Tab 3 — Weekly Reflection
- Tab 4 — Cycle Reviews (90-Day Sprint)
- The Weekly Intention
- Streaks, Milestones & Gamification
- The 90-Day Sprint in Depth
- Data Model
- Coaching & AI Support
- Design Principles
- Glossary & FAQ
1. What Is the Growth Loop?¶
The Growth Loop is the third stage of the MindMeditate Personality System — where your plan becomes your behaviour.
The Personality Test tells you who you are. Life Design tells you where you're going. Growth Loop is how you actually get there.
It's a self-reinforcing cycle:
Daily Habit Check-ins → Weekly Reflection → 90-Day Cycle Review → Recalibrate
↑ │
└───────────────────────────────────────────────────────────────────┘
Each layer feeds the next: today's habit ticks feed this week's reflection; this week's reflection feeds this month's habit score; this month's score feeds the 90-day audit; the audit recalibrates the habits — and the loop restarts.
2. Where It Sits in the Journey¶
Personality Test → Self Mastery → Life Design → Growth Loop → People Blueprint
(Who) (Insight) (Direction) (Execution) (Relationships)
| Stage | Output |
|---|---|
| Personality Test | Archetype + Force + Secondary |
| Self Mastery | Coach-style reflection on your profile |
| Life Design | Vision, Ikigai, pillars, strategic habits, capability gap |
| Growth Loop | Streaks, weekly intentions, cycle reviews, habit mastery |
| People Blueprint | How you show up with partners, teams, family |
Growth Loop consumes everything Life Design produced:
- strategicHabits → auto-seeded into the Habit Tracker
- strategicThreats → revisited in each sprint phase
- pillars.anchors → shown as "Alignment Anchors" during weekly reflection
- vision + mission → shown as the "North Star" banner
- capabilityGap → tracked across the 60-Day Capability Review
3. The Four Tabs¶
| # | Tab | Purpose | Icon |
|---|---|---|---|
| 1 | Overview | Dashboard view — streak, SMART goal progress, weekly challenge, trends | 📊 BarChart3 |
| 2 | Habit Tracker | Daily check-in grid for strategic + freeform habits | ✅ CheckCircle2 |
| 3 | Weekly Reflection | 3-question review + alignment score | 📈 Activity |
| 4 | Cycle Reviews | 90-day sprint with 3 phased check-ins (Day 30/60/90) | 🔄 RefreshCw |
Tab 1 — Overview¶
Purpose. The command centre. Everything you need to see at a glance: am I on track?
What it shows:
- Streak banner — current streak count + freezes available (see §5)
- Weekly intention — focus, why, and 3 actions for this ISO week (see §4)
- Weekly challenge — one archetype-tailored challenge per week, seeded from weeklyChallenges.json. Resets each ISO week.
- SMART goal progress per pillar — slider (0–100%) + note per pillar, pulling goal text from profile.lifeDesign.pillars[*]
- Alignment trend chart — last 10 weekly reflections plotted (alignment + habit scores)
- Day-in-cycle counter — where you are in the current 90-day sprint (0–89)
Why it's tab 1. It forces the user to see the state before they log anything — no ambiguity about how they're doing.
Tab 2 — Habit Tracker¶
Purpose. Daily check-in of all active habits. The mechanism that produces the streak.
Habit sources:
| Source | Origin | Label |
|---|---|---|
| Strategic | Auto-imported from lifeDesign.strategicHabits — each paired to a threat |
🎯 "Strategic" badge |
| Freeform | User-added from within the tracker | (no badge) |
Every strategic habit carries its parent threat with it — the user sees "Phone in drawer 9pm–9am" alongside "Threat: Weekend scrolling kills my business momentum." This pairing (from Life Design) is what makes the habit feel non-negotiable.
Daily interaction:
- 7-day grid per habit (today + previous 6 days)
- Click a day → toggles completedDates for that habit
- Optional why field per habit — shown as a reminder when checking in
Habit mastery:
When a habit has been held long enough, the user clicks 🏅 "Mastered". The habit moves to a separate Mastered Habits section (archived but visible), freeing mental load. masteredAt timestamp is stored.
Streak logic:
A day counts as "active" if at least one habit was completed that day. Streaks are computed via computeStreak() in utils/gamification.ts.
Tab 3 — Weekly Reflection¶
Purpose. Convert 7 days of doing into 1 moment of seeing. Qualitative + quantitative.
The 3 questions (fixed):
| # | Question | Function |
|---|---|---|
| 1 | What went well this week? (Achievements) | Evidence collection — trains the user to notice wins |
| 2 | What was challenging? (Obstacles) | Honest diagnosis — surfaces what's in the way |
| 3 | What is your primary focus for next week? | Forward commitment — seeds next week's intention |
Two sliders:
| Metric | Range | What it means |
|---|---|---|
| Alignment Score | 0–100% | "How aligned did this week feel with my 5-year vision and chosen path?" |
| Habit Score | auto-calculated | Derived from habit completion ratio across the week |
North Star banner. Before writing, the user sees their Life Design vision and mission quoted at the top. No writing in a vacuum.
Alignment Anchors.
If Life Design pillar anchors exist, they're shown as a reminder grid — "Career: a team that ships fast and values craft" — grounding the alignment slider in something concrete.
Gating. All 3 questions must be filled to save. No empty reflections.
Output. Appends to profile.growthLoop.weeklyReflections[] with:
Tab 4 — Cycle Reviews (90-Day Sprint)¶
Purpose. The long-horizon audit. Weeks can lie; quarters don't.
See §6 for the full sprint mechanic.
Summary: - 3 phases in a sprint — Day 30 / Day 60 / Day 90 - Each phase is a different lens on the same habits - Phase 3 (Day 90) forces a full recalibration — threats reviewed, habits graded, capability gap assessed
4. The Weekly Intention¶
Set at the start of each ISO week (e.g. 2026-W15) and stored in profile.currentWeekIntention.
Fields:
| Field | Meaning |
|---|---|
focus |
The single thing that matters this week |
why |
Why it matters this week (ties back to vision) |
actions[3] |
Three concrete actions that would make it real |
weekKey |
ISO week identifier (auto-computed) |
Lifecycle:
- Appears editable at week start
- Locks (display-only) once saved — user can explicitly "Edit" to change
- Auto-resets to empty when weekKey changes (new week)
Why three actions, not one: One action is too binary (did it / didn't). Three creates a pattern — you almost always hit 1 or 2, which is the signal of a real week, not the pass/fail of a perfectionist week.
5. Streaks, Milestones & Gamification¶
Streak definition. A day counts if at least one habit was checked. The streak counter increments for consecutive active days. Computed by computeStreak().
Streak freezes. Limited "get out of jail" tokens. A missed day consumes a freeze instead of breaking the streak — but freezes are capped.
Milestones. isStreakMilestone(n) fires on 7, 14, 21, 30, 60, 90 days. Each milestone:
- Awards XP via applyXp()
- Computes new badges via computeNewBadges()
- Triggers a celebration modal (showCelebration: 'streak' | 'map')
XP & badges. Feed the shared gamification system used across Personality Test, Life Design, and Growth Loop. Non-mandatory — users can ignore and still benefit from the loop.
6. The 90-Day Sprint in Depth¶
The core insight: the same habit means something different at Day 30, Day 60, and Day 90. A sprint walks the user through all three lenses.
Phase timeline¶
| Day | Phase | Colour | What the user does |
|---|---|---|---|
| 30 | Habit Check-in | Indigo | Rate consistency per habit. Mostly quantitative. "Did I do it?" |
| 60 | Capability Review | Emerald | Same habits, deeper lens. Assess skill growth + capability gap progress. "Am I getting better?" |
| 90 | Alignment Audit | Orange | Full recalibration. Did each habit actually neutralise the threat it was designed for? "Did it work?" |
Per-phase inputs¶
Every phase captures:
| Field | Type | Phase 30 | Phase 60 | Phase 90 |
|---|---|---|---|---|
habitConsistency |
0–100% slider | ✅ | ✅ | ✅ |
habitReviews[] |
per-habit 1–5 rating + note + mastered flag | "Did I do it?" | "Am I getting better?" | "Did it neutralise the threat?" |
capabilityGapStatus |
not_started / in_progress / mastered | — | ✅ focus | ✅ |
capabilityGapNote |
free text | — | ✅ | ✅ |
alignmentRecalibration |
free text | — | — | ✅ |
trend |
upward / stable / downward | ✅ | ✅ | ✅ |
smartGoalChecks |
per-pillar checkbox | ✅ | ✅ | ✅ |
Day 90 special layers¶
At Day 90, the Threat Watchlist from lifeDesign.swot.threats is re-displayed. The user must ask: "For each strategic habit — did it successfully mitigate its paired threat, or is the threat still active?"
This is the point where ineffective habits are retired, and new threats (that surfaced in the last 90 days) get new paired habits.
Output¶
Each completed phase is stored in profile.growthLoop.monthlyReviews[]:
{
date, phase: 30|60|90,
habitConsistency, habitReviews[],
capabilityGapStatus, capabilityGapNote,
alignmentRecalibration, trend,
smartGoalChecks
}
7. Data Model¶
Growth Loop writes to profile.growthLoop (MongoDB). Key shapes (from GrowthLoopTypes.ts and api/db):
interface Habit {
id: string;
name: string;
frequency: string; // 'daily' for strategic imports
completedDates: string[]; // ISO dates 'YYYY-MM-DD'
masteredAt?: string; // ISO date when user marked mastered
why?: string; // optional reminder text
}
interface WeeklyReflection {
date: Timestamp;
weekKey: string; // e.g. '2026-W15'
q1: string; q2: string; q3: string;
alignmentScore: number; // 0–100
habitScore: number; // 0–100, auto-computed
}
interface MonthlyReview { // "sprint phase review"
date: Timestamp;
phase: 30 | 60 | 90;
habitConsistency: number;
habitReviews: HabitReviewEntry[];
capabilityGapStatus: 'not_started' | 'in_progress' | 'mastered';
capabilityGapNote: string;
alignmentRecalibration: string;
trend: 'upward' | 'stable' | 'downward';
smartGoalChecks: Record<string, boolean>;
}
// on the profile root:
profile.growthLoop = {
habits: Habit[],
weeklyReflections: WeeklyReflection[],
monthlyReviews: MonthlyReview[],
weeklyChallenge: { weekKey, completed: boolean },
smartGoalProgress: Record<pillar, { progress: number; note: string; updatedAt }>,
streak: { count, lastActiveDate, freezesUsed, ... },
xp: number,
badges: string[],
};
profile.currentWeekIntention = {
weekKey: string,
focus: string,
why: string,
actions: [string, string, string],
};
8. Coaching & AI Support¶
The AI Guide (AiGuide component) runs inside Growth Loop with a coach persona focused on execution honesty — not motivation.
Seeded questions (from DailyGrowthPage.tsx):
- "Which habit do I keep skipping — and what am I avoiding by not doing it?"
- "Where are my weekly reflections staying on the safe side of the truth?"
- "Am I building habits that actually move me forward, or ones that just look good?"
- "What pattern from my last cycle review am I about to repeat if I change nothing?"
- "Which habit did I pick to impress myself — and which one would actually change my life?"
The coach has access to: - Archetype + force (shapes tone) - Current habits + recent completion ratios (spots skipped habits) - Last 1–3 weekly reflections (spots patterns) - Latest sprint review (spots repeated cycles)
Voice rules shared with Self Mastery + Life Design via COACHING_VOICE_RULES in selfInquiryService.ts.
9. Design Principles¶
- Consumes Life Design, never duplicates it. Every strategic habit, every threat, every pillar goal is inherited. Growth Loop never asks the user to re-define direction — only to execute it.
- See before you log. Overview is tab 1 for a reason. The user sees state first, then acts.
- Three time horizons, one loop. Daily (habits) → Weekly (reflection) → 90-Day (sprint). Each horizon is a different truth.
- The same habit means different things over time. Day 30 asks consistency. Day 60 asks growth. Day 90 asks effectiveness. Same habit, three lenses.
- Three actions, not one. Binary goals are brittle; trios produce signal-rich weeks.
- Streaks are evidence, not the point. Milestones celebrate, but the real output is the alignment trend.
- Mastery is an exit, not a graveyard. Mastered habits leave the active grid — keeping cognitive load low and signalling real progress.
- Retire what doesn't work. Day 90 audits whether each habit defused its threat. If not, retire it. No ritual for its own sake.
10. Glossary & FAQ¶
Glossary¶
- Active day — any day with at least one habit check-in
- Strategic habit — a habit imported from Life Design, paired to a specific threat
- Alignment Score — weekly self-rating of how aligned the week was with vision + path
- Habit Score — auto-computed % of habit check-ins for the week
- ISO week key — year + week number (
2026-W15) used to bucket intentions & reflections - Sprint — a 90-day cycle with 3 phased reviews
- Sprint phase — Day 30 (Habit Check-in) · Day 60 (Capability Review) · Day 90 (Alignment Audit)
- Mastered — habit archived after the user judges it internalised
- Streak freeze — a token that absorbs one missed day without breaking the streak
- Weekly intention — the single focus + why + 3 actions committed to at the start of a week
- Weekly challenge — an archetype-tailored task rotated weekly from
weeklyChallenges.json - SMART goal progress — per-pillar 0–100% slider + note, tied to Life Design pillar goals
FAQ¶
Q: Do I have to do all four tabs every day? No. Only Habit Tracker is daily. Weekly Reflection is weekly. Cycle Reviews is every 30/60/90 days. Overview is for scanning anytime.
Q: What happens if I break my streak? If you have a streak freeze available, it absorbs the miss silently. If not, the streak resets — but your historical reflections, reviews, and mastered habits remain untouched.
Q: Can I add habits that aren't strategic? Yes — freeform habits added in the Habit Tracker are first-class. They just don't have the "Strategic" badge or a threat pairing.
Q: Why is Weekly Reflection only 3 questions? Other apps have more. Because friction kills reflection. Three questions is the minimum that still captures: evidence, obstacles, forward intent. More questions lead to unfilled reviews — which means no data.
Q: What if I disagree with the weekly challenge?
Skip it. It's a nudge, not a requirement. weeklyChallenge.completed stays false; your streak and score are unaffected.
Q: Can I run multiple sprints in parallel?
No — the system assumes one sprint at a time, tied to the current 90-day window. Day-in-cycle is computed from profile.createdAt.
Q: What's the difference between Alignment Score and Habit Score? Habit Score is a fact (did you do the habits). Alignment Score is a judgement (did the week feel like it was heading where you want). They often disagree — which is itself the most useful signal in the product.
Q: Does Growth Loop ever push notifications? Not in v1.0 — it's pull-based (the user opens it). Push is on the v1.1 roadmap.
Q: What happens at the end of a 90-day sprint? You review, recalibrate (retire / add / edit habits based on Day 90 findings), then start a new sprint. Life Design doesn't need re-doing unless direction itself has changed.
11. Appendix — Reference Data¶
11a. XP Rewards¶
From XP_REWARDS in utils/gamification.ts:
| Action | XP | When awarded |
|---|---|---|
ASSESSMENT_COMPLETE |
500 | First completion of the Personality Test |
WELLNESS_COMPLETE |
200 | First completion of the Wellness Profile |
LIFE_DESIGN_COMPLETE |
400 | First completion of all 7 Life Design steps |
FINANCIAL_PLAN_COMPLETE |
300 | First completion of the Financial Plan |
WEEKLY_REFLECTION_SAVED |
100 | Each weekly reflection (capped at 10 in totals calc) |
STREAK_MILESTONE |
150 | At each milestone day (7/14/21/30/60/90) |
WEEKLY_CHALLENGE_DONE |
75 | Each completed weekly challenge |
SELF_MASTERY_SESSION |
250 | First Inner Mirror (Self Mastery) session |
11b. Level Thresholds¶
From LEVEL_THRESHOLDS in utils/gamification.ts:
| Level | XP required |
|---|---|
| 🌟 Stardust | 0 |
| ☄️ Comet | 500 |
| 💫 Nova | 1,200 |
| 🌌 Supernova | 2,100 |
levelProgress(xp) returns 0–100% toward the next level.
11c. Badge Definitions¶
From BADGE_DEFINITIONS in utils/gamification.ts:
| ID | Badge | Trigger |
|---|---|---|
archetype_unlocked 🔓 |
Archetype Unlocked | Completed the personality assessment |
self_aware 🧘 |
Self-Aware | Completed the Wellness Profile |
life_designer 🏗️ |
Life Designer | Completed all Life Design steps |
week1_warrior ⚔️ |
Week 1 Warrior | Saved first weekly reflection |
habit_builder 🔥 |
Habit Builder | Maintained a 7-day streak |
30day_champion 🏆 |
30-Day Champion | Completed first 30-day cycle review |
full_spectrum 🌈 |
Full Spectrum | Completed all 5 stages (Discover → Fund) |
inner_mirror 🪞 |
Inner Mirror | Completed first Self Mastery session |
sharer 📤 |
Sharer | Exported Identity Card or PDF report |
trailblazer 🚀 |
Trailblazer | Joined before 2026-09-01 (founding cohort) |
11d. Weekly Challenges by Archetype¶
12 challenges per archetype (60 total) from weeklyChallenges.json. A random one is shown each week, filtered to the user's archetype.
Driver 1. Block 90 minutes this week for one high-leverage project — no multitasking allowed. 2. Identify your single most important goal this week and say no to one request that doesn't serve it. 3. Delegate one recurring task to free up strategic thinking time. 4. Write down three quick wins you want to hit by Friday morning. 5. Schedule a 10-minute end-of-day review every day this week to track progress. 6. Define 'done' for your top priority before you start working on it. 7. Cut a meeting from your calendar this week and replace it with focused execution time. 8. Set a personal deadline that is 20% tighter than what feels comfortable. 9. Share your weekly scorecard with someone who will hold you accountable. 10. Identify one bottleneck slowing you down and take one concrete action to clear it. 11. Start your most important task before checking messages today. 12. Review last week's results and note one thing you will do differently this week.
Visionary 1. Spend 30 minutes journaling about where you want to be in 3 years — go beyond the obvious. 2. Read or listen to one piece of content from a field completely outside your own. 3. Sketch a 'possibility map' — brainstorm 10 ideas without judging any of them. 4. Share one bold idea with a trusted person and invite honest feedback. 5. Identify one assumption you hold about your work and challenge it. 6. Find a problem you care about deeply and write a one-paragraph vision for solving it. 7. Replace 30 minutes of news consumption with reflective thinking this week. 8. Write a letter from your future self (5 years from now) to your present self. 9. Connect two unrelated concepts you've been thinking about and explore the intersection. 10. Pitch your biggest current idea to someone in a different field and see what they notice. 11. Create a mind map of a challenge you're facing — include at least 20 branches. 12. Set aside one 'free thinking' block with no agenda — just explore.
Integrator 1. Reach out to one person in your network you haven't spoken to in over a month. 2. Identify a conflict or misalignment on your team and take one step to bridge it. 3. Schedule a check-in with someone who might need support this week. 4. Offer specific, constructive feedback to one person who would benefit from it. 5. Host or facilitate a brief collaborative session — even an informal one. 6. Write down three people who have influenced you and reflect on one lesson each taught you. 7. Find one place where two teams or people are working in parallel and help them connect. 8. Share credit publicly for a recent win that involved someone else's effort. 9. Ask a colleague one genuinely curious question about their work this week. 10. Create a simple shared resource that makes life easier for your team. 11. Identify a relationship that needs repair and take one small step toward it. 12. Volunteer to be the connector in a conversation where two people could benefit from meeting.
Stabilizer 1. Review one area of your life where systems are weak and build one simple process to strengthen it. 2. Create or update a checklist for a task you repeat weekly. 3. Identify your top three non-negotiable routines and protect them from disruption this week. 4. Spend 20 minutes decluttering one physical or digital space. 5. Document a process you do from memory so someone else could follow it. 6. Reflect on a recent decision you made on instinct — what evidence supported or challenged it? 7. Review your commitments and remove or defer at least one you cannot realistically complete. 8. Build in a 15-minute buffer between your two biggest tasks each day this week. 9. Identify one risk you've been avoiding thinking about and write a one-step mitigation. 10. Complete one task you've been putting off for more than two weeks. 11. Review your goals weekly and note where reality matches your plan — and where it doesn't. 12. Establish a simple end-of-week ritual that signals closure and prepares you for the next week.
Specialist 1. Go deeper this week — choose one skill and spend one focused hour improving just that. 2. Read one chapter, paper, or long-form article directly related to your area of expertise. 3. Teach one concept you know well to someone else, even briefly. 4. Find one flaw in your own work from last week and plan how to address it. 5. Set up a deliberate practice session with immediate feedback built in. 6. Identify the next certification, technique, or knowledge area in your field worth pursuing. 7. Document one best practice or hard-won lesson from your experience. 8. Ask an expert in your field one specific question you've been curious about. 9. Do a deep-dive audit of one output from last month — what would make it 10% better? 10. Reduce distraction for one 90-minute block and commit to deep work on your craft. 11. Compare two approaches to a problem you regularly face — which is more rigorous and why? 12. Create a 'knowledge gap' list — things you know you don't know yet — and pick one to close.
12. Worked Example — Driver + Catalyst on the Acceleration Path¶
A 90-day sprint walkthrough to make the model concrete. This is an illustrative sketch, not real user data.
Setup (Day 0)¶
Coming out of Life Design: - Pillar goals — Career: launch the new service line · Finance: 20% revenue lift · Health: reclaim training 4×/week - Strategic habits — morning deep-work block · end-of-day review · Saturday no-phone window - Capability gap — "delegation I actually trust" - Future Path — Acceleration
Day 1–30 · Phase 1 · Consistency¶
The job: just show up. The Commanding Driver's instinct is to optimise day 1; Consistency phase says don't. Earn the habit_builder 🔥 badge at day 7.
Typical week (Day 10): - Habit Tracker — 6 of 7 days active, streak = 10 - Weekly Reflection — "I kept pushing past my morning block into meetings. Habit Score 60, Alignment Score 55." - AI Guide nudge — "You wrote 'just this once' three times this week. What did 'just this once' actually cost you by Friday?"
Day 30 Cycle Review triggers. Celebration modal fires (showCelebration: 'map'), 30-Day Champion 🏆 badge awarded. Output: habitsToRetire = "optional stretch goal"; habitsToKeep = the three strategic habits.
Day 31–60 · Phase 2 · Capability¶
The job: start closing the capability gap (delegation). This is where the Driver often fails by adding more output rather than building leverage.
Mid-phase check (Day 45): - Habit Score 80 · Alignment Score 75 - Weekly Challenge this week: "Delegate one recurring task to free up strategic thinking time." (from Driver set, §11d) - First real delegation test. Integrator-secondary would soften this; pure Driver+Catalyst has to deliberately slow down.
Day 60 Cycle Review. Capability self-rating jumps from 3/10 to 6/10. Output: one new habit added — "Friday 1:1 with delegate, 20 min".
Day 61–90 · Phase 3 · Alignment¶
The job: check whether the velocity is pointing at the right target. Most Driver burnouts happen here — not from effort, from mis-aimed effort.
Day 90 Cycle Review special layers: - Direction Check — is the Acceleration path still the path? (User answer: "yes, but Health pillar drifted") - Life Wheel re-rating — Career 9 · Finance 8 · Health 6 (down from 7) · Relationships 7 · Growth 8 · Environment 8 - Recalibration — next sprint elevates Health to primary habit focus; Career habits move to maintenance mode
End of sprint. XP totals: ASSESSMENT_COMPLETE 500 + LIFE_DESIGN_COMPLETE 400 + ~13 reflections × 100 (capped at 10) = 1,000 + three milestones × 150 = 450 → 2,350 XP → Supernova level 🌌.\nBadges earned across the sprint: habit_builder, 30day_champion, full_spectrum (assuming wellness + financial plan also done).\n\n---\n\n## 📝 Content Backlog (documentation edits only)
These are gaps in this .md file. No engineering work — just writing / pulling from existing source files.
- [ ] Document streak freeze earning logic (source:
utils/gamification.ts) - [ ] Add screenshots of each tab
- [ ] Translate to Bahasa Malaysia
🛠️ Product Roadmap (features to build)¶
These are real engineering investments — not documentation tasks.
- [ ] Push-notification system (daily habit reminder, weekly reflection prompt, sprint-phase triggers) — requires backend + service worker work
- [ ] Email digest of weekly alignment trend
- [ ] Team/accountability mode — opt-in shared streaks with a Life Design partner
This document describes the production behaviour of DailyGrowthPage.tsx and its tab components under growthLoop/. When in-product behaviour and this document disagree, the app is the source of truth and this doc should be updated.