Roadmaps are useful until they become theatre. A tidy sequence can make uncertain work look settled, so we keep polishing the sequence instead of updating it with what the build is teaching us.
The roadmap forgets how a decision was made
A card moves from “planned” to “done,” but the useful context disappears: the assumption that failed, the shortcut that became permanent, the user reaction that changed the scope.
Three weeks later, you see the final decision without the path that produced it. That makes old ideas look newly attractive and settled questions easy to reopen.
A polished roadmap also compresses uncertainty. Two items can look equally settled even when one is backed by user evidence and the other is still a founder’s guess. A build log preserves that difference, so the next decision starts from the evidence you actually have.
The roadmap says where you want to go. The log explains why the route changed.
Log decisions, not activity
A useful build log is not a diary of every commit. It captures the pieces of work that should influence the next product decision.

- What changed?Name the user-visible or system-level difference, not the files edited.
- Why now?Link the change to a problem, risk, or piece of evidence.
- What surprised you?Record the assumption that did not survive contact with the build.
- What remains open?Leave the next decision visible instead of burying it in a task list.
The distinction between an event and a decision matters. “Deployed search” is an event. “Kept exact matching because fuzzy results hid the user’s own project names” is context that can guide the next iteration.
The five-minute build-log template
Shipped 🚀What can a user or the system do now that it could not do before?
Decision ✅Which choice did this work settle?
Evidence 🔍Which test, conversation, or observation supports that choice?
Debt ⚠️Which shortcut or limitation must remain visible?
Next ➡️What is the next useful decision, not merely the next task?
If an entry takes more than five minutes, the format is probably asking for too much. The log has to survive the busiest week and remain part of a dependable working rhythm.
Here is a real one, from the week I gave this site an interface for agents. It is short because the format forces it to be, and the fourth line is the one I would have lost.
Entry — the day the endpoint started answering its own pages
- Shipped: the site's own pages can reach its MCP endpoint. They could not before.
- Decision: allow this hostname only, not every origin. A tool on that endpoint writes to the database, and an open origin would let any page on the web call it from a visitor's browser.
- Evidence: a 403 reproduced from a page on the domain, and three checks afterwards — own origin 200, foreign origin 403, no origin at all unaffected.
- Surprise: every test I had written sent no Origin header, so not one of them could have caught this. The suite was not weak. It was testing something adjacent.
- Next: decide what a stranger's agent is allowed to write, before publishing the endpoint anywhere clients look.
The surprise line is the whole reason the format has one. The decision and the evidence I would have remembered; that my tests were structurally blind to the failure is exactly the kind of thing that evaporates by Friday and then costs a day the next time.
Let the log edit the roadmap
Once a week, I compare the last few entries with the plan. This is where the roadmap earns the right to change.

- Remove work whose assumption failed.
Do not preserve scope just because it once looked sensible.
- Promote repeated friction.
A problem that appears in several entries deserves attention.
- Expose permanent shortcuts.
Manual work is fine until everyone silently assumes it is automated.
- Rewrite the next milestone.
Use what you now know, not what the old roadmap predicted.
I also look for repetition. One awkward workaround may be acceptable. The same workaround appearing in four entries is evidence that the product is asking for a real solution. Frequency turns isolated frustration into a prioritisation signal.
A build log gives AI agents a better past
Code tells an agent what exists. A roadmap tells it what might exist. The build log explains why the current product ended up this way.
That context is especially useful when a new task appears to contradict an earlier choice. The agent can surface the conflict instead of confidently undoing a decision it could not see.
The log should still be selective. Give the agent entries connected to the current contract, plus the newest decision that supersedes them. A complete archive without relevance creates a different problem: more context, less signal.
Useful handoff
Give the agent the relevant log entries, current contracts, and the decision it is allowed to make. Keep the rest out.Reader response
Was this field note useful?
Next in the path
Building with an agent? The log is only half of it.
Read what breaks before you buildField notes by email
Thanks, you're on the list. ✓
Email signup did not go through. Please try again.
A short note when there is something worth sharing. No spam.
