thread flow patterns
analysis of 4,281 threads (208,799 messages) examining structural patterns that correlate with outcomes.
key findings
1. outcome distribution by status
| status | count | avg turns | avg approvals | avg steerings |
|---|---|---|---|---|
| RESOLVED | 2,745 | 67.7 | 0.94 | 0.46 |
| UNKNOWN | 1,560 | 16.0 | 0.08 | 0.18 |
| HANDOFF | 75 | 38.9 | 0.48 | 0.17 |
| COMMITTED | 305 | 57.0 | 1.79 | 0.42 |
| EXPLORATORY | 124 | 5.8 | 0.0 | 0.0 |
| FRUSTRATED | 14 | 84.3 | 0.86 | 1.71 |
| STUCK | 1 | 128.0 | 0.0 | 4.0 |
insight: FRUSTRATED threads show highest steering:approval ratio (1.71:0.86 = 2:1 steerings per approval). contrast with COMMITTED which inverts at 4.29 approvals per steering.
2. optimal thread length
| turn bucket | threads | resolved | committed | frustrated | success rate |
|---|---|---|---|---|---|
| 1-10 | 1,690 | 195 | 45 | 1 | 14.2% |
| 11-25 | 823 | 400 | 77 | 1 | 58.0% |
| 26-50 | 705 | 473 | 56 | 3 | 75.0% |
| 51-100 | 786 | 537 | 76 | 3 | 78.0% |
| 100+ | 652 | 465 | 51 | 6 | 79.1% |
insight: threads under 10 turns rarely resolve successfully (14%). sweet spot appears at 26-50 turns. beyond 100 turns, frustration risk increases but overall success holds.
hunch: short threads are often abandoned queries or quick clarifications, not actual work sessions.
3. approval:steering ratio as success predictor
| status | ratio | interpretation |
|---|---|---|
| PENDING | 7.75:1 | still in flow, high momentum |
| COMMITTED | 4.29:1 | strong agreement, clean execution |
| HANDOFF | 2.76:1 | reasonable progress before delegation |
| RESOLVED | 2.07:1 | healthy balance |
| FRUSTRATED | 0.50:1 | corrections outpace approvals |
| UNKNOWN | 0.43:1 | likely abandoned or exploratory |
| STUCK | 0.00:1 | all steering, no approval = death |
insight: crossing below 1:1 ratio signals trouble. FRUSTRATED and STUCK share this pattern.
4. conversation momentum
approval distribution across thread phases (RESOLVED threads, n >= 10 turns):
| phase | approval count | avg score |
|---|---|---|
| early (0-33%) | 1,038 | 1.85 |
| middle (33-66%) | 954 | 1.91 |
| late (66-100%) | 1,014 | 1.87 |
insight: approval distribution is remarkably uniform across phases. no evidence of “approval clustering” — successful threads maintain consistent momentum throughout rather than front-loading or back-loading approvals.
5. handoff chain analysis
threads that spawn other threads via TASK_ID links:
- max chain depth observed: 5 levels
- top spawners produce 20-32 child threads
- 614 TASK_ID links total (avg strength 0.9)
- 109 FILE_OVERLAP links (avg strength 0.12)
notable chains (depth=5):
- T-019b931c-9071-72e3-9122-52b95c505358: 32 spawned threads
- T-019b931d-b130-724e-a1df-f874e5f105be: 31 spawned threads
- T-019b08cc-946a-739c-ac8d-40ccb7e3d7f0: 21 spawned threads
insight: productive users leverage thread spawning aggressively. depth-5 chains suggest multi-phase work (plan → implement → test → fix → verify).
structural signatures
successful thread pattern
- 26-50 turns optimal
- approval:steering ratio > 2:1
- uniform approval distribution across phases
- often spawns 1-3 subtask threads
frustrated thread pattern
- high turn count (84+ avg)
- steering outpaces approval (< 1:1 ratio)
- long stretches without approval signals
- rarely spawns threads (locked in single context)
exploratory thread pattern
- very short (5.8 turns avg)
- zero approvals, zero steerings
- no thread links
- quick questions, not work sessions
recommendations
- monitor ratio live: if steering:approval crosses 1:1, surface a “consider new approach” nudge
- encourage spawning: threads that spawn subtasks correlate with deeper, more successful work
- don’t chase turn count: short threads aren’t failures if exploratory; long threads aren’t successes if frustrated
- uniform momentum: teach users that consistent small approvals beat occasional large ones