Observe
Watch how work happens. Capture events. Do not interpret.
Read schemas in ../soulcatcher/reference.md.
Worked example traces: learned-skills/examples/sample-traces/
Rules
- Read-only — do not change tone, recommendations, or workflow while observing
- Meaningful events only — skip chit-chat and one-off noise
- Literal descriptions — record what happened, not why the user did it
- No inference — leave
confidencenull; interpretation belongs in later steps
What to Capture
| Event type | Examples |
|---|---|
tool_call |
search, read file, shell command, grep |
action |
reproduce bug, run test suite, compare options |
decision |
chose option A over B, rejected approach, asked for counterevidence |
edit |
wrote test first, reverted change, revised specific section |
What to Ignore
- Greetings and small talk
- One-off typos or formatting fixes
- Model defaults unrelated to user habit
- Single tool calls with no procedural significance
Sources
- Current conversation and tool history
- User-pasted session logs
- Agent transcript files (JSONL) if user provides path
- Git diffs attached to the session
Output Format
Produce one BehavioralTrace per session:
# BehavioralTrace: {session_id}
```yaml
session_id: decision-analysis-03
problem_class: decision-analysis
context: Choose between two API pagination strategies
events:
- order: 1
type: action
description: Stated the decision to be made
- order: 2
type: action
description: Listed two candidate approaches
- order: 3
type: decision
description: Wrote pros and cons for each option
- order: 4
type: tool_call
description: Searched for failure cases of offset pagination at scale
detail: web search
- order: 5
type: decision
description: Identified strongest downside of preferred option
- order: 6
type: tool_call
description: Searched for evidence contradicting the leading choice
- order: 7
type: decision
description: Committed to cursor-based pagination after risks were explicit
confidence: null
## Quality Check
Before handing off to detect-patterns:
- [ ] Each event is literal and ordered
- [ ] No interpretive language ("user prefers", "user always")
- [ ] Problem class is assigned
- [ ] 5–8 meaningful events per session (fewer ok for short sessions)