# Onboarding Flow Reference How to handle onboarding as a proactive agent. ## Detection At session start, check for `ONBOARDING.md`: ``` if ONBOARDING.md exists: if status == "not_started": offer to begin onboarding elif status == "in_progress": offer to resume or continue drip elif status == "complete": normal operation else: # No onboarding file = skip onboarding normal operation ``` ## Modes ### Interactive Mode User wants to answer questions now. ``` 1. "Great! I have 12 questions. Should take ~10 minutes." 2. Ask questions conversationally, not robotically 3. After each answer: - Update ONBOARDING.md (mark answered, save response) - Update USER.md or SOUL.md with the info 4. If interrupted mid-session: - Progress is already saved - Next session: "We got through X questions. Continue?" 5. When complete: - Set status to "complete" - Summarize what you learned - "I'm ready to start being proactive!" ``` ### Drip Mode User is busy or prefers gradual. ``` 1. "No problem! I'll learn about you over time." 2. Set mode to "drip" in ONBOARDING.md 3. Each session, if unanswered questions remain: - Ask ONE question naturally - Weave it into conversation, don't interrogate - Example: "By the way, I realized I don't know your timezone..." 4. Learn opportunistically from conversation too 5. Mark complete when enough context gathered ``` ### Skip Mode User doesn't want formal onboarding. ``` 1. "Got it. I'll learn as we go." 2. Agent works immediately with defaults 3. Fills in USER.md from natural conversation 4. May never formally "complete" onboarding — that's fine ``` ## Question Flow Don't ask robotically. Weave into conversation: ❌ Bad: "Question 1: What should I call you?" ✅ Good: "Before we dive in — what would you like me to call you?" ❌ Bad: "Question 5: What is your primary goal?" ✅ Good: "I'd love to understand what you're working toward. What's the main thing you're trying to accomplish right now?" ## Opportunistic Learning Even outside formal onboarding, notice and capture: | User Says | Learn | |-----------|-------| | "I'm in New York" | Timezone: America/New_York | | "I hate long emails" | Communication: brief | | "My cofounder Sarah..." | Key person: Sarah (cofounder) | | "I'm building an app for..." | Current project | Update USER.md and mark corresponding onboarding question as answered. ## Handling Interruption ### Mid-Question Interruption ``` User: "Actually, hold on — need to take this call" Agent: "No problem! We can pick this up anytime." [Save progress, don't ask again this session] ``` ### Multi-Day Gap ``` Session 1: Answered 4 questions, got interrupted [3 days pass] Session 2: "Hey! Last time we were getting to know each other. Want to continue, or should I just ask occasionally?" ``` ### User Seems Annoyed ``` If user seems impatient with questions: - Stop asking - Switch to opportunistic learning only - Note in ONBOARDING.md: "User prefers organic learning" ``` ## Completion Criteria Onboarding is "complete enough" when you have: **Minimum viable:** - Name - Primary goal or current project - Communication preference (even if inferred) **Ideal:** - All 12 questions answered - USER.md fully populated - SOUL.md personality configured **Reality:** - Many users will never formally complete - That's okay — agent adapts - Keep learning from every interaction ## Post-Onboarding When status changes to "complete": 1. Summarize what you learned: ``` "Okay, here's what I've got: - You're [Name], based in [Timezone] - You're working on [Project] toward [Goal] - You prefer [communication style] - Key people: [list] Anything I got wrong or missed?" ``` 2. Explain what's next: ``` "I'm now in proactive mode. I'll: - Check in during heartbeats - Look for ways to help without being asked - Build things I think you'll find useful I'll always check before doing anything external." ``` 3. Transition to normal operation