{"version":"https://jsonfeed.org/version/1.1","title":"Slava Spitsyn — Notes","home_page_url":"https://slavaspitsyn.com/notes/","feed_url":"https://slavaspitsyn.com/feed.json","description":"Personal notes about AI systems, startups, technology and the future.","language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"items":[{"id":"https://slavaspitsyn.com/notes/ai-eternal-development-trap/","url":"https://slavaspitsyn.com/notes/ai-eternal-development-trap/","title":"AI Gave Me Everything I Asked For, or How I Overengineered My Way into Building Forever","summary":"AI has made building dramatically faster. It has also made it easier to spend months perfecting systems that have never produced a useful result.","content_html":"<p>Over the past few days, I have spoken with dozens of people who are trying to understand what to do with artificial intelligence.</p>\n<p>Some are students. Some have jobs. Some want to start a business. Many say they want to build an agent or a second brain. But when I ask what the agent should actually accomplish, the answer often becomes vague.</p>\n<p>They have seen the videos. They know the vocabulary. They can talk about agents, memory, automation and orchestration. They are excited by the architecture of a future project, but they do not yet have a problem they are determined to solve.</p>\n<p>At first, I thought this was simply the usual gap between consuming content and doing the work. Then I realised I recognised the behaviour because I had spent the previous month and a half doing my own, much more sophisticated version of it.</p>\n<p>I was not watching tutorials and imagining a project. I was building real systems. I had code, infrastructure, tests and working software. I was shipping almost every day.</p>\n<p>And I was still stuck.</p>\n<p>That is the uncomfortable part. The trap does not always look like procrastination. Sometimes it looks exactly like serious work.</p>\n<h2 id=\"ai-removed-the-friction-not-the-responsibility\">AI removed the friction, not the responsibility</h2>\n<p>Before AI coding tools, complexity had a natural cost. Every new abstraction, validation layer and automated check required enough manual effort that you were forced to ask whether it was worth building.</p>\n<p>That friction has largely disappeared.</p>\n<p>Now I can describe a sophisticated mechanism and watch it become code. I can ask for another test, another safeguard, another agent, another recovery path. Each request may be reasonable. Each addition may improve the system in isolation. And because the work is happening so quickly, it feels like progress.</p>\n<p>But AI did not remove my responsibility to decide what the product needed.</p>\n<p>It only removed many of the practical limits that used to stop me from building too much.</p>\n<p>This creates a new failure mode: we can now construct unnecessary systems at a speed that feels productive.</p>\n<h2 id=\"the-static-website-i-could-not-add-a-company-to\">The static website I could not add a company to</h2>\n<p>I ran into this while building <a href=\"https://agentcompanyindex.com/\">Agent Company Index</a>, a directory of companies working with AI agents.</p>\n<p>The basic product is not difficult to explain. A company should be able to submit its website and services, pass the necessary checks, and appear in the directory.</p>\n<p>At some point, however, that simple path became surrounded by more than a thousand automated checks. There were validations, hashes, integrity rules, tests for tests, and safeguards for situations that had not happened yet. Every layer made sense when I looked at it individually.</p>\n<p>Then I tried to onboard my own company.</p>\n<p>It took me two days, and I still could not make it work on the first attempt.</p>\n<p>This was a static directory. I was the owner. I understood the code. I had built the process. Yet the architecture had become so demanding that I could not perform the product’s most basic action.</p>\n<p>That is when the contradiction became impossible to ignore.</p>\n<p>I had built a system that was increasingly good at protecting its own structure and increasingly bad at letting a person use it.</p>\n<p>The architecture was no longer supporting the product. The product was servicing the architecture.</p>\n<h2 id=\"the-ai-did-not-make-the-mistake\">The AI did not make the mistake</h2>\n<p>It would be convenient to blame the coding agent.</p>\n<p>I cannot.</p>\n<p>The AI did what I asked. More precisely, it did what I repeatedly approved.</p>\n<p>It knew how to build validations. It knew how to increase test coverage. It knew how to make the pipeline more rigorous. When I requested a new protection, it could explain why that protection was a good engineering practice and implement it competently.</p>\n<p>The problem was not that the AI produced the wrong answer.</p>\n<p>The problem was that I had not defined the boundary of the answer.</p>\n<p>An AI system can be excellent at answering “How do we make this more robust?” while never asking the more important question: “Is this already sufficient to help one person complete the job?”</p>\n<p>That remains the operator’s responsibility.</p>\n<p>AI knows an enormous amount about how software can be built. It does not automatically know how much software your idea deserves today.</p>\n<h2 id=\"the-missing-skill-is-knowing-where-to-stop\">The missing skill is knowing where to stop</h2>\n<p>People often describe AI literacy as knowing how to write prompts, choose models or connect tools. Those skills are useful, but I increasingly think the more important skill is learning to define “enough.”</p>\n<p>What must be true before a first version can meet reality?</p>\n<p>Which failure would be genuinely dangerous, and which one would merely be inconvenient?</p>\n<p>What evidence are we waiting for before adding another layer?</p>\n<p>At what point does improving the system produce less value than showing it to a user?</p>\n<p>These are product questions, not coding questions. AI can help us examine them, but it cannot take ownership of them.</p>\n<p>If I do not know what done looks like, the model will not run out of ways to continue. There is always another edge case. There is always a cleaner abstraction. There is always a more complete test suite, a more flexible architecture, a more autonomous agent.</p>\n<p>The construction can continue forever.</p>\n<h2 id=\"the-same-trap-exists-before-the-first-line-of-code\">The same trap exists before the first line of code</h2>\n<p>The people I spoke with are often at an earlier point in the same loop.</p>\n<p>They want an agent, but have not chosen a task. They want a second brain, but have not built a habit of producing or using knowledge. They are collecting tools for a version of themselves who will begin serious work later.</p>\n<p>This is not stupidity. It is a predictable response to the way AI is presented online.</p>\n<p>The most visible content shows possibility. It gives us the exhilarating sense that one person can build a company, automate a profession or create a digital workforce. What it rarely shows is the ordinary work of choosing one problem, testing one outcome and discovering that the impressive architecture was not necessary.</p>\n<p>Hype makes preparation feel like participation.</p>\n<p>You can spend weeks learning about agents without delegating one useful task. You can design a knowledge system without having knowledge you need to retrieve. You can watch people build businesses while remaining a permanent student of business.</p>\n<p>There is nothing wrong with learning for its own sake. The problem begins when learning becomes a convincing substitute for deciding and doing.</p>\n<h2 id=\"a-better-order-of-operations\">A better order of operations</h2>\n<p>I am not abandoning Agent Company Index. I still believe in the idea. I have already started removing the things that do not help the central action, and I will continue developing it.</p>\n<p>But I am changing the order in which I earn complexity.</p>\n<p>For my own work, the sequence now looks like this:</p>\n<ol>\n<li><strong>Name the human result.</strong> Not “build an agent,” but “a company can submit its information and appear in the directory.”</li>\n<li><strong>Complete one real path.</strong> Not a mock, not a diagram, not a successful test in isolation. A real person reaches the intended result from beginning to end.</li>\n<li><strong>Notice the actual failure.</strong> Let reality show where the system breaks before designing protection against every imaginable future.</li>\n<li><strong>Add the smallest correction.</strong> Fix the observed problem without turning it into a platform for all possible problems.</li>\n<li><strong>Repeat only while the result improves.</strong> Architecture is justified by what it enables, not by how professional it sounds.</li>\n</ol>\n<p>This does not mean removing all tests or ignoring security. Some risks deserve protection before the first user arrives, especially when money, personal data or irreversible actions are involved.</p>\n<p>It means matching the protection to the evidence and the stage of the product.</p>\n<p>A prototype needs to answer whether the idea is useful. A production system needs to remain dependable under real use. Confusing those stages can make the prototype so elaborate that it never gets the chance to teach us anything.</p>\n<h2 id=\"use-ai-to-shorten-the-distance-to-reality\">Use AI to shorten the distance to reality</h2>\n<p>I still think artificial intelligence is one of the most powerful technologies available to an individual.</p>\n<p>It allows us to turn an idea into something testable with extraordinary speed. It can help a person cross disciplines, challenge assumptions and produce work that once required a team. I have experienced that leverage directly, and I do not want to go back.</p>\n<p>But speed only helps when it shortens the distance to reality.</p>\n<p>If it shortens the distance to another abstraction, another internal system or another month of preparation, it can make us more efficient without making us more effective.</p>\n<p>That is the trap of eternal development. You are always moving. The commits accumulate. The system becomes more intelligent. The work becomes harder to explain. Yet the first useful result remains exactly where it was.</p>\n<p>The hardest question in AI-assisted building is no longer “Can we make this?”</p>\n<p>For a growing number of ideas, the answer is yes.</p>\n<p>The harder questions are: “What is this supposed to change, and how will we know when it has changed?”</p>\n<p>Without those answers, AI gives us the ability to build forever.</p>\n<p>With them, it gives us something much more valuable: the ability to find out what is worth building.</p>\n<p>If you want more field notes about using AI in real work, without turning every new tool into a new religion, join the newsletter below.</p>","date_published":"2026-09-15T00:00:00.000Z","tags":["AI and building"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}},{"id":"https://slavaspitsyn.com/notes/skills-ai-cannot-choose-for-you/","url":"https://slavaspitsyn.com/notes/skills-ai-cannot-choose-for-you/","title":"The Skills AI Cannot Choose for You","summary":"AI can produce answers at astonishing speed, but systems thinking and mathematical reasoning help us decide which problems matter, what an answer changes, and whether it deserves to be trusted.","content_html":"<p>I keep seeing the same reaction to AI: people rush to learn the newest tool before the previous one has even settled into their work.</p>\n<p>I understand it. I do the same thing. A new model appears, a new agent becomes possible, and suddenly yesterday’s workflow looks old. Some skills that took years to build are becoming cheaper almost overnight. Drafting routine text, summarising documents, producing a first version of code, collecting basic information — none of this has disappeared, but the scarcity around it is disappearing.</p>\n<p>That made me ask a different question.</p>\n<p>Instead of trying to predict which profession will be safe, what can I train that will still help me when the tools change again?</p>\n<p>I have a hypothesis. There are two skills that form something like the supporting walls under the same roof: systems thinking and mathematical reasoning.</p>\n<p>I cannot prove that either of them will remain valuable forever. “Forever” is a dangerous word, especially now. But the faster AI develops, the more important these two abilities seem to become.</p>\n<h2 id=\"the-wrong-question-is-which-job-will-survive\">The wrong question is: Which job will survive?</h2>\n<p>Jobs are bundles of tasks, and AI does not affect every task equally. The International Labour Organization estimates that one in four jobs worldwide has some exposure to generative AI, while saying that transformation is more likely than outright replacement. The World Economic Forum expects 39% of workers’ current skill sets to change or become outdated between 2025 and 2030. In the same report, analytical thinking remains the most sought-after core skill among employers.</p>\n<p>Those forecasts are not laws of nature. They are signals. And the signal I take from them is that protecting one fixed professional identity is probably a weak strategy.</p>\n<p>If a person defines their value as “I produce this particular output in this particular way,” AI can put pressure on that value very quickly. If the person can understand the larger situation, define the real problem, see consequences and test whether a proposed answer makes sense, they can move when the tool changes.</p>\n<p>The output may change. The ability to orient yourself remains useful.</p>\n<h2 id=\"first-wall-systems-thinking\">First wall: systems thinking</h2>\n<p>Most problems arrive disguised as isolated tasks.</p>\n<p>“We need more leads.”</p>\n<p>“We need to publish more content.”</p>\n<p>“We need to automate support.”</p>\n<p>AI is extremely good at helping with a clearly framed local task. It can generate landing pages, campaigns, messages, scripts and automations at a speed that was impossible a few years ago. But increasing the output of one part can make the whole system worse.</p>\n<p>More leads can overload delivery. More content can weaken trust. Faster support can hide a product problem that should have been fixed at the source. A local improvement can create a downstream cost, and that cost often arrives with a delay.</p>\n<p>Systems thinking is the habit of looking beyond the visible event. What produces it? What reinforces it? Where is the bottleneck? Which part is reacting with a delay? What behaviour does the current incentive reward? What happens after the obvious first result?</p>\n<p>This matters with AI because AI makes local optimisation cheap. We can now produce more changes, faster. That also means we can produce second-order damage faster.</p>\n<p>The systems thinker does not merely ask, “Can this be automated?” The better questions are:</p>\n<ul>\n<li>What system is this task part of?</li>\n<li>What result are we actually trying to improve?</li>\n<li>Where will the additional load appear?</li>\n<li>Which feedback loop will this change strengthen?</li>\n<li>What might improve immediately while becoming worse three months later?</li>\n<li>Who pays the cost if the model is wrong?</li>\n</ul>\n<p>These questions are not a defence against technology. They are what allow technology to be used without becoming trapped by its speed.</p>\n<h2 id=\"second-wall-mathematical-reasoning\">Second wall: mathematical reasoning</h2>\n<p>When I say mathematics, I do not mean that everyone needs to become a mathematician or return to pages of school exercises.</p>\n<p>I mean the discipline of making vague claims more exact.</p>\n<p>How much? Compared with what? How often? Over what period? What is the base rate? Which variable changes the result most? What would have to be true for this conclusion to hold?</p>\n<p>AI can produce an answer that sounds precise even when the assumptions beneath it are weak. Mathematical reasoning gives us a way to resist that surface confidence. It trains the instinct to check scale, units, probability, proportions and uncertainty.</p>\n<p>Suppose an AI system claims that an automation will save a team a large number of hours per year. The calculation may be correct inside the assumptions it was given. But how often is the process actually performed? How many people will use the automation? How much time will checking mistakes consume? What is the cost of one serious error? Does the saving remain meaningful if adoption is only half of what we expect?</p>\n<p>This is mathematics in a practical sense. It turns an attractive statement into a model that can be questioned.</p>\n<p>It also trains a certain kind of honesty. An equation forces us to reveal what we are assuming. A probability reminds us that confidence is not certainty. A rough estimate can expose a beautiful idea that simply cannot work at the required scale.</p>\n<h2 id=\"why-the-two-belong-together\">Why the two belong together</h2>\n<p>Systems thinking without mathematics can become a beautiful diagram in which everything connects to everything, but nothing can be tested.</p>\n<p>Mathematics without systems thinking can produce a perfect answer to the wrong question.</p>\n<p>Together they do something more useful. Systems thinking helps us choose the boundary of the problem. Mathematics helps us test what happens inside that boundary. One shows relationships; the other applies pressure to our assumptions.</p>\n<p>This is the roof I have in mind. Under one side is the ability to see the whole. Under the other is the ability to reason precisely.</p>\n<p>AI can help with both. It can suggest variables we missed, simulate scenarios, explain an equation, challenge a causal map and find counterexamples. But there is a difference between using AI to strengthen thought and using it to avoid thought.</p>\n<p>A 2025 study from Microsoft Research surveyed 319 knowledge workers and collected 936 examples of AI-assisted tasks. Higher confidence in generative AI was associated with less critical thinking, while higher confidence in one’s own ability was associated with more. The study is based on self-reports and does not prove that AI causes people to think less. Still, the pattern is worth noticing: a tool that can extend reasoning can also make it easier to stop reasoning too early.</p>\n<h2 id=\"how-i-would-train-these-skills-now\">How I would train these skills now</h2>\n<p>Reading helps, but systems thinking and mathematics become useful through contact with real decisions.</p>\n<p>I would take one situation from my actual life or work each week: a sales process, a content pipeline, a personal habit, a family schedule, a product, a community or a financial decision.</p>\n<p>Then I would do five things:</p>\n<ol>\n<li><strong>Draw the system on one page.</strong> List the main actors, resources, incentives, bottlenecks, delays and feedback loops. The drawing does not need to be clever. Its purpose is to make hidden relationships visible.</li>\n<li><strong>Choose three quantities.</strong> Find the few numbers that could change the decision: frequency, conversion, time, cost, probability, capacity or error rate.</li>\n<li><strong>Make a prediction.</strong> Write down what you expect to happen and when. Without a prediction, it is too easy to explain any outcome after it appears.</li>\n<li><strong>Use AI as an opponent.</strong> Ask it to identify a missing variable, propose an alternative causal explanation, find a counterexample and show which assumption is carrying most of the conclusion.</li>\n<li><strong>Return to the model.</strong> Compare the result with the prediction and change the map. The goal is not to be right the first time. The goal is to make the way you think correctable.</li>\n</ol>\n<p>That last part may be the real skill: building models of the world that can survive contact with reality and still be updated.</p>\n<h2 id=\"four-books-i-would-start-with\">Four books I would start with</h2>\n<p><strong><a href=\"https://www.chelseagreen.com/product/thinking-in-systems/\">Thinking in Systems: A Primer</a> by Donella Meadows.</strong> This is the clearest starting point I have found. It explains stocks, flows, feedback loops, delays, resilience, boundaries and leverage points without turning the subject into abstract theory. The current Russian edition is titled <em>Системное мышление. Как создавать и улучшать системы в бизнесе и жизни</em>; earlier editions appeared as <em>Азбука системного мышления</em>.</p>\n<p><strong><a href=\"https://books.google.com/books/about/The_Fifth_Discipline.html?id=5jCLbnlmEuYC\">The Fifth Discipline: The Art and Practice of the Learning Organization</a> by Peter M. Senge.</strong> Useful when the system is an organisation. It connects systems thinking with mental models, collective learning and the ability of a company to adapt.</p>\n<p><strong><a href=\"https://books.google.com/books/about/How_to_Solve_It.html?id=z_hsbu9kyQQC\">How to Solve It: A New Aspect of Mathematical Method</a> by George Pólya.</strong> A compact book about problem solving: understanding the problem, building a plan, carrying it out and looking back. It is about mathematics, but the method travels well beyond mathematics.</p>\n<p><strong><a href=\"https://www.penguinrandomhouse.com/books/312349/how-not-to-be-wrong-by-jordan-ellenberg/\">How Not to Be Wrong: The Power of Mathematical Thinking</a> by Jordan Ellenberg.</strong> A good bridge between mathematics and ordinary decisions. It shows that mathematical thinking is less about memorising formulas and more about seeing structures hidden beneath everyday claims.</p>\n<h2 id=\"a-more-useful-relationship-with-ai\">A more useful relationship with AI</h2>\n<p>I do not want to compete with AI at producing the first acceptable answer. That race already looks pointless.</p>\n<p>I want to become better at deciding which answer is worth producing, what it will change, how it can fail and whether the evidence beneath it is strong enough. AI can then become a multiplier instead of a substitute for judgment.</p>\n<p>I do not know which models, interfaces or professions will dominate five years from now. I am increasingly convinced that learning another tool is not enough preparation for that uncertainty.</p>\n<p>The roof will keep changing.</p>\n<p>Systems thinking and mathematics still look like two good walls to build under it.</p>\n<h2 id=\"sources\">Sources</h2>\n<ul>\n<li><a href=\"https://www.weforum.org/publications/the-future-of-jobs-report-2025/digest/\">The Future of Jobs Report 2025 — World Economic Forum</a></li>\n<li><a href=\"https://www.ilo.org/resource/news/one-four-jobs-risk-being-transformed-genai-new-ilo%E2%80%93nask-global-index-shows\">One in four jobs at risk of being transformed by GenAI — International Labour Organization</a></li>\n<li><a href=\"https://www.microsoft.com/en-us/research/publication/the-impact-of-generative-ai-on-critical-thinking-self-reported-reductions-in-cognitive-effort-and-confidence-effects-from-a-survey-of-knowledge-workers/\">The Impact of Generative AI on Critical Thinking — Microsoft Research</a></li>\n</ul>","date_published":"2026-09-02T00:00:00.000Z","tags":["Human judgment"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}},{"id":"https://slavaspitsyn.com/notes/no-two-days-with-ai-have-been-the-same/","url":"https://slavaspitsyn.com/notes/no-two-days-with-ai-have-been-the-same/","title":"No Two Days With AI Have Been the Same","summary":"Working with AI across constantly changing tasks has shown me that human judgment matters most when unrelated domains need to be connected.","content_html":"<p>I have been working with AI for a long time, and recently I noticed something strange: I cannot remember a single day when I used it for exactly the same task as the day before.</p>\n<p>My problems keep changing.</p>\n<p>Sometimes I use AI while building a project. Sometimes it helps me prepare for a negotiation, investigate an unfamiliar subject, structure a decision, or find a way through a problem I have never encountered before.</p>\n<p>As the number and variety of these tasks grow, I become better at finding ways to delegate parts of them to AI.</p>\n<p>That, to me, is a much more important skill than mastering one tool or learning one perfect workflow.</p>\n<h2 id=\"ai-can-make-repetition-more-efficient\">AI can make repetition more efficient</h2>\n<p>I see many people who technically work with AI but remain stuck in the same intellectual loop. They keep designing an architecture, refining a business plan, searching for an ICP, or learning how to automate one narrow task.</p>\n<p><strong>They may be busy, but they are no longer moving.</strong></p>\n<p>Once they find something that works, they stay there. AI becomes a more efficient way to repeat what they already know instead of a way to explore what they could do next.</p>\n<p>My experience has been almost the opposite.</p>\n<p>Every new task forces me to understand a different problem, find the limits of what the model can do, and decide which parts of the work I can actually delegate.</p>\n<p>This is not an easy or passive process.</p>\n<h2 id=\"serious-ai-work-is-mentally-demanding\">Serious AI work is mentally demanding</h2>\n<p>Working seriously with AI requires an enormous amount of mental energy. I have to formulate what I mean, read the response carefully, notice what is missing, correct the direction, and make the final decision.</p>\n<p><strong>AI does not remove me from the process. It keeps pulling me deeper into it.</strong></p>\n<p>And after doing this for a long time, I feel that my mind works better.</p>\n<p>I do not mean that AI has somehow made me automatically smarter. I mean that I spend much more time actively formulating ideas, evaluating answers, comparing possibilities, and turning vague thoughts into explicit decisions.</p>\n<p>It is like communicating every day with an extremely capable technology that still needs you to know where the conversation should go.</p>\n<h2 id=\"access-to-knowledge-is-not-judgment\">Access to knowledge is not judgment</h2>\n<p>Every AI system eventually reaches the edge of its understanding of the problem.</p>\n<p>If I ask it to work on a question in biology, it may remain inside the frame of biology. It will not necessarily recognise that an idea from physics, business, psychology, or an experience from ordinary life could change the answer.</p>\n<p>I can bring that connection into the conversation.</p>\n<p>I can take something I learned in one situation and apply it somewhere that appears completely unrelated. Cognitive scientists call part of this <a href=\"https://oecs.mit.edu/pub/yjq05b3c\">analogical reasoning</a>: recognising a useful relationship in one domain and transferring it into another.</p>\n<p>This ability becomes especially valuable when working with AI.</p>\n<p>A model can give me access to knowledge across many fields. But access to knowledge is not the same as knowing which fields should be connected at a particular moment.</p>\n<p>That still depends on the person directing the work.</p>\n<h2 id=\"expertise-may-be-becoming-combinatorial\">Expertise may be becoming combinatorial</h2>\n<p>Perhaps this is how expertise is changing.</p>\n<p>It is no longer only about spending your entire life inside one narrow domain. AI allows one person to work meaningfully across a much wider range of subjects. But the value does not come from pretending to be an expert in everything.</p>\n<p><strong>It comes from combining what you know.</strong></p>\n<p>The more varied problems I encounter, the more material I have for making those combinations. A lesson from one project can influence a negotiation. An observation from life can change a product decision. An idea from one scientific field can provide a new way to understand a completely different system.</p>\n<p>AI can help examine each piece.</p>\n<p>The human contribution is often the moment when several pieces that did not seem related suddenly become one useful idea.</p>\n<p>This is why I do not want to become good at using AI for only one task. I want to keep giving it different problems. I want to keep finding its limits, improving the way I think, and discovering which parts of my experience can be brought into the next decision.</p>\n<blockquote>\n<p>The more work I delegate to AI, the more clearly I see what cannot be delegated: knowing when two seemingly unrelated things belong together.</p>\n</blockquote>\n<h2 id=\"further-reading\">Further reading</h2>\n<ul>\n<li><a href=\"https://oecs.mit.edu/pub/yjq05b3c\">Analogical reasoning</a>, MIT Open Encyclopedia of Cognitive Science.</li>\n</ul>","date_published":"2026-08-14T00:00:00.000Z","tags":["AI and thinking"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}},{"id":"https://slavaspitsyn.com/notes/what-comes-next/","url":"https://slavaspitsyn.com/notes/what-comes-next/","title":"Why I keep thinking about what comes next","summary":"A personal note on technology, science fiction, building companies, and why this site exists.","content_html":"<p>I have never been very interested in technology as a collection of specifications. I care about the moment it crosses into ordinary life — when an impossible idea becomes a tool, a habit, or an entirely new kind of company.</p>\n<p>That is probably why I keep returning to artificial intelligence. Models change quickly, but the more interesting questions move at a different pace: What becomes possible when software can understand context? What should remain a human decision? Which impressive demos will become useful systems, and which will disappear?</p>\n<h2 id=\"building-first-understanding-second\">Building first, understanding second</h2>\n<p>My way of learning is not especially academic. I usually start by making something. Then I discover what I did not understand, rebuild it, and slowly find the language for it.</p>\n<p>This approach has taken me through RAG systems, language models, agents, automation, startups and communities. It has also made me suspicious of clean predictions. The future rarely arrives in a straight line. It appears as a collection of awkward prototypes before anyone agrees on what to call it.</p>\n<h2 id=\"the-stories-that-made-the-future-feel-real\">The stories that made the future feel real</h2>\n<p>Science fiction gave me a way to think about technology long before I could build any of it. Star Trek asked what progress might look like. Star Wars made technology feel lived-in and human. Isaac Asimov turned intelligence into an ethical problem. Dune showed how every powerful tool becomes part of politics, culture and belief.</p>\n<p>I still return to those worlds — including their older versions and imperfect adaptations — because they are not really about spaceships. They are about people trying to remain people while everything around them changes.</p>\n<h2 id=\"a-public-notebook\">A public notebook</h2>\n<p>This site is where I want to think in public. Not as a catalogue of services and not as a polished biography, but as a record of ideas becoming clearer.</p>\n<p>I will write about AI systems, founders, useful models, experiments, forecasts, mistakes, and the signals that seem worth following. Some notes will be practical. Others will be speculative. The common thread is simple: curiosity about what comes next, grounded by the habit of building something today.</p>\n<p>If that sounds interesting, join the newsletter. One thoughtful letter at a time is enough.</p>","date_published":"2026-08-12T00:00:00.000Z","tags":["Opening note"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}},{"id":"https://slavaspitsyn.com/notes/useful-ai-is-a-system/","url":"https://slavaspitsyn.com/notes/useful-ai-is-a-system/","title":"Useful AI is a system, not a model demo","summary":"Why the quality of an AI product depends less on a single model and more on everything built around it.","content_html":"<p>The AI conversation keeps returning to models: which one is largest, fastest, cheapest, or closest to the top of a benchmark. I follow that race too. But the more systems I build, the less I believe the model is the product.</p>\n<p>A useful AI product is a chain of decisions around the model. What context does it receive? Where does that context come from? What can the system do after it produces an answer? How does a person correct it? What happens when it is uncertain?</p>\n<p>These questions are less dramatic than a new model release, but they decide whether somebody will use the product twice.</p>\n<h2 id=\"the-surrounding-system-matters\">The surrounding system matters</h2>\n<p>RAG is a good example. People sometimes talk about it as if it were an old workaround that better models will eventually remove. I see it differently. A company does not only need an intelligent answer. It needs an answer grounded in its own changing reality: documents, decisions, customers, permissions, and history.</p>\n<p>The same is true for agents. Giving a model more tools does not automatically create a reliable worker. The difficult part is designing boundaries, feedback, memory, and a clear path for human judgment.</p>\n<h2 id=\"useful-beats-impressive\">Useful beats impressive</h2>\n<p>I am increasingly interested in smaller models inside well-designed systems. A focused model with the right context and a narrow responsibility can be more valuable than a brilliant general model placed in an empty chat window.</p>\n<p>That changes how I evaluate AI products. I ask fewer questions about the demo and more about the loop: Does the system understand the situation? Can it act safely? Does it become more useful through real work?</p>\n<p>The model still matters. It is just one layer. The product begins when all the layers start working together.</p>","date_published":"2026-08-11T00:00:00.000Z","tags":["AI systems"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}},{"id":"https://slavaspitsyn.com/notes/shorter-distance-to-a-test/","url":"https://slavaspitsyn.com/notes/shorter-distance-to-a-test/","title":"The real AI advantage is a shorter distance to a test","summary":"A field note on building first, learning in public, and turning ideas into something you can actually judge.","content_html":"<p>I rarely understand a new idea completely before I start building it. My process usually works in the opposite direction: make the first version, notice what is wrong, and then find the language for what I have learned.</p>\n<p>AI makes this way of working much faster. Not because it removes the need to think, but because it shortens the distance between a thought and a test.</p>\n<p>An idea that used to stay in a notebook can become a small interface, a workflow, or a working prototype in a day. Once it exists, the conversation changes. I no longer have to ask whether the idea sounds intelligent. I can ask whether it is useful.</p>\n<h2 id=\"a-prototype-creates-better-questions\">A prototype creates better questions</h2>\n<p>The first version is often awkward. That is not a failure. It exposes the questions that planning keeps hidden.</p>\n<p>Who is this really for? Which part needs intelligence, and which part only needs a clear rule? What would make somebody trust the result? Is the problem important enough to survive contact with reality?</p>\n<p>These questions are easier to answer when there is something in front of you.</p>\n<h2 id=\"building-is-not-the-same-as-shipping-everything\">Building is not the same as shipping everything</h2>\n<p>Moving quickly does not mean publishing every experiment or automating every decision. Some prototypes should remain private. Some ideas become less interesting after the first test. That is part of the advantage too: it is now cheaper to discover that something should not exist.</p>\n<p>For me, an AI-first way of working is not about adding AI to every product. It is a habit of reducing the cost of learning. Build the smallest honest version, look at what it teaches you, and decide what deserves the next step.</p>\n<p>The future may move quickly, but progress still comes from asking one better question after another.</p>","date_published":"2026-08-10T00:00:00.000Z","tags":["Founder log"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}},{"id":"https://slavaspitsyn.com/notes/librarian/","url":"https://slavaspitsyn.com/notes/librarian/","title":"Give Your AI Agents a Second Brain","summary":"Librarian turns completed AI coding sessions into searchable memory, so your agents can reuse past decisions instead of rebuilding context from zero.","content_html":"<blockquote>\n<p>Your AI agents can write code, plan projects, and solve difficult problems. Then the session ends — and the next one starts without the decisions you already paid to reach.</p>\n</blockquote>\n<p><strong>Librarian is a self-hosted Second Brain for AI coding agents.</strong> It turns completed terminal sessions into compact, searchable memories. Later, a connected agent can ask <em>“have we dealt with this before?”</em> and retrieve the relevant decision, fix, or dead-end instead of rebuilding context from zero.</p>\n<div class=\"article-cta article-cta--primary\">\n  <p class=\"article-cta__eyebrow\">Librarian Starter Kit · one-time €49</p>\n  <h2>Give your coding agents a memory they can keep.</h2>\n  <p>Install the same core memory pattern on your own machine. Your agent gets the source, setup guide, database, four MCP tools, and a synthetic end-to-end verification.</p>\n  <a class=\"article-cta__button\" href=\"https://brain.sl-sp.de/buy/?utm_source=slavaspitsyn.com&#x26;utm_medium=qr&#x26;utm_campaign=conference_september&#x26;utm_content=article_hero\">Get the Starter Kit <span aria-hidden=\"true\">→</span></a>\n  <a class=\"article-cta__secondary\" href=\"https://brain.sl-sp.de/?utm_source=slavaspitsyn.com&#x26;utm_medium=qr&#x26;utm_campaign=conference_september&#x26;utm_content=article_hero_demo\">Explore the live Second Brain</a>\n</div>\n<p>This article shows the production system behind the product: what it remembers, how it works, where it failed, and what I changed after running it every day.</p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Role</strong></td><td>Solo architect &#x26; operator — I owned the problem, the design decisions, the production system, and its incidents. Implementation was AI-directed (I specified and reviewed; Claude Code wrote the code under my direction).</td></tr><tr><td><strong>Type</strong></td><td>Personal infrastructure turned into a self-hosted Starter Kit</td></tr><tr><td><strong>My setup</strong></td><td>Node.js · PostgreSQL + pgvector · Gemini Flash · Vertex AI embeddings · MCP · Raspberry Pi 500 · Tailscale. The Starter Kit can run anywhere you have Docker; the Pi is my example, not a requirement.</td></tr><tr><td><strong>Status</strong></td><td>In production since <strong>April 2026</strong>; incident-hardened release since <strong>May 2026</strong>. Used daily as the memory layer for the several Claude Code agents I run.</td></tr><tr><td><strong>Artifacts</strong></td><td>Architecture doc · 11-entry Architectural Decision Log (ADRs) · operations runbook · incident log — all maintained alongside the code.</td></tr></tbody></table>\n<h2 id=\"1-the-problem-every-session-starts-from-zero\">1. The problem: every session starts from zero</h2>\n<p>AI agents are <strong>stateless between sessions</strong>. Every new session starts blind: the agent has no idea what was decided yesterday, which approach already failed last week, or what state a long-running project is in.</p>\n<p>Claude Code auto-writes a full transcript of every session to disk — but a raw transcript is the wrong artifact to remember from:</p>\n<ul>\n<li>It is <strong>too long</strong> to reload into a context window.</li>\n<li>It is <strong>too noisy</strong> to search — ninety percent is mechanics; the value is a few decisions buried inside.</li>\n<li>Document-style RAG answers <em>“what does this document say”</em>, which is a different question from <em>“what did <strong>I</strong> already do about this.”</em></li>\n</ul>\n<p>The cost of no memory is concrete: the agent repeats mistakes, re-litigates settled decisions, and loses continuity on anything spanning more than one sitting. I was paying — in time and tokens — to re-explain context I had already established.</p>\n<p><strong>The task I set myself:</strong> capture the <em>signal</em> from each session, make it semantically searchable, and expose it to compatible agents through a clean interface — without turning raw transcripts into permanent memory or requiring a frontier-model bill.</p>\n<p>For the person using the agent, the outcome is simple:</p>\n<ul>\n<li>Less time repeating project context.</li>\n<li>Fewer rediscovered dead ends.</li>\n<li>Decisions and fixes remain available after the chat window is gone.</li>\n<li>The memory runs on infrastructure you control.</li>\n</ul>\n<h2 id=\"2-from-my-production-system-to-a-starter-kit\">2. From my production system to a Starter Kit</h2>\n<p>I built Librarian for my own work first. I defined the behaviour and architecture, directed the AI-assisted implementation, reviewed the output, and operate the production system. The useful part is not a prompt or a screenshot; it is the complete memory loop and the operational decisions behind it.</p>\n<ul>\n<li><strong>Write:</strong> completed supported terminal sessions become factual, structured digests.</li>\n<li><strong>Remember now:</strong> an agent can save one deliberate memory when you say “remember this.”</li>\n<li><strong>Recall:</strong> compatible agents search and retrieve memories through four real MCP tools.</li>\n<li><strong>Verify first:</strong> synthetic fixtures prove the loop before you connect real session data.</li>\n</ul>\n<p>The commercial Starter Kit packages that core into a self-hosted installation for Docker, with source code, migrations, setup instructions, security boundaries, troubleshooting, and written support.</p>\n<h2 id=\"3-the-core-idea--remember-the-signal-not-the-transcript\">3. The core idea — remember the signal, not the transcript</h2>\n<p>The design thesis, and the thing that separates Librarian from a naive “log everything and keyword-search it” store:</p>\n<p><strong>An LLM sits on the <em>write</em> path and an LLM sits on the <em>read</em> path — and that is deliberate.</strong></p>\n<ul>\n<li><strong>On write (input):</strong> raw transcripts are never stored as memory. An LLM (Gemini Flash) reads the session and produces a compact, structured <strong>digest</strong> — <em>what we worked on / what problem / how it was solved / what’s left open</em> — plus tags, a domain, an importance score, and a one-sentence summary. Signal extracted, noise discarded: recording everything indiscriminately produces a haystack, not a memory.</li>\n<li><strong>On read (output):</strong> recall is not auto-injected into every prompt. It is a <strong>tool the consuming agent chooses to call</strong>, and the agent applies its own judgment to what comes back — deciding whether a recalled memory is relevant, current, and worth acting on.</li>\n</ul>\n<p>The bet is that selectivity at both ends beats a dumb pipe in either direction — dump-everything on write, or blind-inject on read. The smart part is <em>what gets remembered, and what gets recalled and used.</em> I validate this by spot-checking recall against sessions I remember; an automated recall-quality harness (a golden query set) is the top open item — I do not yet measure precision numerically, and I say so plainly rather than assert it.</p>\n<p>Everything below is in service of this thesis.</p>\n<figure class=\"memory-demo\">\n  <div class=\"memory-demo__video-shell\">\n    <video controls playsinline preload=\"metadata\" poster=\"https://slavaspitsyn.com/media/librarian-cross-agent-memory-demo-poster.jpg\" aria-label=\"Demo showing a memory written from ChatGPT, recalled by Claude, and used to build a website\">\n      <source src=\"https://slavaspitsyn.com/media/librarian-cross-agent-memory-demo.mp4\" type=\"video/mp4\">\n      Your browser does not support embedded video.\n    </video>\n  </div>\n  <figcaption class=\"memory-demo__copy\">\n    <span class=\"memory-demo__eyebrow\">19-second real workflow</span>\n    <h2>ChatGPT writes. Claude recalls. The work continues.</h2>\n    <p>I ask ChatGPT to save a confirmed project brief in Librarian. Then I open Claude, ask it to retrieve that memory, and it builds the page from the same context — no copy-and-paste between chats.</p>\n    <ol>\n      <li><strong>Save</strong> a durable project memory from ChatGPT.</li>\n      <li><strong>Recall</strong> it in another connected AI client.</li>\n      <li><strong>Act</strong> on the retrieved context.</li>\n    </ol>\n    <a class=\"article-cta__button\" href=\"https://brain.sl-sp.de/buy/?utm_source=slavaspitsyn.com&#x26;utm_medium=qr&#x26;utm_campaign=conference_september&#x26;utm_content=article_video\">Build your own memory layer <span aria-hidden=\"true\">→</span></a>\n  </figcaption>\n</figure>\n<h2 id=\"4-architecture\">4. Architecture</h2>\n<p>Two independent services, cleanly split into a <strong>writer</strong> and a <strong>reader</strong> — a system can capture memory and serve memory without the two paths interfering.</p>\n<div class=\"architecture-flow\" aria-label=\"Librarian architecture: session sources flow through extraction and embeddings into a memory database, then connected agents retrieve those memories through MCP tools.\">\n  <div class=\"architecture-flow__lane\">\n    <span class=\"architecture-flow__label\">01 · Capture</span>\n    <strong>Supported terminal sessions</strong>\n    <span>Completed session logs or an explicit “remember this”</span>\n  </div>\n  <span class=\"architecture-flow__arrow\" aria-hidden=\"true\">→</span>\n  <div class=\"architecture-flow__lane architecture-flow__lane--accent\">\n    <span class=\"architecture-flow__label\">02 · Distil</span>\n    <strong>Factual digest + embeddings</strong>\n    <span>Leak check, structured extraction, bullet-level chunks</span>\n  </div>\n  <span class=\"architecture-flow__arrow\" aria-hidden=\"true\">→</span>\n  <div class=\"architecture-flow__lane\">\n    <span class=\"architecture-flow__label\">03 · Remember</span>\n    <strong>PostgreSQL + pgvector</strong>\n    <span>Full digests linked to searchable knowledge chunks</span>\n  </div>\n  <span class=\"architecture-flow__arrow\" aria-hidden=\"true\">→</span>\n  <div class=\"architecture-flow__lane\">\n    <span class=\"architecture-flow__label\">04 · Recall</span>\n    <strong>Four MCP tools</strong>\n    <span>Search, retrieve, browse, and write deliberate memories</span>\n  </div>\n</div>\n<p>My production instance mirrors session logs from a Mac to a Raspberry Pi 500, where a harvester processes them. That is one deployment example. The Starter Kit uses Docker Compose and can run on macOS, Linux, or a loopback-only VPS.</p>\n<p><strong>Two-layer storage.</strong> One <code>memories</code> row per session holds the full human-readable digest; many <code>indexed_chunks</code> rows hold one embedding <em>per bullet</em>, each linked back to its parent. Retrieval ranks on the fine-grained chunks, then follows the link to the full digest only when needed — a cheap two-step over one expensive blob.</p>\n<p><strong>Three-level scope isolation.</strong> <code>project</code> (coarse) → <code>domain</code> (six fixed buckets: technical, business, reflections, core, content, private) → <code>tags</code> (open-ended). An agent can narrow <em>before</em> it searches, so recall is targeted rather than fuzzy — and private-domain memory stays isolated from shared agents.</p>\n<p><strong>MCP as the interface.</strong> Exposing recall through the Model Context Protocol means any MCP-compatible agent gets memory with zero custom glue — the same integration shape the agents already use for other tools.</p>\n<p><strong>Security posture (stated, not hidden).</strong> The recall endpoint has no application-level auth: the <strong>Tailscale network boundary is the perimeter</strong>, which is the right trade-off for single-operator use. Token-signing would be a prerequisite before any multi-user exposure — a deliberate, documented decision, not an oversight.</p>\n<div class=\"article-cta\">\n  <p class=\"article-cta__eyebrow\">Self-hosted · source included · written support</p>\n  <h2>Use the pattern without rebuilding it from scratch.</h2>\n  <p>The Starter Kit includes the database, harvest and explicit-write paths, semantic retrieval, four MCP tools, installation guidance, and proof with synthetic data.</p>\n  <a class=\"article-cta__button\" href=\"https://brain.sl-sp.de/buy/?utm_source=slavaspitsyn.com&#x26;utm_medium=qr&#x26;utm_campaign=conference_september&#x26;utm_content=article_architecture\">See exactly what is included <span aria-hidden=\"true\">→</span></a>\n</div>\n<h2 id=\"5-selected-engineering-decisions\">5. Selected engineering decisions</h2>\n<p>The full log has 11 entries; these four best show the reasoning style. Each was written down at the time with context, decision, and consequences.</p>\n<p><strong>Precision over recall — chunk by structure, not by sliding window.</strong>\nThe industry-default RAG chunking is a ~500-character sliding window. Digests already have explicit structure (named sections, numbered bullets), so I chunk <em>one bullet = one chunk</em> instead. One concept per embedding raises ranking precision for narrow queries; a sliding window would have averaged unrelated topics into one vector and blurred recall. <em>(Trade-off accepted: chunks vary in size and the chunker is digest-specific, not a general splitter.)</em></p>\n<p><strong>Model the memory, not a graph — an explicit non-goal.</strong>\nThere is constant temptation to bolt on the latest graph-RAG paper (LightRAG, Mem0, etc.). I wrote an ADR drawing the line: those systems optimise <em>recall over a static document corpus</em>; Librarian optimises <em>precision over personal session transcripts</em>, where the priority is <strong>not hallucinating a decision I never made</strong>. The rule that came out of it — borrow retrieval-side mechanics (rerankers, query rewrite), never the storage model wholesale — turns every future “should we adopt X?” from a half-day comparison into a one-line check against a written non-goal.</p>\n<p><strong>Right-sized model choice.</strong> Digest extraction runs on Gemini Flash on the free tier, not a frontier model. Summarising a session doesn’t need frontier reasoning; the free tier covers extraction, and the only metered cost is Vertex AI embeddings (billed per character, cents/month at this volume). Right tool for the job, not the most expensive one — a cost decision I can justify.</p>\n<p><strong>Independence over coupling.</strong> A neighbouring MCP service had corrupted source on disk (see §7 lineage). Rather than block on repairing it, I made the writer talk <strong>directly</strong> to PostgreSQL and gave Librarian its <strong>own</strong> recall server. The system now lives and dies on its own code — no shared component can take it down.</p>\n<h2 id=\"6-a-design-pivot-under-real-signal\">6. A design pivot under real signal</h2>\n<p>The original MVP was a <em>“Correction Hunter”</em> — extract every <em>“don’t do X, do Y”</em> moment from a session and store it as a <strong>rule</strong>. First smoke tests killed it: the LLM over-generalised a single in-context remark into a blanket rule, and the same remark phrased differently produced duplicate rules that hashing couldn’t dedupe.</p>\n<p>I flipped the output format mid-build: <strong>one factual digest per session</strong> instead of <em>N</em> prescriptive rules. Digests are <em>fact-shaped</em> (“what happened”), which is a far smaller hallucination surface than <em>prescriptive</em> rules (“what should always be done”), and one-record-per-session made idempotency trivial (<code>hash(session_id)</code> — one row by construction).</p>\n<p>The lesson I take to interviews: I changed the core abstraction because the <strong>evidence</strong> said to, not because the original plan was sunk cost.</p>\n<h2 id=\"7-results\">7. Results</h2>\n<ul>\n<li><strong>In production since 16 April 2026</strong>, used daily as the live memory layer for the several agents I run — this is not a demo. Roughly three months of continuous operation, interrupted only by the incident below.</li>\n<li><strong>550+ sessions digested · several thousand searchable digest chunks</strong> (5–15 per session), embedded and queried by cosine similarity across six domains — dominated by <code>technical</code> work with a steady tail of <code>business</code> and <code>reflections</code>. <em>(These counts are the genuinely-digested-since-launch figures; they exclude ~4,150 pre-launch sessions marked skip and a separate legacy file-index corpus that recall filters out.)</em></li>\n<li><strong>Marginal running cost — cents/month.</strong> Free-tier extraction model, self-hosted Postgres on a Raspberry Pi; the only metered line is per-character embeddings at low volume.</li>\n<li>In daily use it answers three recurring questions well enough that I rely on it: <em>did we already solve this? · what was the state of this project? · what happened last time we touched this system?</em></li>\n</ul>\n<p><strong>A production incident I own.</strong> A deployment stripped the executable bit off a service wrapper; after the next reboot the harvester silently failed to start — a <strong>six-day gap</strong> in memory capture before I caught it. The fix was not a one-off patch but a set of durable guards I designed and documented as invariants:</p>\n<ul>\n<li>the service now re-asserts the executable bit on every start (<code>ExecStartPre=chmod +x</code>), so the failure mode cannot recur;</li>\n<li>restart-rate limits were corrected so a genuinely failing service actually enters the <code>failed</code> state instead of restart-looping forever;</li>\n<li>an <code>OnFailure</code> hook now fires a Telegram alert — so the <em>next</em> silent failure is loud;</li>\n<li><code>enable-linger</code> guarantees user services come up on boot without a login.</li>\n</ul>\n<p>Diagnosing a silent, delayed-onset production failure and converting it into codified invariants — rather than a quiet hotfix — is the operational maturity these roles look for.</p>\n<h2 id=\"8-tradeoffs--lessons-honest-notes\">8. Tradeoffs &#x26; lessons (honest notes)</h2>\n<ul>\n<li><strong>Summarisation is lossy by design.</strong> The digest is a lens, not a mirror; the summariser’s quality <em>is</em> the memory’s quality. Mitigation is one call away (<code>get_digest</code>), but a weak model yields weak memory.</li>\n<li><strong>Taxonomy needs discipline.</strong> Domains and tags only help if applied consistently; left unmanaged they drift into noise. I enforce normalisation on the write path <em>and</em> seed the vocabulary into the extraction prompt — belt and braces.</li>\n<li><strong>Semantic recall can mislead.</strong> Cosine similarity surfaces things that <em>sound</em> related but aren’t. Recall is treated as a <strong>starting point for the agent’s judgment, not a verdict</strong> — which is exactly why the read path keeps an LLM in the loop (§3).</li>\n<li><strong>Recency vs. relevance is a real tension.</strong> The most <em>similar</em> memory isn’t always the most <em>current</em> one; a stale digest can describe a state that no longer exists. So recall is context to <em>verify against live reality</em>, never truth to act on blindly.</li>\n</ul>\n<h2 id=\"9-what-the-starter-kit-gives-you\">9. What the Starter Kit gives you</h2>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<table><thead><tr><th>What you get</th><th>Evidence behind it</th></tr></thead><tbody><tr><td><strong>A complete memory loop</strong></td><td>Session harvest, explicit <code>write_memory</code>, semantic search, and full-digest retrieval</td></tr><tr><td><strong>Self-hosted ownership</strong></td><td>PostgreSQL + pgvector in Docker; your machine, accounts, and data</td></tr><tr><td><strong>Agent-first installation</strong></td><td><code>START_HERE.md</code> and examples for supported Codex and Claude Code terminal sessions</td></tr><tr><td><strong>Proof before private data</strong></td><td>Synthetic fixtures and an automated end-to-end verification</td></tr><tr><td><strong>Operational guidance</strong></td><td>Setup, privacy, security, limitations, troubleshooting, and uninstall documentation</td></tr><tr><td><strong>Commercial use</strong></td><td>One buyer or legal entity may use and modify the kit for its own internal and commercial work</td></tr></tbody></table>\n<div class=\"article-cta article-cta--final\">\n  <p class=\"article-cta__eyebrow\">One memory · every connected agent</p>\n  <h2>Stop rebuilding context from zero.</h2>\n  <p>Get the Librarian Starter Kit for €49 as a one-time purchase. You receive the licensed package and setup instructions by email after payment.</p>\n  <a class=\"article-cta__button\" href=\"https://brain.sl-sp.de/buy/?utm_source=slavaspitsyn.com&#x26;utm_medium=qr&#x26;utm_campaign=conference_september&#x26;utm_content=article_final\">Get the Starter Kit <span aria-hidden=\"true\">→</span></a>\n  <span class=\"article-cta__note\">Secure checkout and invoice by Stripe · no VAT charged under §19 UStG · written support</span>\n</div>\n<hr>\n<p><em>Built and operated by Slava Spitsyn. Source is private (personal infrastructure); this write-up describes the system without exposing secrets, credentials, or private content.</em></p>","date_published":"2026-07-12T00:00:00.000Z","tags":["Case study"],"language":"en","authors":[{"name":"Slava Spitsyn","url":"https://slavaspitsyn.com/about/"}],"_syndication":{"service":null,"syndicate":["linkedin","medium","substack"],"lang":"en"}}]}