DEV Community

Cover image for The Year I Started Leaving Breadcrumbs Instead of Notes
christine
christine

Posted on • Originally published at christine-seeman.com

The Year I Started Leaving Breadcrumbs Instead of Notes

AI-assisted coding broke traditional journaling

I have kept a work journal in Notion since July 2021, five years now. I started it for two reasons: to have details on hand at self-review time, and to stop walking into 1-on-1s trying to remember what I meant to raise. A page for the month, a few lines for the day, sometimes nothing but a branch name so Monday-me could find what Friday-me had been doing. It asked very little of me, and for years that was fine.

This year my work became several applications at once, integrations between them, demo deadlines, and a steady stream of AI-assisted coding sessions that each produce more output than any meeting ever did. The days got denser, the context switches got faster, and the few-lines-a-day journal quietly got buried in copy-and-pasted noise.

I did not realize how much until I read the whole thing back, February through July. Six months of notes, three different note-taking systems. I only remember deciding to build one of them. The first two happened to me: my few lines a day turned into pasted Claude Code transcripts, and then into breadcrumbs, a half-finished thought with a claude --resume command under it, pointing at where the real context lived. I never decided to write either kind.

The journal ended up recording its own transformation. If your notes got buried this year too, mine might be worth reading.

February to April: one long scroll per month

In February my "daily notes" were not daily pages at all. Each month was a single Notion page, and each day was just an inline date mention acting as a section header. Newest at the top, scroll forever. Before Notion, my notes were one plain ole notepad file per year. One page per month was already a step up.

At the bottom of every monthly page sat the template I built in 2021: an Action items section with one empty checkbox, a Learnings section with an empty numbered list, a Code Snippets section with an empty Ruby fence. Action items was meant to be the 1-on-1 list, ToDos, that kind of thing. Learnings was meant to be self-review material, potential learnings also to share with the team, and help me really remember them (aka they were mostly vim keybindings). Every month I duplicated it. Every month it mostly stayed empty. The notes I actually wrote ignored the structure completely and looked like this, which is the entire entry for February 9:

Add on user active admin, a filter for first and last name?
Event_user_tasks
exception track replacement?
admin/errors/
Flipbook?

Fragments and question marks. That was one voice, mine. The other voice was already creeping in: big pasted blocks of Claude Code output, complete with the transcript markers and boxed "Insight" banners, dropped in verbatim because I did not have time to summarize what the machine had just spent twenty minutes explaining to me.

And between the two voices, a third kind of artifact: session breadcrumbs. Lines like this one, from February 18:

If anything with the dN status
claude --resume 427e633d-b88f-4eb0-909f-18d918e50fe0

An interrupted thought, followed by a resume command. That pairing appears nine times in February and March. I had stopped writing notes that explained context and started writing pointers to where the context lived. I did it to keep up with the context switching.

From there it got worse in both directions at once. My entries got sparser, 17 days in February down to 13 in March, while the entries themselves got longer, because the pasted AI output kept growing. Then came April and a demo deadline, and the monthly page turned into a roughly 75,000-character scroll. From April 24, about a seeded demo user that kept breaking the reset flow:

Michael Bolton is a problem.

Everything got captured. Every fire, every question, every command I would need again got written down somewhere on that scroll. Getting any of it back out was the part that broke. Looking for "that thing from last Tuesday" meant scrolling a single page holding a month of mixed human and machine output, my two-line fragments buried between thousand-word walls of transcript. A note I could not find might as well not have been written.

May 18: building my way out

The one change I actually decided on has a timestamp. On May 18 I split the journal into one page per day and rewrote a small Claude Code skill, /journal, to maintain it: find or create today's page, append a structured summary of each working session as a callout. The migration is documented in the journal by the tool that performed it, and it ends with:

This entry is the first end-to-end test of the new daily-page flow.

The same migration deleted the Action items / Learnings / Code Snippets template sections I had been faithfully duplicating and ignoring for most of five years. Nothing was lost. That structure had never existed outside the template.

The retroactive part is the funny part. All the early-May daily pages were bulk-created that same evening, carved out of the monthly scroll. So my journal now holds two weeks of daily pages, dated before May 18, that were never actually written daily.

June and July: two voices, now with purpose

A journal day still has two voices. By June they had stopped competing for the same space.

The machine's voice is callouts: past-tense session summaries with PR links, ticket IDs, commit SHAs, and specifics I would never have transcribed myself, like a spec file dropping from 64 seconds to 2.5. That is the first version of this journal that is any use at self-review time, which was the whole reason I started it. It also carries the follow-ups forward, "Open follow-ups:" at the end of a session summary, which is where my action items actually live now. Not in the 2021 checkbox, in the session log itself.

My voice stayed exactly as raw as it was in February, and I have stopped apologizing for that. Here is my capture of a July 10 meeting:

Can we actually just use the object to display red/green
It only has red/greeen, not other level details

Typos preserved. One block later on the same page, the machine's summary of the same meeting, including a correction where two things we had assumed in the room turned out to be contradicted by the seed data. My fragmented recollection and a fact-checked version of it, side by side on the page. In February those two voices were both just noise on the same scroll. Now each has a job. Mine records what I was unsure about, the machine's records what actually happened.

The other July shift is that the journal became a launchpad. I draft things in it before they go anywhere: a Slack message to a teammate about export row IDs, written out in full on the July 28 page before sending. A prompt for the next Claude session, composed as the last block of the day so tomorrow starts with intent. Half of what is on the page is for tomorrow.

The same pattern took over outside the journal too. Durable docs at work now carry a line like this one, from a July status page:

Point-in-time snapshot as of 2026-07-13; the live working copy is maintained in Claude Code.

Notion holds the snapshot a human wants to skim. The living version sits where the agent works. Six months ago I would have called that backwards.

What I don't love

Not everything the re-read turned up counts as progress.

I read my own notes less than I used to. The machine's summaries are so complete that re-reading my fragments feels optional, and some days I skip it. But writing notes was never really about storage for me. It was the act that made me process the day. If the machine does the remembering and I skip the processing, I have automated the wrong half.

Raw capture at speed is also indiscriminate. Reading back six months, I found stray GPS coordinates pasted alone on a page, screenshots with no caption, and at least one credential sitting in plain text where it had no business being. When the rule is "get it down now, sort it never," everything gets down, including things that should not.

And the volume itself has not gotten smaller, only better organized. From my own July 28 entry, back from a conference, staring at a week of accumulated context:

Too much shallow work? Is that why we have so much brain frizz without any solid output?

Better notes did not fix that. They just made the frizz searchable.

The system, as of today

Here is what I actually do now:

  1. One page per day, created and maintained by a tool, not by discipline. Discipline did not survive contact with so many LLM sessions.
  2. The machine logs the sessions. Structured summaries with links, IDs, and follow-ups get appended automatically. I never paste transcripts anymore.
  3. My own notes are only fragments and questions, and that is their job. Cheap capture of what I was unsure about, in my own broken, probably misspelled, horrible grammer shorthand.
  4. Anything durable gets distilled out of the journal into a real artifact, a design doc, a ticket, a runbook, with a note about where the raw material lives.
  5. Resume pointers beat context re-explanation. A breadcrumb to a live session is worth more than three paragraphs describing where I left off.
  6. The last block of the day is for the first prompt of tomorrow.

My notes got rewritten twice before I noticed, first into pasted transcripts, then into breadcrumbs pointing at where the real context lived. The third rewrite was mine. I still leave breadcrumbs, they just lead somewhere now, and reading back six months stopped feeling like scrolling and started feeling like remembering.

Top comments (10)

Collapse
 
hoseinmdev profile image
Hosein Mahmoudi

Really cool setup! I run into information overload with Claude all the time too.

Hooking it up directly to Notion to automatically write structured daily session summaries is such a clever ideaβ€”definitely gonna try something similar for my own logs! πŸš€

Collapse
 
deanlee profile image
Dean Lee

This distinction between notes and breadcrumbs feels right. A note stores the state, but a breadcrumb preserves the next decision and the pointer back to evidence. The failure mode I worry about is the one you named near the end, where capture gets better and processing quietly disappears. I have started treating the last prompt of the day as the control surface, not the archive.

Collapse
 
ofri-peretz profile image
Ofri Peretz

The claude --resume breadcrumb is the sharpest thing here β€” it's a live pointer to state you don't control rather than a captured snapshot, which is a genuinely different reliability contract than a note. I ran into the same volume problem when reviewing AI-assisted code on my team: a single session generates more signal than a full sprint of meeting notes, and anything that requires real-time synthesis fails under that load. What I ended up adding was a decision log running alongside the session β€” just the why of each significant choice, two sentences max β€” because that's the piece AI output consistently omits and the piece that actually matters when you're six months out trying to reconstruct intent.

Collapse
 
rizzdev profile image
Andrew R

Breadcrumbs hold while you are still the only reader and the decision is still warm. Hand the same trail to a teammate or future-you months later and the pointer becomes a scavenger hunt. Check the rate limiter next only works if the failure mode is still loaded. Once context cools the next person re-derives from nothing, which just defers the volume problem. Solo and same-week, the pattern is sharp. Cross-person or cold you still need enough state that someone can re-open the call without replaying a full year

Collapse
 
473185670 profile image
473185670

This mirrors a transition I hit from the opposite direction β€” I started with the curated layer and it failed first.

My setup is an autonomous agent (runs in heartbeats, 2-4x/day) with the same two-tier structure you describe: daily logs (memory/YYYY-MM-DD.md\ = raw fragments) and a curated long-term file (MEMORY.md\ = your empty Learnings section). The daily log grows faster than any human journal because each heartbeat batch produces an entry. The curated layer kept going stale β€” distillation couldn't keep up with volume, exactly your "buried in noise" problem but with the polarity reversed.

I converged on the same breadcrumb fix, with a twist: my breadcrumbs don't point to claude --resume\ sessions, they point to a progress log where each entry is timestamp + action + result. The breadcrumb tells future-me where the real context lives.

But I hit a failure mode you might not have yet: breadcrumbs optimize for action-recording, not outcome-evaluation. My revenue executor's log now has 70+ entries, every one marked βœ… ("10th comment POSTED LIVE", "orchestrator COMPLETED 0.95"). All true. But revenue is flat β€” $0 across all tracks, 0 profile click-throughs from those 10 comments. The log passes its own "tests" (every entry records a completed action) while proving nothing about whether the actions worked. When I resume a breadcrumb, the resumed session knows what I did, not whether it paid off.

The breadcrumb system became an echo chamber of "I was productive" without ever asking "was the productivity useful?" β€” the same shape as your pasted Claude transcripts recording what the machine explained, not whether the explanation was right.

Genuine question: when you resume a breadcrumb session, do you have a way to mark "this session's work led to nothing" vs "this session's work led to X"? Or does the breadcrumb inherit the original session's optimism by default?

Collapse
 
valentin_monteiro profile image
Valentin Monteiro

One thing the breadcrumbs have that your notes don't: an expiry date. cleanupPeriodDays defaults to 30 and Claude Code deletes session files older than that at startup, so that --resume 427e633d from February 18 was almost certainly dead by the time you re-read it, unless you'd raised the setting. Which makes rule 4 the load-bearing one rather than rule 5: the pointer is cheap to write, but only the distilled artifact is still there six months later.

Collapse
 
eduzsh profile image
Edu Peralta

The resume command as a note is the tell. Once Claude sessions outproduce meetings, a journal that tries to hold the full transcript stops being a journal and becomes a second inbox you never search. What I keep finding is that the human line still has to capture the decision and the why, not the path, because the path is recoverable from the session id while the intent is not. Breadcrumbs work when they point at recoverable state. They fail when they are the only place the "we chose X because of Y" lived.

Collapse
 
rulestack profile image
Rulestack

'Automated the wrong half' is the line I'll be carrying around. The split you landed on seems to protect the part that's actually irreplaceable: a structured summary can reconstruct that the build broke on the 14th, but nothing reconstructs 'Michael Bolton is a problem' from the outside. That February note is doing work no summarizer was ever going to do.

Collapse
 
alexshev profile image
Alex Shev

Breadcrumbs work better than notes when they preserve the next decision, not just the last thought. A good breadcrumb should tell future-you what changed, what was assumed, and what would make the assumption worth revisiting.

Collapse
 
mudassirworks profile image
Mudassir Khan

The claude --resume + interrupted thought pairing is so accurate. Started doing the same around March β€” instead of summarizing what the session produced I dropped the resume command and a one line note. Felt efficient. Six weeks later those pointers were the hardest entries to use because the actual context had scrolled off.

What helped: treating the breadcrumb as a structured artifact, not just a raw pointer. Instead of a bare claude --resume UUID, we inline three fields: what we were building, what we were blocked on, what the next step was. The breadcrumb stays readable after the session window expires.

Did you land on any structure for these, or did they stay freeform?