DevSecOps · Python · AI-driven Development · Real-world findings from production systems.
I build systems that work — technically sound, security-first, and actually useful to the people who depend on them. Creator of the UNICORN Binance Suite — six open-source Python libraries with 3.3M+ downloads and 390+ dependent public projects — and Keep the Why, an open-source agent skill that preserves the reasoning behind engineering decisions alongside the code. Currently pioneering AI-driven open-source maintenance: running a controlled AI agent that maintains production code and documenting what this shift means for engineering teams. Vienna, Austria 🇦🇹
Markdown supported · ⌘↵ to post
there's a third one hiding in between: memory inside one long session. both of yours cover the gap between sessions, but compaction eats stuff mid run too. building grunz (coding agent on open models) the worst case we hit was the goal itself getting summarized into something vague, and the agent restarting the plan like it was a brand new task. keep the why would probably catch the decisions, but does it also pin what the user originally asked for?
This split matches what I’ve seen building agent tools. Personal memory is useful, but anything the whole project needs should live with the code.
The distinction also makes me think about how information should move between the two layers. Not everything an agent learns during a session deserves to become project memory. A temporary workaround, one-off debugging observation, and an architectural decision have very different lifetimes. A useful pattern could be to treat promotion into project memory as an explicit step: the agent identifies a finding, captures the evidence and scope, and only then proposes it as durable project knowledge. That would reduce the risk of turning every session observation into repository noise while still making important reasoning available to future sessions and teammates.
A rejection made only in PR review seems to miss both the clone and session memory. Does Keep the Why pick it up, or does someone carry it in?
Logging every tool call as a receipt changed how I debug agents. When a run goes sideways I replay the receipt trail instead of guessing from chat. Cheap to store and it cuts the mystery hours.
Vlad Zoff
I'd add validity metadata to promoted knowledge: source or commit, scope, owner, and what superseded it. An architectural decision can be durable but apply only to one module or version. Without scope and freshness, project memory becomes another stale source of truth. Agents should revalidate older notes against the current code and tests before treating them as constraints.