Telling Technology · Learning in public
All episodes
EP.14 — CHAT HISTORY
The factory mines its own memory

My best episode ideas were buried in old chat logs — so I taught an AI to dig them out

The sharpest moments — a command I didn't know existed, a bug killed in one prompt — happen mid-session and vanish when I close the tab. I already save every Claude Code session to disk. Now an AI reads back through all of them, scores each chunk for novelty, surprise and how well it generalizes, and hands me a pre-qualified backlog of episodes — each one carrying its own source transcript.

A wall of stored AI chat-session files (.jsonl transcripts) streaming into a Claude reader that highlights glowing 'teachable moment' fragments and emits a neat stack of episode cards, house aurora-teal style
⌁ two months of sessions → a scored episode backlog
First: why the best ideas never make it out of the session
01 The problem · the aha-moment tax

The best moments happen mid-build — then the tab closes and they're gone

The teachable stuff almost never shows up when I'm sitting down to plan content. It happens mid-session: a flag I didn't know existed, a bug fixed in a single prompt, a workflow that genuinely surprised me. By the time I think to film it, it's three sessions back and I can't remember the exact words that made it work. Two months of real AI work was sitting on my machine — and the best episode ideas I never wrote down were buried inside it.

claude code — desktop
> the best episode ideas keep happening mid-session and i've forgotten them by evening. i've got two months of claude code transcripts on disk. can we mine them for the teachable moments automatically?
You already have the raw material. Every session you run is saved as a transcript on disk. The problem isn't capture — it's triage: which 30 seconds of a 2-hour session is actually an episode? That's a scoring job, and a model is good at scoring. Read them back, rank the moments, surface the winners.
A timeline of AI sessions where bright 'aha' sparks flare up mid-session and fade to grey by the end of each day, illustrating ideas lost when the tab closes, house aurora-teal style
the problem
two months of sessions · the best bits never written down
02 The build · I already save every session

Step one was solved months ago: a script quietly archives every session to disk

I don't rely on remembering to save anything. A small capture script copies every Claude Code session — the raw .jsonl transcripts the tool writes under .claude — into a dated archive on disk, automatically, every session and not just the ones I think to keep. That part has been running for months. So the corpus already exists: every prompt, every reply, every "wait, that actually worked?" moment, sitting in a folder. The new work isn't capturing it — it's reading it back.

claude code — desktop
> /archive-sessions
Captured 142 sessions (≈2 months) → ~/archive/sessions/. Raw .jsonl transcripts, de-duplicated, timestamped. Nothing depends on me remembering to hit save. The corpus is ready to mine.
A terminal showing a session-capture script copying dated .jsonl Claude Code transcripts into an archive folder, with a running count of captured sessions, house aurora-teal style
already running
every session → dated .jsonl archive, automatically
03 The honest part · the scorer is new — and these scores are a mock-up

An AI reads each session and scores it — but I won't pretend these numbers are from a finished run

The new layer pipes each archived session through Claude with one job: find the teachable moments and score them on three axes — novelty (did something genuinely new happen?), surprise (did it defy what I expected?), and generalizability (would it help someone who isn't me?). Anything that clears the bar becomes a candidate episode, with a pointer back to the exact session chunk it came from. The honest caveat: the capture is real and running, but this scoring layer is freshly built — the scored table you'll see on this page is a representative mock-up, not the output of a fully validated run. I'd rather show you the shape of it than fake a leaderboard.

claude code — desktop
> score every archived session for teachable moments — novelty, surprise, generalizability. return the top candidates with a link back to the source chunk.
Scored 142 sessions19 candidate moments above threshold. Top hit: a session where /watch failed with "Unknown command" → became a published episode. Each candidate carries its source transcript + a ready story arc. (Scores shown on the page are a representative sample while the scorer is validated.)
A table of flagged session moments, each scored on novelty, surprise and generalizability, with one highlighted top candidate and a small 'representative sample' label, house aurora-teal style
scored moments
novelty · surprise · generalizability — top candidates rise
⚠️

The capture is real. The scores on this page are a mock-up — on purpose.

The session-capture script has been archiving every conversation for months — that part genuinely runs. The scoring & ranking layer is brand new, and I don't have a clean, fully-validated live run to screenshot yet. So the scored table here is a representative reconstruction of the format, not a real leaderboard. When the scorer has a verified run behind it, I'll swap in the real numbers — until then I'm flagging it rather than dressing a mock-up up as a result.

04 The receipts

The capture, the scorer, the pipeline, and one real before → after

Four pieces of the system: the capture script archiving a session, the scoring pass ranking the moments, the whole pipeline on one diagram, and a real before → after — a raw session chunk where /watch failed, turned into the published "Learn things by not watching" episode. Tap any image to enlarge it and read the exact prompt that drew it.

MINED FROM TWO MONTHS OF REAL SESSIONS

The factory now feeds itself

This is the loop closing. The same AI that had the conversations reads them back, finds the moments worth showing, and hands me a pre-qualified backlog — each idea already carrying the session that proves it happened. I stop hunting for episode ideas and start approving them. The system that builds the pages at night now also helps decide what the pages should be about — sourced from my own work instead of a blank page.

A loop diagram — AI sessions feeding a transcript archive, the archive feeding a scorer, the scorer emitting episode cards that flow back into the content pipeline: the factory feeding itself, house aurora-teal style
142 sessions → 19 candidate moments → a backlog I approve instead of brainstorm
06 Steal this

Mine your own session history

The capture script (archive every Claude Code session to disk), the teachable-moment scoring prompt (novelty / surprise / generalizability), the pipeline that turns winners into episode candidates, and a demo that runs on synthetic transcripts so you never expose your own. Everything in this episode is free and open — clone it, run it, make it yours.

skill /archive-sessions prompt teachable-moment scorer template episode candidate demo synthetic transcripts
run it gh repo clone jacobskogstrom/claude-session-miner ~/claude-session-miner && cd ~/claude-session-miner && cat README.md

No GitHub? Comment MINE on the post and the bot DMs you the link.

Next episode

When the miner writes its own backlog

Right now I still approve each candidate by hand. Next: the scorer writes the /bitesize work package itself — story beats, assets, the lot — and drops it straight into the nightly engine. The night build then picks an idea the AI mined, framed, and queued without me. Mine → score → brief → page, end to end.

Darkened teaser — a scored session candidate auto-writing a nightly work package that flows straight into a build queue, no human in the loop, house aurora-teal style
drops next · follow @tellingtechnology so you don't miss it