159 lines
4.0 KiB
Markdown
159 lines
4.0 KiB
Markdown
|
|
# 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
|