jsonl-transcript-path-and-structure-for-flush

Claude Code JSONL transcripts live at ~/.claude/projects/-root-aj-workspace/{session_id}.jsonl with standard message.role + message.content structure. The session_id is passed via the Stop/PreCompact hook stdin payload. Transcripts with fewer than 15 messages should be skipped as they contain insufficient signal. Deduplication window of 120 seconds prevents double-submission when both Stop and PreCompact hooks fire in rapid succession.