Problem
No way to analyze loop efficiency after a session. Duration, tokens, and files changed per loop are not persisted.
Proposal
Write per-loop metrics to .ralph/metrics.jsonl (append-only JSONL):
{"loop":1,"duration_seconds":142,"input_tokens":45000,"output_tokens":12000,"files_changed":5,"exit_signal":false,"timestamp":"2026-03-22T10:00:00Z"}
Enables post-hoc analysis: average loop duration, token efficiency, files-per-loop trends.
Files
ralph/ralph_loop.sh — execute_claude_code()
Priority
10/16 — Medium impact, 2 hours effort
Problem
No way to analyze loop efficiency after a session. Duration, tokens, and files changed per loop are not persisted.
Proposal
Write per-loop metrics to
.ralph/metrics.jsonl(append-only JSONL):{"loop":1,"duration_seconds":142,"input_tokens":45000,"output_tokens":12000,"files_changed":5,"exit_signal":false,"timestamp":"2026-03-22T10:00:00Z"}Enables post-hoc analysis: average loop duration, token efficiency, files-per-loop trends.
Files
ralph/ralph_loop.sh—execute_claude_code()Priority
10/16 — Medium impact, 2 hours effort