user journey map: first thread to mastery
derived from learning curves analysis of 4,656 threads | 9 months | 20 users
journey overview
┌─────────────────────────────────────────────────────────────────────────────────┐
│ │
│ FIRST THREAD ─→ LEARNING CURVE ─→ PLATEAU ─→ MASTERY │
│ │
│ week 1-2 month 1-2 month 3-4 month 5+ │
│ ──────── ───────── ───────── ──────── │
│ discovery calibration stabilization optimization │
│ 68 turns avg →45 turns →35 turns →28 turns │
│ 0.22 steering →0.15 →0.12 →0.09 │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
stage 1: discovery (week 1-2)
characteristics
| metric | typical value | what it means |
|---|---|---|
| avg turns | 68+ | exploring capabilities, unsure when to stop |
| steering | 0.22+ | frequent course corrections needed |
| success rate | ~40% | many abandoned or unresolved threads |
| first message | vague, no file refs | ”make the auth better” |
user experience
- overwhelmed by capabilities — unclear what agent can/cannot do
- underspecified prompts — insufficient context leads to agent guessing
- premature abandonment — gives up before 26 turns
- rescue-mode oracle — uses oracle as panic button, not planning tool
evidence (verbose_explorer, month 1)
june 2025: 197 avg turns, 1.13 steering
→ early adoption friction visible
success markers for stage exit
- completed one thread with @file references
- reached 26+ turns without abandoning
- used verification command before declaring done
stage 2: calibration (month 1-2)
characteristics
| metric | typical value | improvement from stage 1 |
|---|---|---|
| avg turns | 45-55 | -25% thread length |
| steering | 0.15-0.20 | -30% corrections needed |
| success rate | 50-55% | +15pp |
| first message | 300-1500 chars, some file refs | beginning to structure context |
user experience
- learning the rhythm — understands approve/steer cadence
- discovering file references — realizes @mentions boost success +25pp
- calibrating message length — finds the 300-1500 char sweet spot
- first successful marathon — completes a 50+ turn thread successfully
behavioral shifts
| from | to |
|---|---|
| declarative openers | imperative/interrogative |
| no file refs | @file mentions |
| rescue oracle | planning oracle |
| abandon at friction | push through to 26+ turns |
evidence (aggregate trend)
july 2025: 46.2 avg turns (vs 75.1 in may)
→ 38% reduction in thread length
success markers for stage exit
- 2:1 approval:steering ratio maintained
- using oracle for planning, not rescue
- successful spawned subtask delegation
stage 3: stabilization (month 3-4)
characteristics
| metric | typical value | improvement from stage 2 |
|---|---|---|
| avg turns | 35-40 | -20% thread length |
| steering | 0.10-0.15 | -30% corrections needed |
| success rate | 60-65% | +10pp |
| first message | structured, file refs, verification criteria | mature opener pattern |
user experience
- consistent patterns — same opener structure every thread
- domain vocabulary emerges — speaks at expert level without explanation tax
- approval automation — brief confirmations (“yes”, “ship it”, “go on”)
- steering prevention — context quality prevents rather than corrects
behavioral signatures
opener template established:
@src/auth/login.ts @src/auth/types.ts
the login handler isn't validating refresh tokens.
add validation that checks expiry and signature.
run `pnpm test src/auth` when done.
evidence (verbose_explorer improvement)
oct-nov 2025: 35 avg turns, 0.15 steering
→ stabilized from early chaos
success markers for stage exit
- consistent opener pattern across 10+ threads
- domain vocabulary established (unique terms appearing)
- handoff chains working smoothly (read_thread references)
stage 4: optimization (month 5+)
characteristics
| metric | typical value | improvement from stage 3 |
|---|---|---|
| avg turns | 23-30 | -25% thread length |
| steering | 0.09 or less | -40% corrections needed |
| success rate | 65-82% | +5-20pp |
| first message | tailored to task type | interrogative for exploration, imperative for known fixes |
user experience
- effortless efficiency — tasks complete with minimal friction
- style matched to task — questions for exploration, commands for fixes
- verification gates automatic — test runs before every commit
- strategic tool usage — spawn for parallel, oracle for complex
evidence (verbose_explorer mastery)
jan 2026: 22.7 avg turns, 0.09 steering
→ 68% reduction from first month
the three archetypes at mastery
different users reach mastery via different paths:
the efficient operator (steady_navigator pattern)
trajectory: efficient from start, minimal learning curve
signature: low steering (0.10), fast threads (36 turns), 67% success
style: interrogative openers, frequent approval, visual grounding
lesson: prompt craft matters more than experience
the marathon runner (concise_commander pattern)
trajectory: long sessions, high steering, but still resolves
signature: high turns (86), high steering (0.81), 71% success
style: socratic questions, wait interrupts, never quits
lesson: persistence + steering = success on hard problems
the architect (precision_pilot pattern)
trajectory: massive context front-loading pays off
signature: 4280 char openers, 73 turns, 82% success
style: architectural framing, design-doc-quality first messages
lesson: if task is complex, explain it fully upfront
journey timeline (modal path)
week 1-2: DISCOVERY
└─ complete first successful thread with file refs
month 1: EARLY CALIBRATION
└─ establish 2:1 approval:steering ratio
└─ hit 300-1500 char sweet spot
month 2: LATE CALIBRATION
└─ use oracle for planning (not rescue)
└─ first successful spawn delegation
month 3: EARLY STABILIZATION
└─ consistent opener template
└─ domain vocabulary emerging
month 4: LATE STABILIZATION
└─ handoff chains working (read_thread)
└─ verification gates automatic
month 5+: OPTIMIZATION
└─ style matched to task type
└─ <25 turn threads with 65%+ success
critical transitions
transition 1: discovery → calibration
trigger: first successful 50+ turn thread
blocker: vague prompts, no file refs, premature abandonment
intervention:
- mandate @file references in every opener
- set minimum 26-turn commitment before abandonment
- reframe oracle as planning tool
transition 2: calibration → stabilization
trigger: consistent 2:1 approval:steering ratio
blocker: inconsistent opener quality, rescue-mode oracle usage
intervention:
- standardize opener template
- practice brief approval vocabulary (“yes”, “ship it”)
- spawn delegation for parallel work
transition 3: stabilization → optimization
trigger: domain vocabulary established, handoffs working
blocker: one-size-fits-all prompting, missing verification gates
intervention:
- match style to task (interrogative vs imperative)
- mandatory test runs before commit
- strategic skill usage (dig for debug, spawn for parallel)
learning rate indicators
fast le@swift_solverrs (2-3 month path):
- drop below 0.15 steering by month 2
- establish domain vocabulary early
- consistent opener pattern by month 3
moderate le@swift_solverrs (4-5 month path):
- stabilize around 0.15-0.20 steering
- gradual vocabulary development
- template consistency by month 4
slow le@swift_solverrs (6+ month path):
- steering remains 0.20+
- inconsistent opener quality
- may never establish domain vocabulary
metrics to track progression
| metric | discovery | calibration | stabilization | optimization |
|---|---|---|---|---|
| avg turns | 68+ | 45-55 | 35-40 | 23-30 |
| steering | 0.22+ | 0.15-0.20 | 0.10-0.15 | <0.10 |
| success rate | ~40% | 50-55% | 60-65% | 65-82% |
| approval:steering | <1:1 | 1-2:1 | 2:1 | >2:1 |
| file refs | rare | sometimes | usually | always |
| verification | never | sometimes | usually | always |
intervention points
if stuck in discovery (>1 month):
- pair with power user for 5 threads
- mandate @file refs (no exceptions)
- set 26-turn minimum before abandonment
if stuck in calibration (>2 months):
- review 10 threads for approval:steering ratio
- practice brief approval vocabulary
- oracle usage audit (planning vs rescue)
if stuck in stabilization (>3 months):
- establish domain vocabulary explicitly
- standardize opener template
- handoff chain practice (read_thread)
generated: 2026-01-09 | clint_glitterski