Analysis of 1,352 messages from Jess's Claude Code sessions across 4 projects.
All 1,352 human messages extracted from conversation logs.
Structure:
{
"project": "personal-log",
"session": "df3f5123",
"timestamp": "2025-12-04T02:07:11.977Z",
"human": "Hey, something's gone wrong with my mobile app...",
"assistant_before": null,
"is_first": true
}Fields:
project: Which project folder (personal-log, blog, pl-context, roguelike)session: Session ID (first 8 chars of conversation filename)timestamp: When the message was senthuman: The actual message contentassistant_before: Claude's message immediately before (for context)is_first: Whether this was the first message in the session
Messages with computed characteristics.
Additional fields:
word_count: Number of wordschar_count: Number of charactersstarts_lowercase: Booleanhas_question: Contains "?"has_ellipsis: Contains "..."has_code: Contains backticksreferences_previous: References earlier context
776 message pairs for cause-effect analysis.
Structure:
{
"human": "yup that worked",
"assistant_response": "Great! Now let's...",
"human_category": "feedback",
"response_type": "continuation"
}Structured analysis of identified patterns.
Contains:
meta: Total messages, projects, date rangecommunication_patterns: 8 patterns with frequencies, signal words, examplesstyle_characteristics: Lowercase starts, question frequency, ellipsis usagenotable_openers: Most common message starters
Main practical guide: "Getting Effective Results with Agentic AI"
- Step 1: Know what you're trying to accomplish
- Step 2: Communicate to stay aligned (detail, validation, feedback)
- Step 3: Recognize when you're stuck
- Step 4: For complex work, use structure
Comprehensive guide with all 8 patterns, session arc, anti-patterns.
One-page cheat sheet.
Blog post telling the story of this analysis session.
| Project | Description |
|---|---|
personal-log |
Mobile app development (React Native, Expo, Firebase) |
blog |
Jekyll blog with syntax highlighting |
pl-context |
Related tooling/infrastructure |
roguelike |
Game project |
Date range: 2025-12-04 to 2026-01-17
- Total messages: 1,352
- Feedback loop messages: ~30%
- Quick questions: ~16%
- Thinking aloud: ~9%
- Affirmation + pivot: ~9%
- Course corrections: ~8%
- Starts lowercase: 52%
- Contains questions: 51%
- Uses ellipsis: 29%
- References previous context: 80%
- Bare affirmations ("yes", "ok"): 0.1%
# Count messages by project
cat /tmp/jess_messages_raw.json | python3 -c "
import json, sys
from collections import Counter
data = json.load(sys.stdin)
print(Counter(m['project'] for m in data))
"
# Find messages containing a pattern
cat /tmp/jess_messages_raw.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for m in data:
if 'your pattern' in m.get('human', '').lower():
print(m['human'][:200])
print('---')
"
# Analyze message lengths
cat /tmp/jess_messages_analyzed.json | python3 -c "
import json, sys
data = json.load(sys.stdin)
lengths = [m['word_count'] for m in data]
print(f'Mean: {sum(lengths)/len(lengths):.1f} words')
print(f'Max: {max(lengths)} words')
"